From 645cef58251ceb188821223ee16e52e9e64af000 Mon Sep 17 00:00:00 2001 From: chenos Date: Wed, 19 Mar 2025 10:28:27 +0800 Subject: [PATCH 001/137] perf: useIsLoggedIn (#6462) --- packages/core/client/src/acl/ACLProvider.tsx | 1 + .../client/src/user/CurrentUserProvider.tsx | 25 +++++++++++++------ ...EnvironmentVariablesAndSecretsProvider.tsx | 6 ++--- .../src/client/WorkflowTasks.tsx | 14 +++++------ 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/packages/core/client/src/acl/ACLProvider.tsx b/packages/core/client/src/acl/ACLProvider.tsx index 6dfa112361..09eaf964ad 100644 --- a/packages/core/client/src/acl/ACLProvider.tsx +++ b/packages/core/client/src/acl/ACLProvider.tsx @@ -74,6 +74,7 @@ export const ACLRolesCheckProvider = (props) => { url: 'roles:check', }, { + manual: !api.auth.token, onSuccess(data) { if (!data?.data?.snippets.includes('ui.*')) { setDesignable(false); diff --git a/packages/core/client/src/user/CurrentUserProvider.tsx b/packages/core/client/src/user/CurrentUserProvider.tsx index 4b1dcab21b..29c9d012c3 100644 --- a/packages/core/client/src/user/CurrentUserProvider.tsx +++ b/packages/core/client/src/user/CurrentUserProvider.tsx @@ -20,6 +20,11 @@ export const useCurrentUserContext = () => { return useContext(CurrentUserContext); }; +export const useIsLoggedIn = () => { + const ctx = useContext(CurrentUserContext); + return !!ctx?.data?.data; +}; + export const useCurrentRoles = () => { const { allowAnonymous } = useACLRoleContext(); const { data } = useCurrentUserContext(); @@ -39,14 +44,18 @@ export const useCurrentRoles = () => { export const CurrentUserProvider = (props) => { const api = useAPIClient(); - const result = useRequest(() => - api - .request({ - url: '/auth:check', - skipNotify: true, - skipAuth: true, - }) - .then((res) => res?.data), + const result = useRequest( + () => + api + .request({ + url: '/auth:check', + skipNotify: true, + skipAuth: true, + }) + .then((res) => res?.data), + { + manual: !api.auth.token, + }, ); const { render } = useAppSpin(); diff --git a/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx b/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx index 4346416cd6..557330c6e0 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx +++ b/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx @@ -8,7 +8,7 @@ */ import { observer } from '@formily/react'; -import { useIsAdminPage, useRequest } from '@nocobase/client'; +import { useIsLoggedIn, useRequest } from '@nocobase/client'; import React, { createContext } from 'react'; const EnvAndSecretsContext = createContext({}); @@ -22,8 +22,8 @@ const InternalProvider = (props) => { const EnvironmentVariablesAndSecretsProvider = observer( (props) => { - const isAdminPage = useIsAdminPage(); - if (!isAdminPage) { + const isLoggedIn = useIsLoggedIn(); + if (!isLoggedIn) { return <>{props.children}; } return ; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx b/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx index 606624e949..c8415ad0b9 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx +++ b/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx @@ -6,12 +6,12 @@ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { CheckCircleOutlined } from '@ant-design/icons'; +import { PageHeader } from '@ant-design/pro-layout'; +import { Badge, Button, Layout, Menu, Tabs, Tooltip } from 'antd'; +import classnames from 'classnames'; import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; import { Link, Outlet, useNavigate, useParams } from 'react-router-dom'; -import { Button, Layout, Menu, Badge, Tooltip, Tabs } from 'antd'; -import { PageHeader } from '@ant-design/pro-layout'; -import { CheckCircleOutlined } from '@ant-design/icons'; -import classnames from 'classnames'; import { css, @@ -22,7 +22,7 @@ import { useApp, useCompile, useDocumentTitle, - useIsAdminPage, + useIsLoggedIn, usePlugin, useRequest, useToken, @@ -371,7 +371,7 @@ function TasksCountsProvider(props: any) { } export const TasksProvider = (props: any) => { - const isAdminPage = useIsAdminPage(); + const isLoggedIn = useIsLoggedIn(); const content = ( { ); - return isAdminPage ? {content} : content; + return isLoggedIn ? {content} : content; }; From 7a884734dd65b297a08e7cddcab72700231d3869 Mon Sep 17 00:00:00 2001 From: hongboji <116709317+hongboji@users.noreply.github.com> Date: Wed, 19 Mar 2025 14:13:04 +0800 Subject: [PATCH 002/137] fix: workflow e2e (#6500) * fix: workflow e2e * fix: workflow e2e --- .../src/client/__e2e__/DataOfCollection.test.ts | 2 +- .../src/client/__e2e__/createRecordForm1.test.ts | 6 +++--- .../src/client/__e2e__/createRecordForm2.test.ts | 6 +++--- .../src/client/__e2e__/createRecordForm3.test.ts | 8 ++++---- .../src/client/__e2e__/createRecordForm4.test.ts | 6 +++--- .../src/client/__e2e__/createRecordForm5.test.ts | 6 +++--- .../src/client/__e2e__/customFormBlocks.test.ts | 6 +++--- .../src/client/__e2e__/customFormBlocks1.test.ts | 8 ++++---- .../src/client/__e2e__/customFormBlocks2.test.ts | 6 +++--- .../src/client/__e2e__/customFormBlocks3.test.ts | 6 +++--- .../src/client/__e2e__/datablocks.test.ts | 4 ++-- .../src/client/__e2e__/datablocks1.test.ts | 12 ++++++------ .../src/client/__e2e__/datablocks2.test.ts | 6 +++--- .../src/client/__e2e__/updateRecordForm.test.ts | 8 ++++---- .../src/client/__e2e__/updateRecordForm1.test.ts | 6 +++--- .../src/client/__e2e__/updateRecordForm2.test.ts | 6 +++--- .../src/client/__e2e__/updateRecordForm3.test.ts | 6 +++--- .../src/e2e/e2ePageObjectModel.ts | 6 ++---- 18 files changed, 56 insertions(+), 58 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/src/client/__e2e__/DataOfCollection.test.ts b/packages/plugins/@nocobase/plugin-workflow-aggregate/src/client/__e2e__/DataOfCollection.test.ts index 492bfd181e..f3fbfecae2 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/src/client/__e2e__/DataOfCollection.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/src/client/__e2e__/DataOfCollection.test.ts @@ -351,7 +351,7 @@ test.describe('filter', () => { aggregateNodeCollectionData.reduce((total, currentValue) => { return currentValue.staffnum > 3 ? total + currentValue.staffnum : total; }, 0) / aggregateNodeCollectionDataCount; - expect(aggregateNodeJobResult).toBe(round(aggregateNodeCollectionDataAvg, 14)); + expect(aggregateNodeJobResult).toBe(round(aggregateNodeCollectionDataAvg, 2)); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); }); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm1.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm1.test.ts index aa147d43d2..ce07b3321a 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm1.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm1.test.ts @@ -130,7 +130,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // 定义获取2位小数 const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); @@ -266,7 +266,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float(); await page.getByRole('checkbox').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -401,7 +401,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByTestId('select-single').click(); await page.getByRole('option', { name: '存续' }).click(); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm2.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm2.test.ts index a0db26183d..98120f7a39 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm2.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm2.test.ts @@ -130,7 +130,7 @@ test.describe('action button', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -271,7 +271,7 @@ test.describe('action button', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Terminate the process' }).click(); @@ -412,7 +412,7 @@ test.describe('action button', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Save temporarily' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm3.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm3.test.ts index 19daf4c2c3..61617bd417 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm3.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm3.test.ts @@ -130,7 +130,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByTestId('select-multiple').click(); await page.getByRole('option', { name: '软件销售', exact: true }).click(); await page.getByRole('option', { name: '软件开发', exact: true }).click(); @@ -273,7 +273,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByLabel('存续').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -407,7 +407,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByLabel('软件销售', { exact: true }).check(); await page.getByLabel('软件开发', { exact: true }).check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -548,7 +548,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = dayjs().format('YYYY-MM-DD'); await page.getByPlaceholder('Select date').click(); await page.getByTitle(manualNodeRecord.toString()).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm4.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm4.test.ts index fc8c393323..766a2fafa8 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm4.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm4.test.ts @@ -130,7 +130,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -265,7 +265,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -400,7 +400,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm5.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm5.test.ts index e7edbb8d5e..caf1439d35 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm5.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/createRecordForm5.test.ts @@ -130,7 +130,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.internet.email(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -265,7 +265,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.int(); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -400,7 +400,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.float({ min: 0, max: 999999999, precision: 2 }); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks.test.ts index 60ebdbf903..a367f1b6ea 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks.test.ts @@ -140,7 +140,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -279,7 +279,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByRole('checkbox').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -424,7 +424,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByTestId('select-single').click(); await page.getByRole('option', { name: '存续' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks1.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks1.test.ts index 023cc4a280..1e6c2411fb 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks1.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks1.test.ts @@ -142,7 +142,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByTestId('select-multiple').click(); await page.getByRole('option', { name: '软件销售', exact: true }).click(); await page.getByRole('option', { name: '软件开发', exact: true }).click(); @@ -295,7 +295,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByLabel('存续').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -440,7 +440,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByLabel('软件销售', { exact: true }).check(); await page.getByLabel('软件开发', { exact: true }).check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -585,7 +585,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = dayjs().format('YYYY-MM-DD'); await page.getByPlaceholder('Select date').click(); await page.getByTitle(manualNodeRecord.toString()).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks2.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks2.test.ts index ed46ee118b..b8db06721c 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks2.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks2.test.ts @@ -136,7 +136,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -275,7 +275,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -414,7 +414,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks3.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks3.test.ts index 61de8cabc4..8eaf078d67 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks3.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/customFormBlocks3.test.ts @@ -136,7 +136,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.internet.email(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -275,7 +275,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.int(); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -414,7 +414,7 @@ test.describe('field data entry', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.float(); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks.test.ts index eebceff70e..cdb3c501ac 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks.test.ts @@ -145,7 +145,7 @@ test.describe('field data', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(triggerNodeCollectionRecordOne)).toBeAttached(); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); @@ -301,7 +301,7 @@ test.describe('field data', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // await expect(page.getByText('8')).toBeAttached(); await expect( page diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks1.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks1.test.ts index 06df2a7f1b..369f943420 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks1.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks1.test.ts @@ -175,7 +175,7 @@ test.describe('field data', () => { await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); await page - .locator('.ant-list', { hasText: preManualNodeTitle }) + .locator('.itemCss', { hasText: preManualNodeTitle }) .getByLabel('action-Action.Link-View-view-') .click(); const preManualNodeRecord = triggerNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); @@ -189,7 +189,7 @@ test.describe('field data', () => { await page.getByRole('textbox').first().fill(manualNodeName); await page.getByRole('button', { name: 'Submit' }).click(); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(preManualNodeRecord)).toBeAttached(); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); @@ -335,7 +335,7 @@ test.describe('field data', () => { await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); await page - .locator('.ant-list', { hasText: preManualNodeTitle }) + .locator('.itemCss', { hasText: preManualNodeTitle }) .getByLabel('action-Action.Link-View-view-') .click(); const preManualNodeRecord = triggerNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); @@ -348,7 +348,7 @@ test.describe('field data', () => { await page.getByRole('textbox').first().fill(manualNodeName); await page.getByRole('button', { name: 'Submit' }).click(); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(preManualNodeRecord)).toBeAttached(); const createNodeCollectionData = await apiGetList(preManualNodeCollectionName); @@ -543,7 +543,7 @@ test.describe('field data', () => { await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); await page - .locator('.ant-list', { hasText: preManualNodeTitle }) + .locator('.itemCss', { hasText: preManualNodeTitle }) .getByLabel('action-Action.Link-View-view-') .click(); const preManualNodeRecord = triggerNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); @@ -556,7 +556,7 @@ test.describe('field data', () => { await page.getByRole('textbox').first().fill(manualNodeName); await page.getByRole('button', { name: 'Submit' }).click(); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(preManualNodeRecord)).toBeAttached(); const filter = `pageSize=20&page=1&filter={"$and":[{"orgname":{"$eq":"${preManualNodeRecord}"}}]}`; const createNodeCollectionData = await apiFilterList(preManualNodeCollectionName, filter); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks2.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks2.test.ts index 5eafd4d43c..8b82c7f562 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks2.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/datablocks2.test.ts @@ -114,7 +114,7 @@ test.describe('field data', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(triggerNodeCollectionRecordOne)).toBeAttached(); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); @@ -222,7 +222,7 @@ test.describe('field data', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(triggerNodeCollectionRecordOne)).toBeAttached(); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); @@ -341,7 +341,7 @@ test.describe('field data', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await expect(page.getByText(triggerNodeCollectionRecordOne)).toBeAttached(); // 4、后置处理:删除工作流 await apiDeleteWorkflow(workflowId); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm.test.ts index d86344f49b..cbb6117471 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm.test.ts @@ -181,7 +181,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -360,7 +360,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByRole('checkbox').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -539,7 +539,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByTestId('select-single').click(); await page.getByRole('option', { name: '存续' }).click(); @@ -719,7 +719,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByTestId('select-multiple').click(); await page.getByRole('option', { name: '软件销售', exact: true }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm1.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm1.test.ts index 805efaeeb8..b60688b1e4 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm1.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm1.test.ts @@ -173,7 +173,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); // const manualNodeRecord = faker.number.float({ min: 0, max: 100, precision: 2 }); await page.getByLabel('存续').check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -352,7 +352,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); await page.getByLabel('软件销售', { exact: true }).check(); await page.getByLabel('软件开发', { exact: true }).check(); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -537,7 +537,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = dayjs().format('YYYY-MM-DD'); await page.getByPlaceholder('Select date').click(); await page.getByTitle(manualNodeRecord.toString()).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm2.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm2.test.ts index e319a53a2b..8792d8364b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm2.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm2.test.ts @@ -157,7 +157,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -320,7 +320,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -483,7 +483,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = manualNodeFieldDisplayName + dayjs().format('YYYYMMDDHHmmss.SSS').toString(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm3.test.ts b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm3.test.ts index b661191c17..f27c51028e 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm3.test.ts +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/client/__e2e__/updateRecordForm3.test.ts @@ -157,7 +157,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.internet.email(); await page.getByRole('textbox').fill(manualNodeRecord); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -320,7 +320,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.int(); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); @@ -483,7 +483,7 @@ test.describe('field data update', () => { await page.getByRole('menuitem', { name: 'check-square Workflow todos' }).click(); await page.mouse.move(300, 0, { steps: 100 }); await page.waitForTimeout(300); - await page.locator('.ant-list', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); + await page.locator('.itemCss', { hasText: manualNodeName }).getByLabel('action-Action.Link-View-view-').click(); const manualNodeRecord = faker.number.float(); await page.getByRole('spinbutton').fill(manualNodeRecord.toString()); await page.getByRole('button', { name: 'Continue the process' }).click(); diff --git a/packages/plugins/@nocobase/plugin-workflow-test/src/e2e/e2ePageObjectModel.ts b/packages/plugins/@nocobase/plugin-workflow-test/src/e2e/e2ePageObjectModel.ts index a962df653e..3d22612206 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/src/e2e/e2ePageObjectModel.ts +++ b/packages/plugins/@nocobase/plugin-workflow-test/src/e2e/e2ePageObjectModel.ts @@ -114,10 +114,8 @@ export class ApprovalTriggerNode { this.collectionDropDown = page .getByLabel('block-item-DataSourceCollectionCascader-workflows-Collection') .locator('.ant-select-selection-search-input'); - this.dataBlocksInitiationRadio = page.getByLabel('Initiate and approve in data blocks only'); - this.dataBlocksAndGlobalApprovalBlocksInitiationRadio = page.getByLabel( - 'Initiate and approve in both data blocks and global approval blocks', - ); + this.dataBlocksInitiationRadio = page.getByRole('radio', { name: 'Initiate in data blocks only' }); + this.dataBlocksAndGlobalApprovalBlocksInitiationRadio = page.getByRole('radio', { name: 'Initiate in both data blocks' }); this.allowedToBeWithdrawnCheckbox = page.getByLabel('Allowed to be withdrawn'); this.goToconfigureButton = page.getByRole('button', { name: 'Go to configure' }); this.addBlockButton = page.getByLabel(`schema-initializer-Grid-ApprovalApplyAddBlockButton-${collectionName}`); From 18ab00bce191960476ab9f2be035d98a79c678cb Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Wed, 19 Mar 2025 16:22:43 +0800 Subject: [PATCH 003/137] fix: remove deprecated menuSchemaUid usage and simplify path generation (#6483) * fix: remove deprecated menuSchemaUid usage and simplify path generation * fix: remove deprecated menuSchemaUid from route schema creation --- .../src/client/routesTableSchema.tsx | 27 ++++++++----------- .../plugin-client/src/client/utils.tsx | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx b/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx index 05e7bc6de9..c9e190c2f0 100644 --- a/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx +++ b/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx @@ -398,8 +398,9 @@ export const createRoutesTableSchema = (collectionName: string, basename: string await form.submit(); field.data = field.data || {}; field.data.loading = true; - const { pageSchemaUid, tabSchemaUid, menuSchemaUid, tabSchemaName } = - await createRouteSchema(form.values); + const { pageSchemaUid, tabSchemaUid, tabSchemaName } = await createRouteSchema( + form.values, + ); let options; if (form.values.href || !_.isEmpty(form.values.params)) { @@ -427,10 +428,7 @@ export const createRoutesTableSchema = (collectionName: string, basename: string const res = await createRoute({ ..._.omit(form.values, ['href', 'params', 'url']), schemaUid: - NocoBaseDesktopRouteType.page === form.values.type - ? pageSchemaUid - : menuSchemaUid, - menuSchemaUid, + NocoBaseDesktopRouteType.page === form.values.type ? pageSchemaUid : undefined, options, ...childrenObj, }); @@ -578,9 +576,7 @@ export const createRoutesTableSchema = (collectionName: string, basename: string } if (recordData.type === NocoBaseDesktopRouteType.page) { - const path = `${basenameOfCurrentRouter.slice(0, -1)}${basename}/${ - isMobile ? recordData.schemaUid : recordData.menuSchemaUid - }`; + const path = `${basenameOfCurrentRouter.slice(0, -1)}${basename}/${recordData.schemaUid}`; // 在点击 Access 按钮时,会用到 recordData._path = path; @@ -596,7 +592,7 @@ export const createRoutesTableSchema = (collectionName: string, basename: string recordData.parentId, data.data, isMobile, - )}/tabs/${recordData.tabSchemaName || recordData.schemaUid}`; + )}/tabs/${recordData.schemaUid}`; recordData._path = path; return ( @@ -877,8 +873,9 @@ export const createRoutesTableSchema = (collectionName: string, basename: string }); } else { let options; - const { pageSchemaUid, tabSchemaUid, menuSchemaUid, tabSchemaName } = - await createRouteSchema(form.values); + const { pageSchemaUid, tabSchemaUid, tabSchemaName } = await createRouteSchema( + form.values, + ); if (form.values.href || !_.isEmpty(form.values.params)) { options = { @@ -893,8 +890,7 @@ export const createRoutesTableSchema = (collectionName: string, basename: string schemaUid: NocoBaseDesktopRouteType.page === form.values.type ? pageSchemaUid - : menuSchemaUid, - menuSchemaUid, + : undefined, options, }); @@ -1253,7 +1249,6 @@ function useCreateRouteSchema(isMobile: boolean) { const createRouteSchema = useCallback( async ({ type }: { type: NocoBaseDesktopRouteType }) => { - const menuSchemaUid = isMobile ? undefined : uid(); const pageSchemaUid = uid(); const tabSchemaName = uid(); const tabSchemaUid = type === NocoBaseDesktopRouteType.page ? uid() : undefined; @@ -1284,7 +1279,7 @@ function useCreateRouteSchema(isMobile: boolean) { await insertPageSchema(typeToSchema[type]); } - return { menuSchemaUid, pageSchemaUid, tabSchemaUid, tabSchemaName }; + return { pageSchemaUid, tabSchemaUid, tabSchemaName }; }, [isMobile, resource, insertPageSchema], ); diff --git a/packages/plugins/@nocobase/plugin-client/src/client/utils.tsx b/packages/plugins/@nocobase/plugin-client/src/client/utils.tsx index ff62e76cba..4eec50f835 100644 --- a/packages/plugins/@nocobase/plugin-client/src/client/utils.tsx +++ b/packages/plugins/@nocobase/plugin-client/src/client/utils.tsx @@ -13,7 +13,7 @@ export function getSchemaUidByRouteId(routeId: number, treeArray: any[], isMobil for (const node of treeArray) { if (node.id === routeId) { if (node.type === NocoBaseDesktopRouteType.page) { - return isMobile ? node.schemaUid : node.menuSchemaUid; + return node.schemaUid; } return node.schemaUid; } From ee728bd9bfac2eea21c090c9fd7a1b33f636aea4 Mon Sep 17 00:00:00 2001 From: chenyongxin <59717382+Cyx649312038@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:15:51 +0800 Subject: [PATCH 004/137] feat: calendar plugin with optional settings to enable or disable quick event creation (#6391) * feat: calendar plugin with optional settings to enable or disable quick event creation * feat: remove useless code * Update zh-CN.json * feat: modify configuration name * feat: use nullish coalescing operator --- .../src/client/calendar/Calendar.tsx | 12 ++++++++-- .../src/client/calendar/Calender.Settings.tsx | 24 +++++++++++++++++++ .../CalendarBlockProvider.tsx | 4 +++- .../plugin-calendar/src/locale/zh-CN.json | 3 ++- 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calendar.tsx b/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calendar.tsx index 49c953bcaf..0308569760 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calendar.tsx +++ b/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calendar.tsx @@ -286,7 +286,15 @@ export const Calendar: any = withDynamicSchemaProps( }, [reactBigCalendar]); // 新版 UISchema(1.0 之后)中已经废弃了 useProps,这里之所以继续保留是为了兼容旧版的 UISchema - const { dataSource, fieldNames, showLunar, defaultView, getFontColor, getBackgroundColor } = useProps(props); + const { + dataSource, + fieldNames, + showLunar, + defaultView, + getFontColor, + getBackgroundColor, + enableQuickCreateEvent, + } = useProps(props); const height = useCalenderHeight(); const [date, setDate] = useState(new Date()); const [view, setView] = useState(props.defaultView || 'month'); @@ -440,7 +448,7 @@ export const Calendar: any = withDynamicSchemaProps( onView={setView} onSelectSlot={(slotInfo) => { setCurrentSelectDate(slotInfo); - if (canCreate) { + if (canCreate && enableQuickCreateEvent) { insertAddNewer(addNew); setVisibleAddNewer(true); } diff --git a/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calender.Settings.tsx b/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calender.Settings.tsx index 2f08b3c11a..191ad1e998 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calender.Settings.tsx +++ b/packages/plugins/@nocobase/plugin-calendar/src/client/calendar/Calender.Settings.tsx @@ -219,6 +219,30 @@ export const calendarBlockSettings = new SchemaSettings({ }; }, }, + { + name: 'quickCreateEvent', + Component: SchemaSettingsSwitchItem, + useComponentProps() { + const { t } = useTranslation(); + const fieldSchema = useFieldSchema(); + const field = useField(); + const { dn } = useDesignable(); + return { + title: t('Quick create event'), + checked: field.decoratorProps?.enableQuickCreateEvent ?? true, + onChange: (v) => { + field.decoratorProps.enableQuickCreateEvent = v; + fieldSchema['x-decorator-props']['enableQuickCreateEvent'] = v; + dn.emit('patch', { + schema: { + ['x-uid']: fieldSchema['x-uid'], + 'x-decorator-props': field.decoratorProps, + }, + }); + }, + }; + }, + }, { name: 'showLunar', Component: ShowLunarDesignerItem, diff --git a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/CalendarBlockProvider.tsx b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/CalendarBlockProvider.tsx index d185dc152c..b22de16d2c 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/CalendarBlockProvider.tsx +++ b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/CalendarBlockProvider.tsx @@ -17,7 +17,7 @@ export const CalendarBlockContext = createContext({}); CalendarBlockContext.displayName = 'CalendarBlockContext'; const InternalCalendarBlockProvider = (props) => { - const { fieldNames, showLunar, defaultView } = props; + const { fieldNames, showLunar, defaultView, enableQuickCreateEvent } = props; const field = useField(); const { resource, service } = useBlockRequestContext(); @@ -30,6 +30,7 @@ const InternalCalendarBlockProvider = (props) => { fieldNames, showLunar, defaultView, + enableQuickCreateEvent: enableQuickCreateEvent ?? true, fixedBlock: field?.decoratorProps?.fixedBlock, }} > @@ -104,6 +105,7 @@ export const useCalendarBlockProps = () => { fieldNames: ctx.fieldNames, showLunar: ctx.showLunar, defaultView: ctx.defaultView, + enableQuickCreateEvent: ctx.enableQuickCreateEvent, fixedBlock: ctx.fixedBlock, getFontColor, getBackgroundColor, diff --git a/packages/plugins/@nocobase/plugin-calendar/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-calendar/src/locale/zh-CN.json index d94ebda242..bd8c056a67 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/locale/zh-CN.json +++ b/packages/plugins/@nocobase/plugin-calendar/src/locale/zh-CN.json @@ -50,5 +50,6 @@ "Color field": "颜色字段", "Not selected": "未选择", "Default view": "默认视图", - "Event open mode": "事项打开方式" + "Event open mode": "事项打开方式", + "Quick create event": "快速创建事项" } From 186463abb25419022b566c4741b4ba65cd741096 Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 19 Mar 2025 21:01:24 +0800 Subject: [PATCH 005/137] fix: association field detection to be based on type (#6506) --- .../schema-component/antd/form-item/FormItem.Settings.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/form-item/FormItem.Settings.tsx b/packages/core/client/src/schema-component/antd/form-item/FormItem.Settings.tsx index 788741a5c2..aefda32ebe 100644 --- a/packages/core/client/src/schema-component/antd/form-item/FormItem.Settings.tsx +++ b/packages/core/client/src/schema-component/antd/form-item/FormItem.Settings.tsx @@ -985,12 +985,11 @@ function useFormItemCollectionField() { export function useIsAssociationField() { const collectionField = useFormItemCollectionField(); - const isAssociationField = ['obo', 'oho', 'o2o', 'o2m', 'm2m', 'm2o', 'updatedBy', 'createdBy', 'mbm'].includes( - collectionField?.interface, - ); + const isAssociationField = + collectionField && + ['hasOne', 'hasMany', 'belongsTo', 'belongsToMany', 'belongsToArray'].includes(collectionField.type); return isAssociationField; } - export function useIsFileField() { const cm = useCollectionManager(); const collectionField = useFormItemCollectionField(); From 49bd35ca5f27d0af17e15686e62fe2cc9bf7d0c6 Mon Sep 17 00:00:00 2001 From: N3tN00b3r <61335029+N3tN00b3r@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:34:48 +0100 Subject: [PATCH 006/137] Updating italian translations - Plugins + Core (#6466) * Add italian translation * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json The following strings have been intentionally not translated to avoid misinterpretation of the technical terms: Access Key ID Access Key Secret Secret ID Secret Key * Create it-IT.json * Create it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Create it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json * Update it-IT.json --------- Co-authored-by: mahuantest <50297992+Albert-mah@users.noreply.github.com> --- packages/core/client/src/locale/it-IT.json | 331 +++++++++++++++--- .../src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 8 +- .../plugin-calendar/src/locale/it-IT.json | 4 +- .../plugin-charts/src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 4 +- .../src/locale/it-IT.json | 3 +- .../src/locale/it-IT.json | 2 +- .../plugin-file-manager/src/locale/it-IT.json | 6 +- .../plugin-map/src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 6 +- .../src/locale/it-IT.json | 6 +- .../src/locale/it-IT.json | 2 +- .../src/locale/it-IT.json | 20 +- .../src/locale/it-IT.json | 5 +- .../src/locale/it-IT.json | 21 +- .../src/locale/it-IT.json | 15 +- .../src/locale/it-IT.json | 4 +- .../src/locale/it-IT.json | 1 + .../src/locale/it-IT.json | 12 +- .../plugin-workflow-sql/src/locale/it-IT.json | 6 +- .../plugin-workflow/src/locale/it-IT.json | 141 +++++++- 22 files changed, 484 insertions(+), 119 deletions(-) diff --git a/packages/core/client/src/locale/it-IT.json b/packages/core/client/src/locale/it-IT.json index a9818450e7..44a48bc9c8 100644 --- a/packages/core/client/src/locale/it-IT.json +++ b/packages/core/client/src/locale/it-IT.json @@ -54,7 +54,7 @@ "Insert inner": "Inserire dentro", "Delete": "Eliminare", "Disassociate": "Dissociare", - "Disassociate record": "Dissociare il record", + "Disassociate record": "Dissociare record", "Are you sure you want to disassociate it?": "Sei sicuro di voler dissociare?", "UI editor": "Editor UI", "Collection": "Raccolta", @@ -80,7 +80,7 @@ "Value": "Valore", "Disabled": "Disabilitato", "Enabled": "Abilitato", - "Problematic": "Problematico", + "Problematic": "Con problemi", "Setting": "Impostazioni", "On": "Acceso", "Off": "Spento", @@ -121,7 +121,7 @@ "pixels": "pixel", "Screen size": "Dimensione dello schermo", "Display title": "Visualizza titolo", - "Set the count of columns displayed in a row": "Imposta il conteggio delle colonne visualizzate in una riga", + "Set the count of columns displayed in a row": "Imposta conteggio delle colonne visualizzate in una riga", "Column": "Colonna", "Phone device": "Telefono", "Tablet device": "Tablet", @@ -146,7 +146,7 @@ "Half of day": "Metà del giorno", "Year": "Anno", "QuarterYear": "Quarto dell' anno", - "Select grouping field": "Seleziona il campo di raggruppamento", + "Select grouping field": "Seleziona campo di raggruppamento", "Media": "Media", "Markdown": "Markdown", "Wysiwyg": "Wysiwyg", @@ -175,7 +175,7 @@ "Expand all": "Espandi tutto", "Expand/Collapse": "Espandi/Comprimi", "Default collapse": "Comprimi di default", - "Tree table": "Tabella ad albero", + "Tree table": "Tabella struttura ad albero", "Custom field display name": "Nome visualizzato campo personalizzato ", "Display fields": "Visualizza campi", "Edit record": "Modifica record", @@ -191,8 +191,8 @@ "This is a demo text, **supports Markdown syntax**.": "Questo è un testo demo, ** supporta la sintassi di Markdown **.", "Filter": "Filtro", "Connect data blocks": "Collega blocchi di dati", - "Action type": "Tipo di operazione", - "Actions": "Operazioni", + "Action type": "Tipo di azione", + "Actions": "Azioni", "Insert": "Inserisci", "Insert if not exists": "Inserisci se non esiste", "Insert if not exists, or update": "Inserisci se non esiste o aggiorna", @@ -252,9 +252,7 @@ "Integer": "Intero", "Percent": "Percentuale", "Password": "Password", - "Advanced type": "Avanzato", - "Formula": "Formula", - "Formula description": "Calcola un valore in ciascun record in base ad altri campi nello stesso record.", + "Advanced type": "Avanzato", "Choices": "Scelte", "Checkbox": "Casella di controllo", "Single select": "Selezione singola", @@ -320,8 +318,7 @@ "Toggles the subfield mode": "Attiva la modalità Subfield", "Selector mode": "Modalità selettore", "Subtable mode": "Modalità sotto-tabella", - "Subform mode": "Modalità sotto-modulo", - "Edit block title": "Modifica titolo blocco", + "Subform mode": "Modalità sotto-modulo", "Block title": "Titolo blocco", "Pattern": "Modello", "Operator": "Operatore", @@ -341,12 +338,11 @@ "not ends with": "non termina con", "is empty": "è vuoto", "is not empty": "non è vuoto", - "Edit chart": "Modifica grafico", - "Add text": "Aggiungi testo", + "Edit chart": "Modifica grafico", "Filterable fields": "Campi filtrabili", "Edit button": "Modifica pulsante", "Hide": "Nascondi", - "Enable actions": "Abilita operazioni", + "Enable actions": "Abilita azioni", "Import": "Importa", "Export": "Esporta", "Customize": "Personalizza", @@ -354,12 +350,12 @@ "Function": "Funzione", "Popup form": "Modulo Popup", "Flexible popup": "Popup flessibile", - "Configure actions": "Configura operazioni", + "Configure actions": "Configura azioni", "Display order number": "Visualizza numero ordinamento", "Enable drag and drop sorting": "Abilita l'ordinamento con drag and drop", "Triggered when the row is clicked": "Attivato quando si fa clic sulla riga", "Add tab": "Aggiungi scheda", - "Disable tabs": "Disabilita le schede", + "Disable tabs": "Disabilita schede", "Details": "Dettagli", "Edit form": "Modifica modulo", "Create form": "Crea modulo", @@ -373,13 +369,13 @@ "Custom column name": "Nome colonna personalizzato", "Edit description": "Modifica descrizione", "Required": "Richiesto", - "Unique": "Unico", + "Unique": "Univoco", "Primary": "Primario", "Auto increment": "Incremento automatico", "Label field": "Campo etichetta", "Default is the ID field": "L'impostazione predefinita è il campo ID", - "Set default sorting rules": "Imposta le regole di ordinamento predefinite", - "Set validation rules": "Imposta le regole di convalida", + "Set default sorting rules": "Imposta regole di ordinamento predefinite", + "Set validation rules": "Imposta regole di convalida", "Max length": "Lunghezza massima", "Min length": "Lunghezza minima", "Maximum": "Massimo", @@ -430,8 +426,7 @@ "Text Align": "Allineamento testo", "Add option": "Aggiungi opzione", "Related collection": "Raccolta correlata", - "Allow linking to multiple records": "Consenti il ​collegamento a più record", - "Allow uploading multiple files": "Consenti il caricamento di più file", + "Allow linking to multiple records": "Consenti ​collegamento a più record", "Configure calendar": "Configura calendario", "Title field": "Campo titolo", "Custom title": "Titolo personalizzato", @@ -471,13 +466,13 @@ "Configure": "Configura", "Configure permissions": "Configura permessi", "Edit role": "Modifica ruolo", - "Action permissions": "Permessi su operazioni", + "Action permissions": "Permessi su azioni", "Menu permissions": "Permessi su menu", "Menu item name": "Nome voce di menu", "Allow access": "Consenti accesso", - "Action name": "Nome operazione", - "Allow action": "Consenti operazione", - "Action scope": "Ambito operazione", + "Action name": "Nome azione", + "Allow action": "Consenti azione", + "Action scope": "Ambito azione", "Operate on new data": "Operare su nuovi dati", "Operate on existing data": "Operare su dati esistenti", "Yes": "Si", @@ -503,11 +498,11 @@ "Save as block template": "Salva come modello blocco", "Block templates": "Modelli blocco", "Block template": "Modello blocco", - "Convert reference to duplicate": "Converti il ​​riferimento a duplicato", + "Convert reference to duplicate": "Converti ​​riferimento a duplicato", "Template name": "Nome modello", "Block type": "Tipo blocco", "No blocks to connect": "Nessun blocco per connettersi", - "Action column": "Colonna operazioni", + "Action column": "Colonna azioni", "Records per page": "Record per pagina", "(Fields only)": "(Solo campi)", "Button title": "Titolo pulsante", @@ -542,7 +537,7 @@ "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificatore per l'utilizzo del programma. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", "Drawer": "Cassetto", "Dialog": "Dialogo", - "Delete action": "Elimina operazione", + "Delete action": "Elimina azione", "Custom column title": "Titolo colonna personalizzata", "Column title": "Titolo colonna", "Original title: ": "Titolo originale: ", @@ -556,7 +551,7 @@ "Then": "Poi", "Stay on current page": "Resta sulla pagina corrente", "Redirect to": "Reindirizza a", - "Save action": "Salva operazione", + "Save action": "Salva azione", "Exists": "Esiste", "Add condition": "Aggiungi condizione", "Add condition group": "Aggiungi gruppo di condizioni", @@ -570,11 +565,8 @@ "<": "<", "≤": "≤", "Role UID": "Ruolo UID", - "Precision": "Precisione", - "Formula mode": "Modalità formula", - "Expression": "Espressione", - "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Input +, -, *, /, () per calcolare, input @ per aprire le variabili campo.", - "Formula error.": "Errore formula.", + "Precision": "Precisione", + "Expression": "Espressione", "Rich Text": "Testo ricco", "Junction collection": "Raccolta giunzione", "Leave it blank, unless you need a custom intermediate table": "Lascialo vuoto, a meno che tu non abbia bisogno di una tabella intermedia personalizzata", @@ -595,7 +587,7 @@ "Tab name": "Nome della scheda", "Current record blocks": "Blocchi record attuale", "Popup message": "Messaggio popup", - "Delete role": "Elimina il ruolo", + "Delete role": "Elimina ruolo", "Role display name": "Nome visualizzato ruolo", "Default role": "Ruolo predefinito", "All collections use general action permissions by default; permission configured individually will override the default one.": "Tutte le raccolte utilizzano i permessi di operazioni generali per impostazione predefinita; I permessi configurati individualmente sovrascriveranno quelli predefiniti.", @@ -612,11 +604,11 @@ "Allows to configure interface": "Consente di configurare l'interfaccia", "Allows to install, activate, disable plugins": "Consente di installare, attivare, disabilitare i plugin", "Allows to configure plugins": "Consente di configurare i plugin", - "Action display name": "Nome visualizzato operazione", + "Action display name": "Nome visualizzato azione", "Allow": "Permetti", "Data scope": "Ambito dei dati", - "Action on new records": "Operazione su nuovi record", - "Action on existing records": "Operazione su record esistenti", + "Action on new records": "Azione su nuovi record", + "Action on existing records": "Azione su record esistenti", "All records": "Tutti i record", "Own records": "Record propri", "Permission policy": "Policy di autorizzazione", @@ -624,14 +616,14 @@ "General": "Generale", "Accessible": "Accessibile", "Configure permission": "Configura permesso", - "Action permission": "Permesso operazione", + "Action permission": "Permesso azione", "Field permission": "Permesso campo", "Scope name": "Nome ambito", "Unsaved changes": "Modifiche non salvate", "Are you sure you don't want to save?": "Sei sicuro di non voler salvare?", "Dragging": "Trascina", "Popup": "Popup", - "Trigger workflow": "Trigger flusso di lavoro", + "Trigger workflow": "Trigger workflow", "Request API": "Richiesta API", "Assign field values": "Assegna valori del campo", "Constant value": "Valore costante", @@ -762,12 +754,7 @@ "Please fill in the iframe URL": "Si prega di compilare l'URL iFrame", "Fix block": "Fissa blocco", "Plugin name": "Nome plugin", - "Plugin tab name": "Nome scheda plugin", - "AutoGenId": "Campo ID generato automaticamente", - "CreatedBy": "Creato da", - "UpdatedBy": "Aggiornato da", - "CreatedAt": "Creato il", - "UpdatedAt": "Aggiornato il", + "Plugin tab name": "Nome scheda plugin", "Column width": "Larghezza colonna", "Sortable": "Ordinabile", "Enable link": "Abilita link", @@ -796,9 +783,8 @@ "Current form": "Modulo corrente", "Current object": "Oggetto corrente", "Linkage with form fields": "Collegamento con i campi del modulo", - "Allow add new, update and delete actions": "Consenti operazioni aggiungi nuovo, aggiorna ed elimina", - "Date display format": "Formato di visualizzazione della data", - "Assign data scope for the template": "Assegna l'ambito dei dati per il modello", + "Allow add new, update and delete actions": "Consenti azioni aggiungi nuovo, aggiorna ed elimina", + "Date display format": "Formato di visualizzazione della data", "Table selected records": "Tabella record selezionati", "Tag": "Etichetta", "Tag color field": "Campo colore etichetta", @@ -813,8 +799,7 @@ "Please confirm the SQL statement first": "Si prega di confermare prima l'istruzione SQL", "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Elimina automaticamente gli oggetti che dipendono dalla raccolta (come le viste) e, a loro volta, tutti gli oggetti che dipendono da tali oggetti", "Sign in with another account": "Accedi con un altro account", - "Return to the main application": "Torna alla applicazione principale", - "Permission deined": "Permesso negato", + "Return to the main application": "Torna alla applicazione principale", "loading": "caricamento", "name is required": "nome richiesto", "data source": "sorgente dati", @@ -843,7 +828,7 @@ "URL search params": "Parametri di ricerca URL", "Expand All": "Espandi tutto", "Search": "Ricerca", - "Clear default value": "Cancella il valore predefinito", + "Clear default value": "Cancella valore predefinito", "Open in new window": "Apri in una nuova finestra", "Sorry, the page you visited does not exist.": "Spiacente, la pagina che hai visitato non esiste.", "is none of": "non è nessuno di", @@ -857,5 +842,243 @@ "Notification": "Notifica", "Ellipsis overflow content": "Contenuto Ellipsis overflow", "Hide column": "Nascondi colonna", - "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "In modalità di configurazione, l'intera colonna diventa trasparente. In modalità non di configurazione, l'intera colonna verrà nascosta. Anche se l'intera colonna è nascosta, i suoi valori predefiniti configurati e le altre impostazioni avranno comunque effetto." + "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "In modalità di configurazione, l'intera colonna diventa trasparente. In modalità non di configurazione, l'intera colonna verrà nascosta. Anche se l'intera colonna è nascosta, i suoi valori predefiniti configurati e le altre impostazioni avranno comunque effetto.", + "Page number": "Numero di pagina", + "Page size": "Numero di voci per pagina", + "Enable": "Abilita", + "Disable": "Disabilita", + "Tab": "Scheda", + "Calculation engine": "Motore di calcolo", + "Expression collection": "Raccolta espressioni", + "Tree collection": "Raccolta struttura ad albero", + "Parent ID": "ID record padre", + "Parent": "Record padre", + "Children": "Record figlio", + "Confirm": "Conferma", + "Block": "Blocco", + "Unnamed": "Senza nome", + "SQL collection": "Raccolta dati SQL", + "Configure field": "Configura campo", + "Username": "Nome utente", + "Null": "Null", + "Boolean": "Booleano", + "String": "Stringa", + "Syntax references": "Riferimenti sintassi", + "Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types.": "Math.js include un ampio set di funzioni e costanti integrate e offre una soluzione integrata per lavorare con diversi tipi di dati.", + "Formula.js supports most Microsoft Excel formula functions.": "Formula.js supporta la maggior parte delle funzioni delle formule di Microsoft Excel.", + "String template": "Modello stringa", + "Simple string replacement, can be used to interpolate variables in a string.": "Sostituzione semplice di stringhe, può essere utilizzata per interpolare variabili in una stringa.", + "https://docs.nocobase.com/handbook/calculation-engines/formula": "https://docs-cn.nocobase.com/handbook/calculation-engines/formula", + "https://docs.nocobase.com/handbook/calculation-engines/mathjs": "https://docs-cn.nocobase.com/handbook/calculation-engines/mathjs", + "Display when unchecked": "Visualizza quando deselezionato", + "Allow dissociate": "Consenti dissociazione", + "Edit block title & description": "Modifica titolo e descrizione blocco", + "Add Markdown": "Aggiungi Markdown", + "Must be 1-50 characters in length (excluding @.<>\"'/)": "Deve essere lungo 1-50 caratteri (esclusi @.<>\"'/)", + "Data source permissions": "Permessi origine dati", + "Now": "Adesso", + "Access control": "Controllo accessi", + "Remove": "Rimuovi", + "Docs": "Documenti", + "Enable page header": "Abilita intestazione pagina", + "Display page title": "Visualizza titolo pagina", + "Edit page title": "Modifica titolo pagina", + "Enable page tabs": "Abilita schede pagina", + "Constant": "Costante", + "Select a variable": "Seleziona una variabile", + "Double click to choose entire object": "Doppio clic per scegliere l'intero oggetto", + "True": "Vero", + "False": "Falso", + "Prettify": "Formatta", + "Theme": "Tema", + "Default theme": "Tema predefinito", + "Compact theme": "Tema compatto", + "Download": "Scarica", + "File type is not supported for previewing, please download it to preview.": "Il tipo di file non è supportato per l'anteprima, scaricalo per visualizzarlo.", + "Click or drag file to this area to upload": "Clicca o trascina il file in quest'area per caricarlo", + "Support for a single or bulk upload.": "Supporta il caricamento singolo o in blocco.", + "File size should not exceed {{size}}.": "La dimensione del file non deve superare {{size}}.", + "File size exceeds the limit": "La dimensione del file supera il limite", + "File type is not allowed": "Il tipo di file non è consentito", + "Incomplete uploading files need to be resolved": "I caricamenti incompleti dei file devono essere completati", + "Default title for each record": "Titolo predefinito per ogni record", + "If collection inherits, choose inherited collections as templates": "Se la raccolta eredita, scegli le raccolte ereditate come modelli", + "Select an existing piece of data as the initialization data for the form": "Seleziona un dato esistente come dati di inizializzazione per il modulo", + "Only the selected fields will be used as the initialization data for the form": "Solo i campi selezionati verranno utilizzati come dati di inizializzazione per il modulo", + "Template Data": "Dati modello", + "Data fields": "Campi dati", + "Add template": "Aggiungi modello", + "Enable form data template": "Abilita modello dati modulo", + "Form data templates": "Modelli dati modulo", + "No configuration available.": "Nessuna configurazione disponibile.", + "Reload application": "Ricarica applicazione", + "The application is reloading, please do not close the page.": "L'applicazione si sta ricaricando, non chiudere la pagina.", + "Application reloading": "Ricaricamento applicazione", + "Allows to clear cache, reboot application": "Consente di cancellare la cache, riavviare l'applicazione", + "The will interrupt service, it may take a few seconds to restart. Are you sure to continue?": "Il riavvio interromperà il servizio, potrebbero essere necessari alcuni secondi. Sei sicuro di continuare?", + "Clear cache": "Cancella cache", + "Quick create": "Creazione rapida", + "Dropdown": "Menu a discesa", + "Pop-up": "Popup", + "Direct duplicate": "Duplicazione diretta", + "Copy into the form and continue to fill in": "Copia nel modulo e continua a compilare", + "Failed to load plugin": "Caricamento plugin fallito", + "Date range limit": "Limite intervallo date", + "MinDate": "Data minima", + "MaxDate": "Data massima", + "Please select time or variable": "Seleziona ora o variabile", + "Filter out a single piece or a group of records as a template": "Filtra un singolo dato o un gruppo di record come modello", + "The title field is used to identify the template record": "Il campo titolo è utilizzato per identificare il record modello", + "Template fields": "Campi modello", + "The selected fields will automatically populate the form": "I campi selezionati popoleranno automaticamente il modulo", + "UnSelect all": "Deseleziona tutto", + "Secondary confirmation": "Conferma secondaria", + "Perform the {{title}}": "Esegui {{title}}", + "Are you sure you want to perform the {{title}} action?": "Sei sicuro di voler eseguire l'azione {{title}}?", + "Permission denied": "Permesso negato", + "Allow add new": "Consenti aggiunta", + "Data model": "Modello dati", + "Security": "Sicurezza", + "Action": "Azione", + "System": "Sistema", + "Other": "Altro", + "Allow selection of existing records": "Consenti selezione di record esistenti", + "Data Model": "Modello dati", + "Blocks": "Blocchi", + "Users & permissions": "Utenti e permessi", + "System management": "Gestione sistema", + "System & security": "Sistema e sicurezza", + "Workflow": "Workflow", + "Third party services": "Servizi di terze parti", + "Data model tools": "Strumenti modello dati", + "Data sources": "Origini dati", + "Collections": "Raccolte", + "Collection fields": "Campi raccolta", + "Authentication": "Autenticazione", + "Logging and monitoring": "Registrazione e monitoraggio", + "Main": "Principale", + "Index": "Indice", + "Field values must be unique.": "I valori dei campi devono essere univoci.", + "Alphabet": "Alfabeto", + "Accuracy": "Precisione", + "Millisecond": "Millisecondo", + "Second": "Secondo", + "Unix Timestamp": "Timestamp Unix", + "Field value do not meet the requirements": "Il valore del campo non soddisfa i requisiti", + "Field value size is": "La dimensione del valore del campo è", + "Unit conversion": "Conversione unità", + "Separator": "Separatore", + "Prefix": "Prefisso", + "Suffix": "Suffisso", + "Record unique key": "Chiave univoca record", + "Filter target key": "Chiave target filtro", + "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.": "Se una raccolta non ha una chiave primaria, devi configurare un record come chiave univoca per individuare i record di ogni riga all'interno di un blocco, la mancata configurazione impedirà la creazione di blocchi di dati per la raccolta.", + "Filter data based on the specific field, with the requirement that the field value must be unique.": "Filtra i dati in base a un campo specifico, con il requisito che il valore del campo deve essere univoco.", + "Multiply by": "Moltiplica per", + "Divide by": "Dividi per", + "Scientifix notation": "Notazione scientifica", + "Normal": "Normale", + "Automatically generate default values": "Genera automaticamente valori predefiniti", + "Refresh data on close": "Refresh dei dati alla chiusura", + "Refresh data on action": "Refresh dei dati su azione", + "Unknown field type": "Tipo di campo sconosciuto", + "The following field types are not compatible and do not support output and display": "I seguenti tipi di campo non sono compatibili e non supportano l'output e la visualizzazione", + "Not fixed": "Non fissato", + "Left fixed": "Fissato a sinistra", + "Right fixed": "Fissato a destra", + "Fixed": "Colonna fissa", + "Set block height": "Imposta altezza del blocco", + "Specify height": "Specifica altezza", + "Full height": "Altezza completa", + "Please configure the URL": "Configura l'URL", + "URL": "URL", + "Search parameters": "Parametri di ricerca URL", + "Do not concatenate search params in the URL": "Non concatenare i parametri di ricerca nell'URL", + "Edit link": "Modifica link", + "Add parameter": "Aggiungi parametro", + "Use simple pagination mode": "Usa modalità di paginazione semplice", + "Set Template Engine": "Imposta motore template", + "Template engine": "Motore template", + "The current user only has the UI configuration permission, but don't have view permission for collection \"{{name}}\"": "L'utente corrente ha solo il permesso di configurazione dell'interfaccia utente, ma non ha il permesso di visualizzazione per la raccolta \"{{name}}\"", + "Default value to current time": "Imposta il valore predefinito del campo all'ora corrente", + "Automatically update timestamp on update": "Aggiorna automaticamente il timestamp all'aggiornamento", + "Default value to current server time": "Imposta il valore predefinito del campo all'ora corrente del server", + "Automatically update timestamp to the current server time on update": "Aggiorna automaticamente il timestamp all'ora corrente del server all'aggiornamento", + "Datetime (with time zone)": "Data e ora (con fuso orario)", + "Datetime (without time zone)": "Data e ora (senza fuso orario)", + "DateOnly": "Solo data", + "Content": "Contenuto", + "Perform the Update record": "Esegui aggiornamento record", + "Are you sure you want to perform the Update record action?": "Sei sicuro di voler eseguire l'azione di aggiornamento record?", + "Perform the Custom request": "Esegui richiesta personalizzata", + "Are you sure you want to perform the Custom request action": "Sei sicuro di voler eseguire l'azione di richiesta personalizzata?", + "Perform the Refresh": "Esegui refresh", + "Are you sure you want to perform the Refresh action?": "Sei sicuro di voler eseguire l'azione di refresh?", + "Perform the Submit": "Esegui l'invio", + "Are you sure you want to perform the Submit action?": "Sei sicuro di voler eseguire l'azione di invio?", + "Perform the Trigger workflow": "Esegui il trigger del workflow", + "Are you sure you want to perform the Trigger workflow action?": "Sei sicuro di voler eseguire l'azione di trigger del workflow?", + "Picker": "Selettore", + "Quarter": "Trimestre", + "Switching the picker, the value and default value will be cleared": "Cambiando il selettore, il valore e il valore predefinito verranno cancellati", + "Stay on the current popup or page": "Rimani nel popup o nella pagina corrente", + "Return to the previous popup or page": "Torna al popup o alla pagina precedente", + "Action after successful submission": "Azione dopo l'invio riuscito", + "Allow disassociation": "Consenti la dissociazione", + "Layout": "Layout", + "Vertical": "Verticale", + "Horizontal": "Orizzontale", + "Edit group title": "Modifica titolo del gruppo", + "Title position": "Posizione titolo", + "Dashed": "Tratteggiato", + "Left": "Sinistra", + "Center": "Centro", + "Right": "Destra", + "Divider line color": "Colore linea di divisione", + "Label align": "Allineamento etichetta", + "Label width": "Larghezza etichetta", + "When the Label exceeds the width": "Quando l'etichetta supera la larghezza", + "Line break": "A capo", + "Ellipsis": "Ellipsis", + "Set block layout": "Imposta layout del blocco", + "Add & Update": "Aggiungi e aggiorna", + "Table size": "Dimensione della tabella", + "Plugin": "Plugin", + "Bulk enable": "Abilitazione in blocco", + "Search plugin...": "Cerca plugin...", + "Package name": "Nome pacchetto", + "Associate": "Associa", + "Please add or select record": "Aggiungi o seleziona record", + "No data": "Nessun dato", + "Fields can only be used correctly if they are defined with an interface.": "I campi possono essere utilizzati correttamente solo se sono definiti con un'interfaccia.", + "Unauthenticated. Please sign in to continue.": "Non autenticato. Accedi per continuare.", + "User not found. Please sign in again to continue.": "Impossibile trovare l'utente. Accedi nuovamente per continuare.", + "Your session has expired. Please sign in again.": "La tua sessione è scaduta. Accedi nuovamente.", + "User password changed, please signin again.": "La password dell'utente è stata modificata, accedi di nuovo.", + "Show file name": "Mostra nome del file", + "Outlined": "Contornato", + "Filled": "Riempito", + "Two tone": "Due toni", + "Desktop routes": "Percorsi desktop", + "Route permissions": "Permessi percorso", + "New routes are allowed to be accessed by default": "I nuovi percorsi sono accessibili per impostazione predefinita", + "Route name": "Nome percorso", + "Mobile routes": "Percorsi mobile", + "Show in menu": "Mostra nel menu", + "Hide in menu": "Nascondi nel menu", + "Path": "Percorso", + "Type": "Tipo", + "Access": "Accesso", + "Routes": "Percorsi", + "Add child route": "Aggiungi percorso figlio", + "Delete routes": "Elimina percorsi", + "Delete route": "Elimina percorso", + "Are you sure you want to hide these routes in menu?": "Sei sicuro di voler nascondere questi percorsi nel menu?", + "Are you sure you want to show these routes in menu?": "Sei sicuro di voler mostrare questi percorsi nel menu?", + "Are you sure you want to hide this menu?": "Sei sicuro di voler nascondere questo menu?", + "After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it.": "Dopo averlo nascosto, questo menu non apparirà più nella barra dei menu. Per mostrarlo di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo.", + "If selected, the page will display Tab pages.": "Se selezionato, la pagina visualizzerà le pagine schede.", + "If selected, the route will be displayed in the menu.": "Se selezionato, il percorso verrà visualizzato nel menu.", + "Are you sure you want to hide this tab?": "Sei sicuro di voler nascondere questa scheda?", + "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "Dopo averla nascosta, questa scheda non apparirà più nella barra delle schede. Per mostrarla di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo." } diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json index 8bb43f77a9..cd1e2c459d 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/src/locale/it-IT.json @@ -4,7 +4,7 @@ "Data": "Dati", "Task": "Attività", "Status": "Stato", - "Actions": "Operazioni", + "Actions": "Azioni", "Created at": "Creato alle", "Type": "Tipo", "Waiting": "In attesa", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-backup-restore/src/locale/it-IT.json index 452be0fb9e..70f9feb195 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/src/locale/it-IT.json @@ -40,5 +40,11 @@ "custom.description": "Dati di raccolta personalizzati", "skipped.description": "Dati ignorati", "unknown.description": "Dati senza regole di dump configurate", - "third-party.description": "Informazioni sul servizio di terze parti" + "third-party.description": "Informazioni sul servizio di terze parti", + "Select Import data": "Seleziona dati da importare", + "Select Import Plugins": "Seleziona plugin di importazione", + "Select User Collections": "Seleziona raccolte utente", + "Basic Data": "Dati di base", + "Optional Data": "Dati opzionali", + "User Data": "Dati utente" } diff --git a/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json index a55b42ab8f..a8b4d37ec3 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-calendar/src/locale/it-IT.json @@ -23,8 +23,8 @@ "Calendar collection": "Raccolta calendario", "Create calendar block": "Crea blocco calendario", "Filter": "Filtro", - "Configure actions": "Configura operazioni", - "Enable actions": "Abilita operazioni", + "Configure actions": "Configura azioni", + "Enable actions": "Abilita azioni", "Turn pages": "Cambia pagina", "Select view": "Seleziona vista", "Add new": "Aggiungi nuovo", diff --git a/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json index 0e4ab1a53a..9e1a427a21 100644 --- a/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-charts/src/locale/it-IT.json @@ -3,7 +3,7 @@ "Delete": "Elimina", "Cancel": "Annulla", "Submit": "Invia", - "Actions": "Operazioni", + "Actions": "Azioni", "Title": "Titolo", "Enable": "Abilita", "Chart": "Grafico", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json index 668ca91534..60090ca498 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/locale/it-IT.json @@ -3,7 +3,7 @@ "Delete": "Elimina", "Cancel": "Annulla", "Submit": "Invia", - "Actions": "Operazioni", + "Actions": "Azioni", "Title": "Titolo", "Enable": "Abilita", "Chart": "Grafico", @@ -76,7 +76,7 @@ "Expand": "Espandi", "Current filter": "Filtro corrente", "Add custom field": "Aggiungi campo personalizzato", - "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "Per filtrare con campi personalizzati, utilizza le variabili \"Current filter\" nella configurazione del grafico.", + "To filter with custom fields, use \"Current filter\" variables in the chart configuration.": "Per filtrare con campi personalizzati, utilizza le variabili \"Filtro corrente\" nella configurazione del grafico.", "Input": "Input", "Date range": "Intervallo date", "Time range": "Intervallo tempo", diff --git a/packages/plugins/@nocobase/plugin-error-handler/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-error-handler/src/locale/it-IT.json index a6c6b06d59..4cc1c90d77 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-error-handler/src/locale/it-IT.json @@ -1,6 +1,5 @@ { "unique violation": "{{field}} già esiste", "notNull violation": "{{field}} non può essere vuoto", - "Validation error": "{{field}} errore di convalida", - "notNull Violation": "{{field}} non può essere vuoto" + "Validation error": "{{field}} errore di convalida" } diff --git a/packages/plugins/@nocobase/plugin-field-formula/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-field-formula/src/locale/it-IT.json index 1cc3afb64f..49a9f1cc42 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-field-formula/src/locale/it-IT.json @@ -4,5 +4,5 @@ "Expression": "Espressione", "Expression syntax error": "Errore sintassi espressione", "Syntax references": "Riferimenti sintassi", - "Compute a value based on the other fields": "Calcola un valore in base a un altro campo" + "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.": "Configura e memorizza i risultati dei calcoli tra più valori dei campi nello stesso record, supportando sia funzioni delle formule Math.js che quelli Excel." } diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json index e1d4a3aacb..778734b98a 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-file-manager/src/locale/it-IT.json @@ -1,12 +1,10 @@ { "File manager": "Gestore file", "Attachment": "Allegato", - "MIME type": "Tipo MIME", - "Storage display name": "Nome visualizzato archivio", + "MIME type": "Tipo MIME", "Storage name": "Nome archivio", "Storage type": "Tipo archivio", - "Default storage": "Archivio predefinito", - "Storage base URL": "URL base archivio", + "Default storage": "Archivio predefinito", "Destination": "Destinazione", "Use the built-in static file server": "Usa il server di file statici integrato", "Local storage": "Archivio locale", diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-map/src/locale/it-IT.json index c5483d21e8..bb16275a84 100644 --- a/packages/plugins/@nocobase/plugin-map/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-map/src/locale/it-IT.json @@ -19,7 +19,7 @@ "Enter keywords to search": "Inserisci parole chiave per la ricerca", "The AccessKey is incorrect, please check it": "La chiave di accesso non è corretta, controllala", "Please configure the AMap securityCode or serviceHost correctly": "Configura correttamente AMap securityCode o serviceHost", - "Map Manager": "Gestore Mappe", + "Map manager": "Gestore Mappe", "Configuration": "Configurazione", "Saved successfully": "Salvataggio riuscito", "Saved failed": "Salvataggio fallito", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json index 8f0b8d40d1..c062312806 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/locale/it-IT.json @@ -6,7 +6,7 @@ "No more": "Non c'è altro", "Loading failed,": "Caricamento fallito,", "please reload": "ricarica", - "Detail": "Dettaglio", + "Detail": "Dettagli", "Content": "Contenuto", "Datetime": "Data e ora", "Status": "Stato", @@ -14,11 +14,11 @@ "Read": "Letto", "Unread": "Non letto", "In-app message": "Messaggio in-app", - "Receivers": "Destinatari", - "Channel name": "Nome canale", + "Receivers": "Destinatari", "Message group name": "Nome gruppo messaggi", "Message title": "Titolo messaggio", "Message content": "Contenuto messaggio", + "detail URL": "dettagli URL", "Details page for desktop": "Pagina dettagli per desktop", "Support two types of links: internal links and external links. If using an internal link, the link starts with\"/\", for example, \"/admin\". If using an external link, the link starts with \"http\", for example, \"https://example.com\".": "Supporta due tipi di link: link interni e link esterni. Se si utilizza un link interno, il link inizia con \"/\", ad esempio, \"/admin\". Se si utilizza un link esterno, il link inizia con \"http\", ad esempio, \"https://example.com\".", "Mark as read": "Segna come letto", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json index 326573c179..8810be949d 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/src/locale/it-IT.json @@ -18,9 +18,9 @@ "Channel display name": "Nome visualizzato canale", "Configure": "Configura", "Add new": "Aggiungi nuovo", - "Trigger From": "Attivato da", + "Trigger from": "Attivato da", "Status": "Stato", - "Created At": "Creato il", + "Created at": "Creato il", "Delete record": "Elimina record", "Are you sure you want to delete it?": "Sei sicuro di volerlo eliminare?", "Deleted successfully!": "Eliminato con successo!", @@ -32,7 +32,7 @@ "Select user": "Seleziona utente", "No channel enabled yet": "Nessun canale ancora abilitato", "Success": "Successo", - "Fail": "Fallito", + "Failure": "Fallimento", "Reason": "Motivo", "Failed reason": "Motivo fallimento", "Log detail": "Dettaglio registro", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json index d8046c85b6..49e39c1495 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/src/locale/it-IT.json @@ -2,7 +2,7 @@ "Detail": "Dettaglio", "Snapshot": "Snapshot", "Add block": "Aggiungi blocco", - "When adding a new record, create a snapshot for its relational record and save in the current record. The snapshot is not updated when the record is subsequently updated.": "Quando si aggiunge un nuovo record, crea uno snapshot del suo record relazionale e salvalo nel record corrente. Lo snapshot non viene aggiornato quando il record viene successivamente aggiornato.", + "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.": "Quando si aggiunge un nuovo record, crea uno snapshot del suo record relazionale e salvalo nel nuovo record. Quando il record relazionale viene aggiornato lo snapshot non verrà aggiornato .", "View record": "Visualizza record", "Allow linking to multiple records": "Consenti collegamento a più record", "The association field to snapshot": "Campo di associazione per lo snapshot", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/it-IT.json index fccf898cf0..e3e482f32b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/src/locale/it-IT.json @@ -1,9 +1,17 @@ { - "Form event": "Evento modulo", - "Event triggers when submitted a workflow bound form action.": "L'evento si attiva quando viene inviata un'azione di un modulo associato a un workflow.", - "Form data model": "Modello dati modulo", - "Use a collection to match form data.": "Utilizza una raccolta per abbinare i dati del modulo.", + "Post-action event": "Evento post-azione", + "Triggered after the completion of a request initiated through an action button or API, such as after adding or updating data. Suitable for data processing, sending notifications, etc., after actions are completed.": + "Attivato dopo il completamento con esito positivo di una richiesta avviata tramite un pulsante di azione o un'API, ad esempio dopo l'aggiunta o l'aggiornamento di dati. Adatto per l'elaborazione dei dati, l'invio di notifiche, ecc. dopo il completamento delle azioni.", + "Collection": "Raccolta", + "The collection to which the triggered data belongs.": "La raccolta a cui appartengono i dati attivati.", + "Trigger mode": "Modalità di attivazione", + "Local mode, triggered after the completion of actions bound to this workflow": "Modalità locale, attivata dopo il completamento delle azioni associate a questo workflow", + "Global mode, triggered after the completion of the following actions": "Modalità globale, attivata dopo il completamento delle seguenti azioni", + "Select actions": "Seleziona azioni", + "Create record action": "Azione di creazione record", + "Update record action": "Azione di aggiornamento record", "Associations to use": "Associazioni da utilizzare", - "User submitted form": "Modulo inviato dall'utente", - "Role of user submitted form": "Ruolo del modulo inviato dall'utente" + "Trigger data": "Dati attivazione", + "User acted": "Utente che ha agito", + "Role of user acted": "Ruolo dell'utente che ha agito" } diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/it-IT.json index de4ad60b2a..11fabc54a9 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/src/locale/it-IT.json @@ -1,11 +1,12 @@ { - "Dynamic Calculation": "Calcolo dinamico", + "Expression": "Espressione", + "Dynamic expression calculation": "Calcolo dinamico", "Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression. The expression is dynamic one from an expression collections.": "Calcola un'espressione basata su un motore di calcolo e ottiene un valore come risultato. Nell'espressione è possibile utilizzare variabili dai nodi upstream. L'espressione è ottenuta dinamicamente da una raccolta di espressioni.", "Select dynamic expression": "Seleziona espressione dinamica", "Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.": "Seleziona l'espressione dinamica interrogata dal nodo upstream. È necessario interrogarla da una raccolta di espressioni.", "Variable datasource": "Origine dati variabile", "Dynamic expression": "Espressione dinamica", - "An expression for calculation in each rows": "Un'espressione per il calcolo in ogni riga", + "Used to store expressions for use in workflows so that different expressions can be called for different data.": "Utilizzato per memorizzare espressioni da usare nei workflow in modo che per dati diversi possano essere chiamate espressioni diverse", "Unconfigured": "Non configurato", "Calculation result": "Risultato del calcolo" } diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/it-IT.json index cf8c80770d..4fde1d0880 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/src/locale/it-IT.json @@ -1,9 +1,22 @@ { "Loop": "Ciclo", "Loop target": "Destinazione ciclo", - "Loop index": "Indice ciclo", + "Loop index (starts from 0)": "Indice del ciclo (inizia da 0)", + "Loop sequence (starts from 1)": "Sequenza del ciclo (inizia da 1)", "Loop length": "Lunghezza ciclo", - "By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.": "Utilizzando un nodo ciclo, puoi eseguire la stessa operazione su più insiemi di dati. L' origine di questi insiemi può essere costituita da record multipli di un nodo query o da record multipli associati di singolo record. Il nodo ciclo può essere utilizzato anche per iterare un certo numero di volte o per scorrere ogni carattere in una stringa. Tuttavia, un numero eccessivamente elevato di cicli può causare problemi di prestazioni, quindi usalo con cautela.", - "Scope variables": "Variabili ambito", - "A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.": "Un singolo numero verrà trattato come conteggio del ciclo, una singola stringa verrà trattata come un array di caratteri e altri valori non-array verranno convertiti in array. Il nodo ciclo termina quando viene raggiunto il conteggio del ciclo o quando il ciclo dell'array è completato. Puoi anche aggiungere nodi condizione al ciclo per terminarlo." + "By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.": "Utilizzando un nodo ciclo, puoi eseguire la stessa operazione su più insiemi di dati. L' origine di questi insiemi può essere costituita da record multipli di un nodo query o da record multipli associati di singolo record. Il nodo ciclo può essere utilizzato anche per iterare un certo numero di volte o per scorrere ogni carattere in una stringa. Tuttavia, un numero eccessivamente elevato di cicli può causare problemi di prestazioni, quindi usalo con cautela.", + "A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.": "Un singolo numero verrà trattato come conteggio del ciclo, una singola stringa verrà trattata come un array di caratteri e altri valori non-array verranno convertiti in array. Il nodo ciclo termina quando viene raggiunto il conteggio del ciclo o quando il ciclo dell'array è completato. Puoi anche aggiungere nodi condizione al ciclo per terminarlo.", + "Enable loop condition": "Abilita condizione del ciclo", + "Loop condition on each item": "Condizione del ciclo su ciascun elemento", + "When to check": "Quando controllare", + "Before each starts": "Prima dell'inizio di ogni ciclo", + "After each ends": "Dopo la fine di ogni ciclo", + "When condition is not met on item": "Quando la condizione non è soddisfatta sull'elemento", + "Exit loop": "Esci dal ciclo", + "Continue on next item": "Continua con l'elemento successivo", + "Condition": "Condizione", + "When node inside loop failed": "Quando il nodo all'interno del ciclo fallisce", + "Continue loop on next item": "Continua il ciclo con l'elemento successivo", + "Exit loop and continue workflow": "Esci dal ciclo e continua il workflow", + "Exit workflow": "Esci dal workflow" } diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/it-IT.json index f8edafafc9..fa6734c64b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/src/locale/it-IT.json @@ -7,10 +7,10 @@ "User interface": "Interfaccia utente", "Configure user interface": "Configura interfaccia utente", "View user interface": "Visualizza interfaccia utente", - "Separately": "Separato", - "Each user has own task": "Ogni utente ha il proprio compito", + "Separately": "Separato", + "Each user has own task": "Ogni utente ha la propria attività", "Collaboratively": "Collaborativo", - "Everyone shares one task": "Tutti condividono un compito", + "Everyone shares one task": "Tutti condividono un attività", "Negotiation": "Negoziazione", "All pass": "Tutti passano", "Everyone should pass": "Tutti dovrebbero passare", @@ -25,6 +25,11 @@ "Create record form": "Modulo creazione record", "Update record form": "Modulo aggiornamento record", "Filter settings": "Impostazioni filtro", - "Workflow todos": "'Da fare' del workflow", - "Task": "Compito" + "Workflow todos": "Da fare", + "Task node": "Nodo attività", + "Unprocessed": "Non elaborato", + "Please check one of your update record form, and add at least one filter condition in form settings.": "Verifica uno dei tuoi moduli di aggiornamento record e aggiungi almeno una condizione nel filtro nelle impostazioni del modulo.", + "My manual tasks": "Le mie attività manuali", + "Task title": "Titolo attività", + "Title of each task item. Default to node title.": "Titolo di ogni elemento attività. Predefinito: titolo del nodo." } diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/it-IT.json index 5f0df3352a..71dab29fc9 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/src/locale/it-IT.json @@ -1,4 +1,4 @@ { - "Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Invia email chiamando il servizio SMTP. Puoi usare le variabili nei nodi upstream come destinatari, oggetto e contenuto dell'email.", - "Ignore failed sending and continue workflow": "Ignora l'invio fallito e continua il workflow" + "Notification": "Notifiche", + "Send notification. You can use the variables in the upstream nodes as content and ohter config.": "Invia notifica. Puoi usare le variabili nei nodi upstream come contenuto e altre configurazioni" } diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/it-IT.json index 5ecee1775a..6fcd80285e 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/src/locale/it-IT.json @@ -2,6 +2,7 @@ "Parallel branch": "Ramo parallelo", "Run multiple branch processes in parallel.": "Esegui più processi del ramo in parallelo.", "Add branch": "Aggiungi ramo", + "Mode": "Modalità di esecuzione", "All succeeded": "Tutti riusciti", "Any succeeded": "Qualsiasi riuscito", "Any succeeded or failed": "Qualsiasi riuscito o fallito", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-request/src/locale/it-IT.json index 8dd08cce30..fc1828e86c 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/src/locale/it-IT.json @@ -9,12 +9,16 @@ "Add parameter": "Aggiungi parametro", "Body": "Corpo", "Use variable": "Usa variabile", + "Add key-value pairs": "Aggiungi coppie chiave-valore", "Format": "Formato", "Insert": "Inserisci", - "Timeout config": "Configurazione timeout", - "ms": "ms", + "Timeout": "Timeout", + "Milliseconds": "ms", "Input request data": "Inserisci dati richiesta", "Only support standard JSON data": "Supporta solo dati JSON standard", - "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" supporta solo \"application/json\", e non è necessario specificarlo", - "Ignore failed request and continue workflow": "Ignora la richiesta fallita e continua il workflow" + "\"Content-Type\" will be ignored from headers.": "\"Content-Type\" sarà ignorato dall'intestazione", + "Ignore failed request and continue workflow": "Ignora la richiesta fallita e continua il workflow", + "Status code": "Codice stato", + "Data": "Dati", + "Response headers": "Intestazioni risposta" } diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/it-IT.json index 4aaa8d60fa..b34f90eccf 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/src/locale/it-IT.json @@ -1,5 +1,7 @@ { "SQL action": "Azione SQL", - "Execute a SQL statement in database": "Esegui un'istruzione SQL nel database", - "Usage of SQL query result is not supported yet.": "L'utilizzo del risultato della query SQL non è ancora supportato." + "Execute a SQL statement in database.": "Esegui un'istruzione SQL nel database.", + "Select a data source to execute SQL.": "Seleziona un origine dati per eseguire SQL.", + "SQL query result could be used through <1>JSON query node (Commercial plugin).": "Il risultato della query SQL potrebbe essere utilizzato tramite il <1>nodo JSON query(plugin commerciale).", + "Include meta information of this query in result": "Includi meta informazioni di questa query nel risultato" } diff --git a/packages/plugins/@nocobase/plugin-workflow/src/locale/it-IT.json b/packages/plugins/@nocobase/plugin-workflow/src/locale/it-IT.json index b5f141b641..c714b7c4b2 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/locale/it-IT.json +++ b/packages/plugins/@nocobase/plugin-workflow/src/locale/it-IT.json @@ -53,13 +53,8 @@ "By custom date": "Per data personalizzata", "Advanced": "Avanzato", "End": "Fine", - "Node result": "Risultato nodo", - "Constant": "Costante", - "Null": "Null", - "Boolean": "Booleano", - "String": "Stringa", - "Operator": "Operatore", - "Arithmetic calculation": "Calcolo aritmetico", + "Node result": "Risultato nodo", + "Operator": "Operatore", "String operation": "Operazione stringa", "Executed at": "Eseguito alle", "Queueing": "In coda", @@ -73,28 +68,138 @@ "Collection operations": "Operazioni raccolta", "Extended types": "Tipi estesi", "Node type": "Tipo nodo", - "Calculation": "Calcolo", - "Configure calculation": "Configura calcolo", + "Calculation": "Calcolo", "Calculation result": "Risultato calcolo", "True": "Vero", "False": "Falso", "concat": "concatena", "Condition": "Condizione", "Mode": "Modalità", - "Continue when \"Yes\"": "Continua quando \"Yes\"", - "Branch into \"Yes\" and \"No\"": "Dirama in \"Yes\" e \"No\"", - "Conditions": "Condizioni", + "Continue when \"Yes\"": "Continua quando \"Sì\"", + "Branch into \"Yes\" and \"No\"": "Dirama in \"Sì\" e \"No\"", "Create record": "Crea record", "Update record": "Aggiorna record", "Query record": "Interroga record", "Multiple records": "Record multipli", "Please select collection first": "Seleziona prima la raccolta", - "Only update records matching conditions": "Aggiorna solo i record che corrispondono alle condizioni", - "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.": "I campi a cui non è assegnato un valore verranno impostati sul valore predefinito, e quelli che non hanno un valore predefinito verranno impostati su null.", - "Trigger in executed workflow cannot be modified": "Il trigger nel workflow eseguito non può essere modificato", - "Node in executed workflow cannot be modified": "Il nodo nel workflow eseguito non può essere modificato", + "Only update records matching conditions": "Aggiorna solo i record che corrispondono alle condizioni", "Can not delete": "Impossibile eliminare", "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "Il risultato di questo nodo è stato referenziato da altri nodi ({{nodes}}), rimuovi l'utilizzo prima di eliminare.", - "Maximum number of loop calls": "Numero massimo di chiamate ciclo", - "If the number of loop calls is too large, there will be performance issues.": "Se il numero di chiamate ciclo è troppo grande, ci saranno problemi di prestazioni." + "Clear all executions": "Cancella tutte le esecuzioni", + "Clear executions will not reset executed count, and started executions will not be deleted, are you sure you want to delete them all?": "La cancellazione delle esecuzioni non reimposta il conteggio delle esecuzioni e le esecuzioni avviate non verranno eliminate. Sei sicuro di volerle eliminare tutte?", + "Sync": "Sincronizza", + "Sync enabled status of all workflows from database": "Sincronizza lo stato abilitato di tutti i workflow dal database", + "Duplicate to new workflow": "Duplica in un nuovo workflow", + "Delete a main version will cause all other revisions to be deleted too.": "L'eliminazione di una versione principale comporterà l'eliminazione anche di tutte le altre revisioni.", + "Execute manually": "Esegui manualmente", + "The trigger is not configured correctly, please check the trigger configuration.": "Il trigger non è configurato correttamente, controlla la configurazione del trigger.", + "This type of trigger has not been supported to be executed manually.": "Questo tipo di trigger non è supportato per l'esecuzione manuale.", + "Trigger variables need to be filled for executing.": "Le variabili del trigger devono essere compilate per l'esecuzione.", + "A new version will be created automatically after execution if current version is not executed.": "Se la versione corrente non è stata eseguita, verrà creata automaticamente una nuova versione dopo l'esecuzione.", + "This will perform all the actions configured in the workflow. Are you sure you want to continue?": "Verranno eseguite tutte le azioni configurate nel workflow. Sei sicuro di voler continuare?", + "Automatically create a new version after execution": "Crea automaticamente una nuova versione dopo l'esecuzione", + "Workflow executed, the result status is <1>{{statusText}}<2>View the execution": "Workflow eseguito, lo stato del risultato è <1>{{statusText}}<2>Visualizza l'esecuzione", + "Use transaction": "Usa transazione", + "Data operation nodes in workflow will run in a same transaction until any interruption. Any failure will cause data rollback, and will also rollback the history of the execution.": "I nodi di operazione dati nel workflow verranno eseguiti nella stessa transazione fino a qualsiasi interruzione. Qualsiasi errore causerà il rollback dei dati e ripristinerà anche la cronologia dell'esecuzione.", + "Auto delete history when execution is on end status": "Elimina automaticamente la cronologia quando l'esecuzione è in stato finale", + "Maximum number of cycling triggers": "Numero massimo di trigger ciclici", + "The triggers of same workflow by some node (create, update and sub-flow etc.) more than this number will be ignored. Large number may cause performance issues. Please use with caution.": "I trigger dello stesso workflow da un nodo (crea, aggiorna e sub-flow ecc.) superiori a questo numero verranno ignorati. Un numero elevato può causare problemi di prestazioni. Si prega di usare con cautela.", + "Unknown trigger": "Trigger sconosciuto", + "Workflow with unknown type will cause error. Please delete it or check plugin which provide this type.": "Un workflow con tipo sconosciuto causerà un errore. Si prega di eliminarlo o controllare il plugin che fornisce questo tipo.", + "Execute mode": "Modalità di esecuzione", + "Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.": "Esegui il workflow in modo asincrono o sincrono in base al tipo di trigger e non può essere modificato dopo la creazione.", + "Asynchronously": "Asincrono", + "Synchronously": "Sincrono", + "Will be executed in the background as a queued task.": "Verrà eseguito in background come attività in coda.", + "For user actions that require immediate feedback. Can not use asynchronous nodes in such mode, and it is not recommended to perform time-consuming operations under synchronous mode.": "Per le azioni dell'utente che richiedono un feedback immediato. Non è possibile utilizzare nodi asincroni in questa modalità e non è consigliabile eseguire operazioni che richiedono tempo in modalità sincrona.", + "Go back": "Torna indietro", + "Bind workflows": "Collega workflow", + "Support pre-action event (local mode), post-action event (local mode), and approval event here.": "Qui sono supportati evento pre-azione (modalità locale), evento post-azione (modalità locale) e evento di approvazione.", + "Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with \"Custom action event\".": "Il workflow verrà attivato direttamente una volta cliccato il pulsante, senza salvataggio dei dati. Supporta solo il collegamento con \"evento azione personalizzata\".", + "\"Submit to workflow\" to \"Post-action event\" is deprecated, please use \"Custom action event\" instead.": "\"Invia a workflow\" a \"evento post-azione\" è obsoleto, si prega di utilizzare invece \"evento azione personalizzata\".", + "Workflow will be triggered before deleting succeeded (only supports pre-action event in local mode).": "Il workflow verrà attivato prima dell'eliminazione riuscita (supporta solo l'evento pre-azione in modalità locale).", + "Submit to workflow": "Invia a workflow", + "Add workflow": "Aggiungi workflow", + "Select workflow": "Seleziona workflow", + "Trigger data context": "Contesto dati trigger", + "Full form data": "Dati completi del modulo", + "Select context": "Seleziona contesto", + "Triggered when data changes in the collection, such as after adding, updating, or deleting a record. Unlike \"Post-action event\", Collection event listens for data changes rather than HTTP requests. Unless you understand the exact meaning, it is recommended to use \"Post-action event\".": "Attivato quando i dati cambiano nella raccolta, ad esempio dopo l'aggiunta, l'aggiornamento o l'eliminazione di un record. A differenza dell' \"evento post-azione\", l'evento raccolta ascolta le modifiche dei dati anziché le richieste HTTP. A meno che tu non capisca il significato esatto, si consiglia di utilizzare \"Evento post-azione\".", + "Preload associations": "Precarica associazioni", + "Please select the associated fields that need to be accessed in subsequent nodes. With more than two levels of to-many associations may cause performance issue, please use with caution.": "Seleziona i campi associati a cui è necessario accedere nei nodi successivi. Con più di due livelli di associazioni molti-a-molti possono verificarsi problemi di prestazioni, si prega di usare con cautela.", + "Choose a record or primary key of a record in the collection to trigger.": "Scegli un record o la chiave primaria di un record nella raccolta per attivare.", + "Triggered according to preset time conditions. Suitable for one-time or periodic tasks, such as sending notifications and cleaning data on a schedule.": "Attivato secondo condizioni di tempo preimpostate. Adatto per attività una tantum o periodiche, come l'invio di notifiche e la pulizia dei dati in base a una pianificazione.", + "Execute on": "Esegui su", + "Current time": "Ora corrente", + "Variable key of node": "Chiave variabile del nodo", + "Scope variables": "Variabili di ambito", + "Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression.": "Calcola un'espressione basata su un motore di calcolo e ottieni un valore come risultato. Le variabili nei nodi upstream possono essere utilizzate nell'espressione.", + "System variables": "Variabili di sistema", + "System time": "Ora di sistema", + "Date variables": "Variabili data", + "Date range": "Intervallo date", + "Resolved": "Risolto", + "Error": "Errore", + "Aborted": "Interrotto", + "Rejected": "Rifiutato", + "Retry needed": "Richiesto nuovo tentativo", + "Completed": "Completato", + "All": "Tutto", + "View result": "Visualizza risultato", + "Triggered but still waiting in queue to execute.": "Attivato ma ancora in attesa in coda per l'esecuzione.", + "Started and executing, maybe waiting for an async callback (manual, delay etc.).": "Avviato ed in esecuzione, forse in attesa di un callback asincrono (manuale, ritardo ecc.).", + "Successfully finished.": "Terminato con successo.", + "Failed to satisfy node configurations.": "Fallito nel soddisfare le configurazioni del nodo.", + "Some node meets error.": "Qualche nodo presenta un errore.", + "Running of some node was aborted by program flow.": "L'esecuzione di qualche nodo è stata interrotta dal flusso del programma.", + "Manually canceled whole execution when waiting.": "L'intera esecuzione è stata cancellata manualmente durante l'attesa.", + "Rejected from a manual node.": "Rifiutato da un nodo manuale.", + "General failed but should do another try.": "Fallimento generico, ma dovrebbe essere fatto un altro tentativo.", + "Cancel the execution": "Annulla l'esecuzione", + "Are you sure you want to cancel the execution?": "Sei sicuro di voler annullare l'esecuzione?", + "Operations": "Operazioni", + "Manual": "Manuale", + "Unknown node": "Nodo sconosciuto", + "Node with unknown type will cause error. Please delete it or check plugin which provide this type.": "Un nodo con tipo sconosciuto causerà un errore. Si prega di eliminarlo o controllare il plugin che fornisce questo tipo.", + "Calculation engine": "Motore di calcolo", + "Basic": "Base", + "Calculation expression": "Espressione di calcolo", + "Expression syntax error": "Errore di sintassi dell'espressione", + "Syntax references: ": "Riferimenti di sintassi:", + "Based on boolean result of the calculation to determine whether to \"continue\" or \"exit\" the process, or continue on different branches of \"yes\" and \"no\".": "Basato sul risultato booleano del calcolo per determinare se \"continuare\" o \"uscire\" dal processo, o continuare su rami diversi di \"sì\" e \"no\".", + "Condition expression": "Espressione di condizione", + "Inside of \"Yes\" branch": "All'interno del ramo \"Sì\"", + "Inside of \"No\" branch": "All'interno del ramo \"No\"", + "Add new record to a collection. You can use variables from upstream nodes to assign values to fields.": "Aggiungi un nuovo record a una raccolta. Puoi usare variabili dai nodi upstream per assegnare valori ai campi.", + "Update records of a collection. You can use variables from upstream nodes as query conditions and field values.": "Aggiorna i record di una raccolta. Puoi usare variabili dai nodi upstream come condizioni di query e valori campo.", + "Update mode": "Modalità di aggiornamento", + "Update in a batch": "Aggiornamento in batch", + "Update one by one": "Aggiornamento uno per uno", + "Update all eligible data at one time, which has better performance when the amount of data is large. But association fields are not supported (unless foreign key in current collection), and the updated data will not trigger other workflows.": "Aggiorna tutti i dati idonei in una volta, il che ha prestazioni migliori quando la quantità di dati è grande. Ma i campi di associazione non sono supportati (a meno che la chiave esterna non sia nella raccolta corrente), e i dati aggiornati non attiveranno altri workflow.", + "The updated data can trigger other workflows, and the audit log will also be recorded. But it is usually only applicable to several or dozens of pieces of data, otherwise there will be performance problems.": "I dati aggiornati possono attivare altri workflow, e il registro eventi sarà anche registrato. Ma di solito è applicabile solo a diverse o decine di dati, altrimenti ci saranno problemi di prestazioni.", + "Query records from a collection. You can use variables from upstream nodes as query conditions.": "Interroga i record da una raccolta. Puoi usare variabili dai nodi upstream come condizioni di query.", + "Allow multiple records as result": "Consenti più record come risultato", + "If checked, when there are multiple records in the query result, an array will be returned as the result, which can be operated on one by one using a loop node. Otherwise, only one record will be returned.": "Se selezionato, quando ci sono più record nel risultato della query, sarà restituito come risultato un array, che può essere operato uno per uno usando un nodo ciclo. Altrimenti, sarà restituito solo un record.", + "Result type": "Tipo risultato", + "Single record": "Record singolo", + "The result will be an object of the first matching record only, or null if no matched record.": "Il risultato sarà un oggetto solo del primo record corrispondente, oppure null se non vi è alcun record corrispondente.", + "The result will be an array containing matched records, or an empty one if no matching records. This can be used to be processed in a loop node.": "Il risultato sarà un array contenente record corrispondenti, o uno vuoto se non ci sono record corrispondenti. Questo può essere usato per essere elaborato in un nodo ciclo.", + "Exit when query result is null": "Esci quando il risultato della query è null", + "Please add at least one condition": "Si prega di aggiungere almeno una condizione", + "Unassigned fields will be set to default values, and those without default values will be set to null.": "I campi non assegnati saranno impostati ai valori predefiniti, e quelli senza valori predefiniti saranno impostati a null.", + "Delete record": "Elimina record", + "Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.": "Elimina i record di una raccolta. Potrebbe usare variabili nel contesto del workflow come filtro. Tutti i record che corrispondono al filtro saranno eliminati.", + "Executed workflow cannot be modified. Could be copied to a new version to modify.": "Il workflow eseguito non può essere modificato. Potrebbe essere copiato in una nuova versione per essere modificato.", + "End process": "Termina processo", + "End the process immediately, with set status.": "Termina il processo immediatamente, con stato impostato.", + "End status": "Stato finale", + "Test run": "Test run", + "Test run will do the actual data manipulating or API calling, please use with caution.": "Il test run farà l'effettiva manipolazione dei dati o la chiamata API, si prega di usare con cautela.", + "No variable": "Nessuna variabile", + "Add node": "Aggiungi nodo", + "Move all downstream nodes to": "Sposta tutti i nodi downstream a", + "After end of branches": "Dopo la fine dei rami", + "Inside of branch": "All'interno del ramo", + "Workflow todos": "Da fare", + "New version enabled": "Nuova versione abilitata" } From 92f7f3f390a47dff5ef1a0979d7b1aded0ec702c Mon Sep 17 00:00:00 2001 From: Sheldon Guo Date: Thu, 20 Mar 2025 09:40:58 +0800 Subject: [PATCH 007/137] fix(notification-email): adjust column widths and add description for secure setting (#6501) --- .../plugin-notification-email/src/client/ConfigForm.tsx | 8 +++++--- .../plugin-notification-email/src/locale/zh-CN.json | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-notification-email/src/client/ConfigForm.tsx b/packages/plugins/@nocobase/plugin-notification-email/src/client/ConfigForm.tsx index f1c0a8587f..c4c6c0470c 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/src/client/ConfigForm.tsx +++ b/packages/plugins/@nocobase/plugin-notification-email/src/client/ConfigForm.tsx @@ -42,7 +42,7 @@ export const ChannelConfigForm = () => { type: 'void', 'x-component': 'Grid.Col', 'x-component-props': { - width: 50, + width: 45, }, properties: { host: { @@ -62,7 +62,7 @@ export const ChannelConfigForm = () => { type: 'void', 'x-component': 'Grid.Col', 'x-component-props': { - width: 25, + width: 20, }, properties: { port: { @@ -92,7 +92,7 @@ export const ChannelConfigForm = () => { type: 'void', 'x-component': 'Grid.Col', 'x-component-props': { - width: 25, + width: 35, }, properties: { secure: { @@ -100,6 +100,8 @@ export const ChannelConfigForm = () => { title: '{{t("Secure")}}', 'x-decorator': 'FormItem', 'x-component': 'TextAreaWithGlobalScope', + description: + '{{t("In most cases, if using port 465, set it to true; otherwise, set it to false.")}}', 'x-component-props': { boolean: true, useTypedConstant: [['boolean', { style: { width: '100%' } }]], diff --git a/packages/plugins/@nocobase/plugin-notification-email/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-notification-email/src/locale/zh-CN.json index 6a74e27196..e29654a9eb 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/src/locale/zh-CN.json +++ b/packages/plugins/@nocobase/plugin-notification-email/src/locale/zh-CN.json @@ -18,5 +18,6 @@ "SMTP server host": "SMTP 服务器主机", "Content type": "内容格式", "Plain text": "纯文本", - "Transport": "传输方式" + "Transport": "传输方式", + "In most cases, if using port 465, set it to true; otherwise, set it to false.": "通常情况下,如果使用端口 465 ,请设置为 true ;否则,请设置为 false 。" } From 87c1fee42534cf945cca8091899deeb46ad9b373 Mon Sep 17 00:00:00 2001 From: Katherine Date: Thu, 20 Mar 2025 09:50:56 +0800 Subject: [PATCH 008/137] fix: failed required validation for map management secret key fields (#6509) --- .../plugins/@nocobase/plugin-map/package.json | 4 ++-- .../src/client/components/Configuration.tsx | 17 +++++++++++++---- .../@nocobase/plugin-map/src/locale/zh-CN.json | 5 ++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index 4e002704cc..05e1f9febd 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -7,8 +7,8 @@ "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", "main": "./dist/server/index.js", - "homepage": "https://docs.nocobase.com/handbook/map", - "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/map", + "homepage": "https://docs.nocobase.com/handbook/block-map", + "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-map", "devDependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@amap/amap-jsapi-types": "^0.0.10", diff --git a/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx b/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx index 589ef5185a..9eacc12916 100644 --- a/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx +++ b/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx @@ -32,7 +32,8 @@ const BaseConfiguration: React.FC = ({ type, children }) return apiClient.resource(MapConfigurationResourceKey); }, [apiClient]); - const onSubmit = (values) => { + const onSubmit = async (values) => { + await form.validateFields(); resource .set({ ...values, @@ -62,10 +63,18 @@ const AMapConfiguration = () => { const { t } = useMapTranslation(); return ( - + - + @@ -76,7 +85,7 @@ const GoogleMapConfiguration = () => { const { t } = useMapTranslation(); return ( - + diff --git a/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json index a55d5e3778..c8debc9810 100644 --- a/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json +++ b/packages/plugins/@nocobase/plugin-map/src/locale/zh-CN.json @@ -47,5 +47,8 @@ "Create map block": "创建地图区块", "Start point": "起点", "End point": "终点", - "Concatenation order field": "连接顺序字段" + "Concatenation order field": "连接顺序字段", + "securityJsCode or serviceHost is required": "securityJsCode 或 serviceHost 是必填", + "Access key is required": "访问密钥是必填", + "Api key is required": "Api key 是必填" } From 9c72cba8f51eec49bbbd9a0bf28751fa535c2fda Mon Sep 17 00:00:00 2001 From: Sheldon Guo Date: Thu, 20 Mar 2025 10:50:21 +0800 Subject: [PATCH 009/137] feat(mailer): add description for secure setting and update translations (#6510) --- .../plugin-workflow-mailer/src/client/MailerInstruction.tsx | 3 ++- .../@nocobase/plugin-workflow-mailer/src/locale/en-US.json | 3 ++- .../@nocobase/plugin-workflow-mailer/src/locale/zh-CN.json | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/src/client/MailerInstruction.tsx b/packages/plugins/@nocobase/plugin-workflow-mailer/src/client/MailerInstruction.tsx index 08c148521d..4b02a7d641 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/src/client/MailerInstruction.tsx +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/src/client/MailerInstruction.tsx @@ -7,9 +7,9 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import React from 'react'; import { MailOutlined } from '@ant-design/icons'; import { ArrayItems } from '@formily/antd-v5'; +import React from 'react'; import { SchemaComponentContext, css } from '@nocobase/client'; import { @@ -112,6 +112,7 @@ export default class extends Instruction { secure: { type: 'boolean', title: `{{t("Secure", { ns: "${NAMESPACE}" })}}`, + description: `{{t("In most cases, if using port 465, set it to true; otherwise, set it to false.", { ns: "${NAMESPACE}" })}}`, 'x-decorator': 'FormItem', 'x-component': 'WorkflowVariableInput', 'x-component-props': { diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/en-US.json index acd2ea3219..297e52cb70 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/en-US.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/en-US.json @@ -15,5 +15,6 @@ "Content": "Content", "Content type": "Content type", "Plain text": "Plain text", - "Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow" + "Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow", + "In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false." } diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/zh-CN.json index b5b32d5f1b..ed678386b8 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/zh-CN.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/src/locale/zh-CN.json @@ -15,5 +15,6 @@ "Content": "内容", "Content type": "内容格式", "Plain text": "纯文本", - "Ignore failed sending and continue workflow": "忽略失败的发送并继续工作流" + "Ignore failed sending and continue workflow": "忽略失败的发送并继续工作流", + "In most cases, if using port 465, set it to true; otherwise, set it to false.": "通常情况下,如果使用端口 465 ,请设置为 true ;否则,请设置为 false 。" } From 2c024cc32ea0e8f65c6f3f896718e66901bb1a82 Mon Sep 17 00:00:00 2001 From: Sheldon Guo Date: Thu, 20 Mar 2025 13:13:19 +0800 Subject: [PATCH 010/137] fix: update navigation logic to remove base path from URLs in QR code scanner and in-app-message list (#6508) * fix: update navigation logic to remove base path from URLs in QR code scanner and message list * fix: set test token for API client in DesktopMode demo --- .../components/qrcode-scanner/useScanner.ts | 27 ++++++++++++++----- .../src/client/demos/DesktopMode-basic.tsx | 2 ++ .../src/client/components/MessageList.tsx | 22 ++++++++++----- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-block-workbench/src/client/components/qrcode-scanner/useScanner.ts b/packages/plugins/@nocobase/plugin-block-workbench/src/client/components/qrcode-scanner/useScanner.ts index fc64438964..7e4e5eae0b 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/src/client/components/qrcode-scanner/useScanner.ts +++ b/packages/plugins/@nocobase/plugin-block-workbench/src/client/components/qrcode-scanner/useScanner.ts @@ -6,14 +6,27 @@ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ - +import { useApp } from '@nocobase/client'; +import MobileManager from '@nocobase/plugin-mobile/client'; import { Html5Qrcode, Html5QrcodeScannerState } from 'html5-qrcode'; -import { useState, useCallback, useMemo, useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { useNavigate } from 'react-router-dom'; + +function removeStringIfStartsWith(text: string, prefix: string): string { + if (text.startsWith(prefix)) { + return text.slice(prefix.length); + } + return text; +} export function useScanner({ onScannerSizeChanged, elementId }) { + const app = useApp(); + const mobileManager = app.pm.get(MobileManager); + const basename = mobileManager.mobileRouter.basename.replace(/\/+$/, ''); + const [scanner, setScanner] = useState(); + const navigate = useNavigate(); const { t } = useTranslation('block-workbench'); const viewPoint = useMemo(() => { @@ -37,12 +50,12 @@ export function useScanner({ onScannerSizeChanged, elementId }) { }, }, (text) => { - navigate(text); + navigate(removeStringIfStartsWith(text, basename)); }, undefined, ); }, - [navigate, onScannerSizeChanged, viewPoint], + [navigate, onScannerSizeChanged, viewPoint, basename], ); const stopScanner = useCallback(async (scanner: Html5Qrcode) => { const state = scanner.getState(); @@ -56,13 +69,13 @@ export function useScanner({ onScannerSizeChanged, elementId }) { await stopScanner(scanner); try { const { decodedText } = await scanner.scanFileV2(file, false); - navigate(decodedText); + navigate(removeStringIfStartsWith(decodedText, basename)); } catch (error) { alert(t('QR code recognition failed, please scan again')); startScanCamera(scanner); } }, - [scanner, stopScanner, startScanCamera, t, navigate], + [stopScanner, scanner, navigate, basename, t, startScanCamera], ); useEffect(() => { diff --git a/packages/plugins/@nocobase/plugin-mobile/src/client/demos/DesktopMode-basic.tsx b/packages/plugins/@nocobase/plugin-mobile/src/client/demos/DesktopMode-basic.tsx index 4db6026f42..4e2763269d 100644 --- a/packages/plugins/@nocobase/plugin-mobile/src/client/demos/DesktopMode-basic.tsx +++ b/packages/plugins/@nocobase/plugin-mobile/src/client/demos/DesktopMode-basic.tsx @@ -6,6 +6,8 @@ import React from 'react'; const { apiClient, mockRequest } = mockAPIClient(); +apiClient.auth.setToken('test'); + mockRequest.onGet('/roles:check').reply(() => { return [ 200, diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/client/components/MessageList.tsx b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/client/components/MessageList.tsx index c114023d2b..874c2d51e7 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/src/client/components/MessageList.tsx +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/src/client/components/MessageList.tsx @@ -7,28 +7,36 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import React, { useState, useCallback } from 'react'; -import { observer } from '@formily/reactive-react'; import { Schema } from '@formily/react'; -import { Card, Descriptions, Button, Spin, Tag, ConfigProvider, Typography, Tooltip, theme } from 'antd'; +import { observer } from '@formily/reactive-react'; import { dayjs } from '@nocobase/utils/client'; +import { Button, Card, ConfigProvider, Descriptions, Spin, Tag, Tooltip, Typography, theme } from 'antd'; +import React, { useCallback, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useLocalTranslation } from '../../locale'; +import { useApp } from '@nocobase/client'; import { - selectedChannelNameObs, channelMapObs, fetchMessages, + inboxVisible, isFecthingMessageObs, + selectedChannelNameObs, selectedMessageListObs, showMsgLoadingMoreObs, updateMessage, - inboxVisible, } from '../observables'; -import { useApp } from '@nocobase/client'; + +function removeStringIfStartsWith(text: string, prefix: string): string { + if (text.startsWith(prefix)) { + return text.slice(prefix.length); + } + return text; +} const MessageList = observer(() => { const app = useApp(); + const basename = app.router.basename.replace(/\/+$/, ''); const { t } = useLocalTranslation(); const navigate = useNavigate(); const { token } = theme.useToken(); @@ -51,7 +59,7 @@ const MessageList = observer(() => { if (message.options?.url) { inboxVisible.value = false; const url = message.options.url; - if (url.startsWith('/')) navigate(url); + if (url.startsWith('/')) navigate(removeStringIfStartsWith(url, basename)); else { window.location.href = url; } From bd51bd545e141e9e64222a4ea651d630dde05d0f Mon Sep 17 00:00:00 2001 From: chenos Date: Thu, 20 Mar 2025 14:56:42 +0800 Subject: [PATCH 011/137] fix: unable to access files stored in COS (#6512) * fix: unable to access files stored in COS * fix: ensureUrlEncoded --- .../plugin-file-manager/src/server/actions/attachments.ts | 2 +- .../plugin-file-manager/src/server/storages/index.ts | 4 ++-- .../plugin-file-manager/src/server/storages/tx-cos.ts | 6 ++++-- .../@nocobase/plugin-file-manager/src/server/utils.ts | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/actions/attachments.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/actions/attachments.ts index 7dd2c025f9..e21544fd43 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/actions/attachments.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/actions/attachments.ts @@ -59,7 +59,7 @@ export async function getFileData(ctx: Context) { mimetype: file.mimetype, meta: ctx.request.body, storageId: storage.id, - ...(storageInstance.getFileData ? storageInstance.getFileData(file) : {}), + ...StorageType?.['getFileData']?.(file), }; return data; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts index 63c283ff16..afd5d2bcf0 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts @@ -10,7 +10,7 @@ import { isURL } from '@nocobase/utils'; import { StorageEngine } from 'multer'; import urlJoin from 'url-join'; -import { encodeURL } from '../utils'; +import { encodeURL, ensureUrlEncoded } from '../utils'; export interface StorageModel { id?: number; @@ -54,7 +54,7 @@ export abstract class StorageType { const keys = [ this.storage.baseUrl, file.path && encodeURI(file.path), - encodeURIComponent(file.filename), + ensureUrlEncoded(file.filename), preview && this.storage.options.thumbnailRule, ].filter(Boolean); return urlJoin(keys); diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/tx-cos.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/tx-cos.ts index 58b01e915f..463ec3c59a 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/tx-cos.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/tx-cos.ts @@ -7,11 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { isURL } from '@nocobase/utils'; +import path from 'path'; +import urlJoin from 'url-join'; import { promisify } from 'util'; - import { AttachmentModel, StorageType } from '.'; import { STORAGE_TYPE_TX_COS } from '../../constants'; -import { getFilename, getFileKey } from '../utils'; +import { getFileKey, getFilename } from '../utils'; export default class extends StorageType { static defaults() { diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts index 1bfccecd3a..bdf312992e 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts @@ -30,7 +30,7 @@ export function getFileKey(record) { return [record.path.replace(/^\/|\/$/g, ''), record.filename].filter(Boolean).join('/'); } -function ensureUrlEncoded(value) { +export function ensureUrlEncoded(value) { try { // 如果解码后与原字符串不同,说明已经被转义过 if (decodeURIComponent(value) !== value) { From dad61a2a108c5f6d020bad4c042367f3a4851bf1 Mon Sep 17 00:00:00 2001 From: Katherine Date: Thu, 20 Mar 2025 15:56:25 +0800 Subject: [PATCH 012/137] fix: time field submission error in Chinese locale (invalid input syntax for type time) (#6511) --- .../src/schema-component/antd/time-picker/TimePicker.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx b/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx index da9652ba29..f270f9838d 100644 --- a/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx +++ b/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx @@ -27,10 +27,10 @@ export const mapTimeFormat = function () { ...props, format, inputReadOnly: true, - value: dayjsable(props.value, format), + value: dayjsable(props.value, 'HH:mm:ss'), onChange: (value: dayjs.Dayjs | dayjs.Dayjs[]) => { if (onChange) { - onChange(formatDayjsValue(value, format) || null); + onChange(formatDayjsValue(value, 'HH:mm:ss') || null); } }, }; From 3f75da95d385db641ef72576c04352842258d1e4 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 09:48:46 +0000 Subject: [PATCH 013/137] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publi?= =?UTF-8?q?sh=20v1.6.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lerna.json | 2 +- packages/core/acl/package.json | 6 +- packages/core/actions/package.json | 8 +- packages/core/app/package.json | 10 +- packages/core/auth/package.json | 12 +- packages/core/build/package.json | 2 +- packages/core/cache/package.json | 2 +- packages/core/cli/package.json | 6 +- packages/core/client/package.json | 8 +- .../core/create-nocobase-app/package.json | 2 +- .../core/data-source-manager/package.json | 12 +- packages/core/database/package.json | 6 +- packages/core/devtools/package.json | 8 +- packages/core/evaluators/package.json | 4 +- packages/core/lock-manager/package.json | 4 +- packages/core/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 28 ++-- packages/core/telemetry/package.json | 4 +- packages/core/test/package.json | 4 +- packages/core/utils/package.json | 2 +- .../plugins/@nocobase/plugin-acl/package.json | 2 +- .../plugin-action-bulk-edit/package.json | 2 +- .../plugin-action-bulk-update/package.json | 2 +- .../plugin-action-custom-request/package.json | 2 +- .../plugin-action-duplicate/package.json | 2 +- .../plugin-action-export/package.json | 2 +- .../plugin-action-import/package.json | 2 +- .../plugin-action-print/package.json | 2 +- .../plugins/@nocobase/plugin-ai/package.json | 2 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/package.json | 2 +- .../plugin-async-task-manager/package.json | 2 +- .../@nocobase/plugin-audit-logs/package.json | 2 +- .../@nocobase/plugin-auth-sms/package.json | 2 +- .../@nocobase/plugin-auth/package.json | 2 +- .../plugin-backup-restore/package.json | 2 +- .../plugin-block-iframe/package.json | 2 +- .../plugin-block-workbench/package.json | 2 +- .../@nocobase/plugin-calendar/package.json | 2 +- .../@nocobase/plugin-charts/package.json | 2 +- .../@nocobase/plugin-client/package.json | 2 +- .../plugin-collection-sql/package.json | 2 +- .../plugin-collection-tree/package.json | 2 +- .../plugin-data-source-main/package.json | 2 +- .../plugin-data-source-manager/package.json | 2 +- .../plugin-data-visualization/package.json | 2 +- .../plugin-disable-pm-add/package.json | 2 +- .../plugin-environment-variables/package.json | 2 +- .../plugin-error-handler/package.json | 2 +- .../plugin-field-china-region/package.json | 2 +- .../plugin-field-formula/package.json | 2 +- .../plugin-field-m2m-array/package.json | 2 +- .../plugin-field-markdown-vditor/package.json | 2 +- .../plugin-field-sequence/package.json | 2 +- .../@nocobase/plugin-field-sort/package.json | 2 +- .../plugin-file-manager/package.json | 2 +- .../@nocobase/plugin-gantt/package.json | 2 +- .../package.json | 2 +- .../@nocobase/plugin-kanban/package.json | 2 +- .../plugin-localization/package.json | 2 +- .../@nocobase/plugin-logger/package.json | 2 +- .../plugins/@nocobase/plugin-map/package.json | 2 +- .../plugin-mobile-client/package.json | 2 +- .../@nocobase/plugin-mobile/package.json | 2 +- .../plugin-mock-collections/package.json | 2 +- .../plugin-multi-app-manager/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-email/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-manager/package.json | 2 +- .../plugin-notifications/package.json | 2 +- .../plugin-public-forms/package.json | 2 +- .../plugin-sample-hello/package.json | 2 +- .../plugin-snapshot-field/package.json | 2 +- .../plugin-system-settings/package.json | 2 +- .../plugin-theme-editor/package.json | 2 +- .../plugin-ui-schema-storage/package.json | 2 +- .../plugin-user-data-sync/package.json | 2 +- .../@nocobase/plugin-users/package.json | 2 +- .../plugin-verification/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-aggregate/package.json | 2 +- .../plugin-workflow-delay/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-loop/package.json | 2 +- .../plugin-workflow-mailer/package.json | 2 +- .../plugin-workflow-manual/package.json | 2 +- .../plugin-workflow-notification/package.json | 2 +- .../plugin-workflow-parallel/package.json | 2 +- .../plugin-workflow-request/package.json | 2 +- .../plugin-workflow-sql/package.json | 2 +- .../plugin-workflow-test/package.json | 2 +- .../@nocobase/plugin-workflow/package.json | 4 +- packages/presets/nocobase/package.json | 142 +++++++++--------- 96 files changed, 214 insertions(+), 214 deletions(-) diff --git a/lerna.json b/lerna.json index 9f7e584b89..af334fc744 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.6", + "version": "1.6.7", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index 14318a4306..1395f343dd 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/resourcer": "1.6.7", + "@nocobase/utils": "1.6.7", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 76f69b1c68..eeb1c6b0c5 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.6.6", - "@nocobase/database": "1.6.6", - "@nocobase/resourcer": "1.6.6" + "@nocobase/cache": "1.6.7", + "@nocobase/database": "1.6.7", + "@nocobase/resourcer": "1.6.7" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index 6be8b6ecf7..1f5a0673d4 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.6.6", - "@nocobase/preset-nocobase": "1.6.6", - "@nocobase/server": "1.6.6" + "@nocobase/database": "1.6.7", + "@nocobase/preset-nocobase": "1.6.7", + "@nocobase/server": "1.6.7" }, "devDependencies": { - "@nocobase/client": "1.6.6" + "@nocobase/client": "1.6.7" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 8ecfb5bec7..997b548ae4 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.6", - "@nocobase/cache": "1.6.6", - "@nocobase/database": "1.6.6", - "@nocobase/resourcer": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/actions": "1.6.7", + "@nocobase/cache": "1.6.7", + "@nocobase/database": "1.6.7", + "@nocobase/resourcer": "1.6.7", + "@nocobase/utils": "1.6.7", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index cc0bbe18a1..36470b146d 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.6.6", + "version": "1.6.7", "description": "Library build tool based on rollup.", "main": "lib/index.js", "types": "./lib/index.d.ts", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index b3158707d4..de48867e40 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index b0d32d7757..4db00d830e 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.6.6", + "@nocobase/app": "1.6.7", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.19.0" }, "devDependencies": { - "@nocobase/devtools": "1.6.6" + "@nocobase/devtools": "1.6.7" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 79535b243b..d0449decc8 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -27,9 +27,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "1.6.6", - "@nocobase/sdk": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/evaluators": "1.6.7", + "@nocobase/sdk": "1.6.7", + "@nocobase/utils": "1.6.7", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 9c8ecf5b20..e3a8e82c59 100755 --- a/packages/core/create-nocobase-app/package.json +++ b/packages/core/create-nocobase-app/package.json @@ -1,6 +1,6 @@ { "name": "create-nocobase-app", - "version": "1.6.6", + "version": "1.6.7", "main": "src/index.js", "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index c9f93887dc..2b77f4fd85 100644 --- a/packages/core/data-source-manager/package.json +++ b/packages/core/data-source-manager/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/data-source-manager", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.6", - "@nocobase/cache": "1.6.6", - "@nocobase/database": "1.6.6", - "@nocobase/resourcer": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/actions": "1.6.7", + "@nocobase/cache": "1.6.7", + "@nocobase/database": "1.6.7", + "@nocobase/resourcer": "1.6.7", + "@nocobase/utils": "1.6.7", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 4b48c4c0c1..e3b0f19cbd 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.6.6", + "version": "1.6.7", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/logger": "1.6.7", + "@nocobase/utils": "1.6.7", "async-mutex": "^0.3.2", "chalk": "^4.1.1", "cron-parser": "4.4.0", diff --git a/packages/core/devtools/package.json b/packages/core/devtools/package.json index a976e0388e..314673ef7d 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.6.6", - "@nocobase/client": "1.6.6", - "@nocobase/test": "1.6.6", + "@nocobase/build": "1.6.7", + "@nocobase/client": "1.6.7", + "@nocobase/test": "1.6.7", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3.4", "@types/lodash": "^4.14.177", diff --git a/packages/core/evaluators/package.json b/packages/core/evaluators/package.json index 55893892a8..d6abc18de2 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.6.6", + "version": "1.6.7", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.4.9", - "@nocobase/utils": "1.6.6", + "@nocobase/utils": "1.6.7", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/lock-manager/package.json b/packages/core/lock-manager/package.json index 9d77cbcd1a..4c83002f5f 100644 --- a/packages/core/lock-manager/package.json +++ b/packages/core/lock-manager/package.json @@ -1,10 +1,10 @@ { "name": "@nocobase/lock-manager", - "version": "1.6.6", + "version": "1.6.7", "main": "lib/index.js", "license": "AGPL-3.0", "devDependencies": { - "@nocobase/utils": "1.6.6", + "@nocobase/utils": "1.6.7", "async-mutex": "^0.5.0" } } diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 99040bf97d..801e147135 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.6.6", + "version": "1.6.7", "description": "nocobase logging library", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index 3f6c378a33..7dfe960330 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.6.6", + "version": "1.6.7", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.6.6", + "@nocobase/utils": "1.6.7", "deepmerge": "^4.2.2", "koa-compose": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/core/sdk/package.json b/packages/core/sdk/package.json index cdeaeeff48..af06aed91a 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/core/server/package.json b/packages/core/server/package.json index 704fb4100b..d838bb30e7 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.6.6", + "version": "1.6.7", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,19 +10,19 @@ "@koa/cors": "^5.0.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.6.6", - "@nocobase/actions": "1.6.6", - "@nocobase/auth": "1.6.6", - "@nocobase/cache": "1.6.6", - "@nocobase/data-source-manager": "1.6.6", - "@nocobase/database": "1.6.6", - "@nocobase/evaluators": "1.6.6", - "@nocobase/lock-manager": "1.6.6", - "@nocobase/logger": "1.6.6", - "@nocobase/resourcer": "1.6.6", - "@nocobase/sdk": "1.6.6", - "@nocobase/telemetry": "1.6.6", - "@nocobase/utils": "1.6.6", + "@nocobase/acl": "1.6.7", + "@nocobase/actions": "1.6.7", + "@nocobase/auth": "1.6.7", + "@nocobase/cache": "1.6.7", + "@nocobase/data-source-manager": "1.6.7", + "@nocobase/database": "1.6.7", + "@nocobase/evaluators": "1.6.7", + "@nocobase/lock-manager": "1.6.7", + "@nocobase/logger": "1.6.7", + "@nocobase/resourcer": "1.6.7", + "@nocobase/sdk": "1.6.7", + "@nocobase/telemetry": "1.6.7", + "@nocobase/utils": "1.6.7", "@types/decompress": "4.2.7", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index 872295b156..a950ef1ff2 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.6.6", + "version": "1.6.7", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.6.6", + "@nocobase/utils": "1.6.7", "@opentelemetry/api": "^1.7.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", diff --git a/packages/core/test/package.json b/packages/core/test/package.json index 2d9554a522..f9d08fbbf9 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.6.6", + "version": "1.6.7", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -51,7 +51,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "1.6.6", + "@nocobase/server": "1.6.7", "@playwright/test": "^1.45.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 6694dcfc3d..63cf08864c 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.6.6", + "version": "1.6.7", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index 0d76bdd283..240d1bbd9d 100644 --- a/packages/plugins/@nocobase/plugin-acl/package.json +++ b/packages/plugins/@nocobase/plugin-acl/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "权限控制", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index 6b750ffc76..0f7486a3c7 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-edit", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-edit", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-edit", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json index 4f85583852..0699eb3f02 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-update", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-update", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-update", diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/package.json b/packages/plugins/@nocobase/plugin-action-custom-request/package.json index a6207b5a09..3cf0ef20fc 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-custom-request", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-custom-request", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request", diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index 7a13b9060a..6be8d5b316 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/package.json +++ b/packages/plugins/@nocobase/plugin-action-duplicate/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-duplicate", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-duplicate", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-duplicate", diff --git a/packages/plugins/@nocobase/plugin-action-export/package.json b/packages/plugins/@nocobase/plugin-action-export/package.json index 3060eba26c..e99f7d6496 100644 --- a/packages/plugins/@nocobase/plugin-action-export/package.json +++ b/packages/plugins/@nocobase/plugin-action-export/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导出记录", "description": "Export filtered records to excel, you can configure which fields to export.", "description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-action-import/package.json b/packages/plugins/@nocobase/plugin-action-import/package.json index 5c20d58364..70cb96dcf2 100644 --- a/packages/plugins/@nocobase/plugin-action-import/package.json +++ b/packages/plugins/@nocobase/plugin-action-import/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导入记录", "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.", "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-action-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index aa2fc04e66..e2c4ef8e6a 100644 --- a/packages/plugins/@nocobase/plugin-action-print/package.json +++ b/packages/plugins/@nocobase/plugin-action-print/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-print", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-print", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-print", diff --git a/packages/plugins/@nocobase/plugin-ai/package.json b/packages/plugins/@nocobase/plugin-ai/package.json index 002685cdf9..a43dfbf817 100644 --- a/packages/plugins/@nocobase/plugin-ai/package.json +++ b/packages/plugins/@nocobase/plugin-ai/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "AI 集成", "description": "Support integration with AI services, providing AI-related workflow nodes to enhance business processing capabilities.", "description.zh-CN": "支持接入 AI 服务,提供 AI 相关的工作流节点,增强业务处理能力。", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index c81cede1fc..2fe33601c7 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/package.json +++ b/packages/plugins/@nocobase/plugin-api-doc/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-api-doc", - "version": "1.6.6", + "version": "1.6.7", "displayName": "API documentation", "displayName.zh-CN": "API 文档", "description": "An OpenAPI documentation generator for NocoBase HTTP API.", diff --git a/packages/plugins/@nocobase/plugin-api-keys/package.json b/packages/plugins/@nocobase/plugin-api-keys/package.json index 670bc6f954..cff36fc658 100644 --- a/packages/plugins/@nocobase/plugin-api-keys/package.json +++ b/packages/plugins/@nocobase/plugin-api-keys/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:API 密钥", "description": "Allows users to use API key to access application's HTTP API", "description.zh-CN": "允许用户使用 API 密钥访问应用的 HTTP API", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/package.json b/packages/plugins/@nocobase/plugin-async-task-manager/package.json index 2d38a33e2a..6683c313be 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/package.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "异步任务管理器", "description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.", "description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index ed3a8c628b..bcdd1de4e9 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/package.json +++ b/packages/plugins/@nocobase/plugin-audit-logs/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-audit-logs", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Audit logs (deprecated)", "displayName.zh-CN": "审计日志(废弃)", "description": "This plugin is deprecated. There will be a new audit log plugin in the future.", diff --git a/packages/plugins/@nocobase/plugin-auth-sms/package.json b/packages/plugins/@nocobase/plugin-auth-sms/package.json index 488b5a0c9b..e92f004075 100644 --- a/packages/plugins/@nocobase/plugin-auth-sms/package.json +++ b/packages/plugins/@nocobase/plugin-auth-sms/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-sms", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms", diff --git a/packages/plugins/@nocobase/plugin-auth/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index 7f3684bbb5..21304434e1 100644 --- a/packages/plugins/@nocobase/plugin-auth/package.json +++ b/packages/plugins/@nocobase/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-auth", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index 665915c60f..daf8fec998 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/package.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "应用的备份与还原(废弃)", "description": "Backup and restore applications for scenarios such as application replication, migration, and upgrades.", "description.zh-CN": "备份和还原应用,可用于应用的复制、迁移、升级等场景。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-block-iframe/package.json b/packages/plugins/@nocobase/plugin-block-iframe/package.json index 875ef68fce..91e13d824d 100644 --- a/packages/plugins/@nocobase/plugin-block-iframe/package.json +++ b/packages/plugins/@nocobase/plugin-block-iframe/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "区块:iframe", "description": "Create an iframe block on the page to embed and display external web pages or content.", "description.zh-CN": "在页面上创建和管理iframe,用于嵌入和展示外部网页或内容。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-block-workbench/package.json b/packages/plugins/@nocobase/plugin-block-workbench/package.json index e40c06c239..4edc1ad000 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/package.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-block-workbench", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Block: Action panel", "displayName.zh-CN": "区块:操作面板", "description": "Centrally manages and displays various actions, allowing users to efficiently perform tasks. It supports extensibility, with current action types including pop-ups, links, scanning, and custom requests.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index f77ca278df..5519c20a11 100644 --- a/packages/plugins/@nocobase/plugin-calendar/package.json +++ b/packages/plugins/@nocobase/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-calendar", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Calendar", "displayName.zh-CN": "日历", "description": "Provides callendar collection template and block for managing date data, typically for date/time related information such as events, appointments, tasks, and so on.", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index 78981fdd15..662703a754 100644 --- a/packages/plugins/@nocobase/plugin-charts/package.json +++ b/packages/plugins/@nocobase/plugin-charts/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "图表(废弃)", "description": "The plugin has been deprecated, please use the data visualization plugin instead.", "description.zh-CN": "已废弃插件,请使用数据可视化插件代替。", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index d8c4bc9f53..70b390ec8c 100644 --- a/packages/plugins/@nocobase/plugin-client/package.json +++ b/packages/plugins/@nocobase/plugin-client/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "WEB 客户端", "description": "Provides a client interface for the NocoBase server", "description.zh-CN": "为 NocoBase 服务端提供客户端界面", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-sql/package.json b/packages/plugins/@nocobase/plugin-collection-sql/package.json index b211aed039..af654af214 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/package.json +++ b/packages/plugins/@nocobase/plugin-collection-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表: SQL", "description": "Provides SQL collection template", "description.zh-CN": "提供 SQL 数据表模板", - "version": "1.6.6", + "version": "1.6.7", "homepage": "https://docs-cn.nocobase.com/handbook/collection-sql", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/collection-sql", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-collection-tree/package.json b/packages/plugins/@nocobase/plugin-collection-tree/package.json index 45eda0c6c0..9a4a50b16e 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/package.json +++ b/packages/plugins/@nocobase/plugin-collection-tree/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-collection-tree", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Collection: Tree", "displayName.zh-CN": "数据表:树", "description": "Provides tree collection template", diff --git a/packages/plugins/@nocobase/plugin-data-source-main/package.json b/packages/plugins/@nocobase/plugin-data-source-main/package.json index f7c675609c..41ccee48d6 100644 --- a/packages/plugins/@nocobase/plugin-data-source-main/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-main/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as PostgreSQL, MySQL, MariaDB and so on.", "description.zh-CN": "NocoBase 主数据库,支持 PostgreSQL、MySQL、MariaDB 等关系型数据库。", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/data-source-main", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-main", diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index 843a0d6229..90d14a35f8 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-source-manager", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "displayName": "Data source manager", "displayName.zh-CN": "数据源管理", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/package.json b/packages/plugins/@nocobase/plugin-data-visualization/package.json index d186c1b9d9..a8fe1185bb 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/package.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-visualization", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Data visualization", "displayName.zh-CN": "数据可视化", "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.", diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index ab45a63c54..0bc5577bb8 100644 --- a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json +++ b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-disable-pm-add", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/package.json b/packages/plugins/@nocobase/plugin-environment-variables/package.json index 868c5b8e84..8b5251690c 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/package.json +++ b/packages/plugins/@nocobase/plugin-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-environment-variables", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index d74fe201d5..5c78ee83b4 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/package.json +++ b/packages/plugins/@nocobase/plugin-error-handler/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "错误处理器", "description": "Handling application errors and exceptions.", "description.zh-CN": "处理应用程序中的错误和异常。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-field-china-region/package.json b/packages/plugins/@nocobase/plugin-field-china-region/package.json index 045b4e37ee..b3fbbe2742 100644 --- a/packages/plugins/@nocobase/plugin-field-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-field-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-china-region", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Collection field: administrative divisions of China", "displayName.zh-CN": "数据表字段:中国行政区划", "description": "Provides data and field type for administrative divisions of China.", diff --git a/packages/plugins/@nocobase/plugin-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 4dfa623739..5023182176 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/package.json +++ b/packages/plugins/@nocobase/plugin-field-formula/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:公式", "description": "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.", "description.zh-CN": "可以配置并存储同一条记录的多字段值之间的计算结果,支持 Math.js 和 Excel formula functions 两种引擎", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json index 44626a5825..597d1592c2 100644 --- a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:多对多 (数组)", "description": "Allows to create many to many relationships between two models by storing an array of unique keys of the target model.", "description.zh-CN": "支持通过在数组中存储目标表唯一键的方式建立多对多关系。", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json index e0bc9abd46..6f4d5395df 100644 --- a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:Markdown(Vditor)", "description": "Used to store Markdown and render it using Vditor editor, supports common Markdown syntax such as list, code, quote, etc., and supports uploading images, recordings, etc.It also allows for instant rendering, where what you see is what you get.", "description.zh-CN": "用于存储 Markdown,并使用 Vditor 编辑器渲染,支持常见 Markdown 语法,如列表,代码,引用等,并支持上传图片,录音等。同时可以做到即时渲染,所见即所得。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-markdown-vditor", diff --git a/packages/plugins/@nocobase/plugin-field-sequence/package.json b/packages/plugins/@nocobase/plugin-field-sequence/package.json index 0db059d466..17dbdb5ef4 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/package.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:自动编码", "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index acf14f5c59..27c628a317 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-sort", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "displayName": "Collection field: Sort", "displayName.zh-CN": "数据表字段:排序", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 1aadbbb45e..7135933705 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/package.json +++ b/packages/plugins/@nocobase/plugin-file-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-file-manager", - "version": "1.6.6", + "version": "1.6.7", "displayName": "File manager", "displayName.zh-CN": "文件管理器", "description": "Provides files storage services with files collection template and attachment field.", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index e9d01caa66..2c936a0e16 100644 --- a/packages/plugins/@nocobase/plugin-gantt/package.json +++ b/packages/plugins/@nocobase/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-gantt", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Block: Gantt", "displayName.zh-CN": "区块:甘特图", "description": "Provides Gantt block.", diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json index 23669a1815..c820ec66dd 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "可视化数据表管理", "description": "An ER diagram-like tool. Currently only the Master database is supported.", "description.zh-CN": "类似 ER 图的工具,目前只支持主数据库。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/graph-collection-manager", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index 5df343774f..6ad6cc3c99 100644 --- a/packages/plugins/@nocobase/plugin-kanban/package.json +++ b/packages/plugins/@nocobase/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-kanban", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-kanban", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-kanban", diff --git a/packages/plugins/@nocobase/plugin-localization/package.json b/packages/plugins/@nocobase/plugin-localization/package.json index c39ed0da4e..74edd7cb17 100644 --- a/packages/plugins/@nocobase/plugin-localization/package.json +++ b/packages/plugins/@nocobase/plugin-localization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/localization-management", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/localization-management", diff --git a/packages/plugins/@nocobase/plugin-logger/package.json b/packages/plugins/@nocobase/plugin-logger/package.json index bd442d115c..23f56e185e 100644 --- a/packages/plugins/@nocobase/plugin-logger/package.json +++ b/packages/plugins/@nocobase/plugin-logger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "日志", "description": "Server-side logs, mainly including API request logs and system runtime logs, and allows to package and download log files.", "description.zh-CN": "服务端日志,主要包括接口请求日志和系统运行日志,并支持打包和下载日志文件。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/logger", diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index 05e1f9febd..5d174240c2 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-map", "displayName": "Block: Map", "displayName.zh-CN": "区块:地图", - "version": "1.6.6", + "version": "1.6.7", "description": "Map block, support Gaode map and Google map, you can also extend more map types.", "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index f7c5f97ad4..867896f184 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/package.json +++ b/packages/plugins/@nocobase/plugin-mobile-client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile-client", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile-client", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile-client", diff --git a/packages/plugins/@nocobase/plugin-mobile/package.json b/packages/plugins/@nocobase/plugin-mobile/package.json index 53db3ac62c..b4cccde1a5 100644 --- a/packages/plugins/@nocobase/plugin-mobile/package.json +++ b/packages/plugins/@nocobase/plugin-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile", diff --git a/packages/plugins/@nocobase/plugin-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index edc114e691..8662e9c491 100644 --- a/packages/plugins/@nocobase/plugin-mock-collections/package.json +++ b/packages/plugins/@nocobase/plugin-mock-collections/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-mock-collections", "displayName": "mock-collections", "description": "mock-collections", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "license": "AGPL-3.0", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json index 83a4b81292..55b702cccf 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用管理器", "description": "Dynamically create multiple apps without separate deployments.", "description.zh-CN": "无需单独部署即可动态创建多个应用。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/multi-app-manager", diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json index 1065babfb9..7084228090 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用数据表共享", "description": "", "description.zh-CN": "", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notification-email/package.json b/packages/plugins/@nocobase/plugin-notification-email/package.json index 3449dd0296..253c855a45 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/package.json +++ b/packages/plugins/@nocobase/plugin-notification-email/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-email", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Notification: Email", "displayName.zh-CN": "通知:电子邮件", "description": "Used for sending email notifications with built-in SMTP transport.", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json index 0461847ab9..080b27b78b 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-in-app-message", - "version": "1.6.6", + "version": "1.6.7", "displayName": "Notification: In-app message", "displayName.zh-CN": "通知:站内信", "description": "It supports users in receiving real-time message notifications within the NocoBase application.", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/package.json b/packages/plugins/@nocobase/plugin-notification-manager/package.json index a650ed14a5..c3b839dca3 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/package.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/package.json @@ -4,7 +4,7 @@ "description": "Provides a unified management service that includes channel configuration, logging, and other features, supporting the configuration of various notification channels, including in-app message and email.", "displayName.zh-CN": "通知管理", "description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。", - "version": "1.6.6", + "version": "1.6.7", "homepage": "https://docs.nocobase.com/handbook/notification-manager", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index 95b955841b..ab9ddcde36 100644 --- a/packages/plugins/@nocobase/plugin-notifications/package.json +++ b/packages/plugins/@nocobase/plugin-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notifications", - "version": "1.6.6", + "version": "1.6.7", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-public-forms/package.json b/packages/plugins/@nocobase/plugin-public-forms/package.json index bec95738a5..cfc4720cf2 100644 --- a/packages/plugins/@nocobase/plugin-public-forms/package.json +++ b/packages/plugins/@nocobase/plugin-public-forms/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-public-forms", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "displayName": "Public forms", "displayName.zh-CN": "公开表单", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index da131e7edf..748875485a 100644 --- a/packages/plugins/@nocobase/plugin-sample-hello/package.json +++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-sample-hello", - "version": "1.6.6", + "version": "1.6.7", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index f99807627f..99d5ab0aec 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:关系快照", "description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.", "description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-snapshot", diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json index 7f04122728..0b2c794de8 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/package.json +++ b/packages/plugins/@nocobase/plugin-system-settings/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "系统设置", "description": "Used to adjust the system title, logo, language, etc.", "description.zh-CN": "用于调整系统的标题、LOGO、语言等。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/system-settings", diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json index a49e502d25..775ba34d8b 100644 --- a/packages/plugins/@nocobase/plugin-theme-editor/package.json +++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-theme-editor", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/theme-editor", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor", diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 30e77b4e05..12d1ff065c 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "UI schema 存储服务", "description": "Provides centralized UI schema storage service.", "description.zh-CN": "提供中心化的 UI schema 存储服务。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/ui-schema-storage", diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json index bb047cdd72..f74be0fcde 100644 --- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户数据同步", "description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.", "description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。", - "version": "1.6.6", + "version": "1.6.7", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 5c5cb5de73..52a594408e 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户", "description": "Provides basic user model, as well as created by and updated by fields.", "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/users", diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json index 93f4f5d5aa..63bf10a6b3 100644 --- a/packages/plugins/@nocobase/plugin-verification/package.json +++ b/packages/plugins/@nocobase/plugin-verification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "验证码", "description": "verification setting.", "description.zh-CN": "验证码配置。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/verification", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json index 0db458aef4..d2cf515258 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:操作后事件", "description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.", "description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger", diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json index 4929bef5a6..bc101521cd 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:聚合查询节点", "description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.", "description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-aggregate", diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json index fe2ef5754c..ae91fbb46f 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:延时节点", "description": "Could be used in workflow parallel branch for waiting other branches.", "description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-delay", diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json index 0a8b794a0a..d7bac68034 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:动态表达式计算节点", "description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.", "description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation", diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json index 326e69573d..845c226d48 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:循环节点", "description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.", "description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-loop", diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json index 4319a37fa8..b87b068433 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:邮件发送节点", "description": "Send email in workflow.", "description.zh-CN": "可用于在工作流中发送电子邮件。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index 593504cb88..c1f74e27c0 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:人工处理节点", "description": "Could be used for workflows which some of decisions are made by users.", "description.zh-CN": "用于人工控制部分决策的流程。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-manual", diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json index c0e73755de..b5bc4e115b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:通知节点", "description": "Send notification in workflow.", "description.zh-CN": "可用于在工作流中发送各类通知。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index 2d7f392f07..bafd057007 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:并行分支节点", "description": "Could be used for parallel execution of branch processes in the workflow.", "description.zh-CN": "用于在工作流中需要并行执行的分支流程。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-parallel", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json index 6fc88fcddc..19849cbfcd 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:HTTP 请求节点", "description": "Send HTTP requests to any HTTP service for data interaction in workflow.", "description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-request", diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json index 20d3206bd4..ea64814997 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:SQL 节点", "description": "Execute SQL statements in workflow.", "description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-sql", diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json index d5672ff387..c1a88e7634 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-workflow-test", "displayName": "Workflow: test kit", "displayName.zh-CN": "工作流:测试工具包", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "dist/server/index.js", "types": "./dist/server/index.d.ts", diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json index 852f8b0b6b..9bc9828dc4 100644 --- a/packages/plugins/@nocobase/plugin-workflow/package.json +++ b/packages/plugins/@nocobase/plugin-workflow/package.json @@ -4,13 +4,13 @@ "displayName.zh-CN": "工作流", "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.", "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow", "dependencies": { - "@nocobase/plugin-workflow-test": "1.6.6" + "@nocobase/plugin-workflow-test": "1.6.7" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index c1ad557e29..2fc8d8bf77 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,80 +1,80 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.6.6", + "version": "1.6.7", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.6.6", - "@nocobase/plugin-action-bulk-edit": "1.6.6", - "@nocobase/plugin-action-bulk-update": "1.6.6", - "@nocobase/plugin-action-custom-request": "1.6.6", - "@nocobase/plugin-action-duplicate": "1.6.6", - "@nocobase/plugin-action-export": "1.6.6", - "@nocobase/plugin-action-import": "1.6.6", - "@nocobase/plugin-action-print": "1.6.6", - "@nocobase/plugin-ai": "1.6.6", - "@nocobase/plugin-api-doc": "1.6.6", - "@nocobase/plugin-api-keys": "1.6.6", - "@nocobase/plugin-async-task-manager": "1.6.6", - "@nocobase/plugin-audit-logs": "1.6.6", - "@nocobase/plugin-auth": "1.6.6", - "@nocobase/plugin-auth-sms": "1.6.6", - "@nocobase/plugin-backup-restore": "1.6.6", - "@nocobase/plugin-block-iframe": "1.6.6", - "@nocobase/plugin-block-workbench": "1.6.6", - "@nocobase/plugin-calendar": "1.6.6", - "@nocobase/plugin-charts": "1.6.6", - "@nocobase/plugin-client": "1.6.6", - "@nocobase/plugin-collection-sql": "1.6.6", - "@nocobase/plugin-collection-tree": "1.6.6", - "@nocobase/plugin-data-source-main": "1.6.6", - "@nocobase/plugin-data-source-manager": "1.6.6", - "@nocobase/plugin-data-visualization": "1.6.6", - "@nocobase/plugin-environment-variables": "1.6.6", - "@nocobase/plugin-error-handler": "1.6.6", - "@nocobase/plugin-field-china-region": "1.6.6", - "@nocobase/plugin-field-formula": "1.6.6", - "@nocobase/plugin-field-m2m-array": "1.6.6", - "@nocobase/plugin-field-markdown-vditor": "1.6.6", - "@nocobase/plugin-field-sequence": "1.6.6", - "@nocobase/plugin-field-sort": "1.6.6", - "@nocobase/plugin-file-manager": "1.6.6", - "@nocobase/plugin-gantt": "1.6.6", - "@nocobase/plugin-graph-collection-manager": "1.6.6", - "@nocobase/plugin-kanban": "1.6.6", - "@nocobase/plugin-localization": "1.6.6", - "@nocobase/plugin-logger": "1.6.6", - "@nocobase/plugin-map": "1.6.6", - "@nocobase/plugin-mobile": "1.6.6", - "@nocobase/plugin-mobile-client": "1.6.6", - "@nocobase/plugin-mock-collections": "1.6.6", - "@nocobase/plugin-multi-app-manager": "1.6.6", - "@nocobase/plugin-multi-app-share-collection": "1.6.6", - "@nocobase/plugin-notification-email": "1.6.6", - "@nocobase/plugin-notification-in-app-message": "1.6.6", - "@nocobase/plugin-notification-manager": "1.6.6", - "@nocobase/plugin-public-forms": "1.6.6", - "@nocobase/plugin-snapshot-field": "1.6.6", - "@nocobase/plugin-system-settings": "1.6.6", - "@nocobase/plugin-theme-editor": "1.6.6", - "@nocobase/plugin-ui-schema-storage": "1.6.6", - "@nocobase/plugin-user-data-sync": "1.6.6", - "@nocobase/plugin-users": "1.6.6", - "@nocobase/plugin-verification": "1.6.6", - "@nocobase/plugin-workflow": "1.6.6", - "@nocobase/plugin-workflow-action-trigger": "1.6.6", - "@nocobase/plugin-workflow-aggregate": "1.6.6", - "@nocobase/plugin-workflow-delay": "1.6.6", - "@nocobase/plugin-workflow-dynamic-calculation": "1.6.6", - "@nocobase/plugin-workflow-loop": "1.6.6", - "@nocobase/plugin-workflow-mailer": "1.6.6", - "@nocobase/plugin-workflow-manual": "1.6.6", - "@nocobase/plugin-workflow-notification": "1.6.6", - "@nocobase/plugin-workflow-parallel": "1.6.6", - "@nocobase/plugin-workflow-request": "1.6.6", - "@nocobase/plugin-workflow-sql": "1.6.6", - "@nocobase/server": "1.6.6", + "@nocobase/plugin-acl": "1.6.7", + "@nocobase/plugin-action-bulk-edit": "1.6.7", + "@nocobase/plugin-action-bulk-update": "1.6.7", + "@nocobase/plugin-action-custom-request": "1.6.7", + "@nocobase/plugin-action-duplicate": "1.6.7", + "@nocobase/plugin-action-export": "1.6.7", + "@nocobase/plugin-action-import": "1.6.7", + "@nocobase/plugin-action-print": "1.6.7", + "@nocobase/plugin-ai": "1.6.7", + "@nocobase/plugin-api-doc": "1.6.7", + "@nocobase/plugin-api-keys": "1.6.7", + "@nocobase/plugin-async-task-manager": "1.6.7", + "@nocobase/plugin-audit-logs": "1.6.7", + "@nocobase/plugin-auth": "1.6.7", + "@nocobase/plugin-auth-sms": "1.6.7", + "@nocobase/plugin-backup-restore": "1.6.7", + "@nocobase/plugin-block-iframe": "1.6.7", + "@nocobase/plugin-block-workbench": "1.6.7", + "@nocobase/plugin-calendar": "1.6.7", + "@nocobase/plugin-charts": "1.6.7", + "@nocobase/plugin-client": "1.6.7", + "@nocobase/plugin-collection-sql": "1.6.7", + "@nocobase/plugin-collection-tree": "1.6.7", + "@nocobase/plugin-data-source-main": "1.6.7", + "@nocobase/plugin-data-source-manager": "1.6.7", + "@nocobase/plugin-data-visualization": "1.6.7", + "@nocobase/plugin-environment-variables": "1.6.7", + "@nocobase/plugin-error-handler": "1.6.7", + "@nocobase/plugin-field-china-region": "1.6.7", + "@nocobase/plugin-field-formula": "1.6.7", + "@nocobase/plugin-field-m2m-array": "1.6.7", + "@nocobase/plugin-field-markdown-vditor": "1.6.7", + "@nocobase/plugin-field-sequence": "1.6.7", + "@nocobase/plugin-field-sort": "1.6.7", + "@nocobase/plugin-file-manager": "1.6.7", + "@nocobase/plugin-gantt": "1.6.7", + "@nocobase/plugin-graph-collection-manager": "1.6.7", + "@nocobase/plugin-kanban": "1.6.7", + "@nocobase/plugin-localization": "1.6.7", + "@nocobase/plugin-logger": "1.6.7", + "@nocobase/plugin-map": "1.6.7", + "@nocobase/plugin-mobile": "1.6.7", + "@nocobase/plugin-mobile-client": "1.6.7", + "@nocobase/plugin-mock-collections": "1.6.7", + "@nocobase/plugin-multi-app-manager": "1.6.7", + "@nocobase/plugin-multi-app-share-collection": "1.6.7", + "@nocobase/plugin-notification-email": "1.6.7", + "@nocobase/plugin-notification-in-app-message": "1.6.7", + "@nocobase/plugin-notification-manager": "1.6.7", + "@nocobase/plugin-public-forms": "1.6.7", + "@nocobase/plugin-snapshot-field": "1.6.7", + "@nocobase/plugin-system-settings": "1.6.7", + "@nocobase/plugin-theme-editor": "1.6.7", + "@nocobase/plugin-ui-schema-storage": "1.6.7", + "@nocobase/plugin-user-data-sync": "1.6.7", + "@nocobase/plugin-users": "1.6.7", + "@nocobase/plugin-verification": "1.6.7", + "@nocobase/plugin-workflow": "1.6.7", + "@nocobase/plugin-workflow-action-trigger": "1.6.7", + "@nocobase/plugin-workflow-aggregate": "1.6.7", + "@nocobase/plugin-workflow-delay": "1.6.7", + "@nocobase/plugin-workflow-dynamic-calculation": "1.6.7", + "@nocobase/plugin-workflow-loop": "1.6.7", + "@nocobase/plugin-workflow-mailer": "1.6.7", + "@nocobase/plugin-workflow-manual": "1.6.7", + "@nocobase/plugin-workflow-notification": "1.6.7", + "@nocobase/plugin-workflow-parallel": "1.6.7", + "@nocobase/plugin-workflow-request": "1.6.7", + "@nocobase/plugin-workflow-sql": "1.6.7", + "@nocobase/server": "1.6.7", "cronstrue": "^2.11.0", "fs-extra": "^11.1.1" }, From a2002d83295f2bf13384059c297f566f9877106d Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:25:52 +0000 Subject: [PATCH 014/137] docs: update changelogs --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ CHANGELOG.zh-CN.md | 27 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8b9a3c671..2d149ccb82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.6.7](https://github.com/nocobase/nocobase/compare/v1.6.6...v1.6.7) - 2025-03-20 + +### 🚀 Improvements + +- **[Workflow: mailer node]** Add secure field config description. ([#6510](https://github.com/nocobase/nocobase/pull/6510)) by @sheldon66 + +- **[Notification: Email]** Add secure field config description. ([#6501](https://github.com/nocobase/nocobase/pull/6501)) by @sheldon66 + +- **[Calendar]** Calendar plugin with optional settings to enable or disable quick event creation ([#6391](https://github.com/nocobase/nocobase/pull/6391)) by @Cyx649312038 + +### 🐛 Bug Fixes + +- **[client]** time field submission error in Chinese locale (invalid input syntax for type time) ([#6511](https://github.com/nocobase/nocobase/pull/6511)) by @katherinehhh + +- **[File manager]** Unable to access files stored in COS ([#6512](https://github.com/nocobase/nocobase/pull/6512)) by @chenos + +- **[Block: Map]** secret key fields not triggering validation in map management ([#6509](https://github.com/nocobase/nocobase/pull/6509)) by @katherinehhh + +- **[WEB client]** The path in the route management table is different from the actual path ([#6483](https://github.com/nocobase/nocobase/pull/6483)) by @zhangzhonghe + +- **[Action: Export records Pro]** Unable to export attachments by @chenos + +- **[Workflow: Approval]** + - Fix null user caused crash by @mytharcher + + - Fix error thrown when add query node result by @mytharcher + ## [v1.6.6](https://github.com/nocobase/nocobase/compare/v1.6.5...v1.6.6) - 2025-03-18 ### 🎉 New Features diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 5861cd0756..931c724907 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -5,6 +5,33 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +## [v1.6.7](https://github.com/nocobase/nocobase/compare/v1.6.6...v1.6.7) - 2025-03-20 + +### 🚀 优化 + +- **[工作流:邮件发送节点]** 增加安全字段配置描述。 ([#6510](https://github.com/nocobase/nocobase/pull/6510)) by @sheldon66 + +- **[通知:电子邮件]** 增加安全字段配置描述。 ([#6501](https://github.com/nocobase/nocobase/pull/6501)) by @sheldon66 + +- **[日历]** 日历插件添加开启或关闭快速创建事件可选设置 ([#6391](https://github.com/nocobase/nocobase/pull/6391)) by @Cyx649312038 + +### 🐛 修复 + +- **[client]** 时间字段在中文语言下提交时报错 invalid input syntax for type time ([#6511](https://github.com/nocobase/nocobase/pull/6511)) by @katherinehhh + +- **[文件管理器]** COS 存储的文件无法访问 ([#6512](https://github.com/nocobase/nocobase/pull/6512)) by @chenos + +- **[区块:地图]** 地图管理中密钥必填校验失败 ([#6509](https://github.com/nocobase/nocobase/pull/6509)) by @katherinehhh + +- **[WEB 客户端]** 路由管理表格中的路径与实际路径不一样 ([#6483](https://github.com/nocobase/nocobase/pull/6483)) by @zhangzhonghe + +- **[操作:导出记录 Pro]** 无法导出附件 by @chenos + +- **[工作流:审批]** + - 修复空用户造成页面崩溃 by @mytharcher + + - 修复审批人界面配置添加查询节点时的页面崩溃 by @mytharcher + ## [v1.6.6](https://github.com/nocobase/nocobase/compare/v1.6.5...v1.6.6) - 2025-03-18 ### 🎉 新特性 From f82e426daa201892cf63ef8e0affd70cf18debf3 Mon Sep 17 00:00:00 2001 From: Katherine Date: Thu, 20 Mar 2025 23:17:33 +0800 Subject: [PATCH 015/137] =?UTF-8?q?fix:=20the=20height=20of=20the=20subtab?= =?UTF-8?q?le=20in=20the=20form=20is=20set=20along=20with=20the=20mai?= =?UTF-8?q?=E2=80=A6=20(#6518)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: the height of the subtable in the form is set along with the main form height * fix: bug --- .../src/schema-component/antd/association-field/Table.tsx | 6 ------ .../core/client/src/schema-component/hooks/useBlockSize.ts | 6 ++++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/association-field/Table.tsx b/packages/core/client/src/schema-component/antd/association-field/Table.tsx index 851e223b8d..bf3607976a 100644 --- a/packages/core/client/src/schema-component/antd/association-field/Table.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/Table.tsx @@ -602,12 +602,6 @@ const InternalNocoBaseTable = React.memo( height: 100%; display: flex; flex-direction: column; - .ant-table-expanded-row-fixed { - min-height: ${tableHeight}px; - } - .ant-table-body { - min-height: ${tableHeight}px; - } .ant-table-cell { padding: 16px 8px; } diff --git a/packages/core/client/src/schema-component/hooks/useBlockSize.ts b/packages/core/client/src/schema-component/hooks/useBlockSize.ts index 8272e448d2..826b891400 100644 --- a/packages/core/client/src/schema-component/hooks/useBlockSize.ts +++ b/packages/core/client/src/schema-component/hooks/useBlockSize.ts @@ -37,7 +37,9 @@ const getPageHeaderHeight = (disablePageHeader, enablePageTabs, hidePageTitle, t token.paddingContentHorizontalLG ); } - return token.controlHeight + token.marginXS + (token.paddingXXS + 2) * 2 + token.paddingContentHorizontalLG; + return ( + token.controlHeight + token.marginXS + (token.paddingContentVertical + 2) * 2 + token.paddingContentHorizontalLG + ); } else { if (enablePageTabs) { return ( @@ -140,12 +142,12 @@ export const useDataBlockHeight = (options?: UseDataBlockHeightOptions) => { const { heightMode, height, title, titleHeight } = heightProps || {}; const blockHeaderHeight = title ? titleHeight : 0; + if (!heightProps?.heightMode || heightMode === HeightMode.DEFAULT) { return; } if (heightMode === HeightMode.FULL_HEIGHT) { let res = window.innerHeight - pageFullScreenHeight; - console.log(res); if (options?.removeBlockHeaderHeight) { res = res - blockHeaderHeight; } From 68d2ae1c3ddc15e0908f6a12b21321cfa2b0623f Mon Sep 17 00:00:00 2001 From: chenos Date: Fri, 21 Mar 2025 10:50:49 +0800 Subject: [PATCH 016/137] chore: init env --- packages/core/cli/src/util.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/cli/src/util.js b/packages/core/cli/src/util.js index f48dbd4c1d..742c60cb41 100644 --- a/packages/core/cli/src/util.js +++ b/packages/core/cli/src/util.js @@ -460,6 +460,8 @@ exports.initEnv = function initEnv() { process.env.SOCKET_PATH = generateGatewayPath(); fs.mkdirpSync(dirname(process.env.SOCKET_PATH), { force: true, recursive: true }); fs.mkdirpSync(process.env.PM2_HOME, { force: true, recursive: true }); + const pkgDir = resolve(process.cwd(), 'storage/plugins', '@nocobase/plugin-multi-app-manager'); + fs.existsSync(pkgDir) && fs.rmdirSync(pkgDir, { force: true }); }; exports.generatePlugins = function () { From 2e737f74fdb469e0a45f27b71e324b189fac215c Mon Sep 17 00:00:00 2001 From: chenos Date: Fri, 21 Mar 2025 12:14:31 +0800 Subject: [PATCH 017/137] chore: create-mock-database (#6522) * chore: create-mock-database * fix: mockDatabase --- .../core/app/src/__tests__/commands.test.ts | 4 ++-- .../src/__tests__/data-source-manager.test.ts | 14 +++++++------- .../src/__tests__/koa.test.ts | 4 ++-- .../__tests__/associations/references.test.ts | 6 +++--- .../__tests__/associations/target-key.test.ts | 4 ++-- .../database/src/__tests__/bigint.test.ts | 5 ++--- .../src/__tests__/collection-factory.test.ts | 6 ++---- .../database/src/__tests__/collection.test.ts | 8 +++----- .../src/__tests__/database.import.test.ts | 5 ++--- .../database/src/__tests__/database.test.ts | 8 +++----- .../dialect-extend/dialect-extend.test.ts | 6 ++---- .../eager-loading/eager-loading-tree.test.ts | 4 ++-- .../__tests__/field-options/hidden.test.ts | 6 ++---- .../__tests__/field-options/inddex.test.ts | 5 ++--- .../__tests__/field-options/sort-by.test.ts | 5 ++--- .../array-field-repository.test.ts | 6 ++---- .../src/__tests__/fields/array.test.ts | 5 ++--- .../__tests__/fields/belongs-to-field.test.ts | 5 ++--- .../fields/belongs-to-many-field.test.ts | 5 ++--- .../__tests__/fields/context-field.test.ts | 5 ++--- .../src/__tests__/fields/date-only.test.ts | 4 ++-- .../__tests__/fields/datetime-no-tz.test.ts | 4 ++-- .../src/__tests__/fields/datetime-tz.test.ts | 8 +++----- .../__tests__/fields/encryption-field.test.ts | 5 ++--- .../__tests__/fields/has-many-field.test.ts | 5 ++--- .../__tests__/fields/has-one-field.test.ts | 5 ++--- .../src/__tests__/fields/nanoid-field.test.ts | 5 ++--- .../__tests__/fields/password-field.test.ts | 5 ++--- .../database/src/__tests__/fields/set.test.ts | 5 ++--- .../src/__tests__/fields/string-field.test.ts | 5 ++--- .../src/__tests__/fields/text-field.test.ts | 5 ++--- .../fields/unix-timestamp-field.test.ts | 4 ++-- .../src/__tests__/fields/uuid-field.test.ts | 5 ++--- .../src/__tests__/filter-match.test.ts | 6 ++---- .../src/__tests__/filter-parser.test.ts | 6 ++---- .../multi-filter-target-key.test.ts | 4 ++-- .../single-filter-target-key.test.ts | 13 +++++++++++-- .../database/src/__tests__/filter.test.ts | 5 ++--- .../core/database/src/__tests__/group.test.ts | 4 ++-- .../hooks/afterCreateWithAssociations.test.ts | 5 ++--- .../database/src/__tests__/hooks/hook.test.ts | 5 ++--- .../collection-inherits-sync.test.ts | 5 ++--- .../inhertits/collection-inherits.test.ts | 8 +++----- .../interfaces/datetime-interface.test.ts | 8 +++----- .../interfaces/interface-manager.test.ts | 5 ++--- .../multiple-select-interface.test.ts | 5 ++--- .../interfaces/number-interface.test.ts | 5 ++--- .../interfaces/percent-interface.test.ts | 5 ++--- .../interfaces/select-interface.test.ts | 5 ++--- .../__tests__/magic-attribute-model.test.ts | 5 ++--- .../database/src/__tests__/migrator.test.ts | 6 +++--- .../database/src/__tests__/model-hook.test.ts | 5 ++--- .../model.changedWithAssociations.test.ts | 5 ++--- .../core/database/src/__tests__/model.test.ts | 4 ++-- .../src/__tests__/non-id-primary-key.test.ts | 4 ++-- .../__tests__/operator/array-operator.test.ts | 5 ++--- .../operator/association-operator.test.ts | 7 ++----- .../operator/boolean-operator.test.ts | 4 ++-- .../__tests__/operator/date/date-only.test.ts | 13 +++++++++++-- .../operator/date/datetime-no-tz.test.ts | 13 +++++++++++-- .../operator/date/datetime-tz.test.ts | 6 ++---- .../operator/date/unix-timestamp.test.ts | 13 +++++++++++-- .../__tests__/operator/empty-operator.test.ts | 7 ++----- .../src/__tests__/operator/eq.test.ts | 5 ++--- .../src/__tests__/operator/ne.test.ts | 5 ++--- .../src/__tests__/operator/notIn.test.ts | 5 ++--- .../operator/string-operator.test.ts | 4 ++-- .../src/__tests__/option-parser.test.ts | 6 ++---- .../src/__tests__/postgres/schema.test.ts | 7 +++---- .../query-interface/query-interface.test.ts | 6 +++--- .../relation-repository/appends.test.ts | 4 ++-- .../belongs-to-many-repository.test.ts | 13 +++++-------- .../belongs-to-repository.test.ts | 16 +++++++++++----- .../has-many-repository.test.ts | 14 ++++++++------ .../has-one-repository.test.ts | 16 +++++++++++----- .../hasone-repository.test.ts | 7 ++----- .../multi-filter-target-key.test.ts | 5 +++-- .../relation-repository.test.ts | 6 +++--- .../database/src/__tests__/repository.test.ts | 19 ++++++++----------- .../__tests__/repository/aggregation.test.ts | 14 +++++++++----- .../src/__tests__/repository/chunk.test.ts | 6 ++---- .../src/__tests__/repository/count.test.ts | 6 ++---- .../src/__tests__/repository/create.test.ts | 10 ++++------ .../src/__tests__/repository/destroy.test.ts | 8 +++----- .../find-with-collection-without-pk.test.ts | 5 ++--- .../src/__tests__/repository/find.test.ts | 8 +++----- .../__tests__/repository/update-many.test.ts | 4 ++-- .../src/__tests__/repository/update.test.ts | 4 ++-- .../src/__tests__/sequelize-hooks.test.ts | 5 ++--- .../core/database/src/__tests__/sort.test.ts | 5 ++--- .../core/database/src/__tests__/sync.test.ts | 4 ++-- .../src/__tests__/sync/default-value.test.ts | 4 ++-- .../src/__tests__/sync/delete-field.test.ts | 4 ++-- .../src/__tests__/sync/empty-table.test.ts | 4 ++-- .../src/__tests__/sync/foreign-key.test.ts | 5 ++--- .../src/__tests__/sync/primary-key.test.ts | 6 +++--- .../src/__tests__/sync/unique-index.test.ts | 4 ++-- .../database/src/__tests__/target-key.test.ts | 5 ++--- .../src/__tests__/underscored-options.test.ts | 4 ++-- .../database/src/__tests__/unique.test.ts | 4 ++-- .../update-association-values.test.ts | 5 ++--- .../update-associations-source-key.test.ts | 10 ++++------ .../update-associations-through.test.ts | 5 ++--- .../src/__tests__/update-associations.test.ts | 13 +++++-------- .../src/__tests__/update-guard.test.ts | 10 ++++------ .../core/database/src/__tests__/utils.test.ts | 4 ++-- .../src/__tests__/value-parsers/date.test.ts | 5 ++--- .../__tests__/value-parsers/to-many.test.ts | 7 +++---- .../__tests__/value-parsers/to-one.test.ts | 5 ++--- .../src/__tests__/view/list-view.test.ts | 4 ++-- .../__tests__/view/view-collection.test.ts | 9 ++++----- .../src/__tests__/view/view-inference.test.ts | 4 ++-- .../__tests__/view/view-repository.test.ts | 4 ++-- .../view/view-with-association.test.ts | 6 +++--- packages/core/database/src/index.ts | 14 ++++++++------ packages/core/database/src/mock-database.ts | 19 ++++++++++++++++--- packages/core/test/src/server/index.ts | 2 +- .../src/server/__tests__/infer-fields.test.ts | 4 ++-- .../server/__tests__/sql-collection.test.ts | 4 ++-- .../server/__tests__/formula-field.test.ts | 4 ++-- .../src/server/__tests__/sort.test.ts | 6 +++--- .../server/__tests__/source-manager.test.ts | 4 ++-- .../src/server/__tests__/fields.test.ts | 4 ++-- .../plugin-workflow-test/src/server/index.ts | 17 ++++++++++++----- 124 files changed, 386 insertions(+), 412 deletions(-) diff --git a/packages/core/app/src/__tests__/commands.test.ts b/packages/core/app/src/__tests__/commands.test.ts index f300d4cbda..946df74d9c 100644 --- a/packages/core/app/src/__tests__/commands.test.ts +++ b/packages/core/app/src/__tests__/commands.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '@nocobase/database'; +import { createMockDatabase, mockDatabase } from '@nocobase/database'; import { uid } from '@nocobase/utils'; import axios from 'axios'; import execa from 'execa'; @@ -64,7 +64,7 @@ const createDatabase = async () => { if (process.env.DB_DIALECT === 'sqlite') { return 'nocobase'; } - const db = mockDatabase(); + const db = await createMockDatabase(); const name = `d_${uid()}`; await db.sequelize.query(`CREATE DATABASE ${name}`); await db.close(); diff --git a/packages/core/data-source-manager/src/__tests__/data-source-manager.test.ts b/packages/core/data-source-manager/src/__tests__/data-source-manager.test.ts index 701bd7e191..6e43a750ab 100644 --- a/packages/core/data-source-manager/src/__tests__/data-source-manager.test.ts +++ b/packages/core/data-source-manager/src/__tests__/data-source-manager.test.ts @@ -7,10 +7,10 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { createMockServer, mockDatabase, supertest } from '@nocobase/test'; -import { SequelizeDataSource } from '../sequelize-data-source'; -import { vi } from 'vitest'; import { DataSourceManager } from '@nocobase/data-source-manager'; +import { createMockDatabase, createMockServer, mockDatabase, supertest } from '@nocobase/test'; +import { vi } from 'vitest'; +import { SequelizeDataSource } from '../sequelize-data-source'; describe('example', () => { test.skip('case1', async () => { @@ -41,7 +41,7 @@ describe('example', () => { name: 'test2', }); - const database = mockDatabase({ + const database = await createMockDatabase({ tablePrefix: 'ds1_', }); await database.clean({ drop: true }); @@ -82,7 +82,7 @@ describe('example', () => { name: 'update-filter', }); - const database = mockDatabase({ + const database = await createMockDatabase({ tablePrefix: 'ds1_', }); @@ -128,7 +128,7 @@ describe('example', () => { name: 'update-filter', }); - const database = mockDatabase({ + const database = await createMockDatabase({ tablePrefix: 'ds1_', }); @@ -198,7 +198,7 @@ describe('example', () => { // it should be called on main datasource expect(hook).toBeCalledTimes(1); - const database = mockDatabase({ + const database = await createMockDatabase({ tablePrefix: 'ds1_', }); diff --git a/packages/core/data-source-manager/src/__tests__/koa.test.ts b/packages/core/data-source-manager/src/__tests__/koa.test.ts index 3c42dd8aed..587b549543 100644 --- a/packages/core/data-source-manager/src/__tests__/koa.test.ts +++ b/packages/core/data-source-manager/src/__tests__/koa.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '@nocobase/test'; +import { createMockDatabase, mockDatabase } from '@nocobase/test'; import Koa from 'koa'; import bodyParser from 'koa-bodyparser'; import supertest from 'supertest'; @@ -24,7 +24,7 @@ describe('example', () => { await next(); }); app.use(dsm.middleware()); - const database = mockDatabase({ + const database = await createMockDatabase({ tablePrefix: 'ds1_', }); await database.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/associations/references.test.ts b/packages/core/database/src/__tests__/associations/references.test.ts index 0cd351b47e..475c2b751e 100644 --- a/packages/core/database/src/__tests__/associations/references.test.ts +++ b/packages/core/database/src/__tests__/associations/references.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../index'; +import { Database, createMockDatabase } from '@nocobase/database'; + describe('association references', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/associations/target-key.test.ts b/packages/core/database/src/__tests__/associations/target-key.test.ts index fd0c5d0bc3..2c203c68ef 100644 --- a/packages/core/database/src/__tests__/associations/target-key.test.ts +++ b/packages/core/database/src/__tests__/associations/target-key.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('association target key', async () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/bigint.test.ts b/packages/core/database/src/__tests__/bigint.test.ts index 621c8700b7..31453334fb 100644 --- a/packages/core/database/src/__tests__/bigint.test.ts +++ b/packages/core/database/src/__tests__/bigint.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../database'; -import { mockDatabase } from './index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe.skipIf(process.env['DB_DIALECT'] === 'sqlite')('collection', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ logging: console.log, }); diff --git a/packages/core/database/src/__tests__/collection-factory.test.ts b/packages/core/database/src/__tests__/collection-factory.test.ts index fb6b2cb6b4..0a48ebfbf4 100644 --- a/packages/core/database/src/__tests__/collection-factory.test.ts +++ b/packages/core/database/src/__tests__/collection-factory.test.ts @@ -7,16 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Collection, Database, createMockDatabase } from '@nocobase/database'; import { vi } from 'vitest'; -import Database from '../database'; -import { mockDatabase } from './index'; -import { Collection } from '../collection'; describe('collection factory', function () { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/collection.test.ts b/packages/core/database/src/__tests__/collection.test.ts index dbe8dd1ceb..d94a87ba04 100644 --- a/packages/core/database/src/__tests__/collection.test.ts +++ b/packages/core/database/src/__tests__/collection.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../collection'; -import { Database } from '../database'; -import { mockDatabase } from './index'; +import { Collection, Database, createMockDatabase } from '@nocobase/database'; import { IdentifierError } from '../errors/identifier-error'; const pgOnly = () => (process.env.DB_DIALECT == 'postgres' ? it : it.skip); @@ -17,7 +15,7 @@ describe('collection', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); @@ -265,7 +263,7 @@ describe('collection sync', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/database.import.test.ts b/packages/core/database/src/__tests__/database.import.test.ts index c008e46710..a5facdb6e7 100644 --- a/packages/core/database/src/__tests__/database.import.test.ts +++ b/packages/core/database/src/__tests__/database.import.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from './index'; +import { Database, createMockDatabase } from '@nocobase/database'; import path from 'path'; -import Database from '../database'; describe('database', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/database.test.ts b/packages/core/database/src/__tests__/database.test.ts index 1d04ee4dc6..9f1ce51154 100644 --- a/packages/core/database/src/__tests__/database.test.ts +++ b/packages/core/database/src/__tests__/database.test.ts @@ -7,17 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { vi } from 'vitest'; +import { ArrayFieldRepository, createMockDatabase, Database, Model } from '@nocobase/database'; import path from 'path'; -import { Database, Model } from '..'; -import { ArrayFieldRepository } from '../field-repository/array-field-repository'; -import { mockDatabase } from './index'; +import { vi } from 'vitest'; describe('database', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/dialect-extend/dialect-extend.test.ts b/packages/core/database/src/__tests__/dialect-extend/dialect-extend.test.ts index e4e95b75d4..b8ddf9b8ca 100644 --- a/packages/core/database/src/__tests__/dialect-extend/dialect-extend.test.ts +++ b/packages/core/database/src/__tests__/dialect-extend/dialect-extend.test.ts @@ -7,15 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; -import { BaseDialect } from '../../dialects/base-dialect'; +import { BaseDialect, Database, createMockDatabase } from '@nocobase/database'; describe('dialect extend', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/eager-loading/eager-loading-tree.test.ts b/packages/core/database/src/__tests__/eager-loading/eager-loading-tree.test.ts index 6f5ff48d58..8d29b8e51a 100644 --- a/packages/core/database/src/__tests__/eager-loading/eager-loading-tree.test.ts +++ b/packages/core/database/src/__tests__/eager-loading/eager-loading-tree.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { mockDatabase } from '@nocobase/database'; +import Database, { createMockDatabase } from '@nocobase/database'; import { EagerLoadingTree } from '../../eager-loading/eager-loading-tree'; describe('Eager loading tree', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); diff --git a/packages/core/database/src/__tests__/field-options/hidden.test.ts b/packages/core/database/src/__tests__/field-options/hidden.test.ts index 1be54af80b..1a9687c812 100644 --- a/packages/core/database/src/__tests__/field-options/hidden.test.ts +++ b/packages/core/database/src/__tests__/field-options/hidden.test.ts @@ -7,15 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; -import { Model } from '../../model'; +import { Database, Model, createMockDatabase } from '@nocobase/database'; describe('hidden field options', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/field-options/inddex.test.ts b/packages/core/database/src/__tests__/field-options/inddex.test.ts index 4793f1699c..83d2e77d81 100644 --- a/packages/core/database/src/__tests__/field-options/inddex.test.ts +++ b/packages/core/database/src/__tests__/field-options/inddex.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { md5 } from '../../utils'; describe('index field options', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/field-options/sort-by.test.ts b/packages/core/database/src/__tests__/field-options/sort-by.test.ts index 7cbd92b0b4..c6774363a9 100644 --- a/packages/core/database/src/__tests__/field-options/sort-by.test.ts +++ b/packages/core/database/src/__tests__/field-options/sort-by.test.ts @@ -7,8 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '@nocobase/test'; -import { BelongsToManyRepository, Database } from '../../index'; +import { BelongsToManyRepository, Database, createMockDatabase } from '@nocobase/database'; describe('associated field order', () => { let db: Database; @@ -18,7 +17,7 @@ describe('associated field order', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ diff --git a/packages/core/database/src/__tests__/field-repository/array-field-repository.test.ts b/packages/core/database/src/__tests__/field-repository/array-field-repository.test.ts index 678f3289d4..605f9972bc 100644 --- a/packages/core/database/src/__tests__/field-repository/array-field-repository.test.ts +++ b/packages/core/database/src/__tests__/field-repository/array-field-repository.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import Database from '../../database'; -import { ArrayFieldRepository } from '../../field-repository/array-field-repository'; +import { ArrayFieldRepository, Database, createMockDatabase } from '@nocobase/database'; describe('Array field repository', () => { let db: Database; @@ -17,7 +15,7 @@ describe('Array field repository', () => { let TestCollection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); TestCollection = db.collection({ name: 'test', diff --git a/packages/core/database/src/__tests__/fields/array.test.ts b/packages/core/database/src/__tests__/fields/array.test.ts index 88ac7bf3bd..4ebd5db15d 100644 --- a/packages/core/database/src/__tests__/fields/array.test.ts +++ b/packages/core/database/src/__tests__/fields/array.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('array field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/belongs-to-field.test.ts b/packages/core/database/src/__tests__/fields/belongs-to-field.test.ts index 3a29ec68a3..7c3f9882dc 100644 --- a/packages/core/database/src/__tests__/fields/belongs-to-field.test.ts +++ b/packages/core/database/src/__tests__/fields/belongs-to-field.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../'; +import { Database, createMockDatabase } from '@nocobase/database'; import { IdentifierError } from '../../errors/identifier-error'; describe('belongs to field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/belongs-to-many-field.test.ts b/packages/core/database/src/__tests__/fields/belongs-to-many-field.test.ts index d21e923b3b..2c57ade86c 100644 --- a/packages/core/database/src/__tests__/fields/belongs-to-many-field.test.ts +++ b/packages/core/database/src/__tests__/fields/belongs-to-many-field.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { IdentifierError } from '../../errors/identifier-error'; describe('belongs to many field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/context-field.test.ts b/packages/core/database/src/__tests__/fields/context-field.test.ts index 392dc9ec0b..b58f3dae4f 100644 --- a/packages/core/database/src/__tests__/fields/context-field.test.ts +++ b/packages/core/database/src/__tests__/fields/context-field.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { createMockDatabase, Database } from '@nocobase/database'; import { DataTypes } from 'sequelize'; -import { mockDatabase } from '../'; -import { Database } from '../../'; describe('context field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/date-only.test.ts b/packages/core/database/src/__tests__/fields/date-only.test.ts index 1b6d9a60f7..d6f93c7ae8 100644 --- a/packages/core/database/src/__tests__/fields/date-only.test.ts +++ b/packages/core/database/src/__tests__/fields/date-only.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('date only', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+08:00', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/fields/datetime-no-tz.test.ts b/packages/core/database/src/__tests__/fields/datetime-no-tz.test.ts index e78ada5678..a6c61b28b8 100644 --- a/packages/core/database/src/__tests__/fields/datetime-no-tz.test.ts +++ b/packages/core/database/src/__tests__/fields/datetime-no-tz.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { sleep } from '@nocobase/test'; describe('datetime no tz field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+01:00', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/fields/datetime-tz.test.ts b/packages/core/database/src/__tests__/fields/datetime-tz.test.ts index 789063dae5..cf2fb1cc9b 100644 --- a/packages/core/database/src/__tests__/fields/datetime-tz.test.ts +++ b/packages/core/database/src/__tests__/fields/datetime-tz.test.ts @@ -7,15 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; -import { Repository } from '../../repository'; +import { Database, Repository, createMockDatabase } from '@nocobase/database'; describe('timezone', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+08:00', }); await db.clean({ drop: true }); @@ -119,7 +117,7 @@ describe('date-field', () => { let repository: Repository; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'tests', diff --git a/packages/core/database/src/__tests__/fields/encryption-field.test.ts b/packages/core/database/src/__tests__/fields/encryption-field.test.ts index e368ceb04d..606580f182 100644 --- a/packages/core/database/src/__tests__/fields/encryption-field.test.ts +++ b/packages/core/database/src/__tests__/fields/encryption-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { EncryptionField } from '../../fields/encryption-field'; -import { mockDatabase, MockDatabase } from '../../mock-database'; +import { createMockDatabase, EncryptionField, MockDatabase } from '@nocobase/database'; describe('encryption field', () => { let db: MockDatabase; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.registerFieldTypes({ encryption: EncryptionField, diff --git a/packages/core/database/src/__tests__/fields/has-many-field.test.ts b/packages/core/database/src/__tests__/fields/has-many-field.test.ts index 51b3d25ba2..6efbbe8a6b 100644 --- a/packages/core/database/src/__tests__/fields/has-many-field.test.ts +++ b/packages/core/database/src/__tests__/fields/has-many-field.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../'; +import { Database, createMockDatabase } from '@nocobase/database'; import { IdentifierError } from '../../errors/identifier-error'; describe('has many field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/has-one-field.test.ts b/packages/core/database/src/__tests__/fields/has-one-field.test.ts index 94b92dd246..8a6f66a919 100644 --- a/packages/core/database/src/__tests__/fields/has-one-field.test.ts +++ b/packages/core/database/src/__tests__/fields/has-one-field.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../'; +import { Database, createMockDatabase } from '@nocobase/database'; import { IdentifierError } from '../../errors/identifier-error'; describe('has many field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/nanoid-field.test.ts b/packages/core/database/src/__tests__/fields/nanoid-field.test.ts index ee1f1b9859..9c658c9461 100644 --- a/packages/core/database/src/__tests__/fields/nanoid-field.test.ts +++ b/packages/core/database/src/__tests__/fields/nanoid-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('nanoid field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/password-field.test.ts b/packages/core/database/src/__tests__/fields/password-field.test.ts index 9b25339793..175e5620fa 100644 --- a/packages/core/database/src/__tests__/fields/password-field.test.ts +++ b/packages/core/database/src/__tests__/fields/password-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database, PasswordField } from '../../'; +import { createMockDatabase, Database, PasswordField } from '@nocobase/database'; describe('password field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/set.test.ts b/packages/core/database/src/__tests__/fields/set.test.ts index 2ef56022ce..d71c0a1272 100644 --- a/packages/core/database/src/__tests__/fields/set.test.ts +++ b/packages/core/database/src/__tests__/fields/set.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('set field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/string-field.test.ts b/packages/core/database/src/__tests__/fields/string-field.test.ts index 0d5acc25d9..ee4f3e631d 100644 --- a/packages/core/database/src/__tests__/fields/string-field.test.ts +++ b/packages/core/database/src/__tests__/fields/string-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('string field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/text-field.test.ts b/packages/core/database/src/__tests__/fields/text-field.test.ts index 1708a1bfc1..b9c19e69f1 100644 --- a/packages/core/database/src/__tests__/fields/text-field.test.ts +++ b/packages/core/database/src/__tests__/fields/text-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('text field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/unix-timestamp-field.test.ts b/packages/core/database/src/__tests__/fields/unix-timestamp-field.test.ts index 65b9068728..9b7bcab424 100644 --- a/packages/core/database/src/__tests__/fields/unix-timestamp-field.test.ts +++ b/packages/core/database/src/__tests__/fields/unix-timestamp-field.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { Database, createMockDatabase } from '@nocobase/database'; import moment from 'moment'; describe('unix timestamp field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/fields/uuid-field.test.ts b/packages/core/database/src/__tests__/fields/uuid-field.test.ts index aa7f2b278f..c1f66aad81 100644 --- a/packages/core/database/src/__tests__/fields/uuid-field.test.ts +++ b/packages/core/database/src/__tests__/fields/uuid-field.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('uuid field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/filter-match.test.ts b/packages/core/database/src/__tests__/filter-match.test.ts index f2f4b58362..dae3a85697 100644 --- a/packages/core/database/src/__tests__/filter-match.test.ts +++ b/packages/core/database/src/__tests__/filter-match.test.ts @@ -7,15 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '..'; -import { filterMatch } from '../filter-match'; -import { mockDatabase } from './index'; +import { createMockDatabase, Database, filterMatch } from '@nocobase/database'; describe('filterMatch', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/filter-parser.test.ts b/packages/core/database/src/__tests__/filter-parser.test.ts index 3600e42610..eb111d0f07 100644 --- a/packages/core/database/src/__tests__/filter-parser.test.ts +++ b/packages/core/database/src/__tests__/filter-parser.test.ts @@ -7,16 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Database, FilterParser, createMockDatabase } from '@nocobase/database'; import { Op } from 'sequelize'; -import { Database } from '../database'; -import FilterParser from '../filter-parser'; -import { mockDatabase } from './index'; describe('filter by related', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'users', diff --git a/packages/core/database/src/__tests__/filter-target-key/multi-filter-target-key.test.ts b/packages/core/database/src/__tests__/filter-target-key/multi-filter-target-key.test.ts index aead5d20f5..ca526e802f 100644 --- a/packages/core/database/src/__tests__/filter-target-key/multi-filter-target-key.test.ts +++ b/packages/core/database/src/__tests__/filter-target-key/multi-filter-target-key.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { mockDatabase } from '../../index'; +import Database, { createMockDatabase } from '@nocobase/database'; describe('multi filter target key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/filter-target-key/single-filter-target-key.test.ts b/packages/core/database/src/__tests__/filter-target-key/single-filter-target-key.test.ts index e03e5f88c0..daf4b7d502 100644 --- a/packages/core/database/src/__tests__/filter-target-key/single-filter-target-key.test.ts +++ b/packages/core/database/src/__tests__/filter-target-key/single-filter-target-key.test.ts @@ -1,10 +1,19 @@ -import Database, { mockDatabase } from '@nocobase/database'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import Database, { createMockDatabase } from '@nocobase/database'; describe('single filter target key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/filter.test.ts b/packages/core/database/src/__tests__/filter.test.ts index cc81a33d20..aa91199c2e 100644 --- a/packages/core/database/src/__tests__/filter.test.ts +++ b/packages/core/database/src/__tests__/filter.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../database'; -import { mockDatabase } from '../mock-database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('filter', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/group.test.ts b/packages/core/database/src/__tests__/group.test.ts index 0ef30e22ca..411000bd0d 100644 --- a/packages/core/database/src/__tests__/group.test.ts +++ b/packages/core/database/src/__tests__/group.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import sequelize from 'sequelize'; describe('migrator', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: 'test_', }); diff --git a/packages/core/database/src/__tests__/hooks/afterCreateWithAssociations.test.ts b/packages/core/database/src/__tests__/hooks/afterCreateWithAssociations.test.ts index d5fa6f0c44..eaa700055a 100644 --- a/packages/core/database/src/__tests__/hooks/afterCreateWithAssociations.test.ts +++ b/packages/core/database/src/__tests__/hooks/afterCreateWithAssociations.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('afterCreateWithAssociations', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/hooks/hook.test.ts b/packages/core/database/src/__tests__/hooks/hook.test.ts index e43f77a9ff..47296d76b3 100644 --- a/packages/core/database/src/__tests__/hooks/hook.test.ts +++ b/packages/core/database/src/__tests__/hooks/hook.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../../database'; -import { mockDatabase } from '../'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('hook', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/inhertits/collection-inherits-sync.test.ts b/packages/core/database/src/__tests__/inhertits/collection-inherits-sync.test.ts index 85f40d3889..dea0b10391 100644 --- a/packages/core/database/src/__tests__/inhertits/collection-inherits-sync.test.ts +++ b/packages/core/database/src/__tests__/inhertits/collection-inherits-sync.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { mockDatabase } from '../index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe.runIf(process.env['DB_DIALECT'] === 'postgres')('sync inherits', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/inhertits/collection-inherits.test.ts b/packages/core/database/src/__tests__/inhertits/collection-inherits.test.ts index 2a98ef844f..de6e88010e 100644 --- a/packages/core/database/src/__tests__/inhertits/collection-inherits.test.ts +++ b/packages/core/database/src/__tests__/inhertits/collection-inherits.test.ts @@ -7,17 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { BelongsToManyRepository } from '@nocobase/database'; -import Database from '../../database'; -import { InheritedCollection } from '../../inherited-collection'; -import { mockDatabase } from '../index'; +import { BelongsToManyRepository, createMockDatabase, Database } from '@nocobase/database'; import { isPg } from '@nocobase/test'; +import { InheritedCollection } from '../../inherited-collection'; describe.runIf(isPg())('collection inherits', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/interfaces/datetime-interface.test.ts b/packages/core/database/src/__tests__/interfaces/datetime-interface.test.ts index adcb237d4b..9b91fe4c84 100644 --- a/packages/core/database/src/__tests__/interfaces/datetime-interface.test.ts +++ b/packages/core/database/src/__tests__/interfaces/datetime-interface.test.ts @@ -7,18 +7,16 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; -import { Collection } from '../../collection'; -import { DatetimeInterface } from '../../interfaces/datetime-interface'; +import { Collection, Database, createMockDatabase } from '@nocobase/database'; import dayjs from 'dayjs'; +import { DatetimeInterface } from '../../interfaces/datetime-interface'; describe('Date time interface', () => { let db: Database; let testCollection: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); testCollection = db.collection({ name: 'tests', diff --git a/packages/core/database/src/__tests__/interfaces/interface-manager.test.ts b/packages/core/database/src/__tests__/interfaces/interface-manager.test.ts index efdbd192df..39e4eb0075 100644 --- a/packages/core/database/src/__tests__/interfaces/interface-manager.test.ts +++ b/packages/core/database/src/__tests__/interfaces/interface-manager.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { BaseInterface } from '../../interfaces/base-interface'; describe('interface manager', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/interfaces/multiple-select-interface.test.ts b/packages/core/database/src/__tests__/interfaces/multiple-select-interface.test.ts index 4dde27ef52..a739a79552 100644 --- a/packages/core/database/src/__tests__/interfaces/multiple-select-interface.test.ts +++ b/packages/core/database/src/__tests__/interfaces/multiple-select-interface.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { MultipleSelectInterface } from '../../interfaces/multiple-select-interface'; describe('MultipleSelectInterface', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/interfaces/number-interface.test.ts b/packages/core/database/src/__tests__/interfaces/number-interface.test.ts index 340652952c..f86bbd7b61 100644 --- a/packages/core/database/src/__tests__/interfaces/number-interface.test.ts +++ b/packages/core/database/src/__tests__/interfaces/number-interface.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { NumberInterface } from '../../interfaces/number-interface'; describe('number interface', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/interfaces/percent-interface.test.ts b/packages/core/database/src/__tests__/interfaces/percent-interface.test.ts index fcf057f00e..fcb4d61b0b 100644 --- a/packages/core/database/src/__tests__/interfaces/percent-interface.test.ts +++ b/packages/core/database/src/__tests__/interfaces/percent-interface.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { PercentInterface } from '../../interfaces/percent-interface'; describe('percent interface', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/interfaces/select-interface.test.ts b/packages/core/database/src/__tests__/interfaces/select-interface.test.ts index afe50abe47..56d130e1a7 100644 --- a/packages/core/database/src/__tests__/interfaces/select-interface.test.ts +++ b/packages/core/database/src/__tests__/interfaces/select-interface.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '..'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { SelectInterface } from '../../interfaces/select-interface'; describe('SelectInterface', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/magic-attribute-model.test.ts b/packages/core/database/src/__tests__/magic-attribute-model.test.ts index 696c595f0e..c6a7d9a5dc 100644 --- a/packages/core/database/src/__tests__/magic-attribute-model.test.ts +++ b/packages/core/database/src/__tests__/magic-attribute-model.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '.'; -import { Database, MagicAttributeModel } from '..'; +import { createMockDatabase, Database, MagicAttributeModel } from '@nocobase/database'; describe('magic-attribute-model', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/migrator.test.ts b/packages/core/database/src/__tests__/migrator.test.ts index 8deb9069b7..938f676169 100644 --- a/packages/core/database/src/__tests__/migrator.test.ts +++ b/packages/core/database/src/__tests__/migrator.test.ts @@ -7,9 +7,9 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { vi } from 'vitest'; -import { Database, Migration, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database, Migration } from '@nocobase/database'; import { resolve } from 'path'; +import { vi } from 'vitest'; const names = (migrations: Array<{ name: string }>) => migrations.map((m) => m.name); @@ -17,7 +17,7 @@ describe('migrator', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: 'test_', }); diff --git a/packages/core/database/src/__tests__/model-hook.test.ts b/packages/core/database/src/__tests__/model-hook.test.ts index 4706064f69..203e74def6 100644 --- a/packages/core/database/src/__tests__/model-hook.test.ts +++ b/packages/core/database/src/__tests__/model-hook.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '..'; -import { mockDatabase } from '.'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('model hook', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/model.changedWithAssociations.test.ts b/packages/core/database/src/__tests__/model.changedWithAssociations.test.ts index fc2fb1ce97..97f7932e3a 100644 --- a/packages/core/database/src/__tests__/model.changedWithAssociations.test.ts +++ b/packages/core/database/src/__tests__/model.changedWithAssociations.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../database'; -import { mockDatabase } from '../mock-database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('changedWithAssociations', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/model.test.ts b/packages/core/database/src/__tests__/model.test.ts index 9cd4531ec8..b141d80ddb 100644 --- a/packages/core/database/src/__tests__/model.test.ts +++ b/packages/core/database/src/__tests__/model.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('model', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/non-id-primary-key.test.ts b/packages/core/database/src/__tests__/non-id-primary-key.test.ts index db25afc777..76b62834c8 100644 --- a/packages/core/database/src/__tests__/non-id-primary-key.test.ts +++ b/packages/core/database/src/__tests__/non-id-primary-key.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database, mockDatabase } from '@nocobase/database'; describe('non-id primary key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/operator/array-operator.test.ts b/packages/core/database/src/__tests__/operator/array-operator.test.ts index 08f988be93..455673124c 100644 --- a/packages/core/database/src/__tests__/operator/array-operator.test.ts +++ b/packages/core/database/src/__tests__/operator/array-operator.test.ts @@ -7,8 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { mockDatabase } from '../index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('array field operator', function () { let db: Database; @@ -22,7 +21,7 @@ describe('array field operator', function () { }); beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); Test = db.collection({ diff --git a/packages/core/database/src/__tests__/operator/association-operator.test.ts b/packages/core/database/src/__tests__/operator/association-operator.test.ts index 4b44b597e8..e1c41e69e7 100644 --- a/packages/core/database/src/__tests__/operator/association-operator.test.ts +++ b/packages/core/database/src/__tests__/operator/association-operator.test.ts @@ -7,10 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { Collection } from '../../collection'; - -import { mockDatabase } from '../index'; +import { Collection, Database, createMockDatabase } from '@nocobase/database'; describe('association operator', () => { let db: Database; @@ -27,7 +24,7 @@ describe('association operator', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); Group = db.collection({ name: 'groups', diff --git a/packages/core/database/src/__tests__/operator/boolean-operator.test.ts b/packages/core/database/src/__tests__/operator/boolean-operator.test.ts index 07352eb80b..72f25f8f9f 100644 --- a/packages/core/database/src/__tests__/operator/boolean-operator.test.ts +++ b/packages/core/database/src/__tests__/operator/boolean-operator.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { Collection, mockDatabase } from '@nocobase/database'; +import Database, { Collection, createMockDatabase } from '@nocobase/database'; describe('boolean operator', () => { let db: Database; @@ -19,7 +19,7 @@ describe('boolean operator', () => { }); beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/operator/date/date-only.test.ts b/packages/core/database/src/__tests__/operator/date/date-only.test.ts index aa1690b148..8e127f374f 100644 --- a/packages/core/database/src/__tests__/operator/date/date-only.test.ts +++ b/packages/core/database/src/__tests__/operator/date/date-only.test.ts @@ -1,4 +1,13 @@ -import Database, { mockDatabase, Repository } from '../../../index'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { createMockDatabase, Database, Repository } from '@nocobase/database'; describe('dateOnly operator', () => { let db: Database; @@ -10,7 +19,7 @@ describe('dateOnly operator', () => { }); beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+08:00', }); diff --git a/packages/core/database/src/__tests__/operator/date/datetime-no-tz.test.ts b/packages/core/database/src/__tests__/operator/date/datetime-no-tz.test.ts index 24a1d6005c..6f6d833751 100644 --- a/packages/core/database/src/__tests__/operator/date/datetime-no-tz.test.ts +++ b/packages/core/database/src/__tests__/operator/date/datetime-no-tz.test.ts @@ -1,4 +1,13 @@ -import Database, { mockDatabase, Repository } from '../../../index'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { createMockDatabase, Database, Repository } from '@nocobase/database'; describe('datetimeNoTz date operator test', () => { let db: Database; @@ -10,7 +19,7 @@ describe('datetimeNoTz date operator test', () => { }); beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+00:00', }); diff --git a/packages/core/database/src/__tests__/operator/date/datetime-tz.test.ts b/packages/core/database/src/__tests__/operator/date/datetime-tz.test.ts index b722f2437e..d819dde14f 100644 --- a/packages/core/database/src/__tests__/operator/date/datetime-tz.test.ts +++ b/packages/core/database/src/__tests__/operator/date/datetime-tz.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../../database'; -import { Repository } from '../../../repository'; -import { mockDatabase } from '../../index'; +import { Database, Repository, createMockDatabase } from '@nocobase/database'; describe('date operator test', () => { let db: Database; @@ -21,7 +19,7 @@ describe('date operator test', () => { }); beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+00:00', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/operator/date/unix-timestamp.test.ts b/packages/core/database/src/__tests__/operator/date/unix-timestamp.test.ts index 16bcde85ea..4906fbf791 100644 --- a/packages/core/database/src/__tests__/operator/date/unix-timestamp.test.ts +++ b/packages/core/database/src/__tests__/operator/date/unix-timestamp.test.ts @@ -1,4 +1,13 @@ -import Database, { mockDatabase, Repository } from '../../../index'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { createMockDatabase, Database, Repository } from '@nocobase/database'; describe('unix timestamp date operator test', () => { let db: Database; @@ -10,7 +19,7 @@ describe('unix timestamp date operator test', () => { }); beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ timezone: '+00:00', }); diff --git a/packages/core/database/src/__tests__/operator/empty-operator.test.ts b/packages/core/database/src/__tests__/operator/empty-operator.test.ts index 101f885e42..8134b0d05b 100644 --- a/packages/core/database/src/__tests__/operator/empty-operator.test.ts +++ b/packages/core/database/src/__tests__/operator/empty-operator.test.ts @@ -7,10 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { Collection } from '../../collection'; - -import { mockDatabase } from '../index'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; describe('empty operator', () => { let db: Database; @@ -22,7 +19,7 @@ describe('empty operator', () => { }); beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); User = db.collection({ name: 'users', fields: [ diff --git a/packages/core/database/src/__tests__/operator/eq.test.ts b/packages/core/database/src/__tests__/operator/eq.test.ts index d4435ec82c..a265ebfc59 100644 --- a/packages/core/database/src/__tests__/operator/eq.test.ts +++ b/packages/core/database/src/__tests__/operator/eq.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { mockDatabase } from '../index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('eq operator', () => { let db: Database; let Test; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); Test = db.collection({ diff --git a/packages/core/database/src/__tests__/operator/ne.test.ts b/packages/core/database/src/__tests__/operator/ne.test.ts index 0b9114d519..9ad276ed35 100644 --- a/packages/core/database/src/__tests__/operator/ne.test.ts +++ b/packages/core/database/src/__tests__/operator/ne.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { mockDatabase } from '../index'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('ne operator', () => { let db: Database; let Test; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); Test = db.collection({ diff --git a/packages/core/database/src/__tests__/operator/notIn.test.ts b/packages/core/database/src/__tests__/operator/notIn.test.ts index 65ba6f28fc..758b964d9b 100644 --- a/packages/core/database/src/__tests__/operator/notIn.test.ts +++ b/packages/core/database/src/__tests__/operator/notIn.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import Database from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('ne operator', () => { let db: Database; let Test; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); Test = db.collection({ diff --git a/packages/core/database/src/__tests__/operator/string-operator.test.ts b/packages/core/database/src/__tests__/operator/string-operator.test.ts index 69d57bbea3..f9eef50523 100644 --- a/packages/core/database/src/__tests__/operator/string-operator.test.ts +++ b/packages/core/database/src/__tests__/operator/string-operator.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { Collection, mockDatabase } from '@nocobase/database'; +import Database, { Collection, createMockDatabase } from '@nocobase/database'; describe('string operator', () => { let db: Database; @@ -19,7 +19,7 @@ describe('string operator', () => { }); beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/option-parser.test.ts b/packages/core/database/src/__tests__/option-parser.test.ts index 165415580a..0f233de8b2 100644 --- a/packages/core/database/src/__tests__/option-parser.test.ts +++ b/packages/core/database/src/__tests__/option-parser.test.ts @@ -7,10 +7,8 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../collection'; -import { Database } from '../database'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; import { OptionsParser } from '../options-parser'; -import { mockDatabase } from './index'; describe('option parser', () => { let db: Database; @@ -20,7 +18,7 @@ describe('option parser', () => { let Tag: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection<{ id: number; name: string }, { name: string }>({ name: 'users', diff --git a/packages/core/database/src/__tests__/postgres/schema.test.ts b/packages/core/database/src/__tests__/postgres/schema.test.ts index a2838ae35d..08e550f302 100644 --- a/packages/core/database/src/__tests__/postgres/schema.test.ts +++ b/packages/core/database/src/__tests__/postgres/schema.test.ts @@ -7,8 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import { Database } from '../../database'; +import { Database, createMockDatabase } from '@nocobase/database'; import { randomStr } from '@nocobase/test'; describe('auth', () => { @@ -22,7 +21,7 @@ describe('auth', () => { it('should auto create schema on prepare when schema missing', async () => { const schemaName = randomStr(); - db = mockDatabase({ + db = await createMockDatabase({ schema: schemaName, }); @@ -45,7 +44,7 @@ describe('postgres schema', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ schema: 'test_schema', }); diff --git a/packages/core/database/src/__tests__/query-interface/query-interface.test.ts b/packages/core/database/src/__tests__/query-interface/query-interface.test.ts index 887cf447a9..4aea44e856 100644 --- a/packages/core/database/src/__tests__/query-interface/query-interface.test.ts +++ b/packages/core/database/src/__tests__/query-interface/query-interface.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe.runIf(process.env.DB_DIALECT === 'mysql')('mysql', async () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ logging: console.log, }); @@ -50,7 +50,7 @@ describe('query interface', async () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ logging: console.log, }); diff --git a/packages/core/database/src/__tests__/relation-repository/appends.test.ts b/packages/core/database/src/__tests__/relation-repository/appends.test.ts index 48a0858125..2ffbde33e8 100644 --- a/packages/core/database/src/__tests__/relation-repository/appends.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/appends.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { BelongsToRepository, Collection, mockDatabase } from '@nocobase/database'; +import { BelongsToRepository, Collection, createMockDatabase, Database } from '@nocobase/database'; describe('appends', () => { let db: Database; @@ -23,7 +23,7 @@ describe('appends', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ diff --git a/packages/core/database/src/__tests__/relation-repository/belongs-to-many-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/belongs-to-many-repository.test.ts index 0e568824f0..6ef9c240c6 100644 --- a/packages/core/database/src/__tests__/relation-repository/belongs-to-many-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/belongs-to-many-repository.test.ts @@ -7,10 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '@nocobase/database'; -import Database from '../../database'; -import { BelongsToManyRepository } from '../../relation-repository/belongs-to-many-repository'; -import { mockDatabase } from '../index'; +import { BelongsToManyRepository, Collection, createMockDatabase, Database } from '@nocobase/database'; import { pgOnly } from '@nocobase/test'; pgOnly()('belongs to many with targetCollection', () => { @@ -23,7 +20,7 @@ pgOnly()('belongs to many with targetCollection', () => { let OrgUser: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); @@ -98,7 +95,7 @@ pgOnly()('belongs to many with targetCollection', () => { describe('belongs to many with collection that has no id key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); @@ -184,7 +181,7 @@ describe('belongs to many with target key', function () { let Color: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); Post = db.collection({ @@ -320,7 +317,7 @@ describe('belongs to many', () => { let Color; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); PostTag = db.collection({ name: 'posts_tags', diff --git a/packages/core/database/src/__tests__/relation-repository/belongs-to-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/belongs-to-repository.test.ts index 332967733a..539e48fb7f 100644 --- a/packages/core/database/src/__tests__/relation-repository/belongs-to-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/belongs-to-repository.test.ts @@ -1,7 +1,13 @@ -import { Collection } from '@nocobase/database'; -import Database from '../../database'; -import { BelongsToRepository } from '../../relation-repository/belongs-to-repository'; -import { mockDatabase } from '../index'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { BelongsToRepository, Collection, createMockDatabase, Database } from '@nocobase/database'; describe('belongs to repository', () => { let db: Database; @@ -9,7 +15,7 @@ describe('belongs to repository', () => { let Post: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ diff --git a/packages/core/database/src/__tests__/relation-repository/has-many-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/has-many-repository.test.ts index c7b5cff062..78793cc356 100644 --- a/packages/core/database/src/__tests__/relation-repository/has-many-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/has-many-repository.test.ts @@ -7,10 +7,12 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import { HasManyRepository } from '../../relation-repository/hasmany-repository'; -import { BelongsToManyRepository } from '../../relation-repository/belongs-to-many-repository'; -import Database, { Collection } from '@nocobase/database'; +import Database, { + BelongsToManyRepository, + Collection, + createMockDatabase, + HasManyRepository, +} from '@nocobase/database'; describe('has many with target key', function () { let db: Database; @@ -19,7 +21,7 @@ describe('has many with target key', function () { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); @@ -142,7 +144,7 @@ describe('has many repository', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', diff --git a/packages/core/database/src/__tests__/relation-repository/has-one-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/has-one-repository.test.ts index 0b913f696f..c4258746b2 100644 --- a/packages/core/database/src/__tests__/relation-repository/has-one-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/has-one-repository.test.ts @@ -1,7 +1,13 @@ -import { Collection } from '@nocobase/database'; -import Database from '../../database'; -import { HasOneRepository } from '../../relation-repository/hasone-repository'; -import { mockDatabase } from '../index'; +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { Collection, createMockDatabase, Database, HasOneRepository } from '@nocobase/database'; describe('has one repository', () => { let db: Database; @@ -9,7 +15,7 @@ describe('has one repository', () => { let Profile: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ diff --git a/packages/core/database/src/__tests__/relation-repository/hasone-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/hasone-repository.test.ts index 389bb22ad7..ddd15f8d5a 100644 --- a/packages/core/database/src/__tests__/relation-repository/hasone-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/hasone-repository.test.ts @@ -7,10 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../../collection'; -import Database from '../../database'; -import { HasOneRepository } from '../../relation-repository/hasone-repository'; -import { mockDatabase } from '../index'; +import { Collection, Database, HasOneRepository, createMockDatabase } from '@nocobase/database'; describe('has one repository', () => { let db: Database; @@ -26,7 +23,7 @@ describe('has one repository', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); User = db.collection({ name: 'users', fields: [ diff --git a/packages/core/database/src/__tests__/relation-repository/multi-filter-target-key.test.ts b/packages/core/database/src/__tests__/relation-repository/multi-filter-target-key.test.ts index 0b6790c452..4cd46d1b0b 100644 --- a/packages/core/database/src/__tests__/relation-repository/multi-filter-target-key.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/multi-filter-target-key.test.ts @@ -7,12 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { HasManyRepository, mockDatabase } from '../../index'; +import { Database, HasManyRepository, createMockDatabase } from '@nocobase/database'; + describe('multi target key in association repository', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/relation-repository/relation-repository.test.ts b/packages/core/database/src/__tests__/relation-repository/relation-repository.test.ts index 29d0b51a53..92486eaa8c 100644 --- a/packages/core/database/src/__tests__/relation-repository/relation-repository.test.ts +++ b/packages/core/database/src/__tests__/relation-repository/relation-repository.test.ts @@ -7,12 +7,12 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { MockDatabase, mockDatabase } from '../../mock-database'; +import { createMockDatabase, MockDatabase } from '@nocobase/database'; describe('relation repository', () => { let db: MockDatabase; - beforeEach(() => { - db = mockDatabase(); + beforeEach(async () => { + db = await createMockDatabase(); }); afterEach(async () => { diff --git a/packages/core/database/src/__tests__/repository.test.ts b/packages/core/database/src/__tests__/repository.test.ts index 4229ea5095..d878829014 100644 --- a/packages/core/database/src/__tests__/repository.test.ts +++ b/packages/core/database/src/__tests__/repository.test.ts @@ -7,11 +7,8 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Repository } from '@nocobase/database'; +import { Collection, createMockDatabase, Database, Repository } from '@nocobase/database'; import { vi } from 'vitest'; -import { Collection } from '../collection'; -import { Database } from '../database'; -import { mockDatabase } from './'; describe('repository', () => { test('value to filter', async () => { @@ -39,7 +36,7 @@ describe('find by targetKey', function () { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); @@ -91,7 +88,7 @@ describe('repository.find', () => { let Tag: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -284,7 +281,7 @@ describe('repository create with belongs to many', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); await db.clean({ drop: true }); @@ -363,7 +360,7 @@ describe('repository.create', () => { let Comment: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -434,7 +431,7 @@ describe('repository.update', () => { let Comment: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ @@ -687,7 +684,7 @@ describe('repository.destroy', () => { let Comment: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -755,7 +752,7 @@ describe('repository.relatedQuery', () => { let Comment: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', diff --git a/packages/core/database/src/__tests__/repository/aggregation.test.ts b/packages/core/database/src/__tests__/repository/aggregation.test.ts index bea0273b92..774c5e135c 100644 --- a/packages/core/database/src/__tests__/repository/aggregation.test.ts +++ b/packages/core/database/src/__tests__/repository/aggregation.test.ts @@ -7,9 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { BelongsToManyRepository, HasManyRepository, mockDatabase } from '../../index'; -import Database from '../../database'; -import { Collection } from '../../collection'; +import { + BelongsToManyRepository, + Collection, + Database, + HasManyRepository, + createMockDatabase, +} from '@nocobase/database'; describe('association aggregation', () => { let db: Database; @@ -23,7 +27,7 @@ describe('association aggregation', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ @@ -240,7 +244,7 @@ describe('Aggregation', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ diff --git a/packages/core/database/src/__tests__/repository/chunk.test.ts b/packages/core/database/src/__tests__/repository/chunk.test.ts index e04d358353..9f6bb0b93b 100644 --- a/packages/core/database/src/__tests__/repository/chunk.test.ts +++ b/packages/core/database/src/__tests__/repository/chunk.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import Database from '../../database'; -import { Collection } from '../../collection'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; import { vi } from 'vitest'; describe('repository chunk', () => { @@ -22,7 +20,7 @@ describe('repository chunk', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/repository/count.test.ts b/packages/core/database/src/__tests__/repository/count.test.ts index ac92ea3bce..6d23f9d91a 100644 --- a/packages/core/database/src/__tests__/repository/count.test.ts +++ b/packages/core/database/src/__tests__/repository/count.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import { HasManyRepository } from '../../relation-repository/hasmany-repository'; -import { Collection } from '../../collection'; +import { Collection, HasManyRepository, createMockDatabase } from '@nocobase/database'; describe('count', () => { let db; @@ -22,7 +20,7 @@ describe('count', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ diff --git a/packages/core/database/src/__tests__/repository/create.test.ts b/packages/core/database/src/__tests__/repository/create.test.ts index bc63f6bdf9..1dcc3918b6 100644 --- a/packages/core/database/src/__tests__/repository/create.test.ts +++ b/packages/core/database/src/__tests__/repository/create.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import Database from '../../database'; -import { Collection } from '../../collection'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; describe('create with hasMany', () => { let db: Database; @@ -21,7 +19,7 @@ describe('create with hasMany', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ @@ -79,7 +77,7 @@ describe('create with belongsToMany', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); Post = db.collection({ name: 'posts', @@ -139,7 +137,7 @@ describe('create', () => { let Role: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); Group = db.collection({ diff --git a/packages/core/database/src/__tests__/repository/destroy.test.ts b/packages/core/database/src/__tests__/repository/destroy.test.ts index ef4cfca4a0..38e5834345 100644 --- a/packages/core/database/src/__tests__/repository/destroy.test.ts +++ b/packages/core/database/src/__tests__/repository/destroy.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import { Collection } from '../../collection'; -import { Database } from '@nocobase/database'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; describe('destroy with targetKey', function () { let db: Database; @@ -21,7 +19,7 @@ describe('destroy with targetKey', function () { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -95,7 +93,7 @@ describe('destroy', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true, }); diff --git a/packages/core/database/src/__tests__/repository/find-with-collection-without-pk.test.ts b/packages/core/database/src/__tests__/repository/find-with-collection-without-pk.test.ts index 36d4a91f51..093377e0ae 100644 --- a/packages/core/database/src/__tests__/repository/find-with-collection-without-pk.test.ts +++ b/packages/core/database/src/__tests__/repository/find-with-collection-without-pk.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database from '../../database'; -import { mockDatabase } from '../index'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('find collection that without primary key', () => { let db: Database; beforeAll(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); diff --git a/packages/core/database/src/__tests__/repository/find.test.ts b/packages/core/database/src/__tests__/repository/find.test.ts index 824271b34c..b91c35de33 100644 --- a/packages/core/database/src/__tests__/repository/find.test.ts +++ b/packages/core/database/src/__tests__/repository/find.test.ts @@ -7,15 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { mockDatabase } from '../index'; -import Database from '@nocobase/database'; -import { Collection } from '../../collection'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; import qs from 'qs'; describe('find with associations', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); @@ -573,7 +571,7 @@ describe('repository find', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection<{ id: number; name: string }, { name: string }>({ name: 'users', diff --git a/packages/core/database/src/__tests__/repository/update-many.test.ts b/packages/core/database/src/__tests__/repository/update-many.test.ts index 9c24b4b235..60091326fa 100644 --- a/packages/core/database/src/__tests__/repository/update-many.test.ts +++ b/packages/core/database/src/__tests__/repository/update-many.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('update many', () => { let db: Database; @@ -16,7 +16,7 @@ describe('update many', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ diff --git a/packages/core/database/src/__tests__/repository/update.test.ts b/packages/core/database/src/__tests__/repository/update.test.ts index e9e03c59e6..61e554fbf1 100644 --- a/packages/core/database/src/__tests__/repository/update.test.ts +++ b/packages/core/database/src/__tests__/repository/update.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection, Database, mockDatabase } from '@nocobase/database'; +import { Collection, Database, createMockDatabase } from '@nocobase/database'; describe('update', () => { let db: Database; @@ -20,7 +20,7 @@ describe('update', () => { }); beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); PostTag = db.collection({ diff --git a/packages/core/database/src/__tests__/sequelize-hooks.test.ts b/packages/core/database/src/__tests__/sequelize-hooks.test.ts index b6846f520c..1d103caf1a 100644 --- a/packages/core/database/src/__tests__/sequelize-hooks.test.ts +++ b/packages/core/database/src/__tests__/sequelize-hooks.test.ts @@ -7,16 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Database, createMockDatabase } from '@nocobase/database'; import { vi } from 'vitest'; -import { Database } from '../database'; -import { mockDatabase } from './index'; // TODO describe('sequelize-hooks', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); await db.sync(); }); diff --git a/packages/core/database/src/__tests__/sort.test.ts b/packages/core/database/src/__tests__/sort.test.ts index e69f8b79f7..4fec649c63 100644 --- a/packages/core/database/src/__tests__/sort.test.ts +++ b/packages/core/database/src/__tests__/sort.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../database'; -import { mockDatabase } from './'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('sort', function () { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync.test.ts b/packages/core/database/src/__tests__/sync.test.ts index c6991f45eb..b785480ab8 100644 --- a/packages/core/database/src/__tests__/sync.test.ts +++ b/packages/core/database/src/__tests__/sync.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { createMockDatabase, Database } from '@nocobase/database'; import { vi } from 'vitest'; -import { Database, mockDatabase } from '@nocobase/database'; describe('sync', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ logging: console.log, }); diff --git a/packages/core/database/src/__tests__/sync/default-value.test.ts b/packages/core/database/src/__tests__/sync/default-value.test.ts index ebf880ef73..6485b3771d 100644 --- a/packages/core/database/src/__tests__/sync/default-value.test.ts +++ b/packages/core/database/src/__tests__/sync/default-value.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../../index'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('default value', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync/delete-field.test.ts b/packages/core/database/src/__tests__/sync/delete-field.test.ts index e30f507c0e..fb2e523487 100644 --- a/packages/core/database/src/__tests__/sync/delete-field.test.ts +++ b/packages/core/database/src/__tests__/sync/delete-field.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../../index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe.skip('delete field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync/empty-table.test.ts b/packages/core/database/src/__tests__/sync/empty-table.test.ts index 6a31931fa6..5daf459be5 100644 --- a/packages/core/database/src/__tests__/sync/empty-table.test.ts +++ b/packages/core/database/src/__tests__/sync/empty-table.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import * as process from 'process'; describe('empty table', () => { @@ -20,7 +20,7 @@ describe('empty table', () => { }; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync/foreign-key.test.ts b/packages/core/database/src/__tests__/sync/foreign-key.test.ts index 730a5d58e7..319ebc176f 100644 --- a/packages/core/database/src/__tests__/sync/foreign-key.test.ts +++ b/packages/core/database/src/__tests__/sync/foreign-key.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { primaryKey } from '@nocobase/client'; -import { Database, mockDatabase } from '@nocobase/database'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('foreign key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync/primary-key.test.ts b/packages/core/database/src/__tests__/sync/primary-key.test.ts index 2b30c64df6..a8630e5405 100644 --- a/packages/core/database/src/__tests__/sync/primary-key.test.ts +++ b/packages/core/database/src/__tests__/sync/primary-key.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../../index'; +import { createMockDatabase, Database } from '@nocobase/database'; import * as process from 'process'; describe('primary key', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); @@ -89,7 +89,7 @@ describe.skipIf(process.env['DB_DIALECT'] === 'sqlite')('primary key not in sqli let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/sync/unique-index.test.ts b/packages/core/database/src/__tests__/sync/unique-index.test.ts index 1e717aece2..7c852b55fe 100644 --- a/packages/core/database/src/__tests__/sync/unique-index.test.ts +++ b/packages/core/database/src/__tests__/sync/unique-index.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../../index'; +import { Database, createMockDatabase } from '@nocobase/database'; import { waitSecond } from '@nocobase/test'; describe('unique index', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/target-key.test.ts b/packages/core/database/src/__tests__/target-key.test.ts index ff040d2deb..6cb5a917ff 100644 --- a/packages/core/database/src/__tests__/target-key.test.ts +++ b/packages/core/database/src/__tests__/target-key.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../database'; -import { mockDatabase } from './index'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('targetKey', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/underscored-options.test.ts b/packages/core/database/src/__tests__/underscored-options.test.ts index 78f0ef5668..9b3accbe14 100644 --- a/packages/core/database/src/__tests__/underscored-options.test.ts +++ b/packages/core/database/src/__tests__/underscored-options.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('underscored options', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ underscored: true, }); diff --git a/packages/core/database/src/__tests__/unique.test.ts b/packages/core/database/src/__tests__/unique.test.ts index 19589105b3..5947400e58 100644 --- a/packages/core/database/src/__tests__/unique.test.ts +++ b/packages/core/database/src/__tests__/unique.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('unique field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ logging: console.log, }); diff --git a/packages/core/database/src/__tests__/update-association-values.test.ts b/packages/core/database/src/__tests__/update-association-values.test.ts index 0948ece271..536629fcd8 100644 --- a/packages/core/database/src/__tests__/update-association-values.test.ts +++ b/packages/core/database/src/__tests__/update-association-values.test.ts @@ -7,13 +7,12 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database } from '../database'; -import { mockDatabase } from './'; +import { Database, createMockDatabase } from '@nocobase/database'; describe('update associations', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/update-associations-source-key.test.ts b/packages/core/database/src/__tests__/update-associations-source-key.test.ts index 8f584fe0b6..af86808fa7 100644 --- a/packages/core/database/src/__tests__/update-associations-source-key.test.ts +++ b/packages/core/database/src/__tests__/update-associations-source-key.test.ts @@ -7,9 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../collection'; -import Database from '../database'; -import { mockDatabase } from '../mock-database'; +import { Collection, Database, createMockDatabase } from '@nocobase/database'; describe('update associations', () => { let db: Database; @@ -17,7 +15,7 @@ describe('update associations', () => { let Post: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -97,7 +95,7 @@ describe('update associations', () => { let Post: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -174,7 +172,7 @@ describe('update associations', () => { let Field: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); Table = db.collection({ name: 'table', diff --git a/packages/core/database/src/__tests__/update-associations-through.test.ts b/packages/core/database/src/__tests__/update-associations-through.test.ts index 0f05e10b16..ba51b4ff4b 100644 --- a/packages/core/database/src/__tests__/update-associations-through.test.ts +++ b/packages/core/database/src/__tests__/update-associations-through.test.ts @@ -7,14 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { createMockDatabase, Database } from '@nocobase/database'; import { vi } from 'vitest'; -import { Database } from '../database'; -import { mockDatabase } from './'; describe('update through', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/update-associations.test.ts b/packages/core/database/src/__tests__/update-associations.test.ts index cd458586b3..a54f4160f8 100644 --- a/packages/core/database/src/__tests__/update-associations.test.ts +++ b/packages/core/database/src/__tests__/update-associations.test.ts @@ -7,16 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../collection'; -import { Database } from '../database'; -import { updateAssociations } from '../update-associations'; -import { mockDatabase } from './'; +import { Collection, createMockDatabase, Database, updateAssociations } from '@nocobase/database'; describe('update associations', () => { describe('belongsTo', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true, }); @@ -304,7 +301,7 @@ describe('update associations', () => { let User: Collection; let Post: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -474,7 +471,7 @@ describe('update associations', () => { let Comment: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ name: 'users', @@ -592,7 +589,7 @@ describe('update associations', () => { let PostTag: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); PostTag = db.collection({ name: 'posts_tags', diff --git a/packages/core/database/src/__tests__/update-guard.test.ts b/packages/core/database/src/__tests__/update-guard.test.ts index 7ed1a8df00..5f31913071 100644 --- a/packages/core/database/src/__tests__/update-guard.test.ts +++ b/packages/core/database/src/__tests__/update-guard.test.ts @@ -7,11 +7,9 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection } from '../collection'; -import { mockDatabase } from './index'; -import { UpdateGuard } from '../update-guard'; +import { Collection, createMockDatabase, Database } from '@nocobase/database'; import lodash from 'lodash'; -import { Database } from '../database'; +import { UpdateGuard } from '../update-guard'; describe('update-guard', () => { let db: Database; @@ -21,7 +19,7 @@ describe('update-guard', () => { let Tag: Collection; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); User = db.collection({ @@ -425,7 +423,7 @@ describe('update-guard', () => { describe('One2One Association', () => { test('associationKeysToBeUpdate hasOne & BelongsTo', async () => { - const db = mockDatabase(); + const db = await createMockDatabase(); await db.clean({ drop: true }); const Post = db.collection({ name: 'posts', diff --git a/packages/core/database/src/__tests__/utils.test.ts b/packages/core/database/src/__tests__/utils.test.ts index 1fc5c7f4b4..9666f9fa18 100644 --- a/packages/core/database/src/__tests__/utils.test.ts +++ b/packages/core/database/src/__tests__/utils.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import Database, { mockDatabase } from '@nocobase/database'; +import Database, { createMockDatabase } from '@nocobase/database'; describe('database utils', () => { let db: Database; @@ -17,7 +17,7 @@ describe('database utils', () => { }); beforeEach(async () => { - db = mockDatabase({}); + db = await createMockDatabase({}); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/value-parsers/date.test.ts b/packages/core/database/src/__tests__/value-parsers/date.test.ts index 43e1262620..048e67b6e0 100644 --- a/packages/core/database/src/__tests__/value-parsers/date.test.ts +++ b/packages/core/database/src/__tests__/value-parsers/date.test.ts @@ -7,16 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Database, DateValueParser, createMockDatabase } from '@nocobase/database'; import dayjs from 'dayjs'; -import { Database, mockDatabase } from '../..'; -import { DateValueParser } from '../../value-parsers'; describe('number value parser', () => { let parser: DateValueParser; let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'tests', diff --git a/packages/core/database/src/__tests__/value-parsers/to-many.test.ts b/packages/core/database/src/__tests__/value-parsers/to-many.test.ts index f8f4a0c0db..383b8b279b 100644 --- a/packages/core/database/src/__tests__/value-parsers/to-many.test.ts +++ b/packages/core/database/src/__tests__/value-parsers/to-many.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../..'; -import { ToManyValueParser } from '../../value-parsers'; +import { Database, ToManyValueParser, createMockDatabase } from '@nocobase/database'; describe('number value parser', () => { let parser: ToManyValueParser; let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'posts', @@ -102,7 +101,7 @@ describe('china region', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'users', diff --git a/packages/core/database/src/__tests__/value-parsers/to-one.test.ts b/packages/core/database/src/__tests__/value-parsers/to-one.test.ts index 13b98eb871..4990b4b32d 100644 --- a/packages/core/database/src/__tests__/value-parsers/to-one.test.ts +++ b/packages/core/database/src/__tests__/value-parsers/to-one.test.ts @@ -7,15 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '../..'; -import { ToManyValueParser } from '../../value-parsers'; +import { Database, ToManyValueParser, createMockDatabase } from '@nocobase/database'; describe('number value parser', () => { let parser: ToManyValueParser; let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.collection({ name: 'posts', diff --git a/packages/core/database/src/__tests__/view/list-view.test.ts b/packages/core/database/src/__tests__/view/list-view.test.ts index bc18e9f7f8..0cc535659b 100644 --- a/packages/core/database/src/__tests__/view/list-view.test.ts +++ b/packages/core/database/src/__tests__/view/list-view.test.ts @@ -7,13 +7,13 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; describe('list view', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/view/view-collection.test.ts b/packages/core/database/src/__tests__/view/view-collection.test.ts index f7b0931aaf..b126ba6e7d 100644 --- a/packages/core/database/src/__tests__/view/view-collection.test.ts +++ b/packages/core/database/src/__tests__/view/view-collection.test.ts @@ -7,16 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { vi } from 'vitest'; +import { Database, ViewCollection, createMockDatabase } from '@nocobase/database'; import { uid } from '@nocobase/utils'; -import { Database, mockDatabase } from '../../index'; -import { ViewCollection } from '../../view-collection'; +import { vi } from 'vitest'; describe.runIf(process.env['DB_DIALECT'] === 'postgres')('pg only view', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); @@ -272,7 +271,7 @@ describe('create view', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); diff --git a/packages/core/database/src/__tests__/view/view-inference.test.ts b/packages/core/database/src/__tests__/view/view-inference.test.ts index a78c68d968..f969d21e2d 100644 --- a/packages/core/database/src/__tests__/view/view-inference.test.ts +++ b/packages/core/database/src/__tests__/view/view-inference.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { ViewFieldInference } from '../../view/view-inference'; describe('view inference', function () { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); }); diff --git a/packages/core/database/src/__tests__/view/view-repository.test.ts b/packages/core/database/src/__tests__/view/view-repository.test.ts index c3bb8afe15..938dde0952 100644 --- a/packages/core/database/src/__tests__/view/view-repository.test.ts +++ b/packages/core/database/src/__tests__/view/view-repository.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { uid } from '@nocobase/utils'; describe('view repository', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/__tests__/view/view-with-association.test.ts b/packages/core/database/src/__tests__/view/view-with-association.test.ts index 6d21695a5c..2f22781910 100644 --- a/packages/core/database/src/__tests__/view/view-with-association.test.ts +++ b/packages/core/database/src/__tests__/view/view-with-association.test.ts @@ -7,15 +7,15 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { uid } from '@nocobase/utils'; -import { Database, mockDatabase, ViewFieldInference } from '../../index'; +import { createMockDatabase, Database, ViewFieldInference } from '@nocobase/database'; import { pgOnly } from '@nocobase/test'; +import { uid } from '@nocobase/utils'; pgOnly()('view with association', () => { let db: Database; beforeEach(async () => { - db = mockDatabase({ + db = await createMockDatabase({ tablePrefix: '', }); await db.clean({ drop: true }); diff --git a/packages/core/database/src/index.ts b/packages/core/database/src/index.ts index cbd7adf116..60df55e6e4 100644 --- a/packages/core/database/src/index.ts +++ b/packages/core/database/src/index.ts @@ -25,16 +25,20 @@ export { ValidationErrorItem, where, } from 'sequelize'; +export * from './belongs-to-array/belongs-to-array-repository'; export * from './collection'; export * from './collection-group-manager'; export * from './collection-importer'; export * from './database'; export { Database as default } from './database'; +export * from './dialects'; export * from './field-repository/array-field-repository'; export * from './fields'; export * from './filter-match'; export { default as FilterParser } from './filter-parser'; +export * from './helpers'; export * from './inherited-collection'; +export * from './interfaces'; export * from './magic-attribute-model'; export * from './migration'; export * from './mock-database'; @@ -42,17 +46,15 @@ export * from './model'; export * from './relation-repository/belongs-to-many-repository'; export * from './relation-repository/belongs-to-repository'; export * from './relation-repository/hasmany-repository'; +export * from './relation-repository/hasone-repository'; export * from './relation-repository/multiple-relation-repository'; export * from './relation-repository/single-relation-repository'; -export * from './belongs-to-array/belongs-to-array-repository'; export * from './repository'; +export { default as sqlParser, SQLParserTypes } from './sql-parser'; export * from './update-associations'; export { snakeCase } from './utils'; export * from './value-parsers'; export * from './view-collection'; -export * from './view/view-inference'; -export * from './helpers'; -export { default as sqlParser, SQLParserTypes } from './sql-parser'; -export * from './interfaces'; export { default as fieldTypeMap } from './view/field-type-map'; -export * from './dialects'; + +export * from './view/view-inference'; diff --git a/packages/core/database/src/mock-database.ts b/packages/core/database/src/mock-database.ts index 7b7a0c1dc3..b476ea5bce 100644 --- a/packages/core/database/src/mock-database.ts +++ b/packages/core/database/src/mock-database.ts @@ -8,11 +8,11 @@ */ /* istanbul ignore file -- @preserve */ +import { Database, IDatabaseOptions } from '@nocobase/database'; import { merge } from '@nocobase/utils'; import { customAlphabet } from 'nanoid'; import fetch from 'node-fetch'; import path from 'path'; -import { Database, IDatabaseOptions } from './database'; export class MockDatabase extends Database { constructor(options: IDatabaseOptions) { @@ -58,8 +58,21 @@ function customLogger(queryString, queryObject) { } } +export async function createMockDatabase(options: IDatabaseOptions = {}) { + try { + // @ts-ignore + const { staticImport } = await import('@nocobase/plugin-data-source-external-mssql/server/static-import'); + await staticImport(); + } catch (error) { + // error + } + return mockDatabase(options); +} + export function mockDatabase(options: IDatabaseOptions = {}): MockDatabase { const dbOptions = merge(getConfigByEnv(), options) as any; + // eslint-disable-next-line prefer-const + let db: any; if (process.env['DB_TEST_PREFIX']) { let configKey = 'database'; @@ -100,7 +113,7 @@ export function mockDatabase(options: IDatabaseOptions = {}): MockDatabase { } } - const db = new MockDatabase(dbOptions); + db = new MockDatabase(dbOptions); - return db; + return db as MockDatabase; } diff --git a/packages/core/test/src/server/index.ts b/packages/core/test/src/server/index.ts index 8dd864d189..cbe223c54b 100644 --- a/packages/core/test/src/server/index.ts +++ b/packages/core/test/src/server/index.ts @@ -10,7 +10,7 @@ import { describe } from 'vitest'; import ws from 'ws'; -export { MockDatabase, mockDatabase } from '@nocobase/database'; +export { createMockDatabase, MockDatabase, mockDatabase } from '@nocobase/database'; export { default as supertest } from 'supertest'; export * from './memory-pub-sub-adapter'; export * from './mock-isolated-cluster'; diff --git a/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/infer-fields.test.ts b/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/infer-fields.test.ts index 5bb99776d7..3df2d6d979 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/infer-fields.test.ts +++ b/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/infer-fields.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { SQLModel } from '../sql-collection'; describe('infer fields', () => { let db: Database; beforeAll(async () => { - db = mockDatabase({ tablePrefix: '' }); + db = await createMockDatabase({ tablePrefix: '' }); await db.clean({ drop: true }); db.collection({ diff --git a/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/sql-collection.test.ts b/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/sql-collection.test.ts index d3ca5537a8..d931cb7b0f 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/sql-collection.test.ts +++ b/packages/plugins/@nocobase/plugin-collection-sql/src/server/__tests__/sql-collection.test.ts @@ -7,11 +7,11 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Collection, mockDatabase } from '@nocobase/database'; +import { Collection, createMockDatabase } from '@nocobase/database'; import { SQLCollection } from '../sql-collection'; test('sql-collection', async () => { - const db = mockDatabase({ tablePrefix: '' }); + const db = await createMockDatabase({ tablePrefix: '' }); await db.clean({ drop: true }); db.collectionFactory.registerCollectionType(SQLCollection, { condition: (options) => { diff --git a/packages/plugins/@nocobase/plugin-field-formula/src/server/__tests__/formula-field.test.ts b/packages/plugins/@nocobase/plugin-field-formula/src/server/__tests__/formula-field.test.ts index 187f767874..eab8c29e04 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/src/server/__tests__/formula-field.test.ts +++ b/packages/plugins/@nocobase/plugin-field-formula/src/server/__tests__/formula-field.test.ts @@ -7,14 +7,14 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database } from '@nocobase/database'; import { FormulaField } from '../formula-field'; describe('formula field', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.registerFieldTypes({ formula: FormulaField, diff --git a/packages/plugins/@nocobase/plugin-field-sort/src/server/__tests__/sort.test.ts b/packages/plugins/@nocobase/plugin-field-sort/src/server/__tests__/sort.test.ts index 8185c072e3..85ce42325a 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/src/server/__tests__/sort.test.ts +++ b/packages/plugins/@nocobase/plugin-field-sort/src/server/__tests__/sort.test.ts @@ -7,12 +7,12 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Database, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, Database, mockDatabase } from '@nocobase/database'; import { createMockServer, MockServer } from '@nocobase/test'; -import Plugin from '..'; import { SequelizeCollectionManager, SequelizeDataSource } from '@nocobase/data-source-manager'; import { uid } from '@nocobase/utils'; +import Plugin from '..'; describe('sort field', () => { let app: MockServer; @@ -30,7 +30,7 @@ describe('sort field', () => { new SequelizeDataSource({ name: 'another', collectionManager: { - database: mockDatabase({ + database: await createMockDatabase({ tablePrefix: `t${uid(5)}`, }), }, diff --git a/packages/plugins/@nocobase/plugin-localization/src/server/__tests__/source-manager.test.ts b/packages/plugins/@nocobase/plugin-localization/src/server/__tests__/source-manager.test.ts index 755950534b..b0dd38bf55 100644 --- a/packages/plugins/@nocobase/plugin-localization/src/server/__tests__/source-manager.test.ts +++ b/packages/plugins/@nocobase/plugin-localization/src/server/__tests__/source-manager.test.ts @@ -7,7 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { MockDatabase, mockDatabase } from '@nocobase/database'; +import { createMockDatabase, MockDatabase } from '@nocobase/database'; import { SourceManager } from '../source-manager'; describe('source-manager', async () => { @@ -16,7 +16,7 @@ describe('source-manager', async () => { beforeEach(async () => { sourceManager = new SourceManager(); - db = mockDatabase(); + db = await createMockDatabase(); }); afterEach(async () => { diff --git a/packages/plugins/@nocobase/plugin-map/src/server/__tests__/fields.test.ts b/packages/plugins/@nocobase/plugin-map/src/server/__tests__/fields.test.ts index 41b68d6e45..6efdd5281a 100644 --- a/packages/plugins/@nocobase/plugin-map/src/server/__tests__/fields.test.ts +++ b/packages/plugins/@nocobase/plugin-map/src/server/__tests__/fields.test.ts @@ -8,7 +8,7 @@ */ import Database from '@nocobase/database'; -import { mockDatabase } from '@nocobase/test'; +import { createMockDatabase } from '@nocobase/test'; import { CircleField, LineStringField, PointField, PolygonField } from '../fields'; const data = { @@ -32,7 +32,7 @@ describe('fields', () => { let db: Database; beforeEach(async () => { - db = mockDatabase(); + db = await createMockDatabase(); await db.clean({ drop: true }); db.registerFieldTypes({ point: PointField, diff --git a/packages/plugins/@nocobase/plugin-workflow-test/src/server/index.ts b/packages/plugins/@nocobase/plugin-workflow-test/src/server/index.ts index 064c1b8f7c..8f505d5c0d 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/src/server/index.ts +++ b/packages/plugins/@nocobase/plugin-workflow-test/src/server/index.ts @@ -10,13 +10,20 @@ import path from 'path'; import { ApplicationOptions, Plugin } from '@nocobase/server'; -import { MockClusterOptions, MockServer, createMockCluster, createMockServer, mockDatabase } from '@nocobase/test'; +import { + MockClusterOptions, + MockServer, + createMockCluster, + createMockDatabase, + createMockServer, + mockDatabase, +} from '@nocobase/test'; -import functions from './functions'; -import triggers from './triggers'; -import instructions from './instructions'; import { SequelizeCollectionManager, SequelizeDataSource } from '@nocobase/data-source-manager'; import { uid } from '@nocobase/utils'; +import functions from './functions'; +import instructions from './instructions'; +import triggers from './triggers'; export { sleep } from '@nocobase/test'; interface WorkflowMockServerOptions extends ApplicationOptions { @@ -62,7 +69,7 @@ export async function getApp({ new SequelizeDataSource({ name: 'another', collectionManager: { - database: mockDatabase({ + database: await createMockDatabase({ tablePrefix: `t${uid(5)}`, }), }, From 1470ed902a5edc422cc437bfe5937f3605f1bbb4 Mon Sep 17 00:00:00 2001 From: Katherine Date: Fri, 21 Mar 2025 13:17:00 +0800 Subject: [PATCH 018/137] fix: map block key management issue causing request failures due to invisible characters (#6521) --- .../plugin-map/src/client/components/Configuration.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx b/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx index 9eacc12916..ab8af6f8bb 100644 --- a/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx +++ b/packages/plugins/@nocobase/plugin-map/src/client/components/Configuration.tsx @@ -32,11 +32,19 @@ const BaseConfiguration: React.FC = ({ type, children }) return apiClient.resource(MapConfigurationResourceKey); }, [apiClient]); + function removeInvisibleCharsFromObject(obj: Record): Record { + const cleanObj: Record = {}; + for (const [key, value] of Object.entries(obj)) { + cleanObj[key] = typeof value === 'string' ? value.replace(/[\p{C}\p{Z}\p{Zl}\p{Zp}]+/gu, '') : value; + } + return cleanObj; + } + const onSubmit = async (values) => { await form.validateFields(); resource .set({ - ...values, + ...removeInvisibleCharsFromObject(values), type, }) .then((res) => { From 44ee058730ef7e16e14b53a7ecbe43ba0836abe6 Mon Sep 17 00:00:00 2001 From: chenos Date: Sat, 22 Mar 2025 05:13:24 +0800 Subject: [PATCH 019/137] fix: getFileKey (#6523) * fix: getFileKey * fix: storage cannot be deleted --- .../plugin-file-manager/src/server/server.ts | 19 +++++++++++++++++++ .../src/server/storages/index.ts | 6 +++++- .../src/server/storages/s3.ts | 8 ++++---- .../plugin-file-manager/src/server/utils.ts | 3 ++- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/server.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/server.ts index 5b6b715e4e..a5dc7f2a30 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/server.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/server.ts @@ -62,11 +62,21 @@ export class PluginFileManagerServer extends Plugin { return; } + if (!record.get('storageId')) { + return; + } + const storage = this.storagesCache.get(record.get('storageId')); + if (!storage) { + return; + } if (storage?.paranoid) { return; } const Type = this.storageTypes.get(storage.type); + if (!Type) { + return; + } const storageConfig = new Type(storage); const result = await storageConfig.delete([record as unknown as AttachmentModel]); if (!result[0]) { @@ -245,6 +255,15 @@ export class PluginFileManagerServer extends Plugin { ); }); Storage.afterDestroy((m, { transaction }) => { + for (const collection of this.db.collections.values()) { + if (collection?.options?.template === 'file' && collection?.options?.storage === m.name) { + throw new Error( + this.t( + `The storage "${m.name}" is in use in collection "${collection.name}" and cannot be deleted.`, + ) as any, + ); + } + } this.storagesCache.delete(m.id); this.sendSyncMessage( { diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts index afd5d2bcf0..355fb4ea00 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/index.ts @@ -10,7 +10,7 @@ import { isURL } from '@nocobase/utils'; import { StorageEngine } from 'multer'; import urlJoin from 'url-join'; -import { encodeURL, ensureUrlEncoded } from '../utils'; +import { encodeURL, ensureUrlEncoded, getFileKey } from '../utils'; export interface StorageModel { id?: number; @@ -42,6 +42,10 @@ export abstract class StorageType { abstract make(): StorageEngine; abstract delete(records: AttachmentModel[]): [number, AttachmentModel[]] | Promise<[number, AttachmentModel[]]>; + getFileKey(record: AttachmentModel) { + return getFileKey(record); + } + getFileData?(file: { [key: string]: any }): { [key: string]: any }; getFileURL(file: AttachmentModel, preview?: boolean): string | Promise { // 兼容历史数据 diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts index 98113ce410..9e63d62478 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts @@ -7,11 +7,11 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { S3Client, DeleteObjectCommand } from '@aws-sdk/client-s3'; +import { DeleteObjectCommand, S3Client } from '@aws-sdk/client-s3'; import crypto from 'crypto'; import { AttachmentModel, StorageType } from '.'; import { STORAGE_TYPE_S3 } from '../../constants'; -import { cloudFilenameGetter, getFileKey } from '../utils'; +import { cloudFilenameGetter } from '../utils'; export default class extends StorageType { static defaults() { @@ -87,8 +87,8 @@ export default class extends StorageType { async delete(records: AttachmentModel[]): Promise<[number, AttachmentModel[]]> { const { Deleted } = await this.deleteS3Objects( this.storage.options.bucket, - records.map((record) => getFileKey(record)), + records.map((record) => this.getFileKey(record)), ); - return [Deleted.length, records.filter((record) => !Deleted.find((item) => item.Key === getFileKey(record)))]; + return [Deleted.length, records.filter((record) => !Deleted.find((item) => item.Key === this.getFileKey(record)))]; } } diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts index bdf312992e..a5d6b1334d 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts @@ -9,6 +9,7 @@ import { uid } from '@nocobase/utils'; import path from 'path'; +import urlJoin from 'url-join'; export function getFilename(req, file, cb) { const originalname = Buffer.from(file.originalname, 'binary').toString('utf8'); @@ -27,7 +28,7 @@ export const cloudFilenameGetter = (storage) => (req, file, cb) => { }; export function getFileKey(record) { - return [record.path.replace(/^\/|\/$/g, ''), record.filename].filter(Boolean).join('/'); + return urlJoin(record.path, record.filename).replace(/^\//, ''); } export function ensureUrlEncoded(value) { From f7a81858eaa8c56eba4f94ea13df4168e22e6cf4 Mon Sep 17 00:00:00 2001 From: chenos Date: Sat, 22 Mar 2025 08:48:00 +0800 Subject: [PATCH 020/137] fix: missing authenticator (#6526) --- packages/plugins/@nocobase/plugin-auth/src/server/plugin.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-auth/src/server/plugin.ts b/packages/plugins/@nocobase/plugin-auth/src/server/plugin.ts index 960427b2d6..e515c6903a 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/server/plugin.ts +++ b/packages/plugins/@nocobase/plugin-auth/src/server/plugin.ts @@ -11,6 +11,7 @@ import { Cache } from '@nocobase/cache'; import { Model } from '@nocobase/database'; import { InstallOptions, Plugin } from '@nocobase/server'; import { tval } from '@nocobase/utils'; +import { tokenPolicyCollectionName, tokenPolicyRecordKey } from '../constants'; import { namespace, presetAuthType, presetAuthenticator } from '../preset'; import authActions from './actions/auth'; import authenticatorsActions from './actions/authenticators'; @@ -19,7 +20,6 @@ import { AuthModel } from './model/authenticator'; import { Storer } from './storer'; import { TokenBlacklistService } from './token-blacklist'; import { TokenController } from './token-controller'; -import { tokenPolicyCollectionName, tokenPolicyRecordKey } from '../constants'; export class PluginAuthServer extends Plugin { cache: Cache; @@ -139,7 +139,7 @@ export class PluginAuthServer extends Plugin { }); this.app.on('ws:message:auth:token', async ({ clientId, payload }) => { - if (!payload || !payload.token || !payload.authenticator) { + if (!payload || !payload.token) { this.app.emit(`ws:removeTag`, { clientId, tagKey: 'userId', @@ -147,7 +147,7 @@ export class PluginAuthServer extends Plugin { return; } - const auth = await this.app.authManager.get(payload.authenticator, { + const auth = await this.app.authManager.get(payload.authenticator || 'basic', { getBearerToken: () => payload.token, app: this.app, db: this.app.db, From 369754f8f06238ae7181539d9f5d56a73954f949 Mon Sep 17 00:00:00 2001 From: gchust Date: Sat, 22 Mar 2025 09:25:43 +0800 Subject: [PATCH 021/137] fix: ensure old instances are cleaned up during application reinitialization (#6524) * fix: getConnection called after connection closed error * fix: ensure old instances are cleaned up during application reinitialization --- packages/core/server/src/application.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/server/src/application.ts b/packages/core/server/src/application.ts index 2002472d51..835997a529 100644 --- a/packages/core/server/src/application.ts +++ b/packages/core/server/src/application.ts @@ -572,6 +572,10 @@ export class Application exten this.log.info('app reinitializing'); + // trigger the stop events to make sure old instances are cleaned up + await this.emitAsync('beforeStop'); + await this.emitAsync('afterStop'); + if (this.cacheManager) { await this.cacheManager.close(); } From e7702b8537a834df89bda87d8c9974bc49582ec2 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Sat, 22 Mar 2025 20:15:38 +0800 Subject: [PATCH 022/137] fix(auth): trim authenticator options (#6527) * fix: trim authenticator options * fix: bug --- .../src/client/settings/Authenticator.tsx | 90 ++++++++++++++++++- .../client/settings/schemas/authenticators.ts | 4 +- 2 files changed, 89 insertions(+), 5 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-auth/src/client/settings/Authenticator.tsx b/packages/plugins/@nocobase/plugin-auth/src/client/settings/Authenticator.tsx index d10d8216c3..8d53e82f7d 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/client/settings/Authenticator.tsx +++ b/packages/plugins/@nocobase/plugin-auth/src/client/settings/Authenticator.tsx @@ -13,7 +13,10 @@ import { useAPIClient, useActionContext, useAsyncData, + useRecord, useRequest, + useResourceActionContext, + useResourceContext, } from '@nocobase/client'; import { Card } from 'antd'; import React, { useState } from 'react'; @@ -24,7 +27,23 @@ import { AuthTypeContext, AuthTypesContext, useAuthTypes } from './authType'; import { useValuesFromOptions, Options } from './Options'; import { useTranslation } from 'react-i18next'; import { useAuthTranslation } from '../locale'; -import { Schema } from '@formily/react'; +import { Schema, useField, useForm } from '@formily/react'; + +function recursiveTrim(obj: Record | string | any[]) { + if (typeof obj === 'string') { + return obj.trim(); + } + + if (Array.isArray(obj)) { + return obj.map((item) => recursiveTrim(item)); + } + + if (typeof obj === 'object' && obj !== null) { + return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, recursiveTrim(value)])); + } + + return obj; +} const useCloseAction = () => { const { setVisible } = useActionContext(); @@ -56,7 +75,7 @@ const AddNew = () => { {t('Add new')} - + ); @@ -69,6 +88,71 @@ const useCanNotDelete = () => { return false; }; +export const useCreateAction = () => { + const form = useForm(); + const field = useField(); + const ctx = useActionContext(); + const { refresh } = useResourceActionContext(); + const { resource } = useResourceContext(); + return { + async run() { + try { + await form.submit(); + field.data = field.data || {}; + field.data.loading = true; + const options = form.values.options || {}; + await resource.create({ + values: { + ...form.values, + options: recursiveTrim(options), + }, + }); + ctx.setVisible(false); + await form.reset(); + field.data.loading = false; + refresh(); + } catch (error) { + if (field.data) { + field.data.loading = false; + } + } + }, + }; +}; + +export const useUpdateAction = () => { + const field = useField(); + const form = useForm(); + const ctx = useActionContext(); + const { refresh } = useResourceActionContext(); + const { resource, targetKey } = useResourceContext(); + const { [targetKey]: filterByTk } = useRecord(); + return { + async run() { + await form.submit(); + field.data = field.data || {}; + field.data.loading = true; + try { + const options = form.values.options || {}; + await resource.update({ + filterByTk, + values: { + ...form.values, + options: recursiveTrim(options), + }, + }); + ctx.setVisible(false); + await form.reset(); + refresh(); + } catch (e) { + console.log(e); + } finally { + field.data.loading = false; + } + }, + }; +}; + export const Authenticator = () => { const { t } = useAuthTranslation(); const [types, setTypes] = useState([]); @@ -99,7 +183,7 @@ export const Authenticator = () => { diff --git a/packages/plugins/@nocobase/plugin-auth/src/client/settings/schemas/authenticators.ts b/packages/plugins/@nocobase/plugin-auth/src/client/settings/schemas/authenticators.ts index b021a9384f..ab17b3a218 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/client/settings/schemas/authenticators.ts +++ b/packages/plugins/@nocobase/plugin-auth/src/client/settings/schemas/authenticators.ts @@ -153,7 +153,7 @@ export const createFormSchema: ISchema = { 'x-component': 'Action', 'x-component-props': { type: 'primary', - useAction: '{{ cm.useCreateAction }}', + useAction: '{{ useCreateAction }}', }, }, }, @@ -389,7 +389,7 @@ export const authenticatorsSchema: ISchema = { 'x-component': 'Action', 'x-component-props': { type: 'primary', - useAction: '{{ cm.useUpdateAction }}', + useAction: '{{ useUpdateAction }}', }, }, }, From e3b99cc75c8140e2470cfb7209381d9ba9458f75 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 12:57:51 +0000 Subject: [PATCH 023/137] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publi?= =?UTF-8?q?sh=20v1.6.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lerna.json | 2 +- packages/core/acl/package.json | 6 +- packages/core/actions/package.json | 8 +- packages/core/app/package.json | 10 +- packages/core/auth/package.json | 12 +- packages/core/build/package.json | 2 +- packages/core/cache/package.json | 2 +- packages/core/cli/package.json | 6 +- packages/core/client/package.json | 8 +- .../core/create-nocobase-app/package.json | 2 +- .../core/data-source-manager/package.json | 12 +- packages/core/database/package.json | 6 +- packages/core/devtools/package.json | 8 +- packages/core/evaluators/package.json | 4 +- packages/core/lock-manager/package.json | 4 +- packages/core/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 28 ++-- packages/core/telemetry/package.json | 4 +- packages/core/test/package.json | 4 +- packages/core/utils/package.json | 2 +- .../plugins/@nocobase/plugin-acl/package.json | 2 +- .../plugin-action-bulk-edit/package.json | 2 +- .../plugin-action-bulk-update/package.json | 2 +- .../plugin-action-custom-request/package.json | 2 +- .../plugin-action-duplicate/package.json | 2 +- .../plugin-action-export/package.json | 2 +- .../plugin-action-import/package.json | 2 +- .../plugin-action-print/package.json | 2 +- .../plugins/@nocobase/plugin-ai/package.json | 2 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/package.json | 2 +- .../plugin-async-task-manager/package.json | 2 +- .../@nocobase/plugin-audit-logs/package.json | 2 +- .../@nocobase/plugin-auth-sms/package.json | 2 +- .../@nocobase/plugin-auth/package.json | 2 +- .../plugin-backup-restore/package.json | 2 +- .../plugin-block-iframe/package.json | 2 +- .../plugin-block-workbench/package.json | 2 +- .../@nocobase/plugin-calendar/package.json | 2 +- .../@nocobase/plugin-charts/package.json | 2 +- .../@nocobase/plugin-client/package.json | 2 +- .../plugin-collection-sql/package.json | 2 +- .../plugin-collection-tree/package.json | 2 +- .../plugin-data-source-main/package.json | 2 +- .../plugin-data-source-manager/package.json | 2 +- .../plugin-data-visualization/package.json | 2 +- .../plugin-disable-pm-add/package.json | 2 +- .../plugin-environment-variables/package.json | 2 +- .../plugin-error-handler/package.json | 2 +- .../plugin-field-china-region/package.json | 2 +- .../plugin-field-formula/package.json | 2 +- .../plugin-field-m2m-array/package.json | 2 +- .../plugin-field-markdown-vditor/package.json | 2 +- .../plugin-field-sequence/package.json | 2 +- .../@nocobase/plugin-field-sort/package.json | 2 +- .../plugin-file-manager/package.json | 2 +- .../@nocobase/plugin-gantt/package.json | 2 +- .../package.json | 2 +- .../@nocobase/plugin-kanban/package.json | 2 +- .../plugin-localization/package.json | 2 +- .../@nocobase/plugin-logger/package.json | 2 +- .../plugins/@nocobase/plugin-map/package.json | 2 +- .../plugin-mobile-client/package.json | 2 +- .../@nocobase/plugin-mobile/package.json | 2 +- .../plugin-mock-collections/package.json | 2 +- .../plugin-multi-app-manager/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-email/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-manager/package.json | 2 +- .../plugin-notifications/package.json | 2 +- .../plugin-public-forms/package.json | 2 +- .../plugin-sample-hello/package.json | 2 +- .../plugin-snapshot-field/package.json | 2 +- .../plugin-system-settings/package.json | 2 +- .../plugin-theme-editor/package.json | 2 +- .../plugin-ui-schema-storage/package.json | 2 +- .../plugin-user-data-sync/package.json | 2 +- .../@nocobase/plugin-users/package.json | 2 +- .../plugin-verification/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-aggregate/package.json | 2 +- .../plugin-workflow-delay/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-loop/package.json | 2 +- .../plugin-workflow-mailer/package.json | 2 +- .../plugin-workflow-manual/package.json | 2 +- .../plugin-workflow-notification/package.json | 2 +- .../plugin-workflow-parallel/package.json | 2 +- .../plugin-workflow-request/package.json | 2 +- .../plugin-workflow-sql/package.json | 2 +- .../plugin-workflow-test/package.json | 2 +- .../@nocobase/plugin-workflow/package.json | 4 +- packages/presets/nocobase/package.json | 142 +++++++++--------- 96 files changed, 214 insertions(+), 214 deletions(-) diff --git a/lerna.json b/lerna.json index af334fc744..05b387d350 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.7", + "version": "1.6.8", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index 1395f343dd..d5f7683dc8 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/resourcer": "1.6.8", + "@nocobase/utils": "1.6.8", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index eeb1c6b0c5..7431721b00 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.6.7", - "@nocobase/database": "1.6.7", - "@nocobase/resourcer": "1.6.7" + "@nocobase/cache": "1.6.8", + "@nocobase/database": "1.6.8", + "@nocobase/resourcer": "1.6.8" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index 1f5a0673d4..e64a63aff6 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.6.7", - "@nocobase/preset-nocobase": "1.6.7", - "@nocobase/server": "1.6.7" + "@nocobase/database": "1.6.8", + "@nocobase/preset-nocobase": "1.6.8", + "@nocobase/server": "1.6.8" }, "devDependencies": { - "@nocobase/client": "1.6.7" + "@nocobase/client": "1.6.8" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 997b548ae4..f857b47821 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.7", - "@nocobase/cache": "1.6.7", - "@nocobase/database": "1.6.7", - "@nocobase/resourcer": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/actions": "1.6.8", + "@nocobase/cache": "1.6.8", + "@nocobase/database": "1.6.8", + "@nocobase/resourcer": "1.6.8", + "@nocobase/utils": "1.6.8", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 36470b146d..53c0e02209 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.6.7", + "version": "1.6.8", "description": "Library build tool based on rollup.", "main": "lib/index.js", "types": "./lib/index.d.ts", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index de48867e40..f5fbaa17db 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index 4db00d830e..6d20828590 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.6.7", + "@nocobase/app": "1.6.8", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.19.0" }, "devDependencies": { - "@nocobase/devtools": "1.6.7" + "@nocobase/devtools": "1.6.8" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index d0449decc8..0ac008fa51 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -27,9 +27,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "1.6.7", - "@nocobase/sdk": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/evaluators": "1.6.8", + "@nocobase/sdk": "1.6.8", + "@nocobase/utils": "1.6.8", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index e3a8e82c59..81f3f07ced 100755 --- a/packages/core/create-nocobase-app/package.json +++ b/packages/core/create-nocobase-app/package.json @@ -1,6 +1,6 @@ { "name": "create-nocobase-app", - "version": "1.6.7", + "version": "1.6.8", "main": "src/index.js", "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index 2b77f4fd85..ca815ef792 100644 --- a/packages/core/data-source-manager/package.json +++ b/packages/core/data-source-manager/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/data-source-manager", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.7", - "@nocobase/cache": "1.6.7", - "@nocobase/database": "1.6.7", - "@nocobase/resourcer": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/actions": "1.6.8", + "@nocobase/cache": "1.6.8", + "@nocobase/database": "1.6.8", + "@nocobase/resourcer": "1.6.8", + "@nocobase/utils": "1.6.8", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index e3b0f19cbd..fa3e54c6f8 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.6.7", + "version": "1.6.8", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/logger": "1.6.8", + "@nocobase/utils": "1.6.8", "async-mutex": "^0.3.2", "chalk": "^4.1.1", "cron-parser": "4.4.0", diff --git a/packages/core/devtools/package.json b/packages/core/devtools/package.json index 314673ef7d..051ccd91cc 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.6.7", - "@nocobase/client": "1.6.7", - "@nocobase/test": "1.6.7", + "@nocobase/build": "1.6.8", + "@nocobase/client": "1.6.8", + "@nocobase/test": "1.6.8", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3.4", "@types/lodash": "^4.14.177", diff --git a/packages/core/evaluators/package.json b/packages/core/evaluators/package.json index d6abc18de2..c770bb1ab9 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.6.7", + "version": "1.6.8", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.4.9", - "@nocobase/utils": "1.6.7", + "@nocobase/utils": "1.6.8", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/lock-manager/package.json b/packages/core/lock-manager/package.json index 4c83002f5f..1213f6eee9 100644 --- a/packages/core/lock-manager/package.json +++ b/packages/core/lock-manager/package.json @@ -1,10 +1,10 @@ { "name": "@nocobase/lock-manager", - "version": "1.6.7", + "version": "1.6.8", "main": "lib/index.js", "license": "AGPL-3.0", "devDependencies": { - "@nocobase/utils": "1.6.7", + "@nocobase/utils": "1.6.8", "async-mutex": "^0.5.0" } } diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 801e147135..a464f42f6f 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.6.7", + "version": "1.6.8", "description": "nocobase logging library", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index 7dfe960330..a2a2c02889 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.6.7", + "version": "1.6.8", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.6.7", + "@nocobase/utils": "1.6.8", "deepmerge": "^4.2.2", "koa-compose": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/core/sdk/package.json b/packages/core/sdk/package.json index af06aed91a..21101ac8ee 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/core/server/package.json b/packages/core/server/package.json index d838bb30e7..1a8124c55f 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.6.7", + "version": "1.6.8", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,19 +10,19 @@ "@koa/cors": "^5.0.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.6.7", - "@nocobase/actions": "1.6.7", - "@nocobase/auth": "1.6.7", - "@nocobase/cache": "1.6.7", - "@nocobase/data-source-manager": "1.6.7", - "@nocobase/database": "1.6.7", - "@nocobase/evaluators": "1.6.7", - "@nocobase/lock-manager": "1.6.7", - "@nocobase/logger": "1.6.7", - "@nocobase/resourcer": "1.6.7", - "@nocobase/sdk": "1.6.7", - "@nocobase/telemetry": "1.6.7", - "@nocobase/utils": "1.6.7", + "@nocobase/acl": "1.6.8", + "@nocobase/actions": "1.6.8", + "@nocobase/auth": "1.6.8", + "@nocobase/cache": "1.6.8", + "@nocobase/data-source-manager": "1.6.8", + "@nocobase/database": "1.6.8", + "@nocobase/evaluators": "1.6.8", + "@nocobase/lock-manager": "1.6.8", + "@nocobase/logger": "1.6.8", + "@nocobase/resourcer": "1.6.8", + "@nocobase/sdk": "1.6.8", + "@nocobase/telemetry": "1.6.8", + "@nocobase/utils": "1.6.8", "@types/decompress": "4.2.7", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index a950ef1ff2..537fa23420 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.6.7", + "version": "1.6.8", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.6.7", + "@nocobase/utils": "1.6.8", "@opentelemetry/api": "^1.7.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", diff --git a/packages/core/test/package.json b/packages/core/test/package.json index f9d08fbbf9..ae3aeff19d 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.6.7", + "version": "1.6.8", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -51,7 +51,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "1.6.7", + "@nocobase/server": "1.6.8", "@playwright/test": "^1.45.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 63cf08864c..dc73fdbbd3 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.6.7", + "version": "1.6.8", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index 240d1bbd9d..e9553635c2 100644 --- a/packages/plugins/@nocobase/plugin-acl/package.json +++ b/packages/plugins/@nocobase/plugin-acl/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "权限控制", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index 0f7486a3c7..3a87fa5304 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-edit", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-edit", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-edit", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json index 0699eb3f02..c4fa1897b3 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-update", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-update", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-update", diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/package.json b/packages/plugins/@nocobase/plugin-action-custom-request/package.json index 3cf0ef20fc..428948fde7 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-custom-request", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-custom-request", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request", diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index 6be8d5b316..feaf5fbe8c 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/package.json +++ b/packages/plugins/@nocobase/plugin-action-duplicate/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-duplicate", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-duplicate", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-duplicate", diff --git a/packages/plugins/@nocobase/plugin-action-export/package.json b/packages/plugins/@nocobase/plugin-action-export/package.json index e99f7d6496..98d79d3e61 100644 --- a/packages/plugins/@nocobase/plugin-action-export/package.json +++ b/packages/plugins/@nocobase/plugin-action-export/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导出记录", "description": "Export filtered records to excel, you can configure which fields to export.", "description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-action-import/package.json b/packages/plugins/@nocobase/plugin-action-import/package.json index 70cb96dcf2..a2173df551 100644 --- a/packages/plugins/@nocobase/plugin-action-import/package.json +++ b/packages/plugins/@nocobase/plugin-action-import/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导入记录", "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.", "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-action-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index e2c4ef8e6a..a559322cfd 100644 --- a/packages/plugins/@nocobase/plugin-action-print/package.json +++ b/packages/plugins/@nocobase/plugin-action-print/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-print", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-print", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-print", diff --git a/packages/plugins/@nocobase/plugin-ai/package.json b/packages/plugins/@nocobase/plugin-ai/package.json index a43dfbf817..0a61607824 100644 --- a/packages/plugins/@nocobase/plugin-ai/package.json +++ b/packages/plugins/@nocobase/plugin-ai/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "AI 集成", "description": "Support integration with AI services, providing AI-related workflow nodes to enhance business processing capabilities.", "description.zh-CN": "支持接入 AI 服务,提供 AI 相关的工作流节点,增强业务处理能力。", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index 2fe33601c7..51507f782e 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/package.json +++ b/packages/plugins/@nocobase/plugin-api-doc/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-api-doc", - "version": "1.6.7", + "version": "1.6.8", "displayName": "API documentation", "displayName.zh-CN": "API 文档", "description": "An OpenAPI documentation generator for NocoBase HTTP API.", diff --git a/packages/plugins/@nocobase/plugin-api-keys/package.json b/packages/plugins/@nocobase/plugin-api-keys/package.json index cff36fc658..93cd711ef7 100644 --- a/packages/plugins/@nocobase/plugin-api-keys/package.json +++ b/packages/plugins/@nocobase/plugin-api-keys/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:API 密钥", "description": "Allows users to use API key to access application's HTTP API", "description.zh-CN": "允许用户使用 API 密钥访问应用的 HTTP API", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/package.json b/packages/plugins/@nocobase/plugin-async-task-manager/package.json index 6683c313be..8ef47c31b6 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/package.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "异步任务管理器", "description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.", "description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index bcdd1de4e9..cd1b7c6230 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/package.json +++ b/packages/plugins/@nocobase/plugin-audit-logs/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-audit-logs", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Audit logs (deprecated)", "displayName.zh-CN": "审计日志(废弃)", "description": "This plugin is deprecated. There will be a new audit log plugin in the future.", diff --git a/packages/plugins/@nocobase/plugin-auth-sms/package.json b/packages/plugins/@nocobase/plugin-auth-sms/package.json index e92f004075..d14450d550 100644 --- a/packages/plugins/@nocobase/plugin-auth-sms/package.json +++ b/packages/plugins/@nocobase/plugin-auth-sms/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-sms", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms", diff --git a/packages/plugins/@nocobase/plugin-auth/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index 21304434e1..b9e04d2682 100644 --- a/packages/plugins/@nocobase/plugin-auth/package.json +++ b/packages/plugins/@nocobase/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-auth", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index daf8fec998..2da6e00aca 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/package.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "应用的备份与还原(废弃)", "description": "Backup and restore applications for scenarios such as application replication, migration, and upgrades.", "description.zh-CN": "备份和还原应用,可用于应用的复制、迁移、升级等场景。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-block-iframe/package.json b/packages/plugins/@nocobase/plugin-block-iframe/package.json index 91e13d824d..2af54308ca 100644 --- a/packages/plugins/@nocobase/plugin-block-iframe/package.json +++ b/packages/plugins/@nocobase/plugin-block-iframe/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "区块:iframe", "description": "Create an iframe block on the page to embed and display external web pages or content.", "description.zh-CN": "在页面上创建和管理iframe,用于嵌入和展示外部网页或内容。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-block-workbench/package.json b/packages/plugins/@nocobase/plugin-block-workbench/package.json index 4edc1ad000..09bbba41de 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/package.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-block-workbench", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Block: Action panel", "displayName.zh-CN": "区块:操作面板", "description": "Centrally manages and displays various actions, allowing users to efficiently perform tasks. It supports extensibility, with current action types including pop-ups, links, scanning, and custom requests.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 5519c20a11..11875e0cc6 100644 --- a/packages/plugins/@nocobase/plugin-calendar/package.json +++ b/packages/plugins/@nocobase/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-calendar", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Calendar", "displayName.zh-CN": "日历", "description": "Provides callendar collection template and block for managing date data, typically for date/time related information such as events, appointments, tasks, and so on.", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index 662703a754..d2d07db138 100644 --- a/packages/plugins/@nocobase/plugin-charts/package.json +++ b/packages/plugins/@nocobase/plugin-charts/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "图表(废弃)", "description": "The plugin has been deprecated, please use the data visualization plugin instead.", "description.zh-CN": "已废弃插件,请使用数据可视化插件代替。", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index 70b390ec8c..8d2fa3ad49 100644 --- a/packages/plugins/@nocobase/plugin-client/package.json +++ b/packages/plugins/@nocobase/plugin-client/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "WEB 客户端", "description": "Provides a client interface for the NocoBase server", "description.zh-CN": "为 NocoBase 服务端提供客户端界面", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-sql/package.json b/packages/plugins/@nocobase/plugin-collection-sql/package.json index af654af214..992ad38395 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/package.json +++ b/packages/plugins/@nocobase/plugin-collection-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表: SQL", "description": "Provides SQL collection template", "description.zh-CN": "提供 SQL 数据表模板", - "version": "1.6.7", + "version": "1.6.8", "homepage": "https://docs-cn.nocobase.com/handbook/collection-sql", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/collection-sql", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-collection-tree/package.json b/packages/plugins/@nocobase/plugin-collection-tree/package.json index 9a4a50b16e..91769791dc 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/package.json +++ b/packages/plugins/@nocobase/plugin-collection-tree/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-collection-tree", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Collection: Tree", "displayName.zh-CN": "数据表:树", "description": "Provides tree collection template", diff --git a/packages/plugins/@nocobase/plugin-data-source-main/package.json b/packages/plugins/@nocobase/plugin-data-source-main/package.json index 41ccee48d6..ce05d83b39 100644 --- a/packages/plugins/@nocobase/plugin-data-source-main/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-main/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as PostgreSQL, MySQL, MariaDB and so on.", "description.zh-CN": "NocoBase 主数据库,支持 PostgreSQL、MySQL、MariaDB 等关系型数据库。", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/data-source-main", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-main", diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index 90d14a35f8..685680d3dd 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-source-manager", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "displayName": "Data source manager", "displayName.zh-CN": "数据源管理", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/package.json b/packages/plugins/@nocobase/plugin-data-visualization/package.json index a8fe1185bb..737d9d8db7 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/package.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-visualization", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Data visualization", "displayName.zh-CN": "数据可视化", "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.", diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index 0bc5577bb8..421e4f9a1a 100644 --- a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json +++ b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-disable-pm-add", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/package.json b/packages/plugins/@nocobase/plugin-environment-variables/package.json index 8b5251690c..40d32f5be2 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/package.json +++ b/packages/plugins/@nocobase/plugin-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-environment-variables", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index 5c78ee83b4..3e8af48293 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/package.json +++ b/packages/plugins/@nocobase/plugin-error-handler/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "错误处理器", "description": "Handling application errors and exceptions.", "description.zh-CN": "处理应用程序中的错误和异常。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-field-china-region/package.json b/packages/plugins/@nocobase/plugin-field-china-region/package.json index b3fbbe2742..2a7dc1dd02 100644 --- a/packages/plugins/@nocobase/plugin-field-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-field-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-china-region", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Collection field: administrative divisions of China", "displayName.zh-CN": "数据表字段:中国行政区划", "description": "Provides data and field type for administrative divisions of China.", diff --git a/packages/plugins/@nocobase/plugin-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 5023182176..471188b7c2 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/package.json +++ b/packages/plugins/@nocobase/plugin-field-formula/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:公式", "description": "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.", "description.zh-CN": "可以配置并存储同一条记录的多字段值之间的计算结果,支持 Math.js 和 Excel formula functions 两种引擎", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json index 597d1592c2..0e034d629d 100644 --- a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:多对多 (数组)", "description": "Allows to create many to many relationships between two models by storing an array of unique keys of the target model.", "description.zh-CN": "支持通过在数组中存储目标表唯一键的方式建立多对多关系。", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json index 6f4d5395df..7f9b314cc9 100644 --- a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:Markdown(Vditor)", "description": "Used to store Markdown and render it using Vditor editor, supports common Markdown syntax such as list, code, quote, etc., and supports uploading images, recordings, etc.It also allows for instant rendering, where what you see is what you get.", "description.zh-CN": "用于存储 Markdown,并使用 Vditor 编辑器渲染,支持常见 Markdown 语法,如列表,代码,引用等,并支持上传图片,录音等。同时可以做到即时渲染,所见即所得。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-markdown-vditor", diff --git a/packages/plugins/@nocobase/plugin-field-sequence/package.json b/packages/plugins/@nocobase/plugin-field-sequence/package.json index 17dbdb5ef4..13d70e2462 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/package.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:自动编码", "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index 27c628a317..6c1579ded4 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-sort", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "displayName": "Collection field: Sort", "displayName.zh-CN": "数据表字段:排序", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 7135933705..4f14aa2769 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/package.json +++ b/packages/plugins/@nocobase/plugin-file-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-file-manager", - "version": "1.6.7", + "version": "1.6.8", "displayName": "File manager", "displayName.zh-CN": "文件管理器", "description": "Provides files storage services with files collection template and attachment field.", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index 2c936a0e16..cdfedc4f73 100644 --- a/packages/plugins/@nocobase/plugin-gantt/package.json +++ b/packages/plugins/@nocobase/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-gantt", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Block: Gantt", "displayName.zh-CN": "区块:甘特图", "description": "Provides Gantt block.", diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json index c820ec66dd..778de77228 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "可视化数据表管理", "description": "An ER diagram-like tool. Currently only the Master database is supported.", "description.zh-CN": "类似 ER 图的工具,目前只支持主数据库。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/graph-collection-manager", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index 6ad6cc3c99..ceb0105bae 100644 --- a/packages/plugins/@nocobase/plugin-kanban/package.json +++ b/packages/plugins/@nocobase/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-kanban", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-kanban", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-kanban", diff --git a/packages/plugins/@nocobase/plugin-localization/package.json b/packages/plugins/@nocobase/plugin-localization/package.json index 74edd7cb17..96957e4b5d 100644 --- a/packages/plugins/@nocobase/plugin-localization/package.json +++ b/packages/plugins/@nocobase/plugin-localization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/localization-management", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/localization-management", diff --git a/packages/plugins/@nocobase/plugin-logger/package.json b/packages/plugins/@nocobase/plugin-logger/package.json index 23f56e185e..ca1491ad2b 100644 --- a/packages/plugins/@nocobase/plugin-logger/package.json +++ b/packages/plugins/@nocobase/plugin-logger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "日志", "description": "Server-side logs, mainly including API request logs and system runtime logs, and allows to package and download log files.", "description.zh-CN": "服务端日志,主要包括接口请求日志和系统运行日志,并支持打包和下载日志文件。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/logger", diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index 5d174240c2..d20aebeea8 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-map", "displayName": "Block: Map", "displayName.zh-CN": "区块:地图", - "version": "1.6.7", + "version": "1.6.8", "description": "Map block, support Gaode map and Google map, you can also extend more map types.", "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index 867896f184..935b19768c 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/package.json +++ b/packages/plugins/@nocobase/plugin-mobile-client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile-client", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile-client", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile-client", diff --git a/packages/plugins/@nocobase/plugin-mobile/package.json b/packages/plugins/@nocobase/plugin-mobile/package.json index b4cccde1a5..c5351af24a 100644 --- a/packages/plugins/@nocobase/plugin-mobile/package.json +++ b/packages/plugins/@nocobase/plugin-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile", diff --git a/packages/plugins/@nocobase/plugin-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index 8662e9c491..939993a310 100644 --- a/packages/plugins/@nocobase/plugin-mock-collections/package.json +++ b/packages/plugins/@nocobase/plugin-mock-collections/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-mock-collections", "displayName": "mock-collections", "description": "mock-collections", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "license": "AGPL-3.0", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json index 55b702cccf..bc76a29422 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用管理器", "description": "Dynamically create multiple apps without separate deployments.", "description.zh-CN": "无需单独部署即可动态创建多个应用。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/multi-app-manager", diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json index 7084228090..4b7f82e172 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用数据表共享", "description": "", "description.zh-CN": "", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notification-email/package.json b/packages/plugins/@nocobase/plugin-notification-email/package.json index 253c855a45..7b2190a9e7 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/package.json +++ b/packages/plugins/@nocobase/plugin-notification-email/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-email", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Notification: Email", "displayName.zh-CN": "通知:电子邮件", "description": "Used for sending email notifications with built-in SMTP transport.", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json index 080b27b78b..254cd35456 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-in-app-message", - "version": "1.6.7", + "version": "1.6.8", "displayName": "Notification: In-app message", "displayName.zh-CN": "通知:站内信", "description": "It supports users in receiving real-time message notifications within the NocoBase application.", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/package.json b/packages/plugins/@nocobase/plugin-notification-manager/package.json index c3b839dca3..a8892d271c 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/package.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/package.json @@ -4,7 +4,7 @@ "description": "Provides a unified management service that includes channel configuration, logging, and other features, supporting the configuration of various notification channels, including in-app message and email.", "displayName.zh-CN": "通知管理", "description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。", - "version": "1.6.7", + "version": "1.6.8", "homepage": "https://docs.nocobase.com/handbook/notification-manager", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index ab9ddcde36..6f1d580f9f 100644 --- a/packages/plugins/@nocobase/plugin-notifications/package.json +++ b/packages/plugins/@nocobase/plugin-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notifications", - "version": "1.6.7", + "version": "1.6.8", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-public-forms/package.json b/packages/plugins/@nocobase/plugin-public-forms/package.json index cfc4720cf2..29baa794af 100644 --- a/packages/plugins/@nocobase/plugin-public-forms/package.json +++ b/packages/plugins/@nocobase/plugin-public-forms/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-public-forms", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "displayName": "Public forms", "displayName.zh-CN": "公开表单", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index 748875485a..cbfe2ffa0a 100644 --- a/packages/plugins/@nocobase/plugin-sample-hello/package.json +++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-sample-hello", - "version": "1.6.7", + "version": "1.6.8", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index 99d5ab0aec..7d860a491c 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:关系快照", "description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.", "description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-snapshot", diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json index 0b2c794de8..9f540d3f6f 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/package.json +++ b/packages/plugins/@nocobase/plugin-system-settings/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "系统设置", "description": "Used to adjust the system title, logo, language, etc.", "description.zh-CN": "用于调整系统的标题、LOGO、语言等。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/system-settings", diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json index 775ba34d8b..22187328a7 100644 --- a/packages/plugins/@nocobase/plugin-theme-editor/package.json +++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-theme-editor", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/theme-editor", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor", diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 12d1ff065c..4d3608baec 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "UI schema 存储服务", "description": "Provides centralized UI schema storage service.", "description.zh-CN": "提供中心化的 UI schema 存储服务。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/ui-schema-storage", diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json index f74be0fcde..f7dc22674d 100644 --- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户数据同步", "description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.", "description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。", - "version": "1.6.7", + "version": "1.6.8", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 52a594408e..9de697a401 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户", "description": "Provides basic user model, as well as created by and updated by fields.", "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/users", diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json index 63bf10a6b3..e4d0ca6149 100644 --- a/packages/plugins/@nocobase/plugin-verification/package.json +++ b/packages/plugins/@nocobase/plugin-verification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "验证码", "description": "verification setting.", "description.zh-CN": "验证码配置。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/verification", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json index d2cf515258..df3b3bce3c 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:操作后事件", "description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.", "description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger", diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json index bc101521cd..007ccd2017 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:聚合查询节点", "description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.", "description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-aggregate", diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json index ae91fbb46f..9a3c85cffc 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:延时节点", "description": "Could be used in workflow parallel branch for waiting other branches.", "description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-delay", diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json index d7bac68034..30a770e8d3 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:动态表达式计算节点", "description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.", "description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation", diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json index 845c226d48..487e38fa7b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:循环节点", "description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.", "description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-loop", diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json index b87b068433..fc60f85013 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:邮件发送节点", "description": "Send email in workflow.", "description.zh-CN": "可用于在工作流中发送电子邮件。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index c1f74e27c0..5d559de630 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:人工处理节点", "description": "Could be used for workflows which some of decisions are made by users.", "description.zh-CN": "用于人工控制部分决策的流程。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-manual", diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json index b5bc4e115b..b7a97c67f6 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:通知节点", "description": "Send notification in workflow.", "description.zh-CN": "可用于在工作流中发送各类通知。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index bafd057007..5178a277a0 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:并行分支节点", "description": "Could be used for parallel execution of branch processes in the workflow.", "description.zh-CN": "用于在工作流中需要并行执行的分支流程。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-parallel", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json index 19849cbfcd..e698f3f855 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:HTTP 请求节点", "description": "Send HTTP requests to any HTTP service for data interaction in workflow.", "description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-request", diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json index ea64814997..9dadc5240c 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:SQL 节点", "description": "Execute SQL statements in workflow.", "description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-sql", diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json index c1a88e7634..758e93be8e 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-workflow-test", "displayName": "Workflow: test kit", "displayName.zh-CN": "工作流:测试工具包", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "dist/server/index.js", "types": "./dist/server/index.d.ts", diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json index 9bc9828dc4..ca78bd3c02 100644 --- a/packages/plugins/@nocobase/plugin-workflow/package.json +++ b/packages/plugins/@nocobase/plugin-workflow/package.json @@ -4,13 +4,13 @@ "displayName.zh-CN": "工作流", "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.", "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow", "dependencies": { - "@nocobase/plugin-workflow-test": "1.6.7" + "@nocobase/plugin-workflow-test": "1.6.8" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 2fc8d8bf77..549735facf 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,80 +1,80 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.6.7", + "version": "1.6.8", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.6.7", - "@nocobase/plugin-action-bulk-edit": "1.6.7", - "@nocobase/plugin-action-bulk-update": "1.6.7", - "@nocobase/plugin-action-custom-request": "1.6.7", - "@nocobase/plugin-action-duplicate": "1.6.7", - "@nocobase/plugin-action-export": "1.6.7", - "@nocobase/plugin-action-import": "1.6.7", - "@nocobase/plugin-action-print": "1.6.7", - "@nocobase/plugin-ai": "1.6.7", - "@nocobase/plugin-api-doc": "1.6.7", - "@nocobase/plugin-api-keys": "1.6.7", - "@nocobase/plugin-async-task-manager": "1.6.7", - "@nocobase/plugin-audit-logs": "1.6.7", - "@nocobase/plugin-auth": "1.6.7", - "@nocobase/plugin-auth-sms": "1.6.7", - "@nocobase/plugin-backup-restore": "1.6.7", - "@nocobase/plugin-block-iframe": "1.6.7", - "@nocobase/plugin-block-workbench": "1.6.7", - "@nocobase/plugin-calendar": "1.6.7", - "@nocobase/plugin-charts": "1.6.7", - "@nocobase/plugin-client": "1.6.7", - "@nocobase/plugin-collection-sql": "1.6.7", - "@nocobase/plugin-collection-tree": "1.6.7", - "@nocobase/plugin-data-source-main": "1.6.7", - "@nocobase/plugin-data-source-manager": "1.6.7", - "@nocobase/plugin-data-visualization": "1.6.7", - "@nocobase/plugin-environment-variables": "1.6.7", - "@nocobase/plugin-error-handler": "1.6.7", - "@nocobase/plugin-field-china-region": "1.6.7", - "@nocobase/plugin-field-formula": "1.6.7", - "@nocobase/plugin-field-m2m-array": "1.6.7", - "@nocobase/plugin-field-markdown-vditor": "1.6.7", - "@nocobase/plugin-field-sequence": "1.6.7", - "@nocobase/plugin-field-sort": "1.6.7", - "@nocobase/plugin-file-manager": "1.6.7", - "@nocobase/plugin-gantt": "1.6.7", - "@nocobase/plugin-graph-collection-manager": "1.6.7", - "@nocobase/plugin-kanban": "1.6.7", - "@nocobase/plugin-localization": "1.6.7", - "@nocobase/plugin-logger": "1.6.7", - "@nocobase/plugin-map": "1.6.7", - "@nocobase/plugin-mobile": "1.6.7", - "@nocobase/plugin-mobile-client": "1.6.7", - "@nocobase/plugin-mock-collections": "1.6.7", - "@nocobase/plugin-multi-app-manager": "1.6.7", - "@nocobase/plugin-multi-app-share-collection": "1.6.7", - "@nocobase/plugin-notification-email": "1.6.7", - "@nocobase/plugin-notification-in-app-message": "1.6.7", - "@nocobase/plugin-notification-manager": "1.6.7", - "@nocobase/plugin-public-forms": "1.6.7", - "@nocobase/plugin-snapshot-field": "1.6.7", - "@nocobase/plugin-system-settings": "1.6.7", - "@nocobase/plugin-theme-editor": "1.6.7", - "@nocobase/plugin-ui-schema-storage": "1.6.7", - "@nocobase/plugin-user-data-sync": "1.6.7", - "@nocobase/plugin-users": "1.6.7", - "@nocobase/plugin-verification": "1.6.7", - "@nocobase/plugin-workflow": "1.6.7", - "@nocobase/plugin-workflow-action-trigger": "1.6.7", - "@nocobase/plugin-workflow-aggregate": "1.6.7", - "@nocobase/plugin-workflow-delay": "1.6.7", - "@nocobase/plugin-workflow-dynamic-calculation": "1.6.7", - "@nocobase/plugin-workflow-loop": "1.6.7", - "@nocobase/plugin-workflow-mailer": "1.6.7", - "@nocobase/plugin-workflow-manual": "1.6.7", - "@nocobase/plugin-workflow-notification": "1.6.7", - "@nocobase/plugin-workflow-parallel": "1.6.7", - "@nocobase/plugin-workflow-request": "1.6.7", - "@nocobase/plugin-workflow-sql": "1.6.7", - "@nocobase/server": "1.6.7", + "@nocobase/plugin-acl": "1.6.8", + "@nocobase/plugin-action-bulk-edit": "1.6.8", + "@nocobase/plugin-action-bulk-update": "1.6.8", + "@nocobase/plugin-action-custom-request": "1.6.8", + "@nocobase/plugin-action-duplicate": "1.6.8", + "@nocobase/plugin-action-export": "1.6.8", + "@nocobase/plugin-action-import": "1.6.8", + "@nocobase/plugin-action-print": "1.6.8", + "@nocobase/plugin-ai": "1.6.8", + "@nocobase/plugin-api-doc": "1.6.8", + "@nocobase/plugin-api-keys": "1.6.8", + "@nocobase/plugin-async-task-manager": "1.6.8", + "@nocobase/plugin-audit-logs": "1.6.8", + "@nocobase/plugin-auth": "1.6.8", + "@nocobase/plugin-auth-sms": "1.6.8", + "@nocobase/plugin-backup-restore": "1.6.8", + "@nocobase/plugin-block-iframe": "1.6.8", + "@nocobase/plugin-block-workbench": "1.6.8", + "@nocobase/plugin-calendar": "1.6.8", + "@nocobase/plugin-charts": "1.6.8", + "@nocobase/plugin-client": "1.6.8", + "@nocobase/plugin-collection-sql": "1.6.8", + "@nocobase/plugin-collection-tree": "1.6.8", + "@nocobase/plugin-data-source-main": "1.6.8", + "@nocobase/plugin-data-source-manager": "1.6.8", + "@nocobase/plugin-data-visualization": "1.6.8", + "@nocobase/plugin-environment-variables": "1.6.8", + "@nocobase/plugin-error-handler": "1.6.8", + "@nocobase/plugin-field-china-region": "1.6.8", + "@nocobase/plugin-field-formula": "1.6.8", + "@nocobase/plugin-field-m2m-array": "1.6.8", + "@nocobase/plugin-field-markdown-vditor": "1.6.8", + "@nocobase/plugin-field-sequence": "1.6.8", + "@nocobase/plugin-field-sort": "1.6.8", + "@nocobase/plugin-file-manager": "1.6.8", + "@nocobase/plugin-gantt": "1.6.8", + "@nocobase/plugin-graph-collection-manager": "1.6.8", + "@nocobase/plugin-kanban": "1.6.8", + "@nocobase/plugin-localization": "1.6.8", + "@nocobase/plugin-logger": "1.6.8", + "@nocobase/plugin-map": "1.6.8", + "@nocobase/plugin-mobile": "1.6.8", + "@nocobase/plugin-mobile-client": "1.6.8", + "@nocobase/plugin-mock-collections": "1.6.8", + "@nocobase/plugin-multi-app-manager": "1.6.8", + "@nocobase/plugin-multi-app-share-collection": "1.6.8", + "@nocobase/plugin-notification-email": "1.6.8", + "@nocobase/plugin-notification-in-app-message": "1.6.8", + "@nocobase/plugin-notification-manager": "1.6.8", + "@nocobase/plugin-public-forms": "1.6.8", + "@nocobase/plugin-snapshot-field": "1.6.8", + "@nocobase/plugin-system-settings": "1.6.8", + "@nocobase/plugin-theme-editor": "1.6.8", + "@nocobase/plugin-ui-schema-storage": "1.6.8", + "@nocobase/plugin-user-data-sync": "1.6.8", + "@nocobase/plugin-users": "1.6.8", + "@nocobase/plugin-verification": "1.6.8", + "@nocobase/plugin-workflow": "1.6.8", + "@nocobase/plugin-workflow-action-trigger": "1.6.8", + "@nocobase/plugin-workflow-aggregate": "1.6.8", + "@nocobase/plugin-workflow-delay": "1.6.8", + "@nocobase/plugin-workflow-dynamic-calculation": "1.6.8", + "@nocobase/plugin-workflow-loop": "1.6.8", + "@nocobase/plugin-workflow-mailer": "1.6.8", + "@nocobase/plugin-workflow-manual": "1.6.8", + "@nocobase/plugin-workflow-notification": "1.6.8", + "@nocobase/plugin-workflow-parallel": "1.6.8", + "@nocobase/plugin-workflow-request": "1.6.8", + "@nocobase/plugin-workflow-sql": "1.6.8", + "@nocobase/server": "1.6.8", "cronstrue": "^2.11.0", "fs-extra": "^11.1.1" }, From 85e3019e448239c94517270fdcb1ac9dedada076 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 13:07:06 +0000 Subject: [PATCH 024/137] docs: update changelogs --- CHANGELOG.md | 19 +++++++++++++++++++ CHANGELOG.zh-CN.md | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d149ccb82..6c976f83a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.6.8](https://github.com/nocobase/nocobase/compare/v1.6.7...v1.6.8) - 2025-03-22 + +### 🐛 Bug Fixes + +- **[server]** The upgrade command may cause workflow errors ([#6524](https://github.com/nocobase/nocobase/pull/6524)) by @gchust + +- **[client]** the height of the subtable in the form is set along with the form height ([#6518](https://github.com/nocobase/nocobase/pull/6518)) by @katherinehhh + +- **[Authentication]** + - X-Authenticator missing ([#6526](https://github.com/nocobase/nocobase/pull/6526)) by @chenos + + - Trim authenticator options ([#6527](https://github.com/nocobase/nocobase/pull/6527)) by @2013xile + +- **[Block: Map]** map block key management issue causing request failures due to invisible characters ([#6521](https://github.com/nocobase/nocobase/pull/6521)) by @katherinehhh + +- **[Backup manager]** Restoration may cause workflow execution errors by @gchust + +- **[WeCom]** Resolve environment variables and secrets when retrieving notification configuration. by @2013xile + ## [v1.6.7](https://github.com/nocobase/nocobase/compare/v1.6.6...v1.6.7) - 2025-03-20 ### 🚀 Improvements diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 931c724907..d6ba487f12 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -5,6 +5,25 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +## [v1.6.8](https://github.com/nocobase/nocobase/compare/v1.6.7...v1.6.8) - 2025-03-22 + +### 🐛 修复 + +- **[server]** Upgrade 命令可能造成工作流报错 ([#6524](https://github.com/nocobase/nocobase/pull/6524)) by @gchust + +- **[client]** 表单中的子表格高度会随主表单高度一同设置 ([#6518](https://github.com/nocobase/nocobase/pull/6518)) by @katherinehhh + +- **[用户认证]** + - X-Authenticator 缺失 ([#6526](https://github.com/nocobase/nocobase/pull/6526)) by @chenos + + - 移除认证器配置项前后的空格、换行符 ([#6527](https://github.com/nocobase/nocobase/pull/6527)) by @2013xile + +- **[区块:地图]** 地图区块 密钥管理中不可见字符导致的密钥请求失败的问题 ([#6521](https://github.com/nocobase/nocobase/pull/6521)) by @katherinehhh + +- **[备份管理器]** 还原过程中可能引起工作流执行报错 by @gchust + +- **[企业微信]** 获取通知配置时需要解析环境变量和密钥 by @2013xile + ## [v1.6.7](https://github.com/nocobase/nocobase/compare/v1.6.6...v1.6.7) - 2025-03-20 ### 🚀 优化 From 437e9dba52a7c2f02e421c22d1f2c69c7859b839 Mon Sep 17 00:00:00 2001 From: Katherine Date: Sat, 22 Mar 2025 23:11:52 +0800 Subject: [PATCH 025/137] fix: action button transparency causing setting display issue on hover (#6529) * fix: button transparency causing setting display issue on hover * fix: button transparency causing setting display issue on hover --- .../src/schema-component/antd/action/Action.tsx | 11 ++++++++--- .../components/CreateRecordAction.tsx | 17 ++--------------- .../src/client/DuplicateAction.tsx | 7 +------ 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/action/Action.tsx b/packages/core/client/src/schema-component/antd/action/Action.tsx index cb7657877a..fecdd5e8fe 100644 --- a/packages/core/client/src/schema-component/antd/action/Action.tsx +++ b/packages/core/client/src/schema-component/antd/action/Action.tsx @@ -582,6 +582,7 @@ const RenderButtonInner = observer( } const actionTitle = title || field?.title; + const { opacity, ...restButtonStyle } = buttonStyle; return ( : icon} + icon={typeof icon === 'string' ? : icon} disabled={disabled} - style={buttonStyle} + style={restButtonStyle} onClick={process.env.__E2E__ ? handleButtonClick : debouncedClick} // E2E 中的点击操作都是很快的,如果加上 debounce 会导致 E2E 测试失败 component={tarComponent || Button} className={classnames(componentCls, hashId, className, 'nb-action')} type={type === 'danger' ? undefined : type} > - {actionTitle && {actionTitle}} + {actionTitle && ( + + {actionTitle} + + )} ); diff --git a/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx b/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx index a940d82085..e938d151ae 100644 --- a/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx +++ b/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx @@ -267,11 +267,6 @@ function FinallyButton({ }) { const { getCollection } = useCollectionManager_deprecated(); const aclCtx = useACLActionParamsContext(); - const buttonStyle = useMemo(() => { - return { - opacity: designable && (field?.data?.hidden || !aclCtx) && 0.1, - }; - }, [designable, field?.data?.hidden]); if (inheritsCollections?.length > 0) { if (!linkageFromForm) { @@ -281,7 +276,6 @@ function FinallyButton({ danger={props.danger} type={componentType} icon={} - style={{ ...props?.style, ...buttonStyle }} buttonsRender={([leftButton, rightButton]) => [ React.cloneElement(leftButton as React.ReactElement, { style: props?.style, @@ -302,13 +296,7 @@ function FinallyButton({ ) : ( { - } @@ -333,7 +321,6 @@ function FinallyButton({ style={{ display: !designable && field?.data?.hidden && 'none', opacity: designable && field?.data?.hidden && 0.1, - ...buttonStyle, }} > {props.children} @@ -355,7 +342,7 @@ function FinallyButton({ ...props?.style, display: !designable && field?.data?.hidden && 'none', opacity: designable && field?.data?.hidden && 0.1, - ...buttonStyle, + height: '100%', }} > {props.children} diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/src/client/DuplicateAction.tsx b/packages/plugins/@nocobase/plugin-action-duplicate/src/client/DuplicateAction.tsx index 39ef111c8f..7c02222437 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/src/client/DuplicateAction.tsx +++ b/packages/plugins/@nocobase/plugin-action-duplicate/src/client/DuplicateAction.tsx @@ -112,11 +112,7 @@ export const DuplicateAction = observer( }), ) : record[collection.filterTargetKey] || id; - const buttonStyle = useMemo(() => { - return { - opacity: designable && (field?.data?.hidden || !aclCtx) && 0.1, - }; - }, [designable, field?.data?.hidden]); + const template = { key: 'duplicate', dataId, @@ -198,7 +194,6 @@ export const DuplicateAction = observer( opacity: designable && field?.data?.hidden && 0.1, cursor: loading ? 'not-allowed' : 'pointer', position: 'relative', - ...buttonStyle, }} onClick={handelDuplicate} > From 436af4b9f30bf0ced6221178e73c399393991419 Mon Sep 17 00:00:00 2001 From: chenos Date: Sun, 23 Mar 2025 08:59:28 +0800 Subject: [PATCH 026/137] fix: runPluginStaticImports (#6528) --- packages/core/database/src/mock-database.ts | 4 ++-- packages/core/logger/src/logger.ts | 2 +- packages/core/logger/src/system-logger.ts | 16 +++++++++++++--- .../core/server/src/run-plugin-static-imports.ts | 6 +++++- .../src/server/index.ts | 10 +++++++++- .../src/server/static-import.ts | 5 ----- 6 files changed, 30 insertions(+), 13 deletions(-) delete mode 100644 packages/plugins/@nocobase/plugin-async-task-manager/src/server/static-import.ts diff --git a/packages/core/database/src/mock-database.ts b/packages/core/database/src/mock-database.ts index b476ea5bce..524c3f9bfd 100644 --- a/packages/core/database/src/mock-database.ts +++ b/packages/core/database/src/mock-database.ts @@ -61,8 +61,8 @@ function customLogger(queryString, queryObject) { export async function createMockDatabase(options: IDatabaseOptions = {}) { try { // @ts-ignore - const { staticImport } = await import('@nocobase/plugin-data-source-external-mssql/server/static-import'); - await staticImport(); + const { runPluginStaticImports } = await import('@nocobase/server'); + await runPluginStaticImports(); } catch (error) { // error } diff --git a/packages/core/logger/src/logger.ts b/packages/core/logger/src/logger.ts index 0079b759d0..72b3f694c9 100644 --- a/packages/core/logger/src/logger.ts +++ b/packages/core/logger/src/logger.ts @@ -10,8 +10,8 @@ import winston, { LeveledLogMethod, Logger as WinstonLogger } from 'winston'; import 'winston-daily-rotate-file'; import { getLoggerLevel } from './config'; -import { getTransports } from './transports'; import { consoleFormat } from './format'; +import { getTransports } from './transports'; interface Logger extends WinstonLogger { trace: LeveledLogMethod; diff --git a/packages/core/logger/src/system-logger.ts b/packages/core/logger/src/system-logger.ts index 342a93f7ce..9744f44378 100644 --- a/packages/core/logger/src/system-logger.ts +++ b/packages/core/logger/src/system-logger.ts @@ -7,11 +7,12 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import winston, { format } from 'winston'; -import { createLogger, levels, Logger, LoggerOptions } from './logger'; -import Transport from 'winston-transport'; import { SPLAT } from 'triple-beam'; +import winston, { format } from 'winston'; +import Transport from 'winston-transport'; +import { getLoggerFilePath } from './config'; import { getFormat } from './format'; +import { createLogger, levels, Logger, LoggerOptions } from './logger'; export interface SystemLoggerOptions extends LoggerOptions { seperateError?: boolean; // print error seperately, default true @@ -138,3 +139,12 @@ export const createSystemLogger = (options: SystemLoggerOptions): SystemLogger = }, }); }; + +export const logger = createSystemLogger({ + dirname: getLoggerFilePath('main'), + filename: 'system', + defaultMeta: { + app: 'main', + module: 'cli', + }, +}); diff --git a/packages/core/server/src/run-plugin-static-imports.ts b/packages/core/server/src/run-plugin-static-imports.ts index 1f3e8c5d9c..d021edbaf9 100644 --- a/packages/core/server/src/run-plugin-static-imports.ts +++ b/packages/core/server/src/run-plugin-static-imports.ts @@ -6,18 +6,22 @@ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { logger } from '@nocobase/logger'; import { findAllPlugins, PluginManager } from '@nocobase/server'; +import { importModule } from '@nocobase/utils'; export async function runPluginStaticImports() { const packages = await findAllPlugins(); for (const name of packages) { const { packageName } = await PluginManager.parseName(name); try { - const plugin = require(packageName); + const plugin = await importModule(packageName); if (plugin && plugin.staticImport) { + logger.info('run static import', { packageName }); await plugin.staticImport(); } } catch (error) { + logger.error(error, { packageName }); continue; } } diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/src/server/index.ts b/packages/plugins/@nocobase/plugin-async-task-manager/src/server/index.ts index ce0db665e5..f7f9c12af6 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/src/server/index.ts +++ b/packages/plugins/@nocobase/plugin-async-task-manager/src/server/index.ts @@ -1,5 +1,13 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + export * from './interfaces/async-task-manager'; export * from './task-type'; -export * from './static-import'; export { default } from './plugin'; diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/src/server/static-import.ts b/packages/plugins/@nocobase/plugin-async-task-manager/src/server/static-import.ts deleted file mode 100644 index 1329c67ae7..0000000000 --- a/packages/plugins/@nocobase/plugin-async-task-manager/src/server/static-import.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { appendToBuiltInPlugins } from '@nocobase/server'; - -export async function staticImport() { - await appendToBuiltInPlugins('@nocobase/plugin-async-task-manager'); -} From bc5caab6f24bf08845fceebf726e3c1fdf94bd82 Mon Sep 17 00:00:00 2001 From: chenos Date: Sun, 23 Mar 2025 10:11:06 +0800 Subject: [PATCH 027/137] fix: add __stopped event --- packages/core/server/src/app-supervisor.ts | 2 +- packages/core/server/src/application.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/server/src/app-supervisor.ts b/packages/core/server/src/app-supervisor.ts index 3006bba000..7698ddfcf3 100644 --- a/packages/core/server/src/app-supervisor.ts +++ b/packages/core/server/src/app-supervisor.ts @@ -305,7 +305,7 @@ export class AppSupervisor extends EventEmitter implements AsyncEmitter { } }); - app.on('afterStop', async () => { + app.on('__stopped', async () => { this.setAppStatus(app.name, 'stopped'); }); diff --git a/packages/core/server/src/application.ts b/packages/core/server/src/application.ts index 835997a529..574dd5f4af 100644 --- a/packages/core/server/src/application.ts +++ b/packages/core/server/src/application.ts @@ -955,6 +955,7 @@ export class Application exten } await this.emitAsync('afterStop', this, options); + this.emit('__stopped', this, options); this.stopped = true; log.info(`app has stopped`, { method: 'stop' }); From 01ec734a5876a32c06cec9eb304049f184d02a44 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Sun, 23 Mar 2025 03:34:33 +0000 Subject: [PATCH 028/137] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publi?= =?UTF-8?q?sh=20v1.6.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lerna.json | 2 +- packages/core/acl/package.json | 6 +- packages/core/actions/package.json | 8 +- packages/core/app/package.json | 10 +- packages/core/auth/package.json | 12 +- packages/core/build/package.json | 2 +- packages/core/cache/package.json | 2 +- packages/core/cli/package.json | 6 +- packages/core/client/package.json | 8 +- .../core/create-nocobase-app/package.json | 2 +- .../core/data-source-manager/package.json | 12 +- packages/core/database/package.json | 6 +- packages/core/devtools/package.json | 8 +- packages/core/evaluators/package.json | 4 +- packages/core/lock-manager/package.json | 4 +- packages/core/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 28 ++-- packages/core/telemetry/package.json | 4 +- packages/core/test/package.json | 4 +- packages/core/utils/package.json | 2 +- .../plugins/@nocobase/plugin-acl/package.json | 2 +- .../plugin-action-bulk-edit/package.json | 2 +- .../plugin-action-bulk-update/package.json | 2 +- .../plugin-action-custom-request/package.json | 2 +- .../plugin-action-duplicate/package.json | 2 +- .../plugin-action-export/package.json | 2 +- .../plugin-action-import/package.json | 2 +- .../plugin-action-print/package.json | 2 +- .../plugins/@nocobase/plugin-ai/package.json | 2 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/package.json | 2 +- .../plugin-async-task-manager/package.json | 2 +- .../@nocobase/plugin-audit-logs/package.json | 2 +- .../@nocobase/plugin-auth-sms/package.json | 2 +- .../@nocobase/plugin-auth/package.json | 2 +- .../plugin-backup-restore/package.json | 2 +- .../plugin-block-iframe/package.json | 2 +- .../plugin-block-workbench/package.json | 2 +- .../@nocobase/plugin-calendar/package.json | 2 +- .../@nocobase/plugin-charts/package.json | 2 +- .../@nocobase/plugin-client/package.json | 2 +- .../plugin-collection-sql/package.json | 2 +- .../plugin-collection-tree/package.json | 2 +- .../plugin-data-source-main/package.json | 2 +- .../plugin-data-source-manager/package.json | 2 +- .../plugin-data-visualization/package.json | 2 +- .../plugin-disable-pm-add/package.json | 2 +- .../plugin-environment-variables/package.json | 2 +- .../plugin-error-handler/package.json | 2 +- .../plugin-field-china-region/package.json | 2 +- .../plugin-field-formula/package.json | 2 +- .../plugin-field-m2m-array/package.json | 2 +- .../plugin-field-markdown-vditor/package.json | 2 +- .../plugin-field-sequence/package.json | 2 +- .../@nocobase/plugin-field-sort/package.json | 2 +- .../plugin-file-manager/package.json | 2 +- .../@nocobase/plugin-gantt/package.json | 2 +- .../package.json | 2 +- .../@nocobase/plugin-kanban/package.json | 2 +- .../plugin-localization/package.json | 2 +- .../@nocobase/plugin-logger/package.json | 2 +- .../plugins/@nocobase/plugin-map/package.json | 2 +- .../plugin-mobile-client/package.json | 2 +- .../@nocobase/plugin-mobile/package.json | 2 +- .../plugin-mock-collections/package.json | 2 +- .../plugin-multi-app-manager/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-email/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-manager/package.json | 2 +- .../plugin-notifications/package.json | 2 +- .../plugin-public-forms/package.json | 2 +- .../plugin-sample-hello/package.json | 2 +- .../plugin-snapshot-field/package.json | 2 +- .../plugin-system-settings/package.json | 2 +- .../plugin-theme-editor/package.json | 2 +- .../plugin-ui-schema-storage/package.json | 2 +- .../plugin-user-data-sync/package.json | 2 +- .../@nocobase/plugin-users/package.json | 2 +- .../plugin-verification/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-aggregate/package.json | 2 +- .../plugin-workflow-delay/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-loop/package.json | 2 +- .../plugin-workflow-mailer/package.json | 2 +- .../plugin-workflow-manual/package.json | 2 +- .../plugin-workflow-notification/package.json | 2 +- .../plugin-workflow-parallel/package.json | 2 +- .../plugin-workflow-request/package.json | 2 +- .../plugin-workflow-sql/package.json | 2 +- .../plugin-workflow-test/package.json | 2 +- .../@nocobase/plugin-workflow/package.json | 4 +- packages/presets/nocobase/package.json | 142 +++++++++--------- 96 files changed, 214 insertions(+), 214 deletions(-) diff --git a/lerna.json b/lerna.json index 05b387d350..ab90e81760 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.8", + "version": "1.6.9", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index d5f7683dc8..5fe8eca280 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/resourcer": "1.6.9", + "@nocobase/utils": "1.6.9", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 7431721b00..9c1c234823 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.6.8", - "@nocobase/database": "1.6.8", - "@nocobase/resourcer": "1.6.8" + "@nocobase/cache": "1.6.9", + "@nocobase/database": "1.6.9", + "@nocobase/resourcer": "1.6.9" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index e64a63aff6..270113f452 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.6.8", - "@nocobase/preset-nocobase": "1.6.8", - "@nocobase/server": "1.6.8" + "@nocobase/database": "1.6.9", + "@nocobase/preset-nocobase": "1.6.9", + "@nocobase/server": "1.6.9" }, "devDependencies": { - "@nocobase/client": "1.6.8" + "@nocobase/client": "1.6.9" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index f857b47821..2caa71ac05 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.8", - "@nocobase/cache": "1.6.8", - "@nocobase/database": "1.6.8", - "@nocobase/resourcer": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/actions": "1.6.9", + "@nocobase/cache": "1.6.9", + "@nocobase/database": "1.6.9", + "@nocobase/resourcer": "1.6.9", + "@nocobase/utils": "1.6.9", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 53c0e02209..23c5403266 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.6.8", + "version": "1.6.9", "description": "Library build tool based on rollup.", "main": "lib/index.js", "types": "./lib/index.d.ts", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index f5fbaa17db..e73055c5e3 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index 6d20828590..c7f796a057 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.6.8", + "@nocobase/app": "1.6.9", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.19.0" }, "devDependencies": { - "@nocobase/devtools": "1.6.8" + "@nocobase/devtools": "1.6.9" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 0ac008fa51..cddfe970eb 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -27,9 +27,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "1.6.8", - "@nocobase/sdk": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/evaluators": "1.6.9", + "@nocobase/sdk": "1.6.9", + "@nocobase/utils": "1.6.9", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 81f3f07ced..b515e03269 100755 --- a/packages/core/create-nocobase-app/package.json +++ b/packages/core/create-nocobase-app/package.json @@ -1,6 +1,6 @@ { "name": "create-nocobase-app", - "version": "1.6.8", + "version": "1.6.9", "main": "src/index.js", "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index ca815ef792..a5ffb705e8 100644 --- a/packages/core/data-source-manager/package.json +++ b/packages/core/data-source-manager/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/data-source-manager", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.8", - "@nocobase/cache": "1.6.8", - "@nocobase/database": "1.6.8", - "@nocobase/resourcer": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/actions": "1.6.9", + "@nocobase/cache": "1.6.9", + "@nocobase/database": "1.6.9", + "@nocobase/resourcer": "1.6.9", + "@nocobase/utils": "1.6.9", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index fa3e54c6f8..e6440c836a 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/logger": "1.6.9", + "@nocobase/utils": "1.6.9", "async-mutex": "^0.3.2", "chalk": "^4.1.1", "cron-parser": "4.4.0", diff --git a/packages/core/devtools/package.json b/packages/core/devtools/package.json index 051ccd91cc..843a2ef39c 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.6.8", - "@nocobase/client": "1.6.8", - "@nocobase/test": "1.6.8", + "@nocobase/build": "1.6.9", + "@nocobase/client": "1.6.9", + "@nocobase/test": "1.6.9", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3.4", "@types/lodash": "^4.14.177", diff --git a/packages/core/evaluators/package.json b/packages/core/evaluators/package.json index c770bb1ab9..df03b7b2ad 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.4.9", - "@nocobase/utils": "1.6.8", + "@nocobase/utils": "1.6.9", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/lock-manager/package.json b/packages/core/lock-manager/package.json index 1213f6eee9..5fcb106257 100644 --- a/packages/core/lock-manager/package.json +++ b/packages/core/lock-manager/package.json @@ -1,10 +1,10 @@ { "name": "@nocobase/lock-manager", - "version": "1.6.8", + "version": "1.6.9", "main": "lib/index.js", "license": "AGPL-3.0", "devDependencies": { - "@nocobase/utils": "1.6.8", + "@nocobase/utils": "1.6.9", "async-mutex": "^0.5.0" } } diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index a464f42f6f..90c840f2e9 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.6.8", + "version": "1.6.9", "description": "nocobase logging library", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index a2a2c02889..7d28076829 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.6.8", + "version": "1.6.9", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.6.8", + "@nocobase/utils": "1.6.9", "deepmerge": "^4.2.2", "koa-compose": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/core/sdk/package.json b/packages/core/sdk/package.json index 21101ac8ee..4d1d8ebbcc 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/core/server/package.json b/packages/core/server/package.json index 1a8124c55f..f876565b86 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.6.8", + "version": "1.6.9", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,19 +10,19 @@ "@koa/cors": "^5.0.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.6.8", - "@nocobase/actions": "1.6.8", - "@nocobase/auth": "1.6.8", - "@nocobase/cache": "1.6.8", - "@nocobase/data-source-manager": "1.6.8", - "@nocobase/database": "1.6.8", - "@nocobase/evaluators": "1.6.8", - "@nocobase/lock-manager": "1.6.8", - "@nocobase/logger": "1.6.8", - "@nocobase/resourcer": "1.6.8", - "@nocobase/sdk": "1.6.8", - "@nocobase/telemetry": "1.6.8", - "@nocobase/utils": "1.6.8", + "@nocobase/acl": "1.6.9", + "@nocobase/actions": "1.6.9", + "@nocobase/auth": "1.6.9", + "@nocobase/cache": "1.6.9", + "@nocobase/data-source-manager": "1.6.9", + "@nocobase/database": "1.6.9", + "@nocobase/evaluators": "1.6.9", + "@nocobase/lock-manager": "1.6.9", + "@nocobase/logger": "1.6.9", + "@nocobase/resourcer": "1.6.9", + "@nocobase/sdk": "1.6.9", + "@nocobase/telemetry": "1.6.9", + "@nocobase/utils": "1.6.9", "@types/decompress": "4.2.7", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index 537fa23420..9b7ef94a71 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.6.8", + "version": "1.6.9", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.6.8", + "@nocobase/utils": "1.6.9", "@opentelemetry/api": "^1.7.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", diff --git a/packages/core/test/package.json b/packages/core/test/package.json index ae3aeff19d..2cb44e003b 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.6.8", + "version": "1.6.9", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -51,7 +51,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "1.6.8", + "@nocobase/server": "1.6.9", "@playwright/test": "^1.45.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index dc73fdbbd3..3e991846da 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.6.8", + "version": "1.6.9", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index e9553635c2..2bf1d62eb1 100644 --- a/packages/plugins/@nocobase/plugin-acl/package.json +++ b/packages/plugins/@nocobase/plugin-acl/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "权限控制", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index 3a87fa5304..5ff38ff33b 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-edit", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-edit", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-edit", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json index c4fa1897b3..c30274a692 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-update", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-update", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-update", diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/package.json b/packages/plugins/@nocobase/plugin-action-custom-request/package.json index 428948fde7..2c4e25c437 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-custom-request", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-custom-request", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request", diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index feaf5fbe8c..05916cf3d1 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/package.json +++ b/packages/plugins/@nocobase/plugin-action-duplicate/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-duplicate", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-duplicate", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-duplicate", diff --git a/packages/plugins/@nocobase/plugin-action-export/package.json b/packages/plugins/@nocobase/plugin-action-export/package.json index 98d79d3e61..8d9918a52d 100644 --- a/packages/plugins/@nocobase/plugin-action-export/package.json +++ b/packages/plugins/@nocobase/plugin-action-export/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导出记录", "description": "Export filtered records to excel, you can configure which fields to export.", "description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-action-import/package.json b/packages/plugins/@nocobase/plugin-action-import/package.json index a2173df551..8a8ae67779 100644 --- a/packages/plugins/@nocobase/plugin-action-import/package.json +++ b/packages/plugins/@nocobase/plugin-action-import/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导入记录", "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.", "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-action-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index a559322cfd..ff52016bfc 100644 --- a/packages/plugins/@nocobase/plugin-action-print/package.json +++ b/packages/plugins/@nocobase/plugin-action-print/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-print", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-print", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-print", diff --git a/packages/plugins/@nocobase/plugin-ai/package.json b/packages/plugins/@nocobase/plugin-ai/package.json index 0a61607824..e7c4877b7d 100644 --- a/packages/plugins/@nocobase/plugin-ai/package.json +++ b/packages/plugins/@nocobase/plugin-ai/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "AI 集成", "description": "Support integration with AI services, providing AI-related workflow nodes to enhance business processing capabilities.", "description.zh-CN": "支持接入 AI 服务,提供 AI 相关的工作流节点,增强业务处理能力。", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index 51507f782e..1b760f2c7b 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/package.json +++ b/packages/plugins/@nocobase/plugin-api-doc/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-api-doc", - "version": "1.6.8", + "version": "1.6.9", "displayName": "API documentation", "displayName.zh-CN": "API 文档", "description": "An OpenAPI documentation generator for NocoBase HTTP API.", diff --git a/packages/plugins/@nocobase/plugin-api-keys/package.json b/packages/plugins/@nocobase/plugin-api-keys/package.json index 93cd711ef7..ae3492447d 100644 --- a/packages/plugins/@nocobase/plugin-api-keys/package.json +++ b/packages/plugins/@nocobase/plugin-api-keys/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:API 密钥", "description": "Allows users to use API key to access application's HTTP API", "description.zh-CN": "允许用户使用 API 密钥访问应用的 HTTP API", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/package.json b/packages/plugins/@nocobase/plugin-async-task-manager/package.json index 8ef47c31b6..fd3745a99f 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/package.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "异步任务管理器", "description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.", "description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index cd1b7c6230..2b7c5f08e7 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/package.json +++ b/packages/plugins/@nocobase/plugin-audit-logs/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-audit-logs", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Audit logs (deprecated)", "displayName.zh-CN": "审计日志(废弃)", "description": "This plugin is deprecated. There will be a new audit log plugin in the future.", diff --git a/packages/plugins/@nocobase/plugin-auth-sms/package.json b/packages/plugins/@nocobase/plugin-auth-sms/package.json index d14450d550..e854897fef 100644 --- a/packages/plugins/@nocobase/plugin-auth-sms/package.json +++ b/packages/plugins/@nocobase/plugin-auth-sms/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-sms", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms", diff --git a/packages/plugins/@nocobase/plugin-auth/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index b9e04d2682..e0c1a734fc 100644 --- a/packages/plugins/@nocobase/plugin-auth/package.json +++ b/packages/plugins/@nocobase/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-auth", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index 2da6e00aca..768af1efc0 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/package.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "应用的备份与还原(废弃)", "description": "Backup and restore applications for scenarios such as application replication, migration, and upgrades.", "description.zh-CN": "备份和还原应用,可用于应用的复制、迁移、升级等场景。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-block-iframe/package.json b/packages/plugins/@nocobase/plugin-block-iframe/package.json index 2af54308ca..63948444cb 100644 --- a/packages/plugins/@nocobase/plugin-block-iframe/package.json +++ b/packages/plugins/@nocobase/plugin-block-iframe/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "区块:iframe", "description": "Create an iframe block on the page to embed and display external web pages or content.", "description.zh-CN": "在页面上创建和管理iframe,用于嵌入和展示外部网页或内容。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-block-workbench/package.json b/packages/plugins/@nocobase/plugin-block-workbench/package.json index 09bbba41de..6a0aad8cbf 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/package.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-block-workbench", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Block: Action panel", "displayName.zh-CN": "区块:操作面板", "description": "Centrally manages and displays various actions, allowing users to efficiently perform tasks. It supports extensibility, with current action types including pop-ups, links, scanning, and custom requests.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 11875e0cc6..283009d442 100644 --- a/packages/plugins/@nocobase/plugin-calendar/package.json +++ b/packages/plugins/@nocobase/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-calendar", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Calendar", "displayName.zh-CN": "日历", "description": "Provides callendar collection template and block for managing date data, typically for date/time related information such as events, appointments, tasks, and so on.", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index d2d07db138..a9dfadae03 100644 --- a/packages/plugins/@nocobase/plugin-charts/package.json +++ b/packages/plugins/@nocobase/plugin-charts/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "图表(废弃)", "description": "The plugin has been deprecated, please use the data visualization plugin instead.", "description.zh-CN": "已废弃插件,请使用数据可视化插件代替。", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index 8d2fa3ad49..978e79ead1 100644 --- a/packages/plugins/@nocobase/plugin-client/package.json +++ b/packages/plugins/@nocobase/plugin-client/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "WEB 客户端", "description": "Provides a client interface for the NocoBase server", "description.zh-CN": "为 NocoBase 服务端提供客户端界面", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-sql/package.json b/packages/plugins/@nocobase/plugin-collection-sql/package.json index 992ad38395..71304743ca 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/package.json +++ b/packages/plugins/@nocobase/plugin-collection-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表: SQL", "description": "Provides SQL collection template", "description.zh-CN": "提供 SQL 数据表模板", - "version": "1.6.8", + "version": "1.6.9", "homepage": "https://docs-cn.nocobase.com/handbook/collection-sql", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/collection-sql", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-collection-tree/package.json b/packages/plugins/@nocobase/plugin-collection-tree/package.json index 91769791dc..a56cf19276 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/package.json +++ b/packages/plugins/@nocobase/plugin-collection-tree/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-collection-tree", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Collection: Tree", "displayName.zh-CN": "数据表:树", "description": "Provides tree collection template", diff --git a/packages/plugins/@nocobase/plugin-data-source-main/package.json b/packages/plugins/@nocobase/plugin-data-source-main/package.json index ce05d83b39..d46436532c 100644 --- a/packages/plugins/@nocobase/plugin-data-source-main/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-main/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as PostgreSQL, MySQL, MariaDB and so on.", "description.zh-CN": "NocoBase 主数据库,支持 PostgreSQL、MySQL、MariaDB 等关系型数据库。", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/data-source-main", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-main", diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index 685680d3dd..d9b293d2a6 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-source-manager", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "displayName": "Data source manager", "displayName.zh-CN": "数据源管理", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/package.json b/packages/plugins/@nocobase/plugin-data-visualization/package.json index 737d9d8db7..58350928af 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/package.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-visualization", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Data visualization", "displayName.zh-CN": "数据可视化", "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.", diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index 421e4f9a1a..ab6cccbb99 100644 --- a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json +++ b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-disable-pm-add", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/package.json b/packages/plugins/@nocobase/plugin-environment-variables/package.json index 40d32f5be2..5c811e7a1b 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/package.json +++ b/packages/plugins/@nocobase/plugin-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-environment-variables", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index 3e8af48293..bf471dec31 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/package.json +++ b/packages/plugins/@nocobase/plugin-error-handler/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "错误处理器", "description": "Handling application errors and exceptions.", "description.zh-CN": "处理应用程序中的错误和异常。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-field-china-region/package.json b/packages/plugins/@nocobase/plugin-field-china-region/package.json index 2a7dc1dd02..b9042cdd66 100644 --- a/packages/plugins/@nocobase/plugin-field-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-field-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-china-region", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Collection field: administrative divisions of China", "displayName.zh-CN": "数据表字段:中国行政区划", "description": "Provides data and field type for administrative divisions of China.", diff --git a/packages/plugins/@nocobase/plugin-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 471188b7c2..67189b1dd6 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/package.json +++ b/packages/plugins/@nocobase/plugin-field-formula/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:公式", "description": "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.", "description.zh-CN": "可以配置并存储同一条记录的多字段值之间的计算结果,支持 Math.js 和 Excel formula functions 两种引擎", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json index 0e034d629d..7aaacf3ead 100644 --- a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:多对多 (数组)", "description": "Allows to create many to many relationships between two models by storing an array of unique keys of the target model.", "description.zh-CN": "支持通过在数组中存储目标表唯一键的方式建立多对多关系。", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json index 7f9b314cc9..bde67389a3 100644 --- a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:Markdown(Vditor)", "description": "Used to store Markdown and render it using Vditor editor, supports common Markdown syntax such as list, code, quote, etc., and supports uploading images, recordings, etc.It also allows for instant rendering, where what you see is what you get.", "description.zh-CN": "用于存储 Markdown,并使用 Vditor 编辑器渲染,支持常见 Markdown 语法,如列表,代码,引用等,并支持上传图片,录音等。同时可以做到即时渲染,所见即所得。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-markdown-vditor", diff --git a/packages/plugins/@nocobase/plugin-field-sequence/package.json b/packages/plugins/@nocobase/plugin-field-sequence/package.json index 13d70e2462..979cfcd076 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/package.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:自动编码", "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index 6c1579ded4..cb41a71107 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-sort", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "displayName": "Collection field: Sort", "displayName.zh-CN": "数据表字段:排序", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 4f14aa2769..cb43f0624a 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/package.json +++ b/packages/plugins/@nocobase/plugin-file-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-file-manager", - "version": "1.6.8", + "version": "1.6.9", "displayName": "File manager", "displayName.zh-CN": "文件管理器", "description": "Provides files storage services with files collection template and attachment field.", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index cdfedc4f73..7ae3c19668 100644 --- a/packages/plugins/@nocobase/plugin-gantt/package.json +++ b/packages/plugins/@nocobase/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-gantt", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Block: Gantt", "displayName.zh-CN": "区块:甘特图", "description": "Provides Gantt block.", diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json index 778de77228..57e3f8b847 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "可视化数据表管理", "description": "An ER diagram-like tool. Currently only the Master database is supported.", "description.zh-CN": "类似 ER 图的工具,目前只支持主数据库。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/graph-collection-manager", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index ceb0105bae..d5b92b9c37 100644 --- a/packages/plugins/@nocobase/plugin-kanban/package.json +++ b/packages/plugins/@nocobase/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-kanban", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-kanban", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-kanban", diff --git a/packages/plugins/@nocobase/plugin-localization/package.json b/packages/plugins/@nocobase/plugin-localization/package.json index 96957e4b5d..b175c3972f 100644 --- a/packages/plugins/@nocobase/plugin-localization/package.json +++ b/packages/plugins/@nocobase/plugin-localization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/localization-management", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/localization-management", diff --git a/packages/plugins/@nocobase/plugin-logger/package.json b/packages/plugins/@nocobase/plugin-logger/package.json index ca1491ad2b..c82b5b4566 100644 --- a/packages/plugins/@nocobase/plugin-logger/package.json +++ b/packages/plugins/@nocobase/plugin-logger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "日志", "description": "Server-side logs, mainly including API request logs and system runtime logs, and allows to package and download log files.", "description.zh-CN": "服务端日志,主要包括接口请求日志和系统运行日志,并支持打包和下载日志文件。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/logger", diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index d20aebeea8..dd88329a4d 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-map", "displayName": "Block: Map", "displayName.zh-CN": "区块:地图", - "version": "1.6.8", + "version": "1.6.9", "description": "Map block, support Gaode map and Google map, you can also extend more map types.", "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index 935b19768c..af653c2da6 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/package.json +++ b/packages/plugins/@nocobase/plugin-mobile-client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile-client", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile-client", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile-client", diff --git a/packages/plugins/@nocobase/plugin-mobile/package.json b/packages/plugins/@nocobase/plugin-mobile/package.json index c5351af24a..bd463c7563 100644 --- a/packages/plugins/@nocobase/plugin-mobile/package.json +++ b/packages/plugins/@nocobase/plugin-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile", diff --git a/packages/plugins/@nocobase/plugin-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index 939993a310..39cfbefb97 100644 --- a/packages/plugins/@nocobase/plugin-mock-collections/package.json +++ b/packages/plugins/@nocobase/plugin-mock-collections/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-mock-collections", "displayName": "mock-collections", "description": "mock-collections", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "license": "AGPL-3.0", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json index bc76a29422..53645fad40 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用管理器", "description": "Dynamically create multiple apps without separate deployments.", "description.zh-CN": "无需单独部署即可动态创建多个应用。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/multi-app-manager", diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json index 4b7f82e172..634208fcc2 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用数据表共享", "description": "", "description.zh-CN": "", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notification-email/package.json b/packages/plugins/@nocobase/plugin-notification-email/package.json index 7b2190a9e7..dcf0c296ed 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/package.json +++ b/packages/plugins/@nocobase/plugin-notification-email/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-email", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Notification: Email", "displayName.zh-CN": "通知:电子邮件", "description": "Used for sending email notifications with built-in SMTP transport.", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json index 254cd35456..8bc194c265 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-in-app-message", - "version": "1.6.8", + "version": "1.6.9", "displayName": "Notification: In-app message", "displayName.zh-CN": "通知:站内信", "description": "It supports users in receiving real-time message notifications within the NocoBase application.", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/package.json b/packages/plugins/@nocobase/plugin-notification-manager/package.json index a8892d271c..e9e0c19953 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/package.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/package.json @@ -4,7 +4,7 @@ "description": "Provides a unified management service that includes channel configuration, logging, and other features, supporting the configuration of various notification channels, including in-app message and email.", "displayName.zh-CN": "通知管理", "description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。", - "version": "1.6.8", + "version": "1.6.9", "homepage": "https://docs.nocobase.com/handbook/notification-manager", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index 6f1d580f9f..0c26e75797 100644 --- a/packages/plugins/@nocobase/plugin-notifications/package.json +++ b/packages/plugins/@nocobase/plugin-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notifications", - "version": "1.6.8", + "version": "1.6.9", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-public-forms/package.json b/packages/plugins/@nocobase/plugin-public-forms/package.json index 29baa794af..7db9e76a2f 100644 --- a/packages/plugins/@nocobase/plugin-public-forms/package.json +++ b/packages/plugins/@nocobase/plugin-public-forms/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-public-forms", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "displayName": "Public forms", "displayName.zh-CN": "公开表单", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index cbfe2ffa0a..8b3238d539 100644 --- a/packages/plugins/@nocobase/plugin-sample-hello/package.json +++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-sample-hello", - "version": "1.6.8", + "version": "1.6.9", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index 7d860a491c..7ae8bbe755 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:关系快照", "description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.", "description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-snapshot", diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json index 9f540d3f6f..2b5bc49051 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/package.json +++ b/packages/plugins/@nocobase/plugin-system-settings/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "系统设置", "description": "Used to adjust the system title, logo, language, etc.", "description.zh-CN": "用于调整系统的标题、LOGO、语言等。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/system-settings", diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json index 22187328a7..ea7644ee71 100644 --- a/packages/plugins/@nocobase/plugin-theme-editor/package.json +++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-theme-editor", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/theme-editor", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor", diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 4d3608baec..4f3f29bd32 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "UI schema 存储服务", "description": "Provides centralized UI schema storage service.", "description.zh-CN": "提供中心化的 UI schema 存储服务。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/ui-schema-storage", diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json index f7dc22674d..d0795c6ab9 100644 --- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户数据同步", "description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.", "description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。", - "version": "1.6.8", + "version": "1.6.9", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 9de697a401..83001751b4 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户", "description": "Provides basic user model, as well as created by and updated by fields.", "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/users", diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json index e4d0ca6149..d0b4a9ab82 100644 --- a/packages/plugins/@nocobase/plugin-verification/package.json +++ b/packages/plugins/@nocobase/plugin-verification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "验证码", "description": "verification setting.", "description.zh-CN": "验证码配置。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/verification", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json index df3b3bce3c..a55a54fccb 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:操作后事件", "description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.", "description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger", diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json index 007ccd2017..6ddf5662b6 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:聚合查询节点", "description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.", "description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-aggregate", diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json index 9a3c85cffc..ba3401fc2b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:延时节点", "description": "Could be used in workflow parallel branch for waiting other branches.", "description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-delay", diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json index 30a770e8d3..2874ffe9ae 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:动态表达式计算节点", "description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.", "description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation", diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json index 487e38fa7b..e4a7a942e1 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:循环节点", "description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.", "description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-loop", diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json index fc60f85013..7d96e3c386 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:邮件发送节点", "description": "Send email in workflow.", "description.zh-CN": "可用于在工作流中发送电子邮件。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index 5d559de630..85c39265b2 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:人工处理节点", "description": "Could be used for workflows which some of decisions are made by users.", "description.zh-CN": "用于人工控制部分决策的流程。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-manual", diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json index b7a97c67f6..e452fae2f4 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:通知节点", "description": "Send notification in workflow.", "description.zh-CN": "可用于在工作流中发送各类通知。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index 5178a277a0..80daa85699 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:并行分支节点", "description": "Could be used for parallel execution of branch processes in the workflow.", "description.zh-CN": "用于在工作流中需要并行执行的分支流程。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-parallel", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json index e698f3f855..803df271f9 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:HTTP 请求节点", "description": "Send HTTP requests to any HTTP service for data interaction in workflow.", "description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-request", diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json index 9dadc5240c..168eb4370d 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:SQL 节点", "description": "Execute SQL statements in workflow.", "description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-sql", diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json index 758e93be8e..4bceaec36a 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-workflow-test", "displayName": "Workflow: test kit", "displayName.zh-CN": "工作流:测试工具包", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "dist/server/index.js", "types": "./dist/server/index.d.ts", diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json index ca78bd3c02..cd31d9243f 100644 --- a/packages/plugins/@nocobase/plugin-workflow/package.json +++ b/packages/plugins/@nocobase/plugin-workflow/package.json @@ -4,13 +4,13 @@ "displayName.zh-CN": "工作流", "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.", "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow", "dependencies": { - "@nocobase/plugin-workflow-test": "1.6.8" + "@nocobase/plugin-workflow-test": "1.6.9" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 549735facf..5976136dfa 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,80 +1,80 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.6.8", + "version": "1.6.9", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.6.8", - "@nocobase/plugin-action-bulk-edit": "1.6.8", - "@nocobase/plugin-action-bulk-update": "1.6.8", - "@nocobase/plugin-action-custom-request": "1.6.8", - "@nocobase/plugin-action-duplicate": "1.6.8", - "@nocobase/plugin-action-export": "1.6.8", - "@nocobase/plugin-action-import": "1.6.8", - "@nocobase/plugin-action-print": "1.6.8", - "@nocobase/plugin-ai": "1.6.8", - "@nocobase/plugin-api-doc": "1.6.8", - "@nocobase/plugin-api-keys": "1.6.8", - "@nocobase/plugin-async-task-manager": "1.6.8", - "@nocobase/plugin-audit-logs": "1.6.8", - "@nocobase/plugin-auth": "1.6.8", - "@nocobase/plugin-auth-sms": "1.6.8", - "@nocobase/plugin-backup-restore": "1.6.8", - "@nocobase/plugin-block-iframe": "1.6.8", - "@nocobase/plugin-block-workbench": "1.6.8", - "@nocobase/plugin-calendar": "1.6.8", - "@nocobase/plugin-charts": "1.6.8", - "@nocobase/plugin-client": "1.6.8", - "@nocobase/plugin-collection-sql": "1.6.8", - "@nocobase/plugin-collection-tree": "1.6.8", - "@nocobase/plugin-data-source-main": "1.6.8", - "@nocobase/plugin-data-source-manager": "1.6.8", - "@nocobase/plugin-data-visualization": "1.6.8", - "@nocobase/plugin-environment-variables": "1.6.8", - "@nocobase/plugin-error-handler": "1.6.8", - "@nocobase/plugin-field-china-region": "1.6.8", - "@nocobase/plugin-field-formula": "1.6.8", - "@nocobase/plugin-field-m2m-array": "1.6.8", - "@nocobase/plugin-field-markdown-vditor": "1.6.8", - "@nocobase/plugin-field-sequence": "1.6.8", - "@nocobase/plugin-field-sort": "1.6.8", - "@nocobase/plugin-file-manager": "1.6.8", - "@nocobase/plugin-gantt": "1.6.8", - "@nocobase/plugin-graph-collection-manager": "1.6.8", - "@nocobase/plugin-kanban": "1.6.8", - "@nocobase/plugin-localization": "1.6.8", - "@nocobase/plugin-logger": "1.6.8", - "@nocobase/plugin-map": "1.6.8", - "@nocobase/plugin-mobile": "1.6.8", - "@nocobase/plugin-mobile-client": "1.6.8", - "@nocobase/plugin-mock-collections": "1.6.8", - "@nocobase/plugin-multi-app-manager": "1.6.8", - "@nocobase/plugin-multi-app-share-collection": "1.6.8", - "@nocobase/plugin-notification-email": "1.6.8", - "@nocobase/plugin-notification-in-app-message": "1.6.8", - "@nocobase/plugin-notification-manager": "1.6.8", - "@nocobase/plugin-public-forms": "1.6.8", - "@nocobase/plugin-snapshot-field": "1.6.8", - "@nocobase/plugin-system-settings": "1.6.8", - "@nocobase/plugin-theme-editor": "1.6.8", - "@nocobase/plugin-ui-schema-storage": "1.6.8", - "@nocobase/plugin-user-data-sync": "1.6.8", - "@nocobase/plugin-users": "1.6.8", - "@nocobase/plugin-verification": "1.6.8", - "@nocobase/plugin-workflow": "1.6.8", - "@nocobase/plugin-workflow-action-trigger": "1.6.8", - "@nocobase/plugin-workflow-aggregate": "1.6.8", - "@nocobase/plugin-workflow-delay": "1.6.8", - "@nocobase/plugin-workflow-dynamic-calculation": "1.6.8", - "@nocobase/plugin-workflow-loop": "1.6.8", - "@nocobase/plugin-workflow-mailer": "1.6.8", - "@nocobase/plugin-workflow-manual": "1.6.8", - "@nocobase/plugin-workflow-notification": "1.6.8", - "@nocobase/plugin-workflow-parallel": "1.6.8", - "@nocobase/plugin-workflow-request": "1.6.8", - "@nocobase/plugin-workflow-sql": "1.6.8", - "@nocobase/server": "1.6.8", + "@nocobase/plugin-acl": "1.6.9", + "@nocobase/plugin-action-bulk-edit": "1.6.9", + "@nocobase/plugin-action-bulk-update": "1.6.9", + "@nocobase/plugin-action-custom-request": "1.6.9", + "@nocobase/plugin-action-duplicate": "1.6.9", + "@nocobase/plugin-action-export": "1.6.9", + "@nocobase/plugin-action-import": "1.6.9", + "@nocobase/plugin-action-print": "1.6.9", + "@nocobase/plugin-ai": "1.6.9", + "@nocobase/plugin-api-doc": "1.6.9", + "@nocobase/plugin-api-keys": "1.6.9", + "@nocobase/plugin-async-task-manager": "1.6.9", + "@nocobase/plugin-audit-logs": "1.6.9", + "@nocobase/plugin-auth": "1.6.9", + "@nocobase/plugin-auth-sms": "1.6.9", + "@nocobase/plugin-backup-restore": "1.6.9", + "@nocobase/plugin-block-iframe": "1.6.9", + "@nocobase/plugin-block-workbench": "1.6.9", + "@nocobase/plugin-calendar": "1.6.9", + "@nocobase/plugin-charts": "1.6.9", + "@nocobase/plugin-client": "1.6.9", + "@nocobase/plugin-collection-sql": "1.6.9", + "@nocobase/plugin-collection-tree": "1.6.9", + "@nocobase/plugin-data-source-main": "1.6.9", + "@nocobase/plugin-data-source-manager": "1.6.9", + "@nocobase/plugin-data-visualization": "1.6.9", + "@nocobase/plugin-environment-variables": "1.6.9", + "@nocobase/plugin-error-handler": "1.6.9", + "@nocobase/plugin-field-china-region": "1.6.9", + "@nocobase/plugin-field-formula": "1.6.9", + "@nocobase/plugin-field-m2m-array": "1.6.9", + "@nocobase/plugin-field-markdown-vditor": "1.6.9", + "@nocobase/plugin-field-sequence": "1.6.9", + "@nocobase/plugin-field-sort": "1.6.9", + "@nocobase/plugin-file-manager": "1.6.9", + "@nocobase/plugin-gantt": "1.6.9", + "@nocobase/plugin-graph-collection-manager": "1.6.9", + "@nocobase/plugin-kanban": "1.6.9", + "@nocobase/plugin-localization": "1.6.9", + "@nocobase/plugin-logger": "1.6.9", + "@nocobase/plugin-map": "1.6.9", + "@nocobase/plugin-mobile": "1.6.9", + "@nocobase/plugin-mobile-client": "1.6.9", + "@nocobase/plugin-mock-collections": "1.6.9", + "@nocobase/plugin-multi-app-manager": "1.6.9", + "@nocobase/plugin-multi-app-share-collection": "1.6.9", + "@nocobase/plugin-notification-email": "1.6.9", + "@nocobase/plugin-notification-in-app-message": "1.6.9", + "@nocobase/plugin-notification-manager": "1.6.9", + "@nocobase/plugin-public-forms": "1.6.9", + "@nocobase/plugin-snapshot-field": "1.6.9", + "@nocobase/plugin-system-settings": "1.6.9", + "@nocobase/plugin-theme-editor": "1.6.9", + "@nocobase/plugin-ui-schema-storage": "1.6.9", + "@nocobase/plugin-user-data-sync": "1.6.9", + "@nocobase/plugin-users": "1.6.9", + "@nocobase/plugin-verification": "1.6.9", + "@nocobase/plugin-workflow": "1.6.9", + "@nocobase/plugin-workflow-action-trigger": "1.6.9", + "@nocobase/plugin-workflow-aggregate": "1.6.9", + "@nocobase/plugin-workflow-delay": "1.6.9", + "@nocobase/plugin-workflow-dynamic-calculation": "1.6.9", + "@nocobase/plugin-workflow-loop": "1.6.9", + "@nocobase/plugin-workflow-mailer": "1.6.9", + "@nocobase/plugin-workflow-manual": "1.6.9", + "@nocobase/plugin-workflow-notification": "1.6.9", + "@nocobase/plugin-workflow-parallel": "1.6.9", + "@nocobase/plugin-workflow-request": "1.6.9", + "@nocobase/plugin-workflow-sql": "1.6.9", + "@nocobase/server": "1.6.9", "cronstrue": "^2.11.0", "fs-extra": "^11.1.1" }, From a3c941178f0828493415dbb3ae1b36b57bc633b2 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Sun, 23 Mar 2025 03:53:54 +0000 Subject: [PATCH 029/137] docs: update changelogs --- CHANGELOG.md | 6 ++++++ CHANGELOG.zh-CN.md | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c976f83a7..db7eba3f70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.6.9](https://github.com/nocobase/nocobase/compare/v1.6.8...v1.6.9) - 2025-03-23 + +### 🐛 Bug Fixes + +- **[client]** action button transparency causing setting display issue on hover ([#6529](https://github.com/nocobase/nocobase/pull/6529)) by @katherinehhh + ## [v1.6.8](https://github.com/nocobase/nocobase/compare/v1.6.7...v1.6.8) - 2025-03-22 ### 🐛 Bug Fixes diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index d6ba487f12..3c8127159c 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -5,6 +5,12 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +## [v1.6.9](https://github.com/nocobase/nocobase/compare/v1.6.8...v1.6.9) - 2025-03-23 + +### 🐛 修复 + +- **[client]** 操作按钮透明状态导致 hover 时按钮 setting 显示异常 ([#6529](https://github.com/nocobase/nocobase/pull/6529)) by @katherinehhh + ## [v1.6.8](https://github.com/nocobase/nocobase/compare/v1.6.7...v1.6.8) - 2025-03-22 ### 🐛 修复 From c985522fa35ccc402a063bc2b679d3bed4b30e74 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Mon, 24 Mar 2025 16:46:40 +0800 Subject: [PATCH 030/137] fix(collection-tree): migration issue (#6537) * fix(collection-tree): migration issue * fix: bug --- .../20240802141435-collection-tree.ts | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-collection-tree/src/server/migrations/20240802141435-collection-tree.ts b/packages/plugins/@nocobase/plugin-collection-tree/src/server/migrations/20240802141435-collection-tree.ts index 61772f45ab..27def98812 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/src/server/migrations/20240802141435-collection-tree.ts +++ b/packages/plugins/@nocobase/plugin-collection-tree/src/server/migrations/20240802141435-collection-tree.ts @@ -31,6 +31,8 @@ export default class extends Migration { await this.db.sequelize.transaction(async (transaction) => { const treeCollections = await this.getTreeCollections({ transaction }); for (const treeCollection of treeCollections) { + await treeCollection.load({ transaction }); + const name = `main_${treeCollection.name}_path`; const collectionOptions = { name, @@ -47,35 +49,16 @@ export default class extends Migration { }, ], }; - const collectionInstance = this.db.getCollection(treeCollection.name); const treeCollectionSchema = collectionInstance.collectionSchema(); - if (this.app.db.inDialect('postgres') && treeCollectionSchema != this.app.db.options.schema) { collectionOptions['schema'] = treeCollectionSchema; } - this.app.db.collection(collectionOptions); const treeExistsInDb = await this.app.db.getCollection(name).existsInDb({ transaction }); - if (!treeExistsInDb) { await this.app.db.getCollection(name).sync({ transaction } as SyncOptions); - const opts = { - name: treeCollection.name, - autoGenId: false, - timestamps: false, - fields: [ - { type: 'integer', name: 'id' }, - { type: 'integer', name: 'parentId' }, - ], - }; - - if (treeCollectionSchema != this.app.db.options.schema) { - opts['schema'] = treeCollectionSchema; - } - - this.app.db.collection(opts); const chunkSize = 1000; await this.app.db.getRepository(treeCollection.name).chunk({ chunkSize: chunkSize, From 38bac8291e3096485fbb68e51f99651115b3f492 Mon Sep 17 00:00:00 2001 From: gchust Date: Mon, 24 Mar 2025 16:56:52 +0800 Subject: [PATCH 031/137] fix: yarn doc error (#6540) --- .../client/src/schema-component/antd/page/index.en-US.md | 5 ----- packages/core/client/src/schema-component/antd/page/index.md | 5 ----- 2 files changed, 10 deletions(-) delete mode 100644 packages/core/client/src/schema-component/antd/page/index.en-US.md delete mode 100644 packages/core/client/src/schema-component/antd/page/index.md diff --git a/packages/core/client/src/schema-component/antd/page/index.en-US.md b/packages/core/client/src/schema-component/antd/page/index.en-US.md deleted file mode 100644 index 1720833bd5..0000000000 --- a/packages/core/client/src/schema-component/antd/page/index.en-US.md +++ /dev/null @@ -1,5 +0,0 @@ -# Page - -Can be used in conjunction with DocumentTitleProvider to display the page title on document.title. - - diff --git a/packages/core/client/src/schema-component/antd/page/index.md b/packages/core/client/src/schema-component/antd/page/index.md deleted file mode 100644 index f505078b94..0000000000 --- a/packages/core/client/src/schema-component/antd/page/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Page - -可以与 DocumentTitleProvider 搭配使用,将 page title 显示在 document.title 上。 - - From 3b86eccca4d0aa83d4e3c03bfbd7de9536c77b63 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Mon, 24 Mar 2025 17:18:14 +0800 Subject: [PATCH 032/137] fix(custom-request): unable to download utf-8 encoded files (#6541) --- .../client/hooks/useCustomizeRequestActionProps.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/src/client/hooks/useCustomizeRequestActionProps.ts b/packages/plugins/@nocobase/plugin-action-custom-request/src/client/hooks/useCustomizeRequestActionProps.ts index 4e8754e313..e64d9e41d7 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/src/client/hooks/useCustomizeRequestActionProps.ts +++ b/packages/plugins/@nocobase/plugin-action-custom-request/src/client/hooks/useCustomizeRequestActionProps.ts @@ -67,10 +67,13 @@ export const useCustomizeRequestActionProps = () => { responseType: fieldSchema['x-response-type'] === 'stream' ? 'blob' : 'json', }); if (res.headers['content-disposition']) { - const regex = /attachment;\s*filename="([^"]+)"/; - const match = res.headers['content-disposition'].match(regex); - if (match?.[1]) { - saveAs(res.data, match[1]); + const contentDisposition = res.headers['content-disposition']; + const utf8Match = contentDisposition.match(/filename\*=utf-8''([^;]+)/i); + const asciiMatch = contentDisposition.match(/filename="([^"]+)"/i); + if (utf8Match) { + saveAs(res.data, decodeURIComponent(utf8Match[1])); + } else if (asciiMatch) { + saveAs(res.data, asciiMatch[1]); } } actionField.data.loading = false; From 2fefcfbcf215663179e3d69b27c9413c95c1fc59 Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Mon, 24 Mar 2025 20:34:06 +0800 Subject: [PATCH 033/137] fix: remove "Allow multiple selection" from multiple locale files (#6515) * fix: remove "Allow multiple selection" from multiple locale files * chore: format * feat(client): add visibility control for allowMultiple * Revert "fix: remove "Allow multiple selection" from multiple locale files" This reverts commit 9d63791d1fced73e6860bcf5c8987a5f15ecac79. --- packages/core/client/src/locale/it-IT.json | 2168 ++++++++--------- .../Select/selectComponentFieldSettings.tsx | 4 + 2 files changed, 1088 insertions(+), 1084 deletions(-) diff --git a/packages/core/client/src/locale/it-IT.json b/packages/core/client/src/locale/it-IT.json index 44a48bc9c8..e033da14c3 100644 --- a/packages/core/client/src/locale/it-IT.json +++ b/packages/core/client/src/locale/it-IT.json @@ -1,1084 +1,1084 @@ -{ - "Display <1><0>10<1>20<2>50<3>100 items per page": "Visualizza <1><0>10<1>20<2>50<3>100 articoli per pagina", - "Meet <1><0>All<1>Any conditions in the group": "Soddisfa<1><0>Tutte<1>Qualsiasicondizioni nel gruppo", - "Open in<1><0>Modal<1>Drawer<2>Window": "Apri in<1><0>Modale<1>Cassetto<2>Finestra", - "{{count}} filter items": "{{Count}} filtri elementi", - "{{count}} more items": "{{Count}} altri elementi", - "Total {{count}} items": "{{count}} elementi totali", - "Today": "Oggi", - "Yesterday": "Ieri", - "Tomorrow": "Domani", - "Month": "Mese", - "Week": "Settimana", - "This week": "Questa settimana", - "This month": "Questo mese", - "This year": "Quest'anno", - "Next year": "Anno prossimo", - "Last week": "Settimana scorsa", - "Next week": "Prossima settimana", - "Last month": "Mese scorso", - "Next month": "Mese prossimo", - "Last quarter": "Ultimo trimestre", - "This quarter": "Questo trimestre", - "Next quarter": "Prossimo trimestre", - "Last year": "Anno scorso", - "Last 7 days": "Ultimi 7 giorni", - "Last 30 days": "Ultimi 30 giorni", - "Last 90 days": "Ultimi 90 giorni", - "Next 7 days": "Prossimi 7 giorni", - "Next 30 days": "Prossimi 30 giorni", - "Next 90 days": "Prossimi 90 giorni", - "Work week": "Settimana lavorativa", - "Day": "Giorno", - "Agenda": "Agenda", - "Date": "Data", - "Time": "Tempo", - "Event": "Evento", - "None": "Nessuno", - "Unconnected": "Non collegato", - "System settings": "Impostazioni di sistema", - "System title": "Titolo del sistema", - "Settings": "Impostazioni", - "Logo": "Logo", - "Add menu item": "Aggiungi voce di menu", - "Page": "Pagina", - "Name": "Nome", - "Icon": "Icona", - "Group": "Gruppo", - "Link": "Collegamento", - "Save conditions": "Salva condizioni", - "Edit menu item": "Modifica voce di menu", - "Move to": "Passa a", - "Insert left": "Inserisci a sinistra", - "Insert right": "Inserire a destra", - "Insert inner": "Inserire dentro", - "Delete": "Eliminare", - "Disassociate": "Dissociare", - "Disassociate record": "Dissociare record", - "Are you sure you want to disassociate it?": "Sei sicuro di voler dissociare?", - "UI editor": "Editor UI", - "Collection": "Raccolta", - "Collection selector": "Selettore di raccolta", - "Providing certain collections as options for users, typically used in polymorphic or inheritance scenarios": "Fornire alcune raccolte come opzioni per gli utenti, in genere utilizzati negli scenari polimorfici o ereditari", - "Collections & Fields": "Raccolte e campi", - "All collections": "Tutte le raccolte", - "Add category": "Aggiungi categoria", - "Enable child collections": "Abilita raccolte figlie", - "Allow adding records to the current collection": "Consenti l'aggiunta di record alla raccolta corrente", - "Delete category": "Elimina categoria", - "Edit category": "Modifica categoria", - "Collection category": "Categoria raccolta", - "Collection template": "Modello raccolta", - "Sort": "Ordina", - "Categories": "Categorie", - "Visible": "Visibile", - "Read only": "Solo lettura", - "Easy reading": "Lettura facile", - "Hidden": "Nascosto", - "Hidden(reserved value)": "Nascosto (valore riservato)", - "Not required": "Non richiesto", - "Value": "Valore", - "Disabled": "Disabilitato", - "Enabled": "Abilitato", - "Problematic": "Con problemi", - "Setting": "Impostazioni", - "On": "Acceso", - "Off": "Spento", - "Empty": "Vuoto", - "Linkage rule": "Regola di collegamento", - "Linkage rules": "Regole di collegamento", - "Condition": "Condizione", - "Properties": "Proprietà", - "Add linkage rule": "Aggiungi regola di collegamento", - "Add property": "Aggiungi proprietà", - "Category name": "Nome della categoria", - "Roles & Permissions": "Ruoli e autorizzazioni", - "Edit profile": "Modifica profilo", - "Change password": "Cambia password", - "Old password": "Vecchia password", - "New password": "Nuova password", - "Switch role": "Cambia ruolo", - "Super admin": "Super Admin", - "Language": "Lingua", - "Allow sign up": "Consenti iscrizione", - "Enable SMS authentication": "Abilita autenticazione SMS", - "Sign out": "Disconnessione", - "Cancel": "Annulla", - "Submit": "Invia", - "Close": "Chiudi", - "Set the data scope": "Imposta l'ambito dei dati", - "Set data loading mode": "Imposta modalità di caricamento dei dati", - "Load all data when filter is empty": "Carica tutti i dati quando il filtro è vuoto", - "Do not load data when filter is empty": "Non caricare i dati quando il filtro è vuoto", - "Data loading mode": "Modalità di caricamento dei dati", - "Data blocks": "Blocchi dati", - "Filter blocks": "Blocchi filtro", - "Table": "Tabella", - "Table OID(Inheritance)": "Tabella OID (eredità)", - "Form": "Modulo", - "List": "Elenco", - "Grid Card": "Scheda griglia", - "pixels": "pixel", - "Screen size": "Dimensione dello schermo", - "Display title": "Visualizza titolo", - "Set the count of columns displayed in a row": "Imposta conteggio delle colonne visualizzate in una riga", - "Column": "Colonna", - "Phone device": "Telefono", - "Tablet device": "Tablet", - "Desktop device": "Desktop", - "Large screen device": "Schermo di grandi dimensioni", - "Collapse": "Comprimi", - "Select data source": "Seleziona origine dati", - "Calendar": "Calendario", - "Delete events": "Elimina eventi", - "This event": "Questo evento", - "This and following events": "Questo e seguenti eventi", - "All events": "Tutti gli eventi", - "Delete this event?": "Eliminare questo evento?", - "Delete Event": "Elimina evento", - "Kanban": "Kanban", - "Gantt": "Gantt", - "Create gantt block": "Crea blocco Gantt", - "Progress field": "Campo avanzamento", - "Time scale": "Scala del tempo", - "Hour": "Ora", - "Quarter of day": "Quarto del giorno", - "Half of day": "Metà del giorno", - "Year": "Anno", - "QuarterYear": "Quarto dell' anno", - "Select grouping field": "Seleziona campo di raggruppamento", - "Media": "Media", - "Markdown": "Markdown", - "Wysiwyg": "Wysiwyg", - "Chart blocks": "Blocchi grafici", - "Column chart": "Grafico a colonne", - "Bar chart": "Grafico a barre", - "Line chart": "Grafico a linee", - "Pie chart": "Grafico a torta", - "Area chart": "Grafico ad area", - "Other chart": "Altro grafico", - "Other blocks": "Altri blocchi", - "In configuration": "In configurazione", - "Chart title": "Titolo grafico", - "Chart type": "Tipo grafico", - "Chart config": "Configurazione grafico", - "Templates": "Modelli", - "Select template": "Seleziona modello", - "Action logs": "Registri eventi", - "Create template": "Crea modello", - "Edit markdown": "Modifica Markdown", - "Add block": "Aggiungi blocco", - "Add new": "Aggiungi nuovo", - "Add record": "Aggiungi record", - "Add child": "Aggiungi figlio", - "Collapse all": "Comprimi tutto", - "Expand all": "Espandi tutto", - "Expand/Collapse": "Espandi/Comprimi", - "Default collapse": "Comprimi di default", - "Tree table": "Tabella struttura ad albero", - "Custom field display name": "Nome visualizzato campo personalizzato ", - "Display fields": "Visualizza campi", - "Edit record": "Modifica record", - "Delete menu item": "Elimina voce di menu", - "Add page": "Aggiungi pagina", - "Add group": "Aggiungi gruppo", - "Add link": "Aggiungi link", - "Insert above": "Inserisci sopra", - "Insert below": "Inserisci sotto", - "Save": "Salva", - "Delete block": "Elimina blocco", - "Are you sure you want to delete it?": "Sei sicuro di volerlo eliminare?", - "This is a demo text, **supports Markdown syntax**.": "Questo è un testo demo, ** supporta la sintassi di Markdown **.", - "Filter": "Filtro", - "Connect data blocks": "Collega blocchi di dati", - "Action type": "Tipo di azione", - "Actions": "Azioni", - "Insert": "Inserisci", - "Insert if not exists": "Inserisci se non esiste", - "Insert if not exists, or update": "Inserisci se non esiste o aggiorna", - "Determine whether a record exists by the following fields": "Determina se un record esiste dai seguenti campi", - "Update": "Aggiorna", - "Update record": "Aggiorna record", - "View": "Visualizza", - "View record": "Visualizza record", - "Refresh": "Refresh", - "Data changes": "Modifiche ai dati", - "Field name": "Nome campo", - "Before change": "Prima delle modifiche", - "After change": "Dopo le modifiche", - "Delete record": "Elimina record", - "Delete collection": "Elimina raccolta", - "Create collection": "Crea raccolta", - "Collection display name": "Nome visualizzato raccolta", - "Collection name": "Nome raccolta", - "Inherits": "Eredita", - "Primary key, unique identifier, self growth": "Chiave primaria, identificatore univoco, auto-incremento", - "Store the creation user of each record": "Memorizza l'utente della creazione di ogni record", - "Store the last update user of each record": "Memorizza l'ultimo utente di aggiornamento di ogni record", - "Store the creation time of each record": "Memorizza l'orario di creazione di ogni record", - "Store the last update time of each record": "Memorizza l'ultimo orario di aggiornamento di ogni record", - "More options": "Più opzioni", - "Records can be sorted": "I record possono essere ordinati", - "Calendar collection": "Raccolta calendario", - "General collection": "Raccolta generale", - "Connect to database view": "Connetti alla vista del database", - "Sync from database": "Sincronizza dal database", - "Source collections": "Sorgente raccolte", - "Field source": "Sorgente campo", - "Preview": "Anteprima", - "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Generato casualmente e può essere modificato. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", - "Edit": "Modifica", - "Edit collection": "Modifica raccolta", - "Configure fields": "Configura campi", - "Configure columns": "Configura colonne", - "Edit field": "Modifica campo", - "Override": "Forza", - "Override field": "Forza campo", - "Configure fields of {{title}}": "Configura campi di {{title}}", - "Association fields filter": "Filtro associazione campi", - "PK & FK fields": "Campi PK e FK", - "Association fields": "Campi associazione", - "Choices fields": "Campi scelte", - "System fields": "Campi di sistema", - "General fields": "Campi generali", - "Inherited fields": "Campi ereditati", - "Parent collection fields": "Campi raccolta padre", - "Basic": "Di base", - "Single line text": "Testo a riga singola", - "Long text": "Testo lungo", - "Phone": "Telefono", - "Email": "E-mail", - "Number": "Numero", - "Integer": "Intero", - "Percent": "Percentuale", - "Password": "Password", - "Advanced type": "Avanzato", - "Choices": "Scelte", - "Checkbox": "Casella di controllo", - "Single select": "Selezione singola", - "Multiple select": "Selezione multipla", - "Radio group": "Gruppo radio", - "Checkbox group": "Gruppo cassella di controllo", - "China region": "Regione cinese", - "Date & Time": "Data e ora", - "Datetime": "DateTime", - "Relation": "Relazione", - "Link to": "Collegamento a", - "Link to description": "Utilizzato per creare relazioni tra raccolte in modo rapido e compatibile con gli scenari più comuni. Adatto per un uso da non sviluppatore. Se presente come campo, è una selezione a discesa utilizzata per selezionare i record dalla raccolta di destinazione. Una volta creato, genererà contemporaneamente i campi associati dell'attuale raccolta nella raccolta di destinazione.", - "Sub-table": "Sotto-tabella", - "Sub-details": "Sotto-dettagli", - "Sub-form(Popover)": "Sotto-modulo (Popover)", - "System info": "Informazioni di sistema", - "Created at": "Creato il", - "Last updated at": "Ultimo aggiornamento il", - "Created by": "Creato da", - "Last updated by": "Ultimo aggiornamento da", - "Add field": "Aggiungi campo", - "Field display name": "Nome visualizzato campo", - "Field type": "Tipo campo", - "Field interface": "Interfaccia campo", - "Date format": "Formato data", - "Year/Month/Day": "Anno/Mese/Giorno", - "Year-Month-Day": "Anno-Mese-Giorno", - "Day/Month/Year": "Giorno/Mese/Anno", - "Show time": "Mostra orario", - "Time format": "Formato tempo", - "12 hour": "12 ore", - "24 hour": "24 ore", - "Relationship type": "Tipo di relazione", - "Inverse relationship type": "Tipo di relazione inversa", - "Source collection": "Raccolta sorgente", - "Source key": "Chiave sorgente", - "Target collection": "Raccolta di destinazione", - "Through collection": "Attraverso la raccolta", - "Target key": "Chiave di destinazione", - "Foreign key": "Chiave esterna", - "One to one": "Uno a uno", - "One to many": "Uno a molti", - "Many to one": "Molti a uno", - "Many to many": "Molti a molti", - "Foreign key 1": "Chiave esterna 1", - "Foreign key 2": "Chiave esterna 2", - "One to one description": "Usato per creare relazioni one-to-one. Ad esempio, un utente ha un profilo.", - "One to many description": "Utilizzato per creare una relazione da uno a molti. Ad esempio, un paese avrà molte città e una città può essere solo in un paese. Se presente come campo, è una sotto-tabella che mostra i record della raccolta associata. Se creato, un campo molti-a-uno viene generato automaticamente nella raccolta associata.", - "Many to one description": "Utilizzato per creare relazioni molti-a-uno. Ad esempio, una città può appartenere a un solo paese e un paese può avere molte città. Se presente come campo, è una selezione a discesa utilizzata per selezionare il record dalla raccolta associata. Una volta creato, un campo da uno a molti viene generato automaticamente nella raccolta associata.", - "Many to many description": "Utilizzato per creare relazioni molti-a-molti. Ad esempio, uno studente avrà molti insegnanti e un insegnante avrà molti studenti. Se presente come campo, è una selezione a discesa utilizzata per selezionare i record dalla raccolta associata.", - "Generated automatically if left blank": "Generato automaticamente se lasciato vuoto", - "Display association fields": "Visualizza campi di associazione", - "Display field title": "Visualizza titolo campo", - "Field component": "Componente campo", - "Allow multiple": "Consenti multipli", - "Quick upload": "Caricamento rapido", - "Select file": "Seleziona file", - "Subtable": "Sotto-tabella", - "Sub-form": "Sotto-modulo", - "Field mode": "Modalità campo", - "Allow add new data": "Consenti aggiunta nuovi dati", - "Record picker": "Record Picker", - "Toggles the subfield mode": "Attiva la modalità Subfield", - "Selector mode": "Modalità selettore", - "Subtable mode": "Modalità sotto-tabella", - "Subform mode": "Modalità sotto-modulo", - "Block title": "Titolo blocco", - "Pattern": "Modello", - "Operator": "Operatore", - "Editable": "Modificabile", - "Readonly": "Solo lettura", - "Easy-reading": "Lettura facile", - "Add filter": "Aggiungi filtro", - "Add filter group": "Aggiungi gruppo di filtri", - "Comparision": "Confronto", - "is": "è", - "is not": "non lo è", - "contains": "contiene", - "does not contain": "non contiene", - "starts with": "inizia con", - "not starts with": "non inizia con", - "ends with": "termina con", - "not ends with": "non termina con", - "is empty": "è vuoto", - "is not empty": "non è vuoto", - "Edit chart": "Modifica grafico", - "Filterable fields": "Campi filtrabili", - "Edit button": "Modifica pulsante", - "Hide": "Nascondi", - "Enable actions": "Abilita azioni", - "Import": "Importa", - "Export": "Esporta", - "Customize": "Personalizza", - "Custom": "Personalizzato", - "Function": "Funzione", - "Popup form": "Modulo Popup", - "Flexible popup": "Popup flessibile", - "Configure actions": "Configura azioni", - "Display order number": "Visualizza numero ordinamento", - "Enable drag and drop sorting": "Abilita l'ordinamento con drag and drop", - "Triggered when the row is clicked": "Attivato quando si fa clic sulla riga", - "Add tab": "Aggiungi scheda", - "Disable tabs": "Disabilita schede", - "Details": "Dettagli", - "Edit form": "Modifica modulo", - "Create form": "Crea modulo", - "Form (Edit)": "Modulo (modifica)", - "Form (Add new)": "Modulo (aggiungi nuovo)", - "Edit tab": "Modifica scheda", - "Relationship blocks": "Blocchi di relazione", - "Select record": "Seleziona Record", - "Display name": "Visualizza nome", - "Select icon": "Seleziona icona", - "Custom column name": "Nome colonna personalizzato", - "Edit description": "Modifica descrizione", - "Required": "Richiesto", - "Unique": "Univoco", - "Primary": "Primario", - "Auto increment": "Incremento automatico", - "Label field": "Campo etichetta", - "Default is the ID field": "L'impostazione predefinita è il campo ID", - "Set default sorting rules": "Imposta regole di ordinamento predefinite", - "Set validation rules": "Imposta regole di convalida", - "Max length": "Lunghezza massima", - "Min length": "Lunghezza minima", - "Maximum": "Massimo", - "Minimum": "Minimo", - "Max length must greater than min length": "La lunghezza massima deve essere maggiore della lunghezza minima", - "Min length must less than max length": "La lunghezza minima deve essere inferiore della lunghezza massima", - "Maximum must greater than minimum": "Il massimo deve essere maggiore del minimo", - "Minimum must less than maximum": "Il minimo deve essere minore del massimo", - "Validation rule": "Regola di convalida", - "Add validation rule": "Aggiungi regola di convalida", - "Format": "Formato", - "Regular expression": "Espressione regolare", - "Error message": "Messaggio di errore", - "Length": "Lunghezza", - "The field value cannot be greater than ": "Il valore del campo non può essere maggiore di", - "The field value cannot be less than ": "Il valore del campo non può essere inferiore a", - "The field value is not an integer number": "Il valore del campo non è un numero intero", - "Set default value": "Imposta valore predefinito", - "Default value": "Valore predefinito", - "is before": "è prima", - "is after": "è dopo", - "is on or after": "a partire dal", - "is on or before": "entro il", - "is between": "è tra", - "Upload": "Upload", - "Select level": "Seleziona livello", - "Province": "Provincia", - "City": "Città", - "Area": "Zona", - "Street": "Strada", - "Village": "Villaggio", - "Must select to the last level": "Deve selezionare all'ultimo livello", - "Move {{title}} to": "Sposta {{title}} a", - "Target position": "Posizione di destinazione", - "After": "Dopo", - "Before": "Prima", - "Add {{type}} before \"{{title}}\"": "Aggiungi {{type}} prima di \"{{title}}\"", - "Add {{type}} after \"{{title}}\"": "Aggiungi {{type}} dopo \"{{title}}\"", - "Add {{type}} in \"{{title}}\"": "Aggiungi {{type}} in \"{{title}}\"", - "Original name": "Nome originale", - "Custom name": "Nome personalizzato", - "Custom Title": "Titolo personalizzato", - "Options": "Opzioni", - "Option value": "Valore opzione", - "Option label": "Etichetta opzione", - "Color": "Colore", - "Background Color": "Colore sfondo", - "Text Align": "Allineamento testo", - "Add option": "Aggiungi opzione", - "Related collection": "Raccolta correlata", - "Allow linking to multiple records": "Consenti ​collegamento a più record", - "Configure calendar": "Configura calendario", - "Title field": "Campo titolo", - "Custom title": "Titolo personalizzato", - "Daily": "Quotidiano", - "Weekly": "Settimanale", - "Monthly": "Mensile", - "Yearly": "Annuale", - "Repeats": "Ripeti", - "Show lunar": "Mostra lunare", - "Start date field": "Campo data di inizio", - "End date field": "Campo data di fine", - "Navigate": "Naviga", - "Title": "Titolo", - "Description": "Descrizione", - "Select view": "Seleziona vista", - "Reset": "Reset", - "Importable fields": "Campi importabili", - "Exportable fields": "Campi esportabili", - "Saved successfully": "Salvataggio riuscito", - "Nickname": "Soprannome", - "Sign in": "Registrazione", - "Sign in via account": "Accedi tramite account", - "Sign in via phone": "Accedi via telefono", - "Create an account": "Crea un account", - "Sign up": "Iscrizione", - "Confirm password": "Conferma password", - "Log in with an existing account": "Accedi con account esistente", - "Signed up successfully. It will jump to the login page.": "Registrazione riuscita. Reindirizzamento alla pagina di accesso.", - "Password mismatch": "Password non corretta", - "Users": "Utenti", - "Verification code": "Codice di verifica", - "Send code": "Invia codice", - "Retry after {{count}} seconds": "Riprova dopo {{count}} secondi", - "Roles": "Ruoli", - "Add role": "Aggiungi ruolo", - "Role name": "Nome ruolo", - "Configure": "Configura", - "Configure permissions": "Configura permessi", - "Edit role": "Modifica ruolo", - "Action permissions": "Permessi su azioni", - "Menu permissions": "Permessi su menu", - "Menu item name": "Nome voce di menu", - "Allow access": "Consenti accesso", - "Action name": "Nome azione", - "Allow action": "Consenti azione", - "Action scope": "Ambito azione", - "Operate on new data": "Operare su nuovi dati", - "Operate on existing data": "Operare su dati esistenti", - "Yes": "Si", - "No": "No", - "Red": "Rosso", - "Magenta": "Magenta", - "Volcano": "Vulcano", - "Orange": "Arancione", - "Gold": "Oro", - "Lime": "Lime", - "Green": "Verde", - "Cyan": "Ciano", - "Blue": "Blu", - "Geek blue": "Geek Blue", - "Purple": "Viola", - "Default": "Predefinito", - "Add card": "Aggiungi scheda", - "edit title": "modifica titolo", - "Turn pages": "Volta pagine", - "Others": "Altri", - "Other records": "Altri record", - "Save as template": "Salva come modello", - "Save as block template": "Salva come modello blocco", - "Block templates": "Modelli blocco", - "Block template": "Modello blocco", - "Convert reference to duplicate": "Converti ​​riferimento a duplicato", - "Template name": "Nome modello", - "Block type": "Tipo blocco", - "No blocks to connect": "Nessun blocco per connettersi", - "Action column": "Colonna azioni", - "Records per page": "Record per pagina", - "(Fields only)": "(Solo campi)", - "Button title": "Titolo pulsante", - "Button icon": "Icona pulsante", - "Submitted successfully": "Invio riuscito", - "Operation succeeded": "L'operazione è riuscita", - "Operation failed": "Operazione non riuscita", - "Open mode": "Modalità aperta", - "Popup size": "Dimensione popup", - "Small": "Piccolo", - "Middle": "Medio", - "Large": "Grande", - "Size": "Misura", - "Oversized": "Oversize", - "Auto": "Auto", - "Object Fit": "Adattato all'oggetto", - "Cover": "Cover", - "Fill": "Riempi", - "Contain": "Contiene", - "Scale Down": "Ridimensiona", - "Menu item title": "Titolo voce di menu", - "Menu item icon": "Icona voce di menu", - "Target": "Destinazione", - "Position": "Posizione", - "Insert before": "Inserire prima", - "Insert after": "Inserire dopo", - "UI Editor": "Editor UI", - "ASC": "Asc", - "DESC": "Desc", - "Add sort field": "Aggiungi campo di ordinamento", - "ID": "ID", - "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificatore per l'utilizzo del programma. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", - "Drawer": "Cassetto", - "Dialog": "Dialogo", - "Delete action": "Elimina azione", - "Custom column title": "Titolo colonna personalizzata", - "Column title": "Titolo colonna", - "Original title: ": "Titolo originale: ", - "Delete table column": "Elimina colonna della tabella", - "Skip required validation": "Salta convalida richiesta", - "Form values": "Valori modulo", - "Fields values": "Valori campi", - "The field has been deleted": "Il campo è stato eliminato", - "When submitting the following fields, the saved values are": "Quando si inviano i seguenti campi, i valori salvati sono", - "After successful submission": "Dopo un invio riuscito", - "Then": "Poi", - "Stay on current page": "Resta sulla pagina corrente", - "Redirect to": "Reindirizza a", - "Save action": "Salva azione", - "Exists": "Esiste", - "Add condition": "Aggiungi condizione", - "Add condition group": "Aggiungi gruppo di condizioni", - "exists": "esiste", - "not exists": "non esiste", - "Style": "Stile", - "=": "=", - "≠": "≠", - ">": ">", - "≥": "≥", - "<": "<", - "≤": "≤", - "Role UID": "Ruolo UID", - "Precision": "Precisione", - "Expression": "Espressione", - "Rich Text": "Testo ricco", - "Junction collection": "Raccolta giunzione", - "Leave it blank, unless you need a custom intermediate table": "Lascialo vuoto, a meno che tu non abbia bisogno di una tabella intermedia personalizzata", - "Fields": "Campi", - "Edit field title": "Modifica titolo campo", - "Field title": "Titolo campo", - "Original field title: ": "Titolo campo originale:", - "Edit tooltip": "Modifica suggerimento", - "Delete field": "Elimina campo", - "Select collection": "Seleziona raccolta", - "Blank block": "Blocco vuoto", - "Duplicate template": "Modello duplicato", - "Reference template": "Modello di riferimento", - "Create calendar block": "Crea blocco calendario", - "Create kanban block": "Crea blocco kanban", - "Grouping field": "Campo di raggruppamento", - "Single select and radio fields can be used as the grouping field": "I campi di selezione singoli e radio possono essere utilizzati come campo di raggruppamento", - "Tab name": "Nome della scheda", - "Current record blocks": "Blocchi record attuale", - "Popup message": "Messaggio popup", - "Delete role": "Elimina ruolo", - "Role display name": "Nome visualizzato ruolo", - "Default role": "Ruolo predefinito", - "All collections use general action permissions by default; permission configured individually will override the default one.": "Tutte le raccolte utilizzano i permessi di operazioni generali per impostazione predefinita; I permessi configurati individualmente sovrascriveranno quelli predefiniti.", - "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Consente la configurazione dell'intero sistema, tra cui interfaccia utente, raccolte, permessi, ecc.", - "New menu items are allowed to be accessed by default.": "È possibile accedere a nuove voci di menu per impostazione predefinita.", - "Global permissions": "Permessi globali", - "General permissions": "Permessi generali", - "Global action permissions": "Permessi operazioni globali", - "General action permissions": "Permessi operazioni generali", - "Plugin settings permissions": "Permessi impostazioni plugin", - "Allow to desgin pages": "Consenti progettazione pagine", - "Allow to manage plugins": "Consenti gestione plugin", - "Allow to configure plugins": "Consenti configurazione plugin", - "Allows to configure interface": "Consente di configurare l'interfaccia", - "Allows to install, activate, disable plugins": "Consente di installare, attivare, disabilitare i plugin", - "Allows to configure plugins": "Consente di configurare i plugin", - "Action display name": "Nome visualizzato azione", - "Allow": "Permetti", - "Data scope": "Ambito dei dati", - "Action on new records": "Azione su nuovi record", - "Action on existing records": "Azione su record esistenti", - "All records": "Tutti i record", - "Own records": "Record propri", - "Permission policy": "Policy di autorizzazione", - "Individual": "Individuale", - "General": "Generale", - "Accessible": "Accessibile", - "Configure permission": "Configura permesso", - "Action permission": "Permesso azione", - "Field permission": "Permesso campo", - "Scope name": "Nome ambito", - "Unsaved changes": "Modifiche non salvate", - "Are you sure you don't want to save?": "Sei sicuro di non voler salvare?", - "Dragging": "Trascina", - "Popup": "Popup", - "Trigger workflow": "Trigger workflow", - "Request API": "Richiesta API", - "Assign field values": "Assegna valori del campo", - "Constant value": "Valore costante", - "Dynamic value": "Valore dinamico", - "Current user": "Utente attuale", - "Current role": "Ruolo attuale", - "Current record": "Record attuale", - "Current collection": "Raccolta attuale", - "Other collections": "Altre raccolte", - "Current popup record": "Record popup attuale", - "Parent popup record": "Record popup padre", - "Associated records": "Record associati", - "Parent record": "Record padre", - "Current time": "Ora attuale", - "System variables": "Variabili di sistema", - "Date variables": "Variabili della data", - "Message popup close method": "Metodo di chiusura popup di messaggio", - "Automatic close": "Chiudi automaticamente", - "Manually close": "Chiudi manualmente", - "After successful update": "Dopo un aggiornamento riuscito", - "Save record": "Salva record", - "Updated successfully": "Aggiornamento riuscito", - "After successful save": "Dopo un salvataggio riuscito", - "After clicking the custom button, the following field values will be assigned according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti valori verranno assegnati in base al seguente modulo.", - "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti campi del record corrente verranno salvati in base al seguente modulo.", - "Button background color": "Colore sfondo del pulsante", - "Highlight": "Evidenziato", - "Danger red": "Rosso pericolo", - "Custom request": "Richiesta personalizzata", - "Request settings": "Impostazioni richiesta", - "Request URL": "URL richiesta", - "Request method": "Metodo richiesta", - "Request query parameters": "Parametri richiesta query", - "Request headers": "Intestazioni richiesta", - "Request body": "Corpo richiesta", - "Request success": "Successo richiesta", - "Invalid JSON format": "Formato JSON non valido", - "After successful request": "Dopo una richiesta riuscita", - "Add exportable field": "Aggiungi campo esportabile", - "Audit logs": "Registri audit", - "Record ID": "ID record", - "User": "Utente", - "Field": "Campo", - "Select": "Seleziona", - "Select field": "Seleziona campo", - "Field value changes": "Modifiche valore del campo", - "One to one (has one)": "Uno a uno (ne ha uno)", - "One to one (belongs to)": "Uno a uno (appartiene a)", - "Use the same time zone (GMT) for all users": "Usa lo stesso fuso orario (GMT) per tutti gli utenti", - "Province/city/area name": "Nome provincia/città/area", - "Enabled languages": "Lingue abilitate", - "View all plugins": "Visualizza tutti i plugin", - "Print": "Stampa", - "Done": "Fatto", - "Sign up successfully, and automatically jump to the sign in page": "Iscriviti correttamente e reindirizza automaticamente alla pagina di accesso", - "File manager": "File Manager", - "ACL": "ACL", - "Collection manager": "Responsabile della raccolta", - "Plugin manager": "Plugin Manager", - "Local": "Locale", - "Built-in": "Incorporato", - "Marketplace": "Marketplace", - "Add plugin": "Aggiungi plugin", - "Plugin source": "Sorgente plugin", - "Upgrade": "Aggiornamento", - "Plugin dependencies check failed": "Controllo delle dipendenze del plugin non riuscito", - "More details": "Maggiori dettagli", - "Upload new version": "Carica nuova versione", - "Version": "Versione", - "Npm package": "Pacchetto Npm", - "Npm package name": "Nome pacchetto Npm", - "Upload plugin": "Carica plugin", - "Official plugin": "Plugin ufficiale", - "Add type": "Aggiungi tipo", - "Changelog": "Changelog", - "Dependencies check": "Controllo delle dipendenze", - "Update plugin": "Aggiorna plugin", - "Installing": "Installazione", - "The deletion was successful.": "Cancellazione riuscita.", - "Plugin Zip File": "File zip plugin", - "Compressed file url": "URL file compresso", - "Last updated": "Ultimo aggiornamento", - "PackageName": "Nome pacchetto", - "DisplayName": "Nome da visualizzare", - "Readme": "Readme", - "Dependencies compatibility check": "Controllo compatibilità delle dipendenze", - "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "Controllo delle dipendenze del plugin non riuscito, è necessario modificare la versione dipendente per soddisfare i requisiti della versione.", - "Version range": "Range versione", - "Plugin's version": "Versione plugin", - "Result": "Risultato", - "No CHANGELOG.md file": "Nessun file Changelog.md", - "No README.md file": "Nessun file readme.md", - "Homepage": "Homepage", - "Drag and drop the file here or click to upload, file size should not exceed 30M": "Trascina e rilascia il file qui o fai clic per caricare, la dimensione del file non deve superare i 30M", - "Dependencies check failed, can't enable.": "Il controllo delle dipendenze non è riuscito, impossibile abilitare.", - "Plugin starting...": "Avvio plugin...", - "Plugin stopping...": "Interruzione plugin ...", - "Are you sure to delete this plugin?": "Sei sicuro di eliminare questo plugin?", - "Are you sure to disable this plugin?": "Sei sicuro di disabilitare questo plugin?", - "re-download file": "ri-scarica file", - "Not enabled": "Non abilitato", - "Search plugin": "Ricerca plugin", - "Author": "Autore", - "Plugin loading failed. Please check the server logs.": "Il caricamento del plugin non è riuscito. Si prega di controllare i registri del server.", - "Coming soon...": "Prossimamente...", - "All plugin settings": "Tutte le impostazioni del plugin", - "Bookmark": "Segnalibro", - "Manage all settings": "Gestisci tutte le impostazioni", - "Create inverse field in the target collection": "Crea campo inverso nella raccolta di destinazione", - "Inverse field name": "Nome campo inverso", - "Inverse field display name": "Nome visualizzato campo inverso", - "Bulk update": "Aggiornamento di massa", - "After successful bulk update": "Dopo un aggiornamento di massa riuscito", - "Bulk edit": "Modifica di massa", - "Data will be updated": "I dati verranno aggiornati", - "Selected": "Selezionato", - "All": "Tutto", - "Update selected data?": "Aggiornare i dati selezionati?", - "Update all data?": "Aggiornare tutti i dati?", - "Remains the same": "Rimane lo stesso", - "Changed to": "Cambiato in", - "Clear": "Cancella", - "Add attach": "Aggiungi allegato", - "Please select the records to be updated": "Si prega di selezionare i record da aggiornare", - "Selector": "Selettore", - "Inner": "Interno", - "Search and select collection": "Cerca e seleziona la raccolta", - "Please fill in the iframe URL": "Si prega di compilare l'URL iFrame", - "Fix block": "Fissa blocco", - "Plugin name": "Nome plugin", - "Plugin tab name": "Nome scheda plugin", - "Column width": "Larghezza colonna", - "Sortable": "Ordinabile", - "Enable link": "Abilita link", - "This is likely a NocoBase internals bug. Please open an issue at <1>here": "Questo sembra un bug interno di NocoBase. Si prega di aprire un ticket <1>qui", - "Render Failed": "Rendering non riuscito", - "App error": "Errore app", - "Feedback": "Feedback", - "Try again": "Riprova", - "Download logs": "Download registri", - "Data template": "Modello dati", - "Duplicate": "Duplica", - "Duplicating": "Duplicazione", - "Duplicate mode": "Modalità duplicazione", - "Quick duplicate": "Duplicazione veloce", - "Duplicate and continue": "Duplica e continua", - "Please configure the duplicate fields": "Si prega di configurare i campi duplicati", - "Add": "Aggiungi", - "Add new mode": "Modalità aggiungi nuovo", - "Quick add": "Aggiunta rapida", - "Modal add": "Aggiunta modale", - "Save mode": "Modalità salvataggio", - "First or create": "Prima o crea", - "Update or create": "Aggiorna o crea", - "Find by the following fields": "Trova dai seguenti campi", - "Create": "Crea", - "Current form": "Modulo corrente", - "Current object": "Oggetto corrente", - "Linkage with form fields": "Collegamento con i campi del modulo", - "Allow add new, update and delete actions": "Consenti azioni aggiungi nuovo, aggiorna ed elimina", - "Date display format": "Formato di visualizzazione della data", - "Table selected records": "Tabella record selezionati", - "Tag": "Etichetta", - "Tag color field": "Campo colore etichetta", - "Sync successfully": "Sincronizzazione riuscita", - "Sync from form fields": "Sincronizzazione dai campi del modulo", - "Select all": "Seleziona tutto", - "Restart": "Ricomincia", - "Restart application": "Riavvia applicazione", - "Cascade Select": "Seleziona in cascata", - "Execute": "Esegui", - "Please use a valid SELECT or WITH AS statement": "Si prega di utilizzare un' istruzione SELECT o WITH AS valida", - "Please confirm the SQL statement first": "Si prega di confermare prima l'istruzione SQL", - "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Elimina automaticamente gli oggetti che dipendono dalla raccolta (come le viste) e, a loro volta, tutti gli oggetti che dipendono da tali oggetti", - "Sign in with another account": "Accedi con un altro account", - "Return to the main application": "Torna alla applicazione principale", - "loading": "caricamento", - "name is required": "nome richiesto", - "data source": "sorgente dati", - "Data source": "Sorgente dati", - "DataSource": "Sorgente Dati", - "The {{type}} \"{{name}}\" may have been deleted. Please remove this {{blockType}}.": "Il {{type}} \"{{name}}\" potrebbe essere stato eliminato. Si prega di rimuovere {{blockType}}.", - "Preset fields": "Campi preimpostati", - "Home page": "Home page", - "Handbook": "Manuale", - "License": "Licenza", - "Generic properties": "Proprietà generiche", - "Specific properties": "Proprietà specifiche", - "Used for drag and drop sorting scenarios, supporting grouping sorting": "Utilizzato per scenari con drag and drop, supporta ordinamento raggruppato", - "Grouped sorting": "Ordinamento raggruppato", - "When a field is selected for grouping, it will be grouped first before sorting.": "Quando viene selezionato un campo per il raggruppamento, verrà raggruppato prima dell'ordinamento.", - "Departments": "Dipartimenti", - "Main department": "Dipartimento principale", - "Department name": "Nome del dipartimento", - "Superior department": "Dipartimento superiore", - "Owners": "Proprietari", - "Plugin settings": "Impostazioni plugin", - "Menu": "Menu", - "Drag and drop sorting field": "Campi ordinamento drag and drop", - "This variable has been deprecated and can be replaced with \"Current form\"": "Questa variabile è stata deprecata e può essere sostituita con \"Current form\"", - "The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string.": "Il valore di questa variabile deriva dalla stringa di ricerca nell'URL della pagina. Questa variabile può essere utilizzata normalmente solo quando la pagina ha una stringa di ricerca.", - "URL search params": "Parametri di ricerca URL", - "Expand All": "Espandi tutto", - "Search": "Ricerca", - "Clear default value": "Cancella valore predefinito", - "Open in new window": "Apri in una nuova finestra", - "Sorry, the page you visited does not exist.": "Spiacente, la pagina che hai visitato non esiste.", - "is none of": "non è nessuno di", - "is any of": "è uno di", - "Plugin dependency version mismatch": "Mancata corrispondenza della versione della dipendenza del plugin", - "The current dependency version of the plugin does not match the version of the application and may not work properly. Are you sure you want to continue enabling the plugin?": "L'attuale versione della dipendenza del plugin non corrisponde alla versione dell'applicazione e potrebbe non funzionare correttamente. Sei sicuro di voler continuare a abilitare il plugin?", - "Allow multiple selection": "Consenti selezione multipla", - "Parent object": "Oggetto padre", - "Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data": "Ometti calcolo del numero totale di record della tabella durante l'impaginazione per accelerare il caricamento. Si consiglia di abilitare questa opzione per tabelle con grandi quantità di dati", - "Enable secondary confirmation": "Abilita conferma secondaria", - "Notification": "Notifica", - "Ellipsis overflow content": "Contenuto Ellipsis overflow", - "Hide column": "Nascondi colonna", - "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "In modalità di configurazione, l'intera colonna diventa trasparente. In modalità non di configurazione, l'intera colonna verrà nascosta. Anche se l'intera colonna è nascosta, i suoi valori predefiniti configurati e le altre impostazioni avranno comunque effetto.", - "Page number": "Numero di pagina", - "Page size": "Numero di voci per pagina", - "Enable": "Abilita", - "Disable": "Disabilita", - "Tab": "Scheda", - "Calculation engine": "Motore di calcolo", - "Expression collection": "Raccolta espressioni", - "Tree collection": "Raccolta struttura ad albero", - "Parent ID": "ID record padre", - "Parent": "Record padre", - "Children": "Record figlio", - "Confirm": "Conferma", - "Block": "Blocco", - "Unnamed": "Senza nome", - "SQL collection": "Raccolta dati SQL", - "Configure field": "Configura campo", - "Username": "Nome utente", - "Null": "Null", - "Boolean": "Booleano", - "String": "Stringa", - "Syntax references": "Riferimenti sintassi", - "Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types.": "Math.js include un ampio set di funzioni e costanti integrate e offre una soluzione integrata per lavorare con diversi tipi di dati.", - "Formula.js supports most Microsoft Excel formula functions.": "Formula.js supporta la maggior parte delle funzioni delle formule di Microsoft Excel.", - "String template": "Modello stringa", - "Simple string replacement, can be used to interpolate variables in a string.": "Sostituzione semplice di stringhe, può essere utilizzata per interpolare variabili in una stringa.", - "https://docs.nocobase.com/handbook/calculation-engines/formula": "https://docs-cn.nocobase.com/handbook/calculation-engines/formula", - "https://docs.nocobase.com/handbook/calculation-engines/mathjs": "https://docs-cn.nocobase.com/handbook/calculation-engines/mathjs", - "Display when unchecked": "Visualizza quando deselezionato", - "Allow dissociate": "Consenti dissociazione", - "Edit block title & description": "Modifica titolo e descrizione blocco", - "Add Markdown": "Aggiungi Markdown", - "Must be 1-50 characters in length (excluding @.<>\"'/)": "Deve essere lungo 1-50 caratteri (esclusi @.<>\"'/)", - "Data source permissions": "Permessi origine dati", - "Now": "Adesso", - "Access control": "Controllo accessi", - "Remove": "Rimuovi", - "Docs": "Documenti", - "Enable page header": "Abilita intestazione pagina", - "Display page title": "Visualizza titolo pagina", - "Edit page title": "Modifica titolo pagina", - "Enable page tabs": "Abilita schede pagina", - "Constant": "Costante", - "Select a variable": "Seleziona una variabile", - "Double click to choose entire object": "Doppio clic per scegliere l'intero oggetto", - "True": "Vero", - "False": "Falso", - "Prettify": "Formatta", - "Theme": "Tema", - "Default theme": "Tema predefinito", - "Compact theme": "Tema compatto", - "Download": "Scarica", - "File type is not supported for previewing, please download it to preview.": "Il tipo di file non è supportato per l'anteprima, scaricalo per visualizzarlo.", - "Click or drag file to this area to upload": "Clicca o trascina il file in quest'area per caricarlo", - "Support for a single or bulk upload.": "Supporta il caricamento singolo o in blocco.", - "File size should not exceed {{size}}.": "La dimensione del file non deve superare {{size}}.", - "File size exceeds the limit": "La dimensione del file supera il limite", - "File type is not allowed": "Il tipo di file non è consentito", - "Incomplete uploading files need to be resolved": "I caricamenti incompleti dei file devono essere completati", - "Default title for each record": "Titolo predefinito per ogni record", - "If collection inherits, choose inherited collections as templates": "Se la raccolta eredita, scegli le raccolte ereditate come modelli", - "Select an existing piece of data as the initialization data for the form": "Seleziona un dato esistente come dati di inizializzazione per il modulo", - "Only the selected fields will be used as the initialization data for the form": "Solo i campi selezionati verranno utilizzati come dati di inizializzazione per il modulo", - "Template Data": "Dati modello", - "Data fields": "Campi dati", - "Add template": "Aggiungi modello", - "Enable form data template": "Abilita modello dati modulo", - "Form data templates": "Modelli dati modulo", - "No configuration available.": "Nessuna configurazione disponibile.", - "Reload application": "Ricarica applicazione", - "The application is reloading, please do not close the page.": "L'applicazione si sta ricaricando, non chiudere la pagina.", - "Application reloading": "Ricaricamento applicazione", - "Allows to clear cache, reboot application": "Consente di cancellare la cache, riavviare l'applicazione", - "The will interrupt service, it may take a few seconds to restart. Are you sure to continue?": "Il riavvio interromperà il servizio, potrebbero essere necessari alcuni secondi. Sei sicuro di continuare?", - "Clear cache": "Cancella cache", - "Quick create": "Creazione rapida", - "Dropdown": "Menu a discesa", - "Pop-up": "Popup", - "Direct duplicate": "Duplicazione diretta", - "Copy into the form and continue to fill in": "Copia nel modulo e continua a compilare", - "Failed to load plugin": "Caricamento plugin fallito", - "Date range limit": "Limite intervallo date", - "MinDate": "Data minima", - "MaxDate": "Data massima", - "Please select time or variable": "Seleziona ora o variabile", - "Filter out a single piece or a group of records as a template": "Filtra un singolo dato o un gruppo di record come modello", - "The title field is used to identify the template record": "Il campo titolo è utilizzato per identificare il record modello", - "Template fields": "Campi modello", - "The selected fields will automatically populate the form": "I campi selezionati popoleranno automaticamente il modulo", - "UnSelect all": "Deseleziona tutto", - "Secondary confirmation": "Conferma secondaria", - "Perform the {{title}}": "Esegui {{title}}", - "Are you sure you want to perform the {{title}} action?": "Sei sicuro di voler eseguire l'azione {{title}}?", - "Permission denied": "Permesso negato", - "Allow add new": "Consenti aggiunta", - "Data model": "Modello dati", - "Security": "Sicurezza", - "Action": "Azione", - "System": "Sistema", - "Other": "Altro", - "Allow selection of existing records": "Consenti selezione di record esistenti", - "Data Model": "Modello dati", - "Blocks": "Blocchi", - "Users & permissions": "Utenti e permessi", - "System management": "Gestione sistema", - "System & security": "Sistema e sicurezza", - "Workflow": "Workflow", - "Third party services": "Servizi di terze parti", - "Data model tools": "Strumenti modello dati", - "Data sources": "Origini dati", - "Collections": "Raccolte", - "Collection fields": "Campi raccolta", - "Authentication": "Autenticazione", - "Logging and monitoring": "Registrazione e monitoraggio", - "Main": "Principale", - "Index": "Indice", - "Field values must be unique.": "I valori dei campi devono essere univoci.", - "Alphabet": "Alfabeto", - "Accuracy": "Precisione", - "Millisecond": "Millisecondo", - "Second": "Secondo", - "Unix Timestamp": "Timestamp Unix", - "Field value do not meet the requirements": "Il valore del campo non soddisfa i requisiti", - "Field value size is": "La dimensione del valore del campo è", - "Unit conversion": "Conversione unità", - "Separator": "Separatore", - "Prefix": "Prefisso", - "Suffix": "Suffisso", - "Record unique key": "Chiave univoca record", - "Filter target key": "Chiave target filtro", - "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.": "Se una raccolta non ha una chiave primaria, devi configurare un record come chiave univoca per individuare i record di ogni riga all'interno di un blocco, la mancata configurazione impedirà la creazione di blocchi di dati per la raccolta.", - "Filter data based on the specific field, with the requirement that the field value must be unique.": "Filtra i dati in base a un campo specifico, con il requisito che il valore del campo deve essere univoco.", - "Multiply by": "Moltiplica per", - "Divide by": "Dividi per", - "Scientifix notation": "Notazione scientifica", - "Normal": "Normale", - "Automatically generate default values": "Genera automaticamente valori predefiniti", - "Refresh data on close": "Refresh dei dati alla chiusura", - "Refresh data on action": "Refresh dei dati su azione", - "Unknown field type": "Tipo di campo sconosciuto", - "The following field types are not compatible and do not support output and display": "I seguenti tipi di campo non sono compatibili e non supportano l'output e la visualizzazione", - "Not fixed": "Non fissato", - "Left fixed": "Fissato a sinistra", - "Right fixed": "Fissato a destra", - "Fixed": "Colonna fissa", - "Set block height": "Imposta altezza del blocco", - "Specify height": "Specifica altezza", - "Full height": "Altezza completa", - "Please configure the URL": "Configura l'URL", - "URL": "URL", - "Search parameters": "Parametri di ricerca URL", - "Do not concatenate search params in the URL": "Non concatenare i parametri di ricerca nell'URL", - "Edit link": "Modifica link", - "Add parameter": "Aggiungi parametro", - "Use simple pagination mode": "Usa modalità di paginazione semplice", - "Set Template Engine": "Imposta motore template", - "Template engine": "Motore template", - "The current user only has the UI configuration permission, but don't have view permission for collection \"{{name}}\"": "L'utente corrente ha solo il permesso di configurazione dell'interfaccia utente, ma non ha il permesso di visualizzazione per la raccolta \"{{name}}\"", - "Default value to current time": "Imposta il valore predefinito del campo all'ora corrente", - "Automatically update timestamp on update": "Aggiorna automaticamente il timestamp all'aggiornamento", - "Default value to current server time": "Imposta il valore predefinito del campo all'ora corrente del server", - "Automatically update timestamp to the current server time on update": "Aggiorna automaticamente il timestamp all'ora corrente del server all'aggiornamento", - "Datetime (with time zone)": "Data e ora (con fuso orario)", - "Datetime (without time zone)": "Data e ora (senza fuso orario)", - "DateOnly": "Solo data", - "Content": "Contenuto", - "Perform the Update record": "Esegui aggiornamento record", - "Are you sure you want to perform the Update record action?": "Sei sicuro di voler eseguire l'azione di aggiornamento record?", - "Perform the Custom request": "Esegui richiesta personalizzata", - "Are you sure you want to perform the Custom request action": "Sei sicuro di voler eseguire l'azione di richiesta personalizzata?", - "Perform the Refresh": "Esegui refresh", - "Are you sure you want to perform the Refresh action?": "Sei sicuro di voler eseguire l'azione di refresh?", - "Perform the Submit": "Esegui l'invio", - "Are you sure you want to perform the Submit action?": "Sei sicuro di voler eseguire l'azione di invio?", - "Perform the Trigger workflow": "Esegui il trigger del workflow", - "Are you sure you want to perform the Trigger workflow action?": "Sei sicuro di voler eseguire l'azione di trigger del workflow?", - "Picker": "Selettore", - "Quarter": "Trimestre", - "Switching the picker, the value and default value will be cleared": "Cambiando il selettore, il valore e il valore predefinito verranno cancellati", - "Stay on the current popup or page": "Rimani nel popup o nella pagina corrente", - "Return to the previous popup or page": "Torna al popup o alla pagina precedente", - "Action after successful submission": "Azione dopo l'invio riuscito", - "Allow disassociation": "Consenti la dissociazione", - "Layout": "Layout", - "Vertical": "Verticale", - "Horizontal": "Orizzontale", - "Edit group title": "Modifica titolo del gruppo", - "Title position": "Posizione titolo", - "Dashed": "Tratteggiato", - "Left": "Sinistra", - "Center": "Centro", - "Right": "Destra", - "Divider line color": "Colore linea di divisione", - "Label align": "Allineamento etichetta", - "Label width": "Larghezza etichetta", - "When the Label exceeds the width": "Quando l'etichetta supera la larghezza", - "Line break": "A capo", - "Ellipsis": "Ellipsis", - "Set block layout": "Imposta layout del blocco", - "Add & Update": "Aggiungi e aggiorna", - "Table size": "Dimensione della tabella", - "Plugin": "Plugin", - "Bulk enable": "Abilitazione in blocco", - "Search plugin...": "Cerca plugin...", - "Package name": "Nome pacchetto", - "Associate": "Associa", - "Please add or select record": "Aggiungi o seleziona record", - "No data": "Nessun dato", - "Fields can only be used correctly if they are defined with an interface.": "I campi possono essere utilizzati correttamente solo se sono definiti con un'interfaccia.", - "Unauthenticated. Please sign in to continue.": "Non autenticato. Accedi per continuare.", - "User not found. Please sign in again to continue.": "Impossibile trovare l'utente. Accedi nuovamente per continuare.", - "Your session has expired. Please sign in again.": "La tua sessione è scaduta. Accedi nuovamente.", - "User password changed, please signin again.": "La password dell'utente è stata modificata, accedi di nuovo.", - "Show file name": "Mostra nome del file", - "Outlined": "Contornato", - "Filled": "Riempito", - "Two tone": "Due toni", - "Desktop routes": "Percorsi desktop", - "Route permissions": "Permessi percorso", - "New routes are allowed to be accessed by default": "I nuovi percorsi sono accessibili per impostazione predefinita", - "Route name": "Nome percorso", - "Mobile routes": "Percorsi mobile", - "Show in menu": "Mostra nel menu", - "Hide in menu": "Nascondi nel menu", - "Path": "Percorso", - "Type": "Tipo", - "Access": "Accesso", - "Routes": "Percorsi", - "Add child route": "Aggiungi percorso figlio", - "Delete routes": "Elimina percorsi", - "Delete route": "Elimina percorso", - "Are you sure you want to hide these routes in menu?": "Sei sicuro di voler nascondere questi percorsi nel menu?", - "Are you sure you want to show these routes in menu?": "Sei sicuro di voler mostrare questi percorsi nel menu?", - "Are you sure you want to hide this menu?": "Sei sicuro di voler nascondere questo menu?", - "After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it.": "Dopo averlo nascosto, questo menu non apparirà più nella barra dei menu. Per mostrarlo di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo.", - "If selected, the page will display Tab pages.": "Se selezionato, la pagina visualizzerà le pagine schede.", - "If selected, the route will be displayed in the menu.": "Se selezionato, il percorso verrà visualizzato nel menu.", - "Are you sure you want to hide this tab?": "Sei sicuro di voler nascondere questa scheda?", - "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "Dopo averla nascosta, questa scheda non apparirà più nella barra delle schede. Per mostrarla di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo." -} +{ + "Display <1><0>10<1>20<2>50<3>100 items per page": "Visualizza <1><0>10<1>20<2>50<3>100 articoli per pagina", + "Meet <1><0>All<1>Any conditions in the group": "Soddisfa<1><0>Tutte<1>Qualsiasicondizioni nel gruppo", + "Open in<1><0>Modal<1>Drawer<2>Window": "Apri in<1><0>Modale<1>Cassetto<2>Finestra", + "{{count}} filter items": "{{Count}} filtri elementi", + "{{count}} more items": "{{Count}} altri elementi", + "Total {{count}} items": "{{count}} elementi totali", + "Today": "Oggi", + "Yesterday": "Ieri", + "Tomorrow": "Domani", + "Month": "Mese", + "Week": "Settimana", + "This week": "Questa settimana", + "This month": "Questo mese", + "This year": "Quest'anno", + "Next year": "Anno prossimo", + "Last week": "Settimana scorsa", + "Next week": "Prossima settimana", + "Last month": "Mese scorso", + "Next month": "Mese prossimo", + "Last quarter": "Ultimo trimestre", + "This quarter": "Questo trimestre", + "Next quarter": "Prossimo trimestre", + "Last year": "Anno scorso", + "Last 7 days": "Ultimi 7 giorni", + "Last 30 days": "Ultimi 30 giorni", + "Last 90 days": "Ultimi 90 giorni", + "Next 7 days": "Prossimi 7 giorni", + "Next 30 days": "Prossimi 30 giorni", + "Next 90 days": "Prossimi 90 giorni", + "Work week": "Settimana lavorativa", + "Day": "Giorno", + "Agenda": "Agenda", + "Date": "Data", + "Time": "Tempo", + "Event": "Evento", + "None": "Nessuno", + "Unconnected": "Non collegato", + "System settings": "Impostazioni di sistema", + "System title": "Titolo del sistema", + "Settings": "Impostazioni", + "Logo": "Logo", + "Add menu item": "Aggiungi voce di menu", + "Page": "Pagina", + "Name": "Nome", + "Icon": "Icona", + "Group": "Gruppo", + "Link": "Collegamento", + "Save conditions": "Salva condizioni", + "Edit menu item": "Modifica voce di menu", + "Move to": "Passa a", + "Insert left": "Inserisci a sinistra", + "Insert right": "Inserire a destra", + "Insert inner": "Inserire dentro", + "Delete": "Eliminare", + "Disassociate": "Dissociare", + "Disassociate record": "Dissociare record", + "Are you sure you want to disassociate it?": "Sei sicuro di voler dissociare?", + "UI editor": "Editor UI", + "Collection": "Raccolta", + "Collection selector": "Selettore di raccolta", + "Providing certain collections as options for users, typically used in polymorphic or inheritance scenarios": "Fornire alcune raccolte come opzioni per gli utenti, in genere utilizzati negli scenari polimorfici o ereditari", + "Collections & Fields": "Raccolte e campi", + "All collections": "Tutte le raccolte", + "Add category": "Aggiungi categoria", + "Enable child collections": "Abilita raccolte figlie", + "Allow adding records to the current collection": "Consenti l'aggiunta di record alla raccolta corrente", + "Delete category": "Elimina categoria", + "Edit category": "Modifica categoria", + "Collection category": "Categoria raccolta", + "Collection template": "Modello raccolta", + "Sort": "Ordina", + "Categories": "Categorie", + "Visible": "Visibile", + "Read only": "Solo lettura", + "Easy reading": "Lettura facile", + "Hidden": "Nascosto", + "Hidden(reserved value)": "Nascosto (valore riservato)", + "Not required": "Non richiesto", + "Value": "Valore", + "Disabled": "Disabilitato", + "Enabled": "Abilitato", + "Problematic": "Con problemi", + "Setting": "Impostazioni", + "On": "Acceso", + "Off": "Spento", + "Empty": "Vuoto", + "Linkage rule": "Regola di collegamento", + "Linkage rules": "Regole di collegamento", + "Condition": "Condizione", + "Properties": "Proprietà", + "Add linkage rule": "Aggiungi regola di collegamento", + "Add property": "Aggiungi proprietà", + "Category name": "Nome della categoria", + "Roles & Permissions": "Ruoli e autorizzazioni", + "Edit profile": "Modifica profilo", + "Change password": "Cambia password", + "Old password": "Vecchia password", + "New password": "Nuova password", + "Switch role": "Cambia ruolo", + "Super admin": "Super Admin", + "Language": "Lingua", + "Allow sign up": "Consenti iscrizione", + "Enable SMS authentication": "Abilita autenticazione SMS", + "Sign out": "Disconnessione", + "Cancel": "Annulla", + "Submit": "Invia", + "Close": "Chiudi", + "Set the data scope": "Imposta l'ambito dei dati", + "Set data loading mode": "Imposta modalità di caricamento dei dati", + "Load all data when filter is empty": "Carica tutti i dati quando il filtro è vuoto", + "Do not load data when filter is empty": "Non caricare i dati quando il filtro è vuoto", + "Data loading mode": "Modalità di caricamento dei dati", + "Data blocks": "Blocchi dati", + "Filter blocks": "Blocchi filtro", + "Table": "Tabella", + "Table OID(Inheritance)": "Tabella OID (eredità)", + "Form": "Modulo", + "List": "Elenco", + "Grid Card": "Scheda griglia", + "pixels": "pixel", + "Screen size": "Dimensione dello schermo", + "Display title": "Visualizza titolo", + "Set the count of columns displayed in a row": "Imposta conteggio delle colonne visualizzate in una riga", + "Column": "Colonna", + "Phone device": "Telefono", + "Tablet device": "Tablet", + "Desktop device": "Desktop", + "Large screen device": "Schermo di grandi dimensioni", + "Collapse": "Comprimi", + "Select data source": "Seleziona origine dati", + "Calendar": "Calendario", + "Delete events": "Elimina eventi", + "This event": "Questo evento", + "This and following events": "Questo e seguenti eventi", + "All events": "Tutti gli eventi", + "Delete this event?": "Eliminare questo evento?", + "Delete Event": "Elimina evento", + "Kanban": "Kanban", + "Gantt": "Gantt", + "Create gantt block": "Crea blocco Gantt", + "Progress field": "Campo avanzamento", + "Time scale": "Scala del tempo", + "Hour": "Ora", + "Quarter of day": "Quarto del giorno", + "Half of day": "Metà del giorno", + "Year": "Anno", + "QuarterYear": "Quarto dell' anno", + "Select grouping field": "Seleziona campo di raggruppamento", + "Media": "Media", + "Markdown": "Markdown", + "Wysiwyg": "Wysiwyg", + "Chart blocks": "Blocchi grafici", + "Column chart": "Grafico a colonne", + "Bar chart": "Grafico a barre", + "Line chart": "Grafico a linee", + "Pie chart": "Grafico a torta", + "Area chart": "Grafico ad area", + "Other chart": "Altro grafico", + "Other blocks": "Altri blocchi", + "In configuration": "In configurazione", + "Chart title": "Titolo grafico", + "Chart type": "Tipo grafico", + "Chart config": "Configurazione grafico", + "Templates": "Modelli", + "Select template": "Seleziona modello", + "Action logs": "Registri eventi", + "Create template": "Crea modello", + "Edit markdown": "Modifica Markdown", + "Add block": "Aggiungi blocco", + "Add new": "Aggiungi nuovo", + "Add record": "Aggiungi record", + "Add child": "Aggiungi figlio", + "Collapse all": "Comprimi tutto", + "Expand all": "Espandi tutto", + "Expand/Collapse": "Espandi/Comprimi", + "Default collapse": "Comprimi di default", + "Tree table": "Tabella struttura ad albero", + "Custom field display name": "Nome visualizzato campo personalizzato ", + "Display fields": "Visualizza campi", + "Edit record": "Modifica record", + "Delete menu item": "Elimina voce di menu", + "Add page": "Aggiungi pagina", + "Add group": "Aggiungi gruppo", + "Add link": "Aggiungi link", + "Insert above": "Inserisci sopra", + "Insert below": "Inserisci sotto", + "Save": "Salva", + "Delete block": "Elimina blocco", + "Are you sure you want to delete it?": "Sei sicuro di volerlo eliminare?", + "This is a demo text, **supports Markdown syntax**.": "Questo è un testo demo, ** supporta la sintassi di Markdown **.", + "Filter": "Filtro", + "Connect data blocks": "Collega blocchi di dati", + "Action type": "Tipo di azione", + "Actions": "Azioni", + "Insert": "Inserisci", + "Insert if not exists": "Inserisci se non esiste", + "Insert if not exists, or update": "Inserisci se non esiste o aggiorna", + "Determine whether a record exists by the following fields": "Determina se un record esiste dai seguenti campi", + "Update": "Aggiorna", + "Update record": "Aggiorna record", + "View": "Visualizza", + "View record": "Visualizza record", + "Refresh": "Refresh", + "Data changes": "Modifiche ai dati", + "Field name": "Nome campo", + "Before change": "Prima delle modifiche", + "After change": "Dopo le modifiche", + "Delete record": "Elimina record", + "Delete collection": "Elimina raccolta", + "Create collection": "Crea raccolta", + "Collection display name": "Nome visualizzato raccolta", + "Collection name": "Nome raccolta", + "Inherits": "Eredita", + "Primary key, unique identifier, self growth": "Chiave primaria, identificatore univoco, auto-incremento", + "Store the creation user of each record": "Memorizza l'utente della creazione di ogni record", + "Store the last update user of each record": "Memorizza l'ultimo utente di aggiornamento di ogni record", + "Store the creation time of each record": "Memorizza l'orario di creazione di ogni record", + "Store the last update time of each record": "Memorizza l'ultimo orario di aggiornamento di ogni record", + "More options": "Più opzioni", + "Records can be sorted": "I record possono essere ordinati", + "Calendar collection": "Raccolta calendario", + "General collection": "Raccolta generale", + "Connect to database view": "Connetti alla vista del database", + "Sync from database": "Sincronizza dal database", + "Source collections": "Sorgente raccolte", + "Field source": "Sorgente campo", + "Preview": "Anteprima", + "Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.": "Generato casualmente e può essere modificato. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", + "Edit": "Modifica", + "Edit collection": "Modifica raccolta", + "Configure fields": "Configura campi", + "Configure columns": "Configura colonne", + "Edit field": "Modifica campo", + "Override": "Forza", + "Override field": "Forza campo", + "Configure fields of {{title}}": "Configura campi di {{title}}", + "Association fields filter": "Filtro associazione campi", + "PK & FK fields": "Campi PK e FK", + "Association fields": "Campi associazione", + "Choices fields": "Campi scelte", + "System fields": "Campi di sistema", + "General fields": "Campi generali", + "Inherited fields": "Campi ereditati", + "Parent collection fields": "Campi raccolta padre", + "Basic": "Di base", + "Single line text": "Testo a riga singola", + "Long text": "Testo lungo", + "Phone": "Telefono", + "Email": "E-mail", + "Number": "Numero", + "Integer": "Intero", + "Percent": "Percentuale", + "Password": "Password", + "Advanced type": "Avanzato", + "Choices": "Scelte", + "Checkbox": "Casella di controllo", + "Single select": "Selezione singola", + "Multiple select": "Selezione multipla", + "Radio group": "Gruppo radio", + "Checkbox group": "Gruppo cassella di controllo", + "China region": "Regione cinese", + "Date & Time": "Data e ora", + "Datetime": "DateTime", + "Relation": "Relazione", + "Link to": "Collegamento a", + "Link to description": "Utilizzato per creare relazioni tra raccolte in modo rapido e compatibile con gli scenari più comuni. Adatto per un uso da non sviluppatore. Se presente come campo, è una selezione a discesa utilizzata per selezionare i record dalla raccolta di destinazione. Una volta creato, genererà contemporaneamente i campi associati dell'attuale raccolta nella raccolta di destinazione.", + "Sub-table": "Sotto-tabella", + "Sub-details": "Sotto-dettagli", + "Sub-form(Popover)": "Sotto-modulo (Popover)", + "System info": "Informazioni di sistema", + "Created at": "Creato il", + "Last updated at": "Ultimo aggiornamento il", + "Created by": "Creato da", + "Last updated by": "Ultimo aggiornamento da", + "Add field": "Aggiungi campo", + "Field display name": "Nome visualizzato campo", + "Field type": "Tipo campo", + "Field interface": "Interfaccia campo", + "Date format": "Formato data", + "Year/Month/Day": "Anno/Mese/Giorno", + "Year-Month-Day": "Anno-Mese-Giorno", + "Day/Month/Year": "Giorno/Mese/Anno", + "Show time": "Mostra orario", + "Time format": "Formato tempo", + "12 hour": "12 ore", + "24 hour": "24 ore", + "Relationship type": "Tipo di relazione", + "Inverse relationship type": "Tipo di relazione inversa", + "Source collection": "Raccolta sorgente", + "Source key": "Chiave sorgente", + "Target collection": "Raccolta di destinazione", + "Through collection": "Attraverso la raccolta", + "Target key": "Chiave di destinazione", + "Foreign key": "Chiave esterna", + "One to one": "Uno a uno", + "One to many": "Uno a molti", + "Many to one": "Molti a uno", + "Many to many": "Molti a molti", + "Foreign key 1": "Chiave esterna 1", + "Foreign key 2": "Chiave esterna 2", + "One to one description": "Usato per creare relazioni one-to-one. Ad esempio, un utente ha un profilo.", + "One to many description": "Utilizzato per creare una relazione da uno a molti. Ad esempio, un paese avrà molte città e una città può essere solo in un paese. Se presente come campo, è una sotto-tabella che mostra i record della raccolta associata. Se creato, un campo molti-a-uno viene generato automaticamente nella raccolta associata.", + "Many to one description": "Utilizzato per creare relazioni molti-a-uno. Ad esempio, una città può appartenere a un solo paese e un paese può avere molte città. Se presente come campo, è una selezione a discesa utilizzata per selezionare il record dalla raccolta associata. Una volta creato, un campo da uno a molti viene generato automaticamente nella raccolta associata.", + "Many to many description": "Utilizzato per creare relazioni molti-a-molti. Ad esempio, uno studente avrà molti insegnanti e un insegnante avrà molti studenti. Se presente come campo, è una selezione a discesa utilizzata per selezionare i record dalla raccolta associata.", + "Generated automatically if left blank": "Generato automaticamente se lasciato vuoto", + "Display association fields": "Visualizza campi di associazione", + "Display field title": "Visualizza titolo campo", + "Field component": "Componente campo", + "Allow multiple": "Consenti multipli", + "Quick upload": "Caricamento rapido", + "Select file": "Seleziona file", + "Subtable": "Sotto-tabella", + "Sub-form": "Sotto-modulo", + "Field mode": "Modalità campo", + "Allow add new data": "Consenti aggiunta nuovi dati", + "Record picker": "Record Picker", + "Toggles the subfield mode": "Attiva la modalità Subfield", + "Selector mode": "Modalità selettore", + "Subtable mode": "Modalità sotto-tabella", + "Subform mode": "Modalità sotto-modulo", + "Block title": "Titolo blocco", + "Pattern": "Modello", + "Operator": "Operatore", + "Editable": "Modificabile", + "Readonly": "Solo lettura", + "Easy-reading": "Lettura facile", + "Add filter": "Aggiungi filtro", + "Add filter group": "Aggiungi gruppo di filtri", + "Comparision": "Confronto", + "is": "è", + "is not": "non lo è", + "contains": "contiene", + "does not contain": "non contiene", + "starts with": "inizia con", + "not starts with": "non inizia con", + "ends with": "termina con", + "not ends with": "non termina con", + "is empty": "è vuoto", + "is not empty": "non è vuoto", + "Edit chart": "Modifica grafico", + "Filterable fields": "Campi filtrabili", + "Edit button": "Modifica pulsante", + "Hide": "Nascondi", + "Enable actions": "Abilita azioni", + "Import": "Importa", + "Export": "Esporta", + "Customize": "Personalizza", + "Custom": "Personalizzato", + "Function": "Funzione", + "Popup form": "Modulo Popup", + "Flexible popup": "Popup flessibile", + "Configure actions": "Configura azioni", + "Display order number": "Visualizza numero ordinamento", + "Enable drag and drop sorting": "Abilita l'ordinamento con drag and drop", + "Triggered when the row is clicked": "Attivato quando si fa clic sulla riga", + "Add tab": "Aggiungi scheda", + "Disable tabs": "Disabilita schede", + "Details": "Dettagli", + "Edit form": "Modifica modulo", + "Create form": "Crea modulo", + "Form (Edit)": "Modulo (modifica)", + "Form (Add new)": "Modulo (aggiungi nuovo)", + "Edit tab": "Modifica scheda", + "Relationship blocks": "Blocchi di relazione", + "Select record": "Seleziona Record", + "Display name": "Visualizza nome", + "Select icon": "Seleziona icona", + "Custom column name": "Nome colonna personalizzato", + "Edit description": "Modifica descrizione", + "Required": "Richiesto", + "Unique": "Univoco", + "Primary": "Primario", + "Auto increment": "Incremento automatico", + "Label field": "Campo etichetta", + "Default is the ID field": "L'impostazione predefinita è il campo ID", + "Set default sorting rules": "Imposta regole di ordinamento predefinite", + "Set validation rules": "Imposta regole di convalida", + "Max length": "Lunghezza massima", + "Min length": "Lunghezza minima", + "Maximum": "Massimo", + "Minimum": "Minimo", + "Max length must greater than min length": "La lunghezza massima deve essere maggiore della lunghezza minima", + "Min length must less than max length": "La lunghezza minima deve essere inferiore della lunghezza massima", + "Maximum must greater than minimum": "Il massimo deve essere maggiore del minimo", + "Minimum must less than maximum": "Il minimo deve essere minore del massimo", + "Validation rule": "Regola di convalida", + "Add validation rule": "Aggiungi regola di convalida", + "Format": "Formato", + "Regular expression": "Espressione regolare", + "Error message": "Messaggio di errore", + "Length": "Lunghezza", + "The field value cannot be greater than ": "Il valore del campo non può essere maggiore di", + "The field value cannot be less than ": "Il valore del campo non può essere inferiore a", + "The field value is not an integer number": "Il valore del campo non è un numero intero", + "Set default value": "Imposta valore predefinito", + "Default value": "Valore predefinito", + "is before": "è prima", + "is after": "è dopo", + "is on or after": "a partire dal", + "is on or before": "entro il", + "is between": "è tra", + "Upload": "Upload", + "Select level": "Seleziona livello", + "Province": "Provincia", + "City": "Città", + "Area": "Zona", + "Street": "Strada", + "Village": "Villaggio", + "Must select to the last level": "Deve selezionare all'ultimo livello", + "Move {{title}} to": "Sposta {{title}} a", + "Target position": "Posizione di destinazione", + "After": "Dopo", + "Before": "Prima", + "Add {{type}} before \"{{title}}\"": "Aggiungi {{type}} prima di \"{{title}}\"", + "Add {{type}} after \"{{title}}\"": "Aggiungi {{type}} dopo \"{{title}}\"", + "Add {{type}} in \"{{title}}\"": "Aggiungi {{type}} in \"{{title}}\"", + "Original name": "Nome originale", + "Custom name": "Nome personalizzato", + "Custom Title": "Titolo personalizzato", + "Options": "Opzioni", + "Option value": "Valore opzione", + "Option label": "Etichetta opzione", + "Color": "Colore", + "Background Color": "Colore sfondo", + "Text Align": "Allineamento testo", + "Add option": "Aggiungi opzione", + "Related collection": "Raccolta correlata", + "Allow linking to multiple records": "Consenti ​collegamento a più record", + "Configure calendar": "Configura calendario", + "Title field": "Campo titolo", + "Custom title": "Titolo personalizzato", + "Daily": "Quotidiano", + "Weekly": "Settimanale", + "Monthly": "Mensile", + "Yearly": "Annuale", + "Repeats": "Ripeti", + "Show lunar": "Mostra lunare", + "Start date field": "Campo data di inizio", + "End date field": "Campo data di fine", + "Navigate": "Naviga", + "Title": "Titolo", + "Description": "Descrizione", + "Select view": "Seleziona vista", + "Reset": "Reset", + "Importable fields": "Campi importabili", + "Exportable fields": "Campi esportabili", + "Saved successfully": "Salvataggio riuscito", + "Nickname": "Soprannome", + "Sign in": "Registrazione", + "Sign in via account": "Accedi tramite account", + "Sign in via phone": "Accedi via telefono", + "Create an account": "Crea un account", + "Sign up": "Iscrizione", + "Confirm password": "Conferma password", + "Log in with an existing account": "Accedi con account esistente", + "Signed up successfully. It will jump to the login page.": "Registrazione riuscita. Reindirizzamento alla pagina di accesso.", + "Password mismatch": "Password non corretta", + "Users": "Utenti", + "Verification code": "Codice di verifica", + "Send code": "Invia codice", + "Retry after {{count}} seconds": "Riprova dopo {{count}} secondi", + "Roles": "Ruoli", + "Add role": "Aggiungi ruolo", + "Role name": "Nome ruolo", + "Configure": "Configura", + "Configure permissions": "Configura permessi", + "Edit role": "Modifica ruolo", + "Action permissions": "Permessi su azioni", + "Menu permissions": "Permessi su menu", + "Menu item name": "Nome voce di menu", + "Allow access": "Consenti accesso", + "Action name": "Nome azione", + "Allow action": "Consenti azione", + "Action scope": "Ambito azione", + "Operate on new data": "Operare su nuovi dati", + "Operate on existing data": "Operare su dati esistenti", + "Yes": "Si", + "No": "No", + "Red": "Rosso", + "Magenta": "Magenta", + "Volcano": "Vulcano", + "Orange": "Arancione", + "Gold": "Oro", + "Lime": "Lime", + "Green": "Verde", + "Cyan": "Ciano", + "Blue": "Blu", + "Geek blue": "Geek Blue", + "Purple": "Viola", + "Default": "Predefinito", + "Add card": "Aggiungi scheda", + "edit title": "modifica titolo", + "Turn pages": "Volta pagine", + "Others": "Altri", + "Other records": "Altri record", + "Save as template": "Salva come modello", + "Save as block template": "Salva come modello blocco", + "Block templates": "Modelli blocco", + "Block template": "Modello blocco", + "Convert reference to duplicate": "Converti ​​riferimento a duplicato", + "Template name": "Nome modello", + "Block type": "Tipo blocco", + "No blocks to connect": "Nessun blocco per connettersi", + "Action column": "Colonna azioni", + "Records per page": "Record per pagina", + "(Fields only)": "(Solo campi)", + "Button title": "Titolo pulsante", + "Button icon": "Icona pulsante", + "Submitted successfully": "Invio riuscito", + "Operation succeeded": "L'operazione è riuscita", + "Operation failed": "Operazione non riuscita", + "Open mode": "Modalità aperta", + "Popup size": "Dimensione popup", + "Small": "Piccolo", + "Middle": "Medio", + "Large": "Grande", + "Size": "Misura", + "Oversized": "Oversize", + "Auto": "Auto", + "Object Fit": "Adattato all'oggetto", + "Cover": "Cover", + "Fill": "Riempi", + "Contain": "Contiene", + "Scale Down": "Ridimensiona", + "Menu item title": "Titolo voce di menu", + "Menu item icon": "Icona voce di menu", + "Target": "Destinazione", + "Position": "Posizione", + "Insert before": "Inserire prima", + "Insert after": "Inserire dopo", + "UI Editor": "Editor UI", + "ASC": "Asc", + "DESC": "Desc", + "Add sort field": "Aggiungi campo di ordinamento", + "ID": "ID", + "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificatore per l'utilizzo del programma. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", + "Drawer": "Cassetto", + "Dialog": "Dialogo", + "Delete action": "Elimina azione", + "Custom column title": "Titolo colonna personalizzata", + "Column title": "Titolo colonna", + "Original title: ": "Titolo originale: ", + "Delete table column": "Elimina colonna della tabella", + "Skip required validation": "Salta convalida richiesta", + "Form values": "Valori modulo", + "Fields values": "Valori campi", + "The field has been deleted": "Il campo è stato eliminato", + "When submitting the following fields, the saved values are": "Quando si inviano i seguenti campi, i valori salvati sono", + "After successful submission": "Dopo un invio riuscito", + "Then": "Poi", + "Stay on current page": "Resta sulla pagina corrente", + "Redirect to": "Reindirizza a", + "Save action": "Salva azione", + "Exists": "Esiste", + "Add condition": "Aggiungi condizione", + "Add condition group": "Aggiungi gruppo di condizioni", + "exists": "esiste", + "not exists": "non esiste", + "Style": "Stile", + "=": "=", + "≠": "≠", + ">": ">", + "≥": "≥", + "<": "<", + "≤": "≤", + "Role UID": "Ruolo UID", + "Precision": "Precisione", + "Expression": "Espressione", + "Rich Text": "Testo ricco", + "Junction collection": "Raccolta giunzione", + "Leave it blank, unless you need a custom intermediate table": "Lascialo vuoto, a meno che tu non abbia bisogno di una tabella intermedia personalizzata", + "Fields": "Campi", + "Edit field title": "Modifica titolo campo", + "Field title": "Titolo campo", + "Original field title: ": "Titolo campo originale:", + "Edit tooltip": "Modifica suggerimento", + "Delete field": "Elimina campo", + "Select collection": "Seleziona raccolta", + "Blank block": "Blocco vuoto", + "Duplicate template": "Modello duplicato", + "Reference template": "Modello di riferimento", + "Create calendar block": "Crea blocco calendario", + "Create kanban block": "Crea blocco kanban", + "Grouping field": "Campo di raggruppamento", + "Single select and radio fields can be used as the grouping field": "I campi di selezione singoli e radio possono essere utilizzati come campo di raggruppamento", + "Tab name": "Nome della scheda", + "Current record blocks": "Blocchi record attuale", + "Popup message": "Messaggio popup", + "Delete role": "Elimina ruolo", + "Role display name": "Nome visualizzato ruolo", + "Default role": "Ruolo predefinito", + "All collections use general action permissions by default; permission configured individually will override the default one.": "Tutte le raccolte utilizzano i permessi di operazioni generali per impostazione predefinita; I permessi configurati individualmente sovrascriveranno quelli predefiniti.", + "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Consente la configurazione dell'intero sistema, tra cui interfaccia utente, raccolte, permessi, ecc.", + "New menu items are allowed to be accessed by default.": "È possibile accedere a nuove voci di menu per impostazione predefinita.", + "Global permissions": "Permessi globali", + "General permissions": "Permessi generali", + "Global action permissions": "Permessi operazioni globali", + "General action permissions": "Permessi operazioni generali", + "Plugin settings permissions": "Permessi impostazioni plugin", + "Allow to desgin pages": "Consenti progettazione pagine", + "Allow to manage plugins": "Consenti gestione plugin", + "Allow to configure plugins": "Consenti configurazione plugin", + "Allows to configure interface": "Consente di configurare l'interfaccia", + "Allows to install, activate, disable plugins": "Consente di installare, attivare, disabilitare i plugin", + "Allows to configure plugins": "Consente di configurare i plugin", + "Action display name": "Nome visualizzato azione", + "Allow": "Permetti", + "Data scope": "Ambito dei dati", + "Action on new records": "Azione su nuovi record", + "Action on existing records": "Azione su record esistenti", + "All records": "Tutti i record", + "Own records": "Record propri", + "Permission policy": "Policy di autorizzazione", + "Individual": "Individuale", + "General": "Generale", + "Accessible": "Accessibile", + "Configure permission": "Configura permesso", + "Action permission": "Permesso azione", + "Field permission": "Permesso campo", + "Scope name": "Nome ambito", + "Unsaved changes": "Modifiche non salvate", + "Are you sure you don't want to save?": "Sei sicuro di non voler salvare?", + "Dragging": "Trascina", + "Popup": "Popup", + "Trigger workflow": "Trigger workflow", + "Request API": "Richiesta API", + "Assign field values": "Assegna valori del campo", + "Constant value": "Valore costante", + "Dynamic value": "Valore dinamico", + "Current user": "Utente attuale", + "Current role": "Ruolo attuale", + "Current record": "Record attuale", + "Current collection": "Raccolta attuale", + "Other collections": "Altre raccolte", + "Current popup record": "Record popup attuale", + "Parent popup record": "Record popup padre", + "Associated records": "Record associati", + "Parent record": "Record padre", + "Current time": "Ora attuale", + "System variables": "Variabili di sistema", + "Date variables": "Variabili della data", + "Message popup close method": "Metodo di chiusura popup di messaggio", + "Automatic close": "Chiudi automaticamente", + "Manually close": "Chiudi manualmente", + "After successful update": "Dopo un aggiornamento riuscito", + "Save record": "Salva record", + "Updated successfully": "Aggiornamento riuscito", + "After successful save": "Dopo un salvataggio riuscito", + "After clicking the custom button, the following field values will be assigned according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti valori verranno assegnati in base al seguente modulo.", + "After clicking the custom button, the following fields of the current record will be saved according to the following form.": "Dopo aver fatto clic sul pulsante personalizza, i seguenti campi del record corrente verranno salvati in base al seguente modulo.", + "Button background color": "Colore sfondo del pulsante", + "Highlight": "Evidenziato", + "Danger red": "Rosso pericolo", + "Custom request": "Richiesta personalizzata", + "Request settings": "Impostazioni richiesta", + "Request URL": "URL richiesta", + "Request method": "Metodo richiesta", + "Request query parameters": "Parametri richiesta query", + "Request headers": "Intestazioni richiesta", + "Request body": "Corpo richiesta", + "Request success": "Successo richiesta", + "Invalid JSON format": "Formato JSON non valido", + "After successful request": "Dopo una richiesta riuscita", + "Add exportable field": "Aggiungi campo esportabile", + "Audit logs": "Registri audit", + "Record ID": "ID record", + "User": "Utente", + "Field": "Campo", + "Select": "Seleziona", + "Select field": "Seleziona campo", + "Field value changes": "Modifiche valore del campo", + "One to one (has one)": "Uno a uno (ne ha uno)", + "One to one (belongs to)": "Uno a uno (appartiene a)", + "Use the same time zone (GMT) for all users": "Usa lo stesso fuso orario (GMT) per tutti gli utenti", + "Province/city/area name": "Nome provincia/città/area", + "Enabled languages": "Lingue abilitate", + "View all plugins": "Visualizza tutti i plugin", + "Print": "Stampa", + "Done": "Fatto", + "Sign up successfully, and automatically jump to the sign in page": "Iscriviti correttamente e reindirizza automaticamente alla pagina di accesso", + "File manager": "File Manager", + "ACL": "ACL", + "Collection manager": "Responsabile della raccolta", + "Plugin manager": "Plugin Manager", + "Local": "Locale", + "Built-in": "Incorporato", + "Marketplace": "Marketplace", + "Add plugin": "Aggiungi plugin", + "Plugin source": "Sorgente plugin", + "Upgrade": "Aggiornamento", + "Plugin dependencies check failed": "Controllo delle dipendenze del plugin non riuscito", + "More details": "Maggiori dettagli", + "Upload new version": "Carica nuova versione", + "Version": "Versione", + "Npm package": "Pacchetto Npm", + "Npm package name": "Nome pacchetto Npm", + "Upload plugin": "Carica plugin", + "Official plugin": "Plugin ufficiale", + "Add type": "Aggiungi tipo", + "Changelog": "Changelog", + "Dependencies check": "Controllo delle dipendenze", + "Update plugin": "Aggiorna plugin", + "Installing": "Installazione", + "The deletion was successful.": "Cancellazione riuscita.", + "Plugin Zip File": "File zip plugin", + "Compressed file url": "URL file compresso", + "Last updated": "Ultimo aggiornamento", + "PackageName": "Nome pacchetto", + "DisplayName": "Nome da visualizzare", + "Readme": "Readme", + "Dependencies compatibility check": "Controllo compatibilità delle dipendenze", + "Plugin dependencies check failed, you should change the dependent version to meet the version requirements.": "Controllo delle dipendenze del plugin non riuscito, è necessario modificare la versione dipendente per soddisfare i requisiti della versione.", + "Version range": "Range versione", + "Plugin's version": "Versione plugin", + "Result": "Risultato", + "No CHANGELOG.md file": "Nessun file Changelog.md", + "No README.md file": "Nessun file readme.md", + "Homepage": "Homepage", + "Drag and drop the file here or click to upload, file size should not exceed 30M": "Trascina e rilascia il file qui o fai clic per caricare, la dimensione del file non deve superare i 30M", + "Dependencies check failed, can't enable.": "Il controllo delle dipendenze non è riuscito, impossibile abilitare.", + "Plugin starting...": "Avvio plugin...", + "Plugin stopping...": "Interruzione plugin ...", + "Are you sure to delete this plugin?": "Sei sicuro di eliminare questo plugin?", + "Are you sure to disable this plugin?": "Sei sicuro di disabilitare questo plugin?", + "re-download file": "ri-scarica file", + "Not enabled": "Non abilitato", + "Search plugin": "Ricerca plugin", + "Author": "Autore", + "Plugin loading failed. Please check the server logs.": "Il caricamento del plugin non è riuscito. Si prega di controllare i registri del server.", + "Coming soon...": "Prossimamente...", + "All plugin settings": "Tutte le impostazioni del plugin", + "Bookmark": "Segnalibro", + "Manage all settings": "Gestisci tutte le impostazioni", + "Create inverse field in the target collection": "Crea campo inverso nella raccolta di destinazione", + "Inverse field name": "Nome campo inverso", + "Inverse field display name": "Nome visualizzato campo inverso", + "Bulk update": "Aggiornamento di massa", + "After successful bulk update": "Dopo un aggiornamento di massa riuscito", + "Bulk edit": "Modifica di massa", + "Data will be updated": "I dati verranno aggiornati", + "Selected": "Selezionato", + "All": "Tutto", + "Update selected data?": "Aggiornare i dati selezionati?", + "Update all data?": "Aggiornare tutti i dati?", + "Remains the same": "Rimane lo stesso", + "Changed to": "Cambiato in", + "Clear": "Cancella", + "Add attach": "Aggiungi allegato", + "Please select the records to be updated": "Si prega di selezionare i record da aggiornare", + "Selector": "Selettore", + "Inner": "Interno", + "Search and select collection": "Cerca e seleziona la raccolta", + "Please fill in the iframe URL": "Si prega di compilare l'URL iFrame", + "Fix block": "Fissa blocco", + "Plugin name": "Nome plugin", + "Plugin tab name": "Nome scheda plugin", + "Column width": "Larghezza colonna", + "Sortable": "Ordinabile", + "Enable link": "Abilita link", + "This is likely a NocoBase internals bug. Please open an issue at <1>here": "Questo sembra un bug interno di NocoBase. Si prega di aprire un ticket <1>qui", + "Render Failed": "Rendering non riuscito", + "App error": "Errore app", + "Feedback": "Feedback", + "Try again": "Riprova", + "Download logs": "Download registri", + "Data template": "Modello dati", + "Duplicate": "Duplica", + "Duplicating": "Duplicazione", + "Duplicate mode": "Modalità duplicazione", + "Quick duplicate": "Duplicazione veloce", + "Duplicate and continue": "Duplica e continua", + "Please configure the duplicate fields": "Si prega di configurare i campi duplicati", + "Add": "Aggiungi", + "Add new mode": "Modalità aggiungi nuovo", + "Quick add": "Aggiunta rapida", + "Modal add": "Aggiunta modale", + "Save mode": "Modalità salvataggio", + "First or create": "Prima o crea", + "Update or create": "Aggiorna o crea", + "Find by the following fields": "Trova dai seguenti campi", + "Create": "Crea", + "Current form": "Modulo corrente", + "Current object": "Oggetto corrente", + "Linkage with form fields": "Collegamento con i campi del modulo", + "Allow add new, update and delete actions": "Consenti azioni aggiungi nuovo, aggiorna ed elimina", + "Date display format": "Formato di visualizzazione della data", + "Table selected records": "Tabella record selezionati", + "Tag": "Etichetta", + "Tag color field": "Campo colore etichetta", + "Sync successfully": "Sincronizzazione riuscita", + "Sync from form fields": "Sincronizzazione dai campi del modulo", + "Select all": "Seleziona tutto", + "Restart": "Ricomincia", + "Restart application": "Riavvia applicazione", + "Cascade Select": "Seleziona in cascata", + "Execute": "Esegui", + "Please use a valid SELECT or WITH AS statement": "Si prega di utilizzare un' istruzione SELECT o WITH AS valida", + "Please confirm the SQL statement first": "Si prega di confermare prima l'istruzione SQL", + "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Elimina automaticamente gli oggetti che dipendono dalla raccolta (come le viste) e, a loro volta, tutti gli oggetti che dipendono da tali oggetti", + "Sign in with another account": "Accedi con un altro account", + "Return to the main application": "Torna alla applicazione principale", + "loading": "caricamento", + "name is required": "nome richiesto", + "data source": "sorgente dati", + "Data source": "Sorgente dati", + "DataSource": "Sorgente Dati", + "The {{type}} \"{{name}}\" may have been deleted. Please remove this {{blockType}}.": "Il {{type}} \"{{name}}\" potrebbe essere stato eliminato. Si prega di rimuovere {{blockType}}.", + "Preset fields": "Campi preimpostati", + "Home page": "Home page", + "Handbook": "Manuale", + "License": "Licenza", + "Generic properties": "Proprietà generiche", + "Specific properties": "Proprietà specifiche", + "Used for drag and drop sorting scenarios, supporting grouping sorting": "Utilizzato per scenari con drag and drop, supporta ordinamento raggruppato", + "Grouped sorting": "Ordinamento raggruppato", + "When a field is selected for grouping, it will be grouped first before sorting.": "Quando viene selezionato un campo per il raggruppamento, verrà raggruppato prima dell'ordinamento.", + "Departments": "Dipartimenti", + "Main department": "Dipartimento principale", + "Department name": "Nome del dipartimento", + "Superior department": "Dipartimento superiore", + "Owners": "Proprietari", + "Plugin settings": "Impostazioni plugin", + "Menu": "Menu", + "Drag and drop sorting field": "Campi ordinamento drag and drop", + "This variable has been deprecated and can be replaced with \"Current form\"": "Questa variabile è stata deprecata e può essere sostituita con \"Current form\"", + "The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string.": "Il valore di questa variabile deriva dalla stringa di ricerca nell'URL della pagina. Questa variabile può essere utilizzata normalmente solo quando la pagina ha una stringa di ricerca.", + "URL search params": "Parametri di ricerca URL", + "Expand All": "Espandi tutto", + "Search": "Ricerca", + "Clear default value": "Cancella valore predefinito", + "Open in new window": "Apri in una nuova finestra", + "Sorry, the page you visited does not exist.": "Spiacente, la pagina che hai visitato non esiste.", + "is none of": "non è nessuno di", + "is any of": "è uno di", + "Plugin dependency version mismatch": "Mancata corrispondenza della versione della dipendenza del plugin", + "The current dependency version of the plugin does not match the version of the application and may not work properly. Are you sure you want to continue enabling the plugin?": "L'attuale versione della dipendenza del plugin non corrisponde alla versione dell'applicazione e potrebbe non funzionare correttamente. Sei sicuro di voler continuare a abilitare il plugin?", + "Allow multiple selection": "Consenti selezione multipla", + "Parent object": "Oggetto padre", + "Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data": "Ometti calcolo del numero totale di record della tabella durante l'impaginazione per accelerare il caricamento. Si consiglia di abilitare questa opzione per tabelle con grandi quantità di dati", + "Enable secondary confirmation": "Abilita conferma secondaria", + "Notification": "Notifica", + "Ellipsis overflow content": "Contenuto Ellipsis overflow", + "Hide column": "Nascondi colonna", + "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "In modalità di configurazione, l'intera colonna diventa trasparente. In modalità non di configurazione, l'intera colonna verrà nascosta. Anche se l'intera colonna è nascosta, i suoi valori predefiniti configurati e le altre impostazioni avranno comunque effetto.", + "Page number": "Numero di pagina", + "Page size": "Numero di voci per pagina", + "Enable": "Abilita", + "Disable": "Disabilita", + "Tab": "Scheda", + "Calculation engine": "Motore di calcolo", + "Expression collection": "Raccolta espressioni", + "Tree collection": "Raccolta struttura ad albero", + "Parent ID": "ID record padre", + "Parent": "Record padre", + "Children": "Record figlio", + "Confirm": "Conferma", + "Block": "Blocco", + "Unnamed": "Senza nome", + "SQL collection": "Raccolta dati SQL", + "Configure field": "Configura campo", + "Username": "Nome utente", + "Null": "Null", + "Boolean": "Booleano", + "String": "Stringa", + "Syntax references": "Riferimenti sintassi", + "Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types.": "Math.js include un ampio set di funzioni e costanti integrate e offre una soluzione integrata per lavorare con diversi tipi di dati.", + "Formula.js supports most Microsoft Excel formula functions.": "Formula.js supporta la maggior parte delle funzioni delle formule di Microsoft Excel.", + "String template": "Modello stringa", + "Simple string replacement, can be used to interpolate variables in a string.": "Sostituzione semplice di stringhe, può essere utilizzata per interpolare variabili in una stringa.", + "https://docs.nocobase.com/handbook/calculation-engines/formula": "https://docs-cn.nocobase.com/handbook/calculation-engines/formula", + "https://docs.nocobase.com/handbook/calculation-engines/mathjs": "https://docs-cn.nocobase.com/handbook/calculation-engines/mathjs", + "Display when unchecked": "Visualizza quando deselezionato", + "Allow dissociate": "Consenti dissociazione", + "Edit block title & description": "Modifica titolo e descrizione blocco", + "Add Markdown": "Aggiungi Markdown", + "Must be 1-50 characters in length (excluding @.<>\"'/)": "Deve essere lungo 1-50 caratteri (esclusi @.<>\"'/)", + "Data source permissions": "Permessi origine dati", + "Now": "Adesso", + "Access control": "Controllo accessi", + "Remove": "Rimuovi", + "Docs": "Documenti", + "Enable page header": "Abilita intestazione pagina", + "Display page title": "Visualizza titolo pagina", + "Edit page title": "Modifica titolo pagina", + "Enable page tabs": "Abilita schede pagina", + "Constant": "Costante", + "Select a variable": "Seleziona una variabile", + "Double click to choose entire object": "Doppio clic per scegliere l'intero oggetto", + "True": "Vero", + "False": "Falso", + "Prettify": "Formatta", + "Theme": "Tema", + "Default theme": "Tema predefinito", + "Compact theme": "Tema compatto", + "Download": "Scarica", + "File type is not supported for previewing, please download it to preview.": "Il tipo di file non è supportato per l'anteprima, scaricalo per visualizzarlo.", + "Click or drag file to this area to upload": "Clicca o trascina il file in quest'area per caricarlo", + "Support for a single or bulk upload.": "Supporta il caricamento singolo o in blocco.", + "File size should not exceed {{size}}.": "La dimensione del file non deve superare {{size}}.", + "File size exceeds the limit": "La dimensione del file supera il limite", + "File type is not allowed": "Il tipo di file non è consentito", + "Incomplete uploading files need to be resolved": "I caricamenti incompleti dei file devono essere completati", + "Default title for each record": "Titolo predefinito per ogni record", + "If collection inherits, choose inherited collections as templates": "Se la raccolta eredita, scegli le raccolte ereditate come modelli", + "Select an existing piece of data as the initialization data for the form": "Seleziona un dato esistente come dati di inizializzazione per il modulo", + "Only the selected fields will be used as the initialization data for the form": "Solo i campi selezionati verranno utilizzati come dati di inizializzazione per il modulo", + "Template Data": "Dati modello", + "Data fields": "Campi dati", + "Add template": "Aggiungi modello", + "Enable form data template": "Abilita modello dati modulo", + "Form data templates": "Modelli dati modulo", + "No configuration available.": "Nessuna configurazione disponibile.", + "Reload application": "Ricarica applicazione", + "The application is reloading, please do not close the page.": "L'applicazione si sta ricaricando, non chiudere la pagina.", + "Application reloading": "Ricaricamento applicazione", + "Allows to clear cache, reboot application": "Consente di cancellare la cache, riavviare l'applicazione", + "The will interrupt service, it may take a few seconds to restart. Are you sure to continue?": "Il riavvio interromperà il servizio, potrebbero essere necessari alcuni secondi. Sei sicuro di continuare?", + "Clear cache": "Cancella cache", + "Quick create": "Creazione rapida", + "Dropdown": "Menu a discesa", + "Pop-up": "Popup", + "Direct duplicate": "Duplicazione diretta", + "Copy into the form and continue to fill in": "Copia nel modulo e continua a compilare", + "Failed to load plugin": "Caricamento plugin fallito", + "Date range limit": "Limite intervallo date", + "MinDate": "Data minima", + "MaxDate": "Data massima", + "Please select time or variable": "Seleziona ora o variabile", + "Filter out a single piece or a group of records as a template": "Filtra un singolo dato o un gruppo di record come modello", + "The title field is used to identify the template record": "Il campo titolo è utilizzato per identificare il record modello", + "Template fields": "Campi modello", + "The selected fields will automatically populate the form": "I campi selezionati popoleranno automaticamente il modulo", + "UnSelect all": "Deseleziona tutto", + "Secondary confirmation": "Conferma secondaria", + "Perform the {{title}}": "Esegui {{title}}", + "Are you sure you want to perform the {{title}} action?": "Sei sicuro di voler eseguire l'azione {{title}}?", + "Permission denied": "Permesso negato", + "Allow add new": "Consenti aggiunta", + "Data model": "Modello dati", + "Security": "Sicurezza", + "Action": "Azione", + "System": "Sistema", + "Other": "Altro", + "Allow selection of existing records": "Consenti selezione di record esistenti", + "Data Model": "Modello dati", + "Blocks": "Blocchi", + "Users & permissions": "Utenti e permessi", + "System management": "Gestione sistema", + "System & security": "Sistema e sicurezza", + "Workflow": "Workflow", + "Third party services": "Servizi di terze parti", + "Data model tools": "Strumenti modello dati", + "Data sources": "Origini dati", + "Collections": "Raccolte", + "Collection fields": "Campi raccolta", + "Authentication": "Autenticazione", + "Logging and monitoring": "Registrazione e monitoraggio", + "Main": "Principale", + "Index": "Indice", + "Field values must be unique.": "I valori dei campi devono essere univoci.", + "Alphabet": "Alfabeto", + "Accuracy": "Precisione", + "Millisecond": "Millisecondo", + "Second": "Secondo", + "Unix Timestamp": "Timestamp Unix", + "Field value do not meet the requirements": "Il valore del campo non soddisfa i requisiti", + "Field value size is": "La dimensione del valore del campo è", + "Unit conversion": "Conversione unità", + "Separator": "Separatore", + "Prefix": "Prefisso", + "Suffix": "Suffisso", + "Record unique key": "Chiave univoca record", + "Filter target key": "Chiave target filtro", + "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.": "Se una raccolta non ha una chiave primaria, devi configurare un record come chiave univoca per individuare i record di ogni riga all'interno di un blocco, la mancata configurazione impedirà la creazione di blocchi di dati per la raccolta.", + "Filter data based on the specific field, with the requirement that the field value must be unique.": "Filtra i dati in base a un campo specifico, con il requisito che il valore del campo deve essere univoco.", + "Multiply by": "Moltiplica per", + "Divide by": "Dividi per", + "Scientifix notation": "Notazione scientifica", + "Normal": "Normale", + "Automatically generate default values": "Genera automaticamente valori predefiniti", + "Refresh data on close": "Refresh dei dati alla chiusura", + "Refresh data on action": "Refresh dei dati su azione", + "Unknown field type": "Tipo di campo sconosciuto", + "The following field types are not compatible and do not support output and display": "I seguenti tipi di campo non sono compatibili e non supportano l'output e la visualizzazione", + "Not fixed": "Non fissato", + "Left fixed": "Fissato a sinistra", + "Right fixed": "Fissato a destra", + "Fixed": "Colonna fissa", + "Set block height": "Imposta altezza del blocco", + "Specify height": "Specifica altezza", + "Full height": "Altezza completa", + "Please configure the URL": "Configura l'URL", + "URL": "URL", + "Search parameters": "Parametri di ricerca URL", + "Do not concatenate search params in the URL": "Non concatenare i parametri di ricerca nell'URL", + "Edit link": "Modifica link", + "Add parameter": "Aggiungi parametro", + "Use simple pagination mode": "Usa modalità di paginazione semplice", + "Set Template Engine": "Imposta motore template", + "Template engine": "Motore template", + "The current user only has the UI configuration permission, but don't have view permission for collection \"{{name}}\"": "L'utente corrente ha solo il permesso di configurazione dell'interfaccia utente, ma non ha il permesso di visualizzazione per la raccolta \"{{name}}\"", + "Default value to current time": "Imposta il valore predefinito del campo all'ora corrente", + "Automatically update timestamp on update": "Aggiorna automaticamente il timestamp all'aggiornamento", + "Default value to current server time": "Imposta il valore predefinito del campo all'ora corrente del server", + "Automatically update timestamp to the current server time on update": "Aggiorna automaticamente il timestamp all'ora corrente del server all'aggiornamento", + "Datetime (with time zone)": "Data e ora (con fuso orario)", + "Datetime (without time zone)": "Data e ora (senza fuso orario)", + "DateOnly": "Solo data", + "Content": "Contenuto", + "Perform the Update record": "Esegui aggiornamento record", + "Are you sure you want to perform the Update record action?": "Sei sicuro di voler eseguire l'azione di aggiornamento record?", + "Perform the Custom request": "Esegui richiesta personalizzata", + "Are you sure you want to perform the Custom request action": "Sei sicuro di voler eseguire l'azione di richiesta personalizzata?", + "Perform the Refresh": "Esegui refresh", + "Are you sure you want to perform the Refresh action?": "Sei sicuro di voler eseguire l'azione di refresh?", + "Perform the Submit": "Esegui l'invio", + "Are you sure you want to perform the Submit action?": "Sei sicuro di voler eseguire l'azione di invio?", + "Perform the Trigger workflow": "Esegui il trigger del workflow", + "Are you sure you want to perform the Trigger workflow action?": "Sei sicuro di voler eseguire l'azione di trigger del workflow?", + "Picker": "Selettore", + "Quarter": "Trimestre", + "Switching the picker, the value and default value will be cleared": "Cambiando il selettore, il valore e il valore predefinito verranno cancellati", + "Stay on the current popup or page": "Rimani nel popup o nella pagina corrente", + "Return to the previous popup or page": "Torna al popup o alla pagina precedente", + "Action after successful submission": "Azione dopo l'invio riuscito", + "Allow disassociation": "Consenti la dissociazione", + "Layout": "Layout", + "Vertical": "Verticale", + "Horizontal": "Orizzontale", + "Edit group title": "Modifica titolo del gruppo", + "Title position": "Posizione titolo", + "Dashed": "Tratteggiato", + "Left": "Sinistra", + "Center": "Centro", + "Right": "Destra", + "Divider line color": "Colore linea di divisione", + "Label align": "Allineamento etichetta", + "Label width": "Larghezza etichetta", + "When the Label exceeds the width": "Quando l'etichetta supera la larghezza", + "Line break": "A capo", + "Ellipsis": "Ellipsis", + "Set block layout": "Imposta layout del blocco", + "Add & Update": "Aggiungi e aggiorna", + "Table size": "Dimensione della tabella", + "Plugin": "Plugin", + "Bulk enable": "Abilitazione in blocco", + "Search plugin...": "Cerca plugin...", + "Package name": "Nome pacchetto", + "Associate": "Associa", + "Please add or select record": "Aggiungi o seleziona record", + "No data": "Nessun dato", + "Fields can only be used correctly if they are defined with an interface.": "I campi possono essere utilizzati correttamente solo se sono definiti con un'interfaccia.", + "Unauthenticated. Please sign in to continue.": "Non autenticato. Accedi per continuare.", + "User not found. Please sign in again to continue.": "Impossibile trovare l'utente. Accedi nuovamente per continuare.", + "Your session has expired. Please sign in again.": "La tua sessione è scaduta. Accedi nuovamente.", + "User password changed, please signin again.": "La password dell'utente è stata modificata, accedi di nuovo.", + "Show file name": "Mostra nome del file", + "Outlined": "Contornato", + "Filled": "Riempito", + "Two tone": "Due toni", + "Desktop routes": "Percorsi desktop", + "Route permissions": "Permessi percorso", + "New routes are allowed to be accessed by default": "I nuovi percorsi sono accessibili per impostazione predefinita", + "Route name": "Nome percorso", + "Mobile routes": "Percorsi mobile", + "Show in menu": "Mostra nel menu", + "Hide in menu": "Nascondi nel menu", + "Path": "Percorso", + "Type": "Tipo", + "Access": "Accesso", + "Routes": "Percorsi", + "Add child route": "Aggiungi percorso figlio", + "Delete routes": "Elimina percorsi", + "Delete route": "Elimina percorso", + "Are you sure you want to hide these routes in menu?": "Sei sicuro di voler nascondere questi percorsi nel menu?", + "Are you sure you want to show these routes in menu?": "Sei sicuro di voler mostrare questi percorsi nel menu?", + "Are you sure you want to hide this menu?": "Sei sicuro di voler nascondere questo menu?", + "After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it.": "Dopo averlo nascosto, questo menu non apparirà più nella barra dei menu. Per mostrarlo di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo.", + "If selected, the page will display Tab pages.": "Se selezionato, la pagina visualizzerà le pagine schede.", + "If selected, the route will be displayed in the menu.": "Se selezionato, il percorso verrà visualizzato nel menu.", + "Are you sure you want to hide this tab?": "Sei sicuro di voler nascondere questa scheda?", + "After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it.": "Dopo averla nascosta, questa scheda non apparirà più nella barra delle schede. Per mostrarla di nuovo, devi andare alla pagina di gestione dei percorsi per configurarlo." +} diff --git a/packages/core/client/src/modules/fields/component/Select/selectComponentFieldSettings.tsx b/packages/core/client/src/modules/fields/component/Select/selectComponentFieldSettings.tsx index dc3ff40a10..8daaabe25d 100644 --- a/packages/core/client/src/modules/fields/component/Select/selectComponentFieldSettings.tsx +++ b/packages/core/client/src/modules/fields/component/Select/selectComponentFieldSettings.tsx @@ -126,6 +126,10 @@ export const getAllowMultiple = (params?: { title: string }) => { return { name: 'allowMultiple', type: 'switch', + useVisible() { + const isAssociationField = useIsAssociationField(); + return isAssociationField; + }, useComponentProps() { const { t } = useTranslation(); const field = useField(); From 57c8722c3c0ec49100dc9e1c23e6cc08e2365ef4 Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Mon, 24 Mar 2025 20:38:44 +0800 Subject: [PATCH 034/137] fix: remove caching logic (#6530) --- .../association-field/AssociationSelect.tsx | 9 +++---- .../antd/association-field/hooks.tsx | 1 + .../src/variables/VariablesProvider.tsx | 19 ++------------ .../variables/utils/cacheLazyLoadedValues.ts | 25 ------------------- 4 files changed, 7 insertions(+), 47 deletions(-) delete mode 100644 packages/core/client/src/variables/utils/cacheLazyLoadedValues.ts diff --git a/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx b/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx index 57debf2402..708a2cff30 100644 --- a/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx @@ -14,22 +14,22 @@ import { uid } from '@formily/shared'; import { Space, message } from 'antd'; import { isEqual } from 'lodash'; import { isFunction } from 'mathjs'; -import React, { useEffect, useState, useContext } from 'react'; +import React, { useContext, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { ClearCollectionFieldContext, NocoBaseRecursionField, RecordProvider, + SchemaComponentContext, useAPIClient, useCollectionRecordData, - SchemaComponentContext, } from '../../../'; -import { Action } from '../action'; +import { VariablePopupRecordProvider } from '../../../modules/variable/variablesProvider/VariablePopupRecordProvider'; import { isVariable } from '../../../variables/utils/isVariable'; import { getInnermostKeyAndValue } from '../../common/utils/uitls'; +import { Action } from '../action'; import { RemoteSelect, RemoteSelectProps } from '../remote-select'; import useServiceOptions, { useAssociationFieldContext } from './hooks'; -import { VariablePopupRecordProvider } from '../../../modules/variable/variablesProvider/VariablePopupRecordProvider'; export const AssociationFieldAddNewer = (props) => { const schemaComponentCtxValue = useContext(SchemaComponentContext); @@ -151,7 +151,6 @@ const InternalAssociationSelect = observer( ); }; - console.log(fieldSchema); return (
diff --git a/packages/core/client/src/schema-component/antd/association-field/hooks.tsx b/packages/core/client/src/schema-component/antd/association-field/hooks.tsx index f44f67906f..2c1b2e4183 100644 --- a/packages/core/client/src/schema-component/antd/association-field/hooks.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/hooks.tsx @@ -53,6 +53,7 @@ export function useAssociationFieldContext() { }; } +// 用于获取关系字段请求数据时所需的一些参数 export default function useServiceOptions(props) { const { action = 'list', service, useOriginalFilter } = props; const fieldSchema = useFieldSchema(); diff --git a/packages/core/client/src/variables/VariablesProvider.tsx b/packages/core/client/src/variables/VariablesProvider.tsx index 85c14a4a18..c7ffc83da5 100644 --- a/packages/core/client/src/variables/VariablesProvider.tsx +++ b/packages/core/client/src/variables/VariablesProvider.tsx @@ -18,7 +18,6 @@ import { getDataSourceHeaders } from '../data-source/utils'; import { useCompile } from '../schema-component'; import useBuiltInVariables from './hooks/useBuiltinVariables'; import { VariableOption, VariablesContextType } from './types'; -import { cacheLazyLoadedValues, getCachedLazyLoadedValues } from './utils/cacheLazyLoadedValues'; import { filterEmptyValues } from './utils/filterEmptyValues'; import { getAction } from './utils/getAction'; import { getPath } from './utils/getPath'; @@ -144,14 +143,13 @@ const VariablesProvider = ({ children, filterVariables }: any) => { .then((data) => { clearRequested(url); const value = data.data.data; - cacheLazyLoadedValues(item, currentVariablePath, value); return value; }); stashRequested(url, result); return result; } } - return getCachedLazyLoadedValues(item, currentVariablePath) || item?.[key]; + return item?.[key]; }); current = removeThroughCollectionFields(_.flatten(await Promise.all(result)), associationField); } else if ( @@ -180,17 +178,9 @@ const VariablesProvider = ({ children, filterVariables }: any) => { } const value = data.data.data; - if (!getCachedLazyLoadedValues(current, currentVariablePath)) { - // Cache the API response data to avoid repeated requests - cacheLazyLoadedValues(current, currentVariablePath, value); - } - current = removeThroughCollectionFields(value, associationField); } else { - current = removeThroughCollectionFields( - getCachedLazyLoadedValues(current, currentVariablePath) || getValuesByPath(current, key), - associationField, - ); + current = removeThroughCollectionFields(getValuesByPath(current, key), associationField); } if (associationField?.target) { @@ -359,13 +349,8 @@ export default VariablesProvider; function shouldToRequest(value, variableCtx: Record, variablePath: string) { let result = false; - if (getCachedLazyLoadedValues(variableCtx, variablePath)) { - return false; - } - // value may be a reactive object, using untracked to avoid unexpected autorun untracked(() => { - // fix https://nocobase.height.app/T-2502 // Compatible with `xxx to many` and `xxx to one` subform fields and subtable fields if (JSON.stringify(value) === '[{}]' || JSON.stringify(value) === '{}') { result = true; diff --git a/packages/core/client/src/variables/utils/cacheLazyLoadedValues.ts b/packages/core/client/src/variables/utils/cacheLazyLoadedValues.ts deleted file mode 100644 index 9d07c2959d..0000000000 --- a/packages/core/client/src/variables/utils/cacheLazyLoadedValues.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * This file is part of the NocoBase (R) project. - * Copyright (c) 2020-2024 NocoBase Co., Ltd. - * Authors: NocoBase Team. - * - * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. - * For more information, please refer to: https://www.nocobase.com/agreement. - */ - -const cache = new Map, any>(); - -export const cacheLazyLoadedValues = (variableCtx: Record, variablePath: string, value: any) => { - const cachedValue = cache.get(variableCtx); - - if (cachedValue) { - cachedValue[variablePath] = value; - } else { - cache.set(variableCtx, { [variablePath]: value }); - } -}; - -export const getCachedLazyLoadedValues = (variableCtx: Record, variablePath: string) => { - const cachedValue = cache.get(variableCtx); - return cachedValue?.[variablePath]; -}; From 322f3d749eb6ad77e2ab4c7954ea8b15caffd487 Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Mon, 24 Mar 2025 20:39:44 +0800 Subject: [PATCH 035/137] fix(Link): cannot use 'current user' variable (#6536) --- .../client/src/modules/menu/LinkMenuItem.tsx | 64 +++++++++++-------- .../antd/filter/useFilterActionProps.ts | 2 +- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/packages/core/client/src/modules/menu/LinkMenuItem.tsx b/packages/core/client/src/modules/menu/LinkMenuItem.tsx index 8217f7de14..aace433ec4 100644 --- a/packages/core/client/src/modules/menu/LinkMenuItem.tsx +++ b/packages/core/client/src/modules/menu/LinkMenuItem.tsx @@ -14,6 +14,14 @@ import React, { useCallback, useContext } from 'react'; import { useTranslation } from 'react-i18next'; import { Router } from 'react-router-dom'; import { SchemaInitializerItem } from '../../application'; +import { + CollectionManagerProvider, + useCollectionManager, +} from '../../data-source/collection/CollectionManagerProvider'; +import { + DataSourceManagerProvider, + useDataSourceManager, +} from '../../data-source/data-source/DataSourceManagerProvider'; import { useGlobalTheme } from '../../global-theme'; import { NocoBaseDesktopRouteType } from '../../route-switch/antd/admin-layout/convertRoutesToSchema'; import { @@ -34,6 +42,8 @@ export const LinkMenuItem = () => { const { urlSchema, paramsSchema } = useURLAndHTMLSchema(); const parentRoute = useParentRoute(); const { createRoute } = useNocoBaseRoutes(); + const dm = useDataSourceManager(); + const cm = useCollectionManager(); const handleClick = useCallback(async () => { const values = await FormDialog( @@ -41,31 +51,35 @@ export const LinkMenuItem = () => { () => { const history = createMemoryHistory(); return ( - - - - - - - + + + + + + + + + + + ); }, theme, diff --git a/packages/core/client/src/schema-component/antd/filter/useFilterActionProps.ts b/packages/core/client/src/schema-component/antd/filter/useFilterActionProps.ts index 1f20ba46e4..8db32dec4f 100644 --- a/packages/core/client/src/schema-component/antd/filter/useFilterActionProps.ts +++ b/packages/core/client/src/schema-component/antd/filter/useFilterActionProps.ts @@ -92,7 +92,7 @@ export const useGetFilterFieldOptions = () => { const getOptions = (fields, depth, usedInVariable?: boolean) => { const options = []; - fields.forEach((field) => { + fields?.forEach((field) => { const option = field2option(field, depth, usedInVariable); if (option) { options.push(option); From 0422d0da39810384e5c0f31e8e7ffc46bb1e48c6 Mon Sep 17 00:00:00 2001 From: Katherine Date: Tue, 25 Mar 2025 14:01:26 +0800 Subject: [PATCH 036/137] fix: field assignment with null value is ineffective (#6549) --- packages/core/client/src/block-provider/hooks/index.ts | 10 +++++----- .../plugin-action-bulk-update/src/client/utils.tsx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/client/src/block-provider/hooks/index.ts b/packages/core/client/src/block-provider/hooks/index.ts index e304a5ddaf..612064ece0 100644 --- a/packages/core/client/src/block-provider/hooks/index.ts +++ b/packages/core/client/src/block-provider/hooks/index.ts @@ -167,7 +167,7 @@ export function useCollectValuesToSubmit() { if (parsedValue !== null && parsedValue !== undefined) { assignedValues[key] = transformVariableValue(parsedValue, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); @@ -338,7 +338,7 @@ export const useAssociationCreateActionProps = () => { if (parsedValue) { assignedValues[key] = transformVariableValue(parsedValue, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); @@ -605,7 +605,7 @@ export const useCustomizeUpdateActionProps = () => { if (parsedValue) { assignedValues[key] = transformVariableValue(parsedValue, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); @@ -708,7 +708,7 @@ export const useCustomizeBulkUpdateActionProps = () => { if (parsedValue) { assignedValues[key] = transformVariableValue(parsedValue, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); @@ -930,7 +930,7 @@ export const useUpdateActionProps = () => { if (parsedValue) { assignedValues[key] = transformVariableValue(parsedValue, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/src/client/utils.tsx b/packages/plugins/@nocobase/plugin-action-bulk-update/src/client/utils.tsx index 181ef1d2b3..ac7253f2d0 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/src/client/utils.tsx +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/src/client/utils.tsx @@ -68,7 +68,7 @@ export const useCustomizeBulkUpdateActionProps = () => { if (result) { assignedValues[key] = transformVariableValue(result, { targetCollectionField: collectionField }); } - } else if (value != null && value !== '') { + } else if (value !== '') { assignedValues[key] = value; } }); From 37ab4452ba726d19f131be941dc837f73ea0cf9a Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 06:45:45 +0000 Subject: [PATCH 037/137] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publi?= =?UTF-8?q?sh=20v1.6.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lerna.json | 2 +- packages/core/acl/package.json | 6 +- packages/core/actions/package.json | 8 +- packages/core/app/package.json | 10 +- packages/core/auth/package.json | 12 +- packages/core/build/package.json | 2 +- packages/core/cache/package.json | 2 +- packages/core/cli/package.json | 6 +- packages/core/client/package.json | 8 +- .../core/create-nocobase-app/package.json | 2 +- .../core/data-source-manager/package.json | 12 +- packages/core/database/package.json | 6 +- packages/core/devtools/package.json | 8 +- packages/core/evaluators/package.json | 4 +- packages/core/lock-manager/package.json | 4 +- packages/core/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 28 ++-- packages/core/telemetry/package.json | 4 +- packages/core/test/package.json | 4 +- packages/core/utils/package.json | 2 +- .../plugins/@nocobase/plugin-acl/package.json | 2 +- .../plugin-action-bulk-edit/package.json | 2 +- .../plugin-action-bulk-update/package.json | 2 +- .../plugin-action-custom-request/package.json | 2 +- .../plugin-action-duplicate/package.json | 2 +- .../plugin-action-export/package.json | 2 +- .../plugin-action-import/package.json | 2 +- .../plugin-action-print/package.json | 2 +- .../plugins/@nocobase/plugin-ai/package.json | 2 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/package.json | 2 +- .../plugin-async-task-manager/package.json | 2 +- .../@nocobase/plugin-audit-logs/package.json | 2 +- .../@nocobase/plugin-auth-sms/package.json | 2 +- .../@nocobase/plugin-auth/package.json | 2 +- .../plugin-backup-restore/package.json | 2 +- .../plugin-block-iframe/package.json | 2 +- .../plugin-block-workbench/package.json | 2 +- .../@nocobase/plugin-calendar/package.json | 2 +- .../@nocobase/plugin-charts/package.json | 2 +- .../@nocobase/plugin-client/package.json | 2 +- .../plugin-collection-sql/package.json | 2 +- .../plugin-collection-tree/package.json | 2 +- .../plugin-data-source-main/package.json | 2 +- .../plugin-data-source-manager/package.json | 2 +- .../plugin-data-visualization/package.json | 2 +- .../plugin-disable-pm-add/package.json | 2 +- .../plugin-environment-variables/package.json | 2 +- .../plugin-error-handler/package.json | 2 +- .../plugin-field-china-region/package.json | 2 +- .../plugin-field-formula/package.json | 2 +- .../plugin-field-m2m-array/package.json | 2 +- .../plugin-field-markdown-vditor/package.json | 2 +- .../plugin-field-sequence/package.json | 2 +- .../@nocobase/plugin-field-sort/package.json | 2 +- .../plugin-file-manager/package.json | 2 +- .../@nocobase/plugin-gantt/package.json | 2 +- .../package.json | 2 +- .../@nocobase/plugin-kanban/package.json | 2 +- .../plugin-localization/package.json | 2 +- .../@nocobase/plugin-logger/package.json | 2 +- .../plugins/@nocobase/plugin-map/package.json | 2 +- .../plugin-mobile-client/package.json | 2 +- .../@nocobase/plugin-mobile/package.json | 2 +- .../plugin-mock-collections/package.json | 2 +- .../plugin-multi-app-manager/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-email/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-manager/package.json | 2 +- .../plugin-notifications/package.json | 2 +- .../plugin-public-forms/package.json | 2 +- .../plugin-sample-hello/package.json | 2 +- .../plugin-snapshot-field/package.json | 2 +- .../plugin-system-settings/package.json | 2 +- .../plugin-theme-editor/package.json | 2 +- .../plugin-ui-schema-storage/package.json | 2 +- .../plugin-user-data-sync/package.json | 2 +- .../@nocobase/plugin-users/package.json | 2 +- .../plugin-verification/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-aggregate/package.json | 2 +- .../plugin-workflow-delay/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-loop/package.json | 2 +- .../plugin-workflow-mailer/package.json | 2 +- .../plugin-workflow-manual/package.json | 2 +- .../plugin-workflow-notification/package.json | 2 +- .../plugin-workflow-parallel/package.json | 2 +- .../plugin-workflow-request/package.json | 2 +- .../plugin-workflow-sql/package.json | 2 +- .../plugin-workflow-test/package.json | 2 +- .../@nocobase/plugin-workflow/package.json | 4 +- packages/presets/nocobase/package.json | 142 +++++++++--------- 96 files changed, 214 insertions(+), 214 deletions(-) diff --git a/lerna.json b/lerna.json index ab90e81760..0e2b6f51be 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.9", + "version": "1.6.10", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index 5fe8eca280..745f822d65 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/resourcer": "1.6.10", + "@nocobase/utils": "1.6.10", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 9c1c234823..eebc23aaac 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.6.9", - "@nocobase/database": "1.6.9", - "@nocobase/resourcer": "1.6.9" + "@nocobase/cache": "1.6.10", + "@nocobase/database": "1.6.10", + "@nocobase/resourcer": "1.6.10" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index 270113f452..76300d67ac 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.6.9", - "@nocobase/preset-nocobase": "1.6.9", - "@nocobase/server": "1.6.9" + "@nocobase/database": "1.6.10", + "@nocobase/preset-nocobase": "1.6.10", + "@nocobase/server": "1.6.10" }, "devDependencies": { - "@nocobase/client": "1.6.9" + "@nocobase/client": "1.6.10" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 2caa71ac05..98c4c245d4 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.9", - "@nocobase/cache": "1.6.9", - "@nocobase/database": "1.6.9", - "@nocobase/resourcer": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/actions": "1.6.10", + "@nocobase/cache": "1.6.10", + "@nocobase/database": "1.6.10", + "@nocobase/resourcer": "1.6.10", + "@nocobase/utils": "1.6.10", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 23c5403266..a352eba34d 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.6.9", + "version": "1.6.10", "description": "Library build tool based on rollup.", "main": "lib/index.js", "types": "./lib/index.d.ts", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index e73055c5e3..30b5ab7fdb 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index c7f796a057..a08dfbb8c3 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.6.9", + "@nocobase/app": "1.6.10", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.19.0" }, "devDependencies": { - "@nocobase/devtools": "1.6.9" + "@nocobase/devtools": "1.6.10" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index cddfe970eb..cfb3a97a2c 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -27,9 +27,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "1.6.9", - "@nocobase/sdk": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/evaluators": "1.6.10", + "@nocobase/sdk": "1.6.10", + "@nocobase/utils": "1.6.10", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index b515e03269..b2f67660c3 100755 --- a/packages/core/create-nocobase-app/package.json +++ b/packages/core/create-nocobase-app/package.json @@ -1,6 +1,6 @@ { "name": "create-nocobase-app", - "version": "1.6.9", + "version": "1.6.10", "main": "src/index.js", "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index a5ffb705e8..b26802b6e7 100644 --- a/packages/core/data-source-manager/package.json +++ b/packages/core/data-source-manager/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/data-source-manager", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.9", - "@nocobase/cache": "1.6.9", - "@nocobase/database": "1.6.9", - "@nocobase/resourcer": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/actions": "1.6.10", + "@nocobase/cache": "1.6.10", + "@nocobase/database": "1.6.10", + "@nocobase/resourcer": "1.6.10", + "@nocobase/utils": "1.6.10", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index e6440c836a..5649eec645 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.6.9", + "version": "1.6.10", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/logger": "1.6.10", + "@nocobase/utils": "1.6.10", "async-mutex": "^0.3.2", "chalk": "^4.1.1", "cron-parser": "4.4.0", diff --git a/packages/core/devtools/package.json b/packages/core/devtools/package.json index 843a2ef39c..f80610bbbc 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.6.9", - "@nocobase/client": "1.6.9", - "@nocobase/test": "1.6.9", + "@nocobase/build": "1.6.10", + "@nocobase/client": "1.6.10", + "@nocobase/test": "1.6.10", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3.4", "@types/lodash": "^4.14.177", diff --git a/packages/core/evaluators/package.json b/packages/core/evaluators/package.json index df03b7b2ad..bdcd426248 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.6.9", + "version": "1.6.10", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.4.9", - "@nocobase/utils": "1.6.9", + "@nocobase/utils": "1.6.10", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/lock-manager/package.json b/packages/core/lock-manager/package.json index 5fcb106257..65c999bad0 100644 --- a/packages/core/lock-manager/package.json +++ b/packages/core/lock-manager/package.json @@ -1,10 +1,10 @@ { "name": "@nocobase/lock-manager", - "version": "1.6.9", + "version": "1.6.10", "main": "lib/index.js", "license": "AGPL-3.0", "devDependencies": { - "@nocobase/utils": "1.6.9", + "@nocobase/utils": "1.6.10", "async-mutex": "^0.5.0" } } diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 90c840f2e9..959e73f887 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.6.9", + "version": "1.6.10", "description": "nocobase logging library", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index 7d28076829..b7d2ad7132 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.6.9", + "version": "1.6.10", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.6.9", + "@nocobase/utils": "1.6.10", "deepmerge": "^4.2.2", "koa-compose": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/core/sdk/package.json b/packages/core/sdk/package.json index 4d1d8ebbcc..abf3a610e6 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/core/server/package.json b/packages/core/server/package.json index f876565b86..551010eb83 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.6.9", + "version": "1.6.10", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,19 +10,19 @@ "@koa/cors": "^5.0.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.6.9", - "@nocobase/actions": "1.6.9", - "@nocobase/auth": "1.6.9", - "@nocobase/cache": "1.6.9", - "@nocobase/data-source-manager": "1.6.9", - "@nocobase/database": "1.6.9", - "@nocobase/evaluators": "1.6.9", - "@nocobase/lock-manager": "1.6.9", - "@nocobase/logger": "1.6.9", - "@nocobase/resourcer": "1.6.9", - "@nocobase/sdk": "1.6.9", - "@nocobase/telemetry": "1.6.9", - "@nocobase/utils": "1.6.9", + "@nocobase/acl": "1.6.10", + "@nocobase/actions": "1.6.10", + "@nocobase/auth": "1.6.10", + "@nocobase/cache": "1.6.10", + "@nocobase/data-source-manager": "1.6.10", + "@nocobase/database": "1.6.10", + "@nocobase/evaluators": "1.6.10", + "@nocobase/lock-manager": "1.6.10", + "@nocobase/logger": "1.6.10", + "@nocobase/resourcer": "1.6.10", + "@nocobase/sdk": "1.6.10", + "@nocobase/telemetry": "1.6.10", + "@nocobase/utils": "1.6.10", "@types/decompress": "4.2.7", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index 9b7ef94a71..9231ae135e 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.6.9", + "version": "1.6.10", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.6.9", + "@nocobase/utils": "1.6.10", "@opentelemetry/api": "^1.7.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", diff --git a/packages/core/test/package.json b/packages/core/test/package.json index 2cb44e003b..6dd2333706 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.6.9", + "version": "1.6.10", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -51,7 +51,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "1.6.9", + "@nocobase/server": "1.6.10", "@playwright/test": "^1.45.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 3e991846da..ee00f528d9 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.6.9", + "version": "1.6.10", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index 2bf1d62eb1..1690d7334b 100644 --- a/packages/plugins/@nocobase/plugin-acl/package.json +++ b/packages/plugins/@nocobase/plugin-acl/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "权限控制", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index 5ff38ff33b..5b51753c7d 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-edit", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-edit", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-edit", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json index c30274a692..530b2e895a 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-update", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-update", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-update", diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/package.json b/packages/plugins/@nocobase/plugin-action-custom-request/package.json index 2c4e25c437..58f8dd8ef6 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-custom-request", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-custom-request", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request", diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index 05916cf3d1..2bc2530507 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/package.json +++ b/packages/plugins/@nocobase/plugin-action-duplicate/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-duplicate", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-duplicate", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-duplicate", diff --git a/packages/plugins/@nocobase/plugin-action-export/package.json b/packages/plugins/@nocobase/plugin-action-export/package.json index 8d9918a52d..fa6eba805a 100644 --- a/packages/plugins/@nocobase/plugin-action-export/package.json +++ b/packages/plugins/@nocobase/plugin-action-export/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导出记录", "description": "Export filtered records to excel, you can configure which fields to export.", "description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-action-import/package.json b/packages/plugins/@nocobase/plugin-action-import/package.json index 8a8ae67779..328c9aa9d6 100644 --- a/packages/plugins/@nocobase/plugin-action-import/package.json +++ b/packages/plugins/@nocobase/plugin-action-import/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导入记录", "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.", "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-action-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index ff52016bfc..c7f5fa86fa 100644 --- a/packages/plugins/@nocobase/plugin-action-print/package.json +++ b/packages/plugins/@nocobase/plugin-action-print/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-print", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-print", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-print", diff --git a/packages/plugins/@nocobase/plugin-ai/package.json b/packages/plugins/@nocobase/plugin-ai/package.json index e7c4877b7d..33fdd09ad0 100644 --- a/packages/plugins/@nocobase/plugin-ai/package.json +++ b/packages/plugins/@nocobase/plugin-ai/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "AI 集成", "description": "Support integration with AI services, providing AI-related workflow nodes to enhance business processing capabilities.", "description.zh-CN": "支持接入 AI 服务,提供 AI 相关的工作流节点,增强业务处理能力。", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index 1b760f2c7b..4850e3e6f3 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/package.json +++ b/packages/plugins/@nocobase/plugin-api-doc/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-api-doc", - "version": "1.6.9", + "version": "1.6.10", "displayName": "API documentation", "displayName.zh-CN": "API 文档", "description": "An OpenAPI documentation generator for NocoBase HTTP API.", diff --git a/packages/plugins/@nocobase/plugin-api-keys/package.json b/packages/plugins/@nocobase/plugin-api-keys/package.json index ae3492447d..4fe13363f9 100644 --- a/packages/plugins/@nocobase/plugin-api-keys/package.json +++ b/packages/plugins/@nocobase/plugin-api-keys/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:API 密钥", "description": "Allows users to use API key to access application's HTTP API", "description.zh-CN": "允许用户使用 API 密钥访问应用的 HTTP API", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/package.json b/packages/plugins/@nocobase/plugin-async-task-manager/package.json index fd3745a99f..18aab42538 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/package.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "异步任务管理器", "description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.", "description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index 2b7c5f08e7..f6dad4450f 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/package.json +++ b/packages/plugins/@nocobase/plugin-audit-logs/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-audit-logs", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Audit logs (deprecated)", "displayName.zh-CN": "审计日志(废弃)", "description": "This plugin is deprecated. There will be a new audit log plugin in the future.", diff --git a/packages/plugins/@nocobase/plugin-auth-sms/package.json b/packages/plugins/@nocobase/plugin-auth-sms/package.json index e854897fef..3ed3eed117 100644 --- a/packages/plugins/@nocobase/plugin-auth-sms/package.json +++ b/packages/plugins/@nocobase/plugin-auth-sms/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-sms", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms", diff --git a/packages/plugins/@nocobase/plugin-auth/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index e0c1a734fc..0085964403 100644 --- a/packages/plugins/@nocobase/plugin-auth/package.json +++ b/packages/plugins/@nocobase/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-auth", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index 768af1efc0..d655d25970 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/package.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "应用的备份与还原(废弃)", "description": "Backup and restore applications for scenarios such as application replication, migration, and upgrades.", "description.zh-CN": "备份和还原应用,可用于应用的复制、迁移、升级等场景。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-block-iframe/package.json b/packages/plugins/@nocobase/plugin-block-iframe/package.json index 63948444cb..ee6fb598e5 100644 --- a/packages/plugins/@nocobase/plugin-block-iframe/package.json +++ b/packages/plugins/@nocobase/plugin-block-iframe/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "区块:iframe", "description": "Create an iframe block on the page to embed and display external web pages or content.", "description.zh-CN": "在页面上创建和管理iframe,用于嵌入和展示外部网页或内容。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-block-workbench/package.json b/packages/plugins/@nocobase/plugin-block-workbench/package.json index 6a0aad8cbf..51667db851 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/package.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-block-workbench", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Block: Action panel", "displayName.zh-CN": "区块:操作面板", "description": "Centrally manages and displays various actions, allowing users to efficiently perform tasks. It supports extensibility, with current action types including pop-ups, links, scanning, and custom requests.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 283009d442..76be2ec3fb 100644 --- a/packages/plugins/@nocobase/plugin-calendar/package.json +++ b/packages/plugins/@nocobase/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-calendar", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Calendar", "displayName.zh-CN": "日历", "description": "Provides callendar collection template and block for managing date data, typically for date/time related information such as events, appointments, tasks, and so on.", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index a9dfadae03..65899745ef 100644 --- a/packages/plugins/@nocobase/plugin-charts/package.json +++ b/packages/plugins/@nocobase/plugin-charts/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "图表(废弃)", "description": "The plugin has been deprecated, please use the data visualization plugin instead.", "description.zh-CN": "已废弃插件,请使用数据可视化插件代替。", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index 978e79ead1..548ece4438 100644 --- a/packages/plugins/@nocobase/plugin-client/package.json +++ b/packages/plugins/@nocobase/plugin-client/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "WEB 客户端", "description": "Provides a client interface for the NocoBase server", "description.zh-CN": "为 NocoBase 服务端提供客户端界面", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-sql/package.json b/packages/plugins/@nocobase/plugin-collection-sql/package.json index 71304743ca..6d5aa2f069 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/package.json +++ b/packages/plugins/@nocobase/plugin-collection-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表: SQL", "description": "Provides SQL collection template", "description.zh-CN": "提供 SQL 数据表模板", - "version": "1.6.9", + "version": "1.6.10", "homepage": "https://docs-cn.nocobase.com/handbook/collection-sql", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/collection-sql", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-collection-tree/package.json b/packages/plugins/@nocobase/plugin-collection-tree/package.json index a56cf19276..708275762b 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/package.json +++ b/packages/plugins/@nocobase/plugin-collection-tree/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-collection-tree", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Collection: Tree", "displayName.zh-CN": "数据表:树", "description": "Provides tree collection template", diff --git a/packages/plugins/@nocobase/plugin-data-source-main/package.json b/packages/plugins/@nocobase/plugin-data-source-main/package.json index d46436532c..f7f231038f 100644 --- a/packages/plugins/@nocobase/plugin-data-source-main/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-main/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as PostgreSQL, MySQL, MariaDB and so on.", "description.zh-CN": "NocoBase 主数据库,支持 PostgreSQL、MySQL、MariaDB 等关系型数据库。", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/data-source-main", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-main", diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index d9b293d2a6..0202c551a1 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-source-manager", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "displayName": "Data source manager", "displayName.zh-CN": "数据源管理", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/package.json b/packages/plugins/@nocobase/plugin-data-visualization/package.json index 58350928af..4ad65fa191 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/package.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-visualization", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Data visualization", "displayName.zh-CN": "数据可视化", "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.", diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index ab6cccbb99..925bc77ce2 100644 --- a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json +++ b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-disable-pm-add", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/package.json b/packages/plugins/@nocobase/plugin-environment-variables/package.json index 5c811e7a1b..c384f5e34c 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/package.json +++ b/packages/plugins/@nocobase/plugin-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-environment-variables", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index bf471dec31..fee57913fb 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/package.json +++ b/packages/plugins/@nocobase/plugin-error-handler/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "错误处理器", "description": "Handling application errors and exceptions.", "description.zh-CN": "处理应用程序中的错误和异常。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-field-china-region/package.json b/packages/plugins/@nocobase/plugin-field-china-region/package.json index b9042cdd66..04f4ba5e1a 100644 --- a/packages/plugins/@nocobase/plugin-field-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-field-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-china-region", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Collection field: administrative divisions of China", "displayName.zh-CN": "数据表字段:中国行政区划", "description": "Provides data and field type for administrative divisions of China.", diff --git a/packages/plugins/@nocobase/plugin-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 67189b1dd6..eca5a3c847 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/package.json +++ b/packages/plugins/@nocobase/plugin-field-formula/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:公式", "description": "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.", "description.zh-CN": "可以配置并存储同一条记录的多字段值之间的计算结果,支持 Math.js 和 Excel formula functions 两种引擎", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json index 7aaacf3ead..761ecca391 100644 --- a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:多对多 (数组)", "description": "Allows to create many to many relationships between two models by storing an array of unique keys of the target model.", "description.zh-CN": "支持通过在数组中存储目标表唯一键的方式建立多对多关系。", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json index bde67389a3..2599cbc004 100644 --- a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:Markdown(Vditor)", "description": "Used to store Markdown and render it using Vditor editor, supports common Markdown syntax such as list, code, quote, etc., and supports uploading images, recordings, etc.It also allows for instant rendering, where what you see is what you get.", "description.zh-CN": "用于存储 Markdown,并使用 Vditor 编辑器渲染,支持常见 Markdown 语法,如列表,代码,引用等,并支持上传图片,录音等。同时可以做到即时渲染,所见即所得。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-markdown-vditor", diff --git a/packages/plugins/@nocobase/plugin-field-sequence/package.json b/packages/plugins/@nocobase/plugin-field-sequence/package.json index 979cfcd076..1a2233a63c 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/package.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:自动编码", "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index cb41a71107..615b782f0f 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-sort", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "displayName": "Collection field: Sort", "displayName.zh-CN": "数据表字段:排序", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index cb43f0624a..5c836d25ad 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/package.json +++ b/packages/plugins/@nocobase/plugin-file-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-file-manager", - "version": "1.6.9", + "version": "1.6.10", "displayName": "File manager", "displayName.zh-CN": "文件管理器", "description": "Provides files storage services with files collection template and attachment field.", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index 7ae3c19668..0491fc7696 100644 --- a/packages/plugins/@nocobase/plugin-gantt/package.json +++ b/packages/plugins/@nocobase/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-gantt", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Block: Gantt", "displayName.zh-CN": "区块:甘特图", "description": "Provides Gantt block.", diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json index 57e3f8b847..3774ad746f 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "可视化数据表管理", "description": "An ER diagram-like tool. Currently only the Master database is supported.", "description.zh-CN": "类似 ER 图的工具,目前只支持主数据库。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/graph-collection-manager", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index d5b92b9c37..3f7aadeb72 100644 --- a/packages/plugins/@nocobase/plugin-kanban/package.json +++ b/packages/plugins/@nocobase/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-kanban", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-kanban", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-kanban", diff --git a/packages/plugins/@nocobase/plugin-localization/package.json b/packages/plugins/@nocobase/plugin-localization/package.json index b175c3972f..de48c7ff2d 100644 --- a/packages/plugins/@nocobase/plugin-localization/package.json +++ b/packages/plugins/@nocobase/plugin-localization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/localization-management", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/localization-management", diff --git a/packages/plugins/@nocobase/plugin-logger/package.json b/packages/plugins/@nocobase/plugin-logger/package.json index c82b5b4566..4481cb85d0 100644 --- a/packages/plugins/@nocobase/plugin-logger/package.json +++ b/packages/plugins/@nocobase/plugin-logger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "日志", "description": "Server-side logs, mainly including API request logs and system runtime logs, and allows to package and download log files.", "description.zh-CN": "服务端日志,主要包括接口请求日志和系统运行日志,并支持打包和下载日志文件。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/logger", diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index dd88329a4d..28f0f628ec 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-map", "displayName": "Block: Map", "displayName.zh-CN": "区块:地图", - "version": "1.6.9", + "version": "1.6.10", "description": "Map block, support Gaode map and Google map, you can also extend more map types.", "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index af653c2da6..915489202e 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/package.json +++ b/packages/plugins/@nocobase/plugin-mobile-client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile-client", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile-client", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile-client", diff --git a/packages/plugins/@nocobase/plugin-mobile/package.json b/packages/plugins/@nocobase/plugin-mobile/package.json index bd463c7563..d128e9ef01 100644 --- a/packages/plugins/@nocobase/plugin-mobile/package.json +++ b/packages/plugins/@nocobase/plugin-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile", diff --git a/packages/plugins/@nocobase/plugin-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index 39cfbefb97..34bda9c1f1 100644 --- a/packages/plugins/@nocobase/plugin-mock-collections/package.json +++ b/packages/plugins/@nocobase/plugin-mock-collections/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-mock-collections", "displayName": "mock-collections", "description": "mock-collections", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "license": "AGPL-3.0", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json index 53645fad40..8a49495ef2 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用管理器", "description": "Dynamically create multiple apps without separate deployments.", "description.zh-CN": "无需单独部署即可动态创建多个应用。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/multi-app-manager", diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json index 634208fcc2..084f6f2adc 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用数据表共享", "description": "", "description.zh-CN": "", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notification-email/package.json b/packages/plugins/@nocobase/plugin-notification-email/package.json index dcf0c296ed..63bdcac5d9 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/package.json +++ b/packages/plugins/@nocobase/plugin-notification-email/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-email", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Notification: Email", "displayName.zh-CN": "通知:电子邮件", "description": "Used for sending email notifications with built-in SMTP transport.", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json index 8bc194c265..0bcb49e60e 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-in-app-message", - "version": "1.6.9", + "version": "1.6.10", "displayName": "Notification: In-app message", "displayName.zh-CN": "通知:站内信", "description": "It supports users in receiving real-time message notifications within the NocoBase application.", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/package.json b/packages/plugins/@nocobase/plugin-notification-manager/package.json index e9e0c19953..45c2794b49 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/package.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/package.json @@ -4,7 +4,7 @@ "description": "Provides a unified management service that includes channel configuration, logging, and other features, supporting the configuration of various notification channels, including in-app message and email.", "displayName.zh-CN": "通知管理", "description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。", - "version": "1.6.9", + "version": "1.6.10", "homepage": "https://docs.nocobase.com/handbook/notification-manager", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index 0c26e75797..530ca10c7d 100644 --- a/packages/plugins/@nocobase/plugin-notifications/package.json +++ b/packages/plugins/@nocobase/plugin-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notifications", - "version": "1.6.9", + "version": "1.6.10", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-public-forms/package.json b/packages/plugins/@nocobase/plugin-public-forms/package.json index 7db9e76a2f..57bcd224bc 100644 --- a/packages/plugins/@nocobase/plugin-public-forms/package.json +++ b/packages/plugins/@nocobase/plugin-public-forms/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-public-forms", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "displayName": "Public forms", "displayName.zh-CN": "公开表单", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index 8b3238d539..ee9ec92c1e 100644 --- a/packages/plugins/@nocobase/plugin-sample-hello/package.json +++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-sample-hello", - "version": "1.6.9", + "version": "1.6.10", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index 7ae8bbe755..57a49ffa22 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:关系快照", "description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.", "description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-snapshot", diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json index 2b5bc49051..18fa1725fa 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/package.json +++ b/packages/plugins/@nocobase/plugin-system-settings/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "系统设置", "description": "Used to adjust the system title, logo, language, etc.", "description.zh-CN": "用于调整系统的标题、LOGO、语言等。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/system-settings", diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json index ea7644ee71..c7e31d196e 100644 --- a/packages/plugins/@nocobase/plugin-theme-editor/package.json +++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-theme-editor", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/theme-editor", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor", diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 4f3f29bd32..ef1b65763f 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "UI schema 存储服务", "description": "Provides centralized UI schema storage service.", "description.zh-CN": "提供中心化的 UI schema 存储服务。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/ui-schema-storage", diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json index d0795c6ab9..323a85e986 100644 --- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户数据同步", "description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.", "description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。", - "version": "1.6.9", + "version": "1.6.10", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 83001751b4..6b4c908a5d 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户", "description": "Provides basic user model, as well as created by and updated by fields.", "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/users", diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json index d0b4a9ab82..58ab978f8a 100644 --- a/packages/plugins/@nocobase/plugin-verification/package.json +++ b/packages/plugins/@nocobase/plugin-verification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "验证码", "description": "verification setting.", "description.zh-CN": "验证码配置。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/verification", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json index a55a54fccb..908d52e269 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:操作后事件", "description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.", "description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger", diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json index 6ddf5662b6..362af1cce6 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:聚合查询节点", "description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.", "description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-aggregate", diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json index ba3401fc2b..0f76b6e0ab 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:延时节点", "description": "Could be used in workflow parallel branch for waiting other branches.", "description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-delay", diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json index 2874ffe9ae..c3ea26bf76 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:动态表达式计算节点", "description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.", "description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation", diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json index e4a7a942e1..4e0f6e9fd3 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:循环节点", "description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.", "description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-loop", diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json index 7d96e3c386..62f963df87 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:邮件发送节点", "description": "Send email in workflow.", "description.zh-CN": "可用于在工作流中发送电子邮件。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index 85c39265b2..27f4e78071 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:人工处理节点", "description": "Could be used for workflows which some of decisions are made by users.", "description.zh-CN": "用于人工控制部分决策的流程。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-manual", diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json index e452fae2f4..71dfd19365 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:通知节点", "description": "Send notification in workflow.", "description.zh-CN": "可用于在工作流中发送各类通知。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index 80daa85699..8d801c7704 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:并行分支节点", "description": "Could be used for parallel execution of branch processes in the workflow.", "description.zh-CN": "用于在工作流中需要并行执行的分支流程。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-parallel", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json index 803df271f9..4994d097ff 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:HTTP 请求节点", "description": "Send HTTP requests to any HTTP service for data interaction in workflow.", "description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-request", diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json index 168eb4370d..b114b8c93d 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:SQL 节点", "description": "Execute SQL statements in workflow.", "description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-sql", diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json index 4bceaec36a..163c23b07a 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-workflow-test", "displayName": "Workflow: test kit", "displayName.zh-CN": "工作流:测试工具包", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "dist/server/index.js", "types": "./dist/server/index.d.ts", diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json index cd31d9243f..b60ca9abb3 100644 --- a/packages/plugins/@nocobase/plugin-workflow/package.json +++ b/packages/plugins/@nocobase/plugin-workflow/package.json @@ -4,13 +4,13 @@ "displayName.zh-CN": "工作流", "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.", "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow", "dependencies": { - "@nocobase/plugin-workflow-test": "1.6.9" + "@nocobase/plugin-workflow-test": "1.6.10" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 5976136dfa..d27df18fb0 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,80 +1,80 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.6.9", + "version": "1.6.10", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.6.9", - "@nocobase/plugin-action-bulk-edit": "1.6.9", - "@nocobase/plugin-action-bulk-update": "1.6.9", - "@nocobase/plugin-action-custom-request": "1.6.9", - "@nocobase/plugin-action-duplicate": "1.6.9", - "@nocobase/plugin-action-export": "1.6.9", - "@nocobase/plugin-action-import": "1.6.9", - "@nocobase/plugin-action-print": "1.6.9", - "@nocobase/plugin-ai": "1.6.9", - "@nocobase/plugin-api-doc": "1.6.9", - "@nocobase/plugin-api-keys": "1.6.9", - "@nocobase/plugin-async-task-manager": "1.6.9", - "@nocobase/plugin-audit-logs": "1.6.9", - "@nocobase/plugin-auth": "1.6.9", - "@nocobase/plugin-auth-sms": "1.6.9", - "@nocobase/plugin-backup-restore": "1.6.9", - "@nocobase/plugin-block-iframe": "1.6.9", - "@nocobase/plugin-block-workbench": "1.6.9", - "@nocobase/plugin-calendar": "1.6.9", - "@nocobase/plugin-charts": "1.6.9", - "@nocobase/plugin-client": "1.6.9", - "@nocobase/plugin-collection-sql": "1.6.9", - "@nocobase/plugin-collection-tree": "1.6.9", - "@nocobase/plugin-data-source-main": "1.6.9", - "@nocobase/plugin-data-source-manager": "1.6.9", - "@nocobase/plugin-data-visualization": "1.6.9", - "@nocobase/plugin-environment-variables": "1.6.9", - "@nocobase/plugin-error-handler": "1.6.9", - "@nocobase/plugin-field-china-region": "1.6.9", - "@nocobase/plugin-field-formula": "1.6.9", - "@nocobase/plugin-field-m2m-array": "1.6.9", - "@nocobase/plugin-field-markdown-vditor": "1.6.9", - "@nocobase/plugin-field-sequence": "1.6.9", - "@nocobase/plugin-field-sort": "1.6.9", - "@nocobase/plugin-file-manager": "1.6.9", - "@nocobase/plugin-gantt": "1.6.9", - "@nocobase/plugin-graph-collection-manager": "1.6.9", - "@nocobase/plugin-kanban": "1.6.9", - "@nocobase/plugin-localization": "1.6.9", - "@nocobase/plugin-logger": "1.6.9", - "@nocobase/plugin-map": "1.6.9", - "@nocobase/plugin-mobile": "1.6.9", - "@nocobase/plugin-mobile-client": "1.6.9", - "@nocobase/plugin-mock-collections": "1.6.9", - "@nocobase/plugin-multi-app-manager": "1.6.9", - "@nocobase/plugin-multi-app-share-collection": "1.6.9", - "@nocobase/plugin-notification-email": "1.6.9", - "@nocobase/plugin-notification-in-app-message": "1.6.9", - "@nocobase/plugin-notification-manager": "1.6.9", - "@nocobase/plugin-public-forms": "1.6.9", - "@nocobase/plugin-snapshot-field": "1.6.9", - "@nocobase/plugin-system-settings": "1.6.9", - "@nocobase/plugin-theme-editor": "1.6.9", - "@nocobase/plugin-ui-schema-storage": "1.6.9", - "@nocobase/plugin-user-data-sync": "1.6.9", - "@nocobase/plugin-users": "1.6.9", - "@nocobase/plugin-verification": "1.6.9", - "@nocobase/plugin-workflow": "1.6.9", - "@nocobase/plugin-workflow-action-trigger": "1.6.9", - "@nocobase/plugin-workflow-aggregate": "1.6.9", - "@nocobase/plugin-workflow-delay": "1.6.9", - "@nocobase/plugin-workflow-dynamic-calculation": "1.6.9", - "@nocobase/plugin-workflow-loop": "1.6.9", - "@nocobase/plugin-workflow-mailer": "1.6.9", - "@nocobase/plugin-workflow-manual": "1.6.9", - "@nocobase/plugin-workflow-notification": "1.6.9", - "@nocobase/plugin-workflow-parallel": "1.6.9", - "@nocobase/plugin-workflow-request": "1.6.9", - "@nocobase/plugin-workflow-sql": "1.6.9", - "@nocobase/server": "1.6.9", + "@nocobase/plugin-acl": "1.6.10", + "@nocobase/plugin-action-bulk-edit": "1.6.10", + "@nocobase/plugin-action-bulk-update": "1.6.10", + "@nocobase/plugin-action-custom-request": "1.6.10", + "@nocobase/plugin-action-duplicate": "1.6.10", + "@nocobase/plugin-action-export": "1.6.10", + "@nocobase/plugin-action-import": "1.6.10", + "@nocobase/plugin-action-print": "1.6.10", + "@nocobase/plugin-ai": "1.6.10", + "@nocobase/plugin-api-doc": "1.6.10", + "@nocobase/plugin-api-keys": "1.6.10", + "@nocobase/plugin-async-task-manager": "1.6.10", + "@nocobase/plugin-audit-logs": "1.6.10", + "@nocobase/plugin-auth": "1.6.10", + "@nocobase/plugin-auth-sms": "1.6.10", + "@nocobase/plugin-backup-restore": "1.6.10", + "@nocobase/plugin-block-iframe": "1.6.10", + "@nocobase/plugin-block-workbench": "1.6.10", + "@nocobase/plugin-calendar": "1.6.10", + "@nocobase/plugin-charts": "1.6.10", + "@nocobase/plugin-client": "1.6.10", + "@nocobase/plugin-collection-sql": "1.6.10", + "@nocobase/plugin-collection-tree": "1.6.10", + "@nocobase/plugin-data-source-main": "1.6.10", + "@nocobase/plugin-data-source-manager": "1.6.10", + "@nocobase/plugin-data-visualization": "1.6.10", + "@nocobase/plugin-environment-variables": "1.6.10", + "@nocobase/plugin-error-handler": "1.6.10", + "@nocobase/plugin-field-china-region": "1.6.10", + "@nocobase/plugin-field-formula": "1.6.10", + "@nocobase/plugin-field-m2m-array": "1.6.10", + "@nocobase/plugin-field-markdown-vditor": "1.6.10", + "@nocobase/plugin-field-sequence": "1.6.10", + "@nocobase/plugin-field-sort": "1.6.10", + "@nocobase/plugin-file-manager": "1.6.10", + "@nocobase/plugin-gantt": "1.6.10", + "@nocobase/plugin-graph-collection-manager": "1.6.10", + "@nocobase/plugin-kanban": "1.6.10", + "@nocobase/plugin-localization": "1.6.10", + "@nocobase/plugin-logger": "1.6.10", + "@nocobase/plugin-map": "1.6.10", + "@nocobase/plugin-mobile": "1.6.10", + "@nocobase/plugin-mobile-client": "1.6.10", + "@nocobase/plugin-mock-collections": "1.6.10", + "@nocobase/plugin-multi-app-manager": "1.6.10", + "@nocobase/plugin-multi-app-share-collection": "1.6.10", + "@nocobase/plugin-notification-email": "1.6.10", + "@nocobase/plugin-notification-in-app-message": "1.6.10", + "@nocobase/plugin-notification-manager": "1.6.10", + "@nocobase/plugin-public-forms": "1.6.10", + "@nocobase/plugin-snapshot-field": "1.6.10", + "@nocobase/plugin-system-settings": "1.6.10", + "@nocobase/plugin-theme-editor": "1.6.10", + "@nocobase/plugin-ui-schema-storage": "1.6.10", + "@nocobase/plugin-user-data-sync": "1.6.10", + "@nocobase/plugin-users": "1.6.10", + "@nocobase/plugin-verification": "1.6.10", + "@nocobase/plugin-workflow": "1.6.10", + "@nocobase/plugin-workflow-action-trigger": "1.6.10", + "@nocobase/plugin-workflow-aggregate": "1.6.10", + "@nocobase/plugin-workflow-delay": "1.6.10", + "@nocobase/plugin-workflow-dynamic-calculation": "1.6.10", + "@nocobase/plugin-workflow-loop": "1.6.10", + "@nocobase/plugin-workflow-mailer": "1.6.10", + "@nocobase/plugin-workflow-manual": "1.6.10", + "@nocobase/plugin-workflow-notification": "1.6.10", + "@nocobase/plugin-workflow-parallel": "1.6.10", + "@nocobase/plugin-workflow-request": "1.6.10", + "@nocobase/plugin-workflow-sql": "1.6.10", + "@nocobase/server": "1.6.10", "cronstrue": "^2.11.0", "fs-extra": "^11.1.1" }, From fcdf625a35f962f46141636cee893febb0321d4f Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 07:02:56 +0000 Subject: [PATCH 038/137] docs: update changelogs --- CHANGELOG.md | 19 +++++++++++++++++++ CHANGELOG.zh-CN.md | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index db7eba3f70..845c3307ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.6.10](https://github.com/nocobase/nocobase/compare/v1.6.9...v1.6.10) - 2025-03-25 + +### 🐛 Bug Fixes + +- **[client]** + - Unable to use 'Current User' variable when adding a link page ([#6536](https://github.com/nocobase/nocobase/pull/6536)) by @zhangzhonghe + + - 字段赋值对字段进行“空值”赋值无效 ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh + + - `yarn doc` command error ([#6540](https://github.com/nocobase/nocobase/pull/6540)) by @gchust + + - Remove the 'Allow multiple selection' option from dropdown single-select fields in filter forms ([#6515](https://github.com/nocobase/nocobase/pull/6515)) by @zhangzhonghe + + - Relational field's data range linkage is not effective ([#6530](https://github.com/nocobase/nocobase/pull/6530)) by @zhangzhonghe + +- **[Collection: Tree]** Migration issue for plugin-collection-tree ([#6537](https://github.com/nocobase/nocobase/pull/6537)) by @2013xile + +- **[Action: Custom request]** Unable to download UTF-8 encoded files ([#6541](https://github.com/nocobase/nocobase/pull/6541)) by @2013xile + ## [v1.6.9](https://github.com/nocobase/nocobase/compare/v1.6.8...v1.6.9) - 2025-03-23 ### 🐛 Bug Fixes diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 3c8127159c..96ff040f01 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -5,6 +5,25 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +## [v1.6.10](https://github.com/nocobase/nocobase/compare/v1.6.9...v1.6.10) - 2025-03-25 + +### 🐛 修复 + +- **[client]** + - 添加链接页面时,无法使用“当前用户”变量 ([#6536](https://github.com/nocobase/nocobase/pull/6536)) by @zhangzhonghe + + - field assignment with null value is ineffective ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh + + - `yarn doc` 命令报错 ([#6540](https://github.com/nocobase/nocobase/pull/6540)) by @gchust + + - 筛选表单中,移除下拉单选字段的“允许多选”选项 ([#6515](https://github.com/nocobase/nocobase/pull/6515)) by @zhangzhonghe + + - 关系字段的数据范围联动不生效 ([#6530](https://github.com/nocobase/nocobase/pull/6530)) by @zhangzhonghe + +- **[数据表:树]** 树表插件的迁移脚本问题 ([#6537](https://github.com/nocobase/nocobase/pull/6537)) by @2013xile + +- **[操作:自定义请求]** 无法下载utf8编码的文件 ([#6541](https://github.com/nocobase/nocobase/pull/6541)) by @2013xile + ## [v1.6.9](https://github.com/nocobase/nocobase/compare/v1.6.8...v1.6.9) - 2025-03-23 ### 🐛 修复 From 928fcb68c10f82385947ab953c5ba88ed7a10277 Mon Sep 17 00:00:00 2001 From: xilesun <2013xile@gmail.com> Date: Tue, 25 Mar 2025 15:09:51 +0800 Subject: [PATCH 039/137] chore: update changelogs --- CHANGELOG.md | 2 +- CHANGELOG.zh-CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 845c3307ef..c88842d58f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **[client]** - Unable to use 'Current User' variable when adding a link page ([#6536](https://github.com/nocobase/nocobase/pull/6536)) by @zhangzhonghe - - 字段赋值对字段进行“空值”赋值无效 ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh + - field assignment with null value is ineffective ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh - `yarn doc` command error ([#6540](https://github.com/nocobase/nocobase/pull/6540)) by @gchust diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 96ff040f01..8d31b47137 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -12,7 +12,7 @@ - **[client]** - 添加链接页面时,无法使用“当前用户”变量 ([#6536](https://github.com/nocobase/nocobase/pull/6536)) by @zhangzhonghe - - field assignment with null value is ineffective ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh + - 字段赋值对字段进行“空值”赋值无效 ([#6549](https://github.com/nocobase/nocobase/pull/6549)) by @katherinehhh - `yarn doc` 命令报错 ([#6540](https://github.com/nocobase/nocobase/pull/6540)) by @gchust From 1dd47e75713f62291cf13471cd917e468cfb8543 Mon Sep 17 00:00:00 2001 From: Katherine Date: Tue, 25 Mar 2025 15:38:32 +0800 Subject: [PATCH 040/137] style: optimize button style for no-permission state (#6552) --- .../antd/action/Action.Link.tsx | 7 ++++++- .../schema-component/antd/action/Action.tsx | 11 ++++++----- .../components/CreateRecordAction.tsx | 19 +++++++++++++++++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/action/Action.Link.tsx b/packages/core/client/src/schema-component/antd/action/Action.Link.tsx index 6c67782876..6656bca46d 100644 --- a/packages/core/client/src/schema-component/antd/action/Action.Link.tsx +++ b/packages/core/client/src/schema-component/antd/action/Action.Link.tsx @@ -17,7 +17,12 @@ import { ComposedAction } from './types'; export const ActionLink: ComposedAction = withDynamicSchemaProps( observer((props: any) => { return ( - + ); }), { displayName: 'ActionLink' }, diff --git a/packages/core/client/src/schema-component/antd/action/Action.tsx b/packages/core/client/src/schema-component/antd/action/Action.tsx index fecdd5e8fe..968cb2ad16 100644 --- a/packages/core/client/src/schema-component/antd/action/Action.tsx +++ b/packages/core/client/src/schema-component/antd/action/Action.tsx @@ -247,7 +247,6 @@ const InternalAction: React.FC = observer(function Com(prop const aclCtx = useACLActionParamsContext(); const { run, element, disabled: disableAction } = useAction?.(actionCallback) || ({} as any); const disabled = form.disabled || field.disabled || field.data?.disabled || propsDisabled || disableAction; - const buttonStyle = useMemo(() => { return { ...style, @@ -538,6 +537,7 @@ const RenderButtonInner = observer( Designer: React.ElementType; designerProps: any; title: string; + isLink?: boolean; }) => { const { designable, @@ -558,6 +558,7 @@ const RenderButtonInner = observer( Designer, designerProps, title, + isLink, ...others } = props; const debouncedClick = useCallback( @@ -583,7 +584,7 @@ const RenderButtonInner = observer( const actionTitle = title || field?.title; const { opacity, ...restButtonStyle } = buttonStyle; - + const linkStyle = isLink && opacity ? { opacity } : undefined; return ( : icon} + icon={typeof icon === 'string' ? : icon} disabled={disabled} - style={restButtonStyle} + style={isLink ? restButtonStyle : buttonStyle} onClick={process.env.__E2E__ ? handleButtonClick : debouncedClick} // E2E 中的点击操作都是很快的,如果加上 debounce 会导致 E2E 测试失败 component={tarComponent || Button} className={classnames(componentCls, hashId, className, 'nb-action')} type={type === 'danger' ? undefined : type} > {actionTitle && ( - + {actionTitle} )} diff --git a/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx b/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx index e938d151ae..be3cfca201 100644 --- a/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx +++ b/packages/core/client/src/schema-initializer/components/CreateRecordAction.tsx @@ -267,6 +267,13 @@ function FinallyButton({ }) { const { getCollection } = useCollectionManager_deprecated(); const aclCtx = useACLActionParamsContext(); + const buttonStyle = useMemo(() => { + const shouldApplyOpacity = designable && (field?.data?.hidden || !aclCtx); + const opacityValue = componentType !== 'link' ? (shouldApplyOpacity ? 0.1 : 1) : 1; + return { + opacity: opacityValue, + }; + }, [designable, field?.data?.hidden, aclCtx, componentType]); if (inheritsCollections?.length > 0) { if (!linkageFromForm) { @@ -276,6 +283,7 @@ function FinallyButton({ danger={props.danger} type={componentType} icon={} + style={{ ...props?.style, ...buttonStyle }} buttonsRender={([leftButton, rightButton]) => [ React.cloneElement(leftButton as React.ReactElement, { style: props?.style, @@ -296,7 +304,13 @@ function FinallyButton({ ) : ( { - } @@ -321,6 +335,7 @@ function FinallyButton({ style={{ display: !designable && field?.data?.hidden && 'none', opacity: designable && field?.data?.hidden && 0.1, + ...buttonStyle, }} > {props.children} @@ -342,7 +357,7 @@ function FinallyButton({ ...props?.style, display: !designable && field?.data?.hidden && 'none', opacity: designable && field?.data?.hidden && 0.1, - height: '100%', + ...buttonStyle, }} > {props.children} From f43ed88ebacb1cb1205cc46c3c1fa2d8f291f95e Mon Sep 17 00:00:00 2001 From: chenos Date: Wed, 26 Mar 2025 09:39:57 +0800 Subject: [PATCH 041/137] feat: optimize 502 error message (#6547) * fix: app error * fix: app warning --- packages/core/client/src/api-client/APIClient.ts | 11 ++++++++++- .../core/client/src/application/Application.tsx | 16 +--------------- .../client/src/nocobase-buildin-plugin/index.tsx | 11 ++++++++++- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/core/client/src/api-client/APIClient.ts b/packages/core/client/src/api-client/APIClient.ts index 1cbbcdacdd..3fe2711a2a 100644 --- a/packages/core/client/src/api-client/APIClient.ts +++ b/packages/core/client/src/api-client/APIClient.ts @@ -139,7 +139,16 @@ export class APIClient extends APIClientSDK { if (typeof error?.response?.data === 'string') { const tempElement = document.createElement('div'); tempElement.innerHTML = error?.response?.data; - return [{ message: tempElement.textContent || tempElement.innerText }]; + let message = tempElement.textContent || tempElement.innerText; + if (message.includes('Error occurred while trying')) { + message = 'The application may be starting up. Please try again later.'; + return [{ code: 'APP_WARNING', message }]; + } + if (message.includes('502 Bad Gateway')) { + message = 'The application may be starting up. Please try again later.'; + return [{ code: 'APP_WARNING', message }]; + } + return [{ message }]; } return ( error?.response?.data?.errors || diff --git a/packages/core/client/src/application/Application.tsx b/packages/core/client/src/application/Application.tsx index c441f1ae92..efe709fa21 100644 --- a/packages/core/client/src/application/Application.tsx +++ b/packages/core/client/src/application/Application.tsx @@ -350,23 +350,9 @@ export class Application { setTimeout(() => resolve(null), 1000); }); } - const toError = (error) => { - if (typeof error?.response?.data === 'string') { - const tempElement = document.createElement('div'); - tempElement.innerHTML = error?.response?.data; - return { message: tempElement.textContent || tempElement.innerText }; - } - if (error?.response?.data?.error) { - return error?.response?.data?.error; - } - if (error?.response?.data?.errors?.[0]) { - return error?.response?.data?.errors?.[0]; - } - return { message: error?.message }; - }; this.error = { code: 'LOAD_ERROR', - ...toError(error), + ...this.apiClient.toErrMessages(error)?.[0], }; console.error(error, this.error); } diff --git a/packages/core/client/src/nocobase-buildin-plugin/index.tsx b/packages/core/client/src/nocobase-buildin-plugin/index.tsx index b9d61e9123..cc706c760a 100644 --- a/packages/core/client/src/nocobase-buildin-plugin/index.tsx +++ b/packages/core/client/src/nocobase-buildin-plugin/index.tsx @@ -76,7 +76,7 @@ const useErrorProps = (app: Application, error: any) => { const AppError: FC<{ error: Error; app: Application }> = observer( ({ app, error }) => { - const props = useErrorProps(app, error); + const props = getProps(app); return (
= observer( status="error" title={app.i18n.t('App error')} subTitle={app.i18n.t(error?.message)} + {...props} extra={[ From 3c5ff51472c9385d27e5a75960576f4e78877a19 Mon Sep 17 00:00:00 2001 From: Junyi Date: Mon, 7 Apr 2025 22:01:24 +0800 Subject: [PATCH 110/137] chore(utils): add extends for dayjs (#6630) --- packages/core/utils/src/dayjs.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/utils/src/dayjs.ts b/packages/core/utils/src/dayjs.ts index 0a196ed23d..a780681112 100644 --- a/packages/core/utils/src/dayjs.ts +++ b/packages/core/utils/src/dayjs.ts @@ -10,6 +10,7 @@ import dayjs from 'dayjs'; import advancedFormat from 'dayjs/plugin/advancedFormat'; import customParseFormat from 'dayjs/plugin/customParseFormat'; +import duration from 'dayjs/plugin/duration'; import IsBetween from 'dayjs/plugin/isBetween'; import IsSameOrAfter from 'dayjs/plugin/isSameOrAfter'; import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'; @@ -35,5 +36,6 @@ dayjs.extend(weekOfYear); dayjs.extend(weekYear); dayjs.extend(customParseFormat); dayjs.extend(advancedFormat); +dayjs.extend(duration); export { dayjs }; From 773ee94db4b02e7d6b9567f77496c73a78cc5356 Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 9 Apr 2025 09:38:51 +0800 Subject: [PATCH 111/137] fix: missing filter params when exporting data after changing pagination (#6633) --- .../plugin-action-export/src/client/useExportAction.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-action-export/src/client/useExportAction.tsx b/packages/plugins/@nocobase/plugin-action-export/src/client/useExportAction.tsx index c7c7ec8139..4bca136a76 100644 --- a/packages/plugins/@nocobase/plugin-action-export/src/client/useExportAction.tsx +++ b/packages/plugins/@nocobase/plugin-action-export/src/client/useExportAction.tsx @@ -37,7 +37,7 @@ export const useExportAction = () => { const { name, title } = useCollection_deprecated(); const { t } = useExportTranslation(); const { modal } = App.useApp(); - const filters = service.params?.[1]?.filters || {}; + const filters = service.params[0]?.filter || {}; const field = useField(); const exportLimit = useMemo(() => { if (appInfo?.data?.exportLimit) { @@ -81,7 +81,7 @@ export const useExportAction = () => { { title: compile(title), appends: service.params[0]?.appends?.join(), - filter: mergeFilter([...Object.values(filters), defaultFilter]), + filter: mergeFilter([filters, defaultFilter]), sort: params?.sort, values: { columns: compile(exportSettings), From 403ff2480019e0f6dc71629acc109bd02c5aecf5 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Wed, 9 Apr 2025 12:33:47 +0800 Subject: [PATCH 112/137] fix(users): issue with parsing the user profile form schema (#6635) --- .../plugin-users/src/server/actions/users.ts | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-users/src/server/actions/users.ts b/packages/plugins/@nocobase/plugin-users/src/server/actions/users.ts index ae2ab602bc..a002aaa929 100644 --- a/packages/plugins/@nocobase/plugin-users/src/server/actions/users.ts +++ b/packages/plugins/@nocobase/plugin-users/src/server/actions/users.ts @@ -12,16 +12,39 @@ import { UiSchemaRepository } from '@nocobase/plugin-ui-schema-storage'; import _ from 'lodash'; import { namespace } from '..'; import { ValidationError, ValidationErrorItem } from 'sequelize'; -import PluginSystemSettingsServer from '@nocobase/plugin-system-settings'; + +function findNonVoidTypeObjects(obj: any, path = '', results = []): { name: string; props: any }[] { + for (const key in obj) { + const value = obj[key]; + + const currentPath = path ? `${path}.${key}` : key; + + if (value && typeof value === 'object') { + if (value.type && value.type !== 'void') { + results.push({ + name: key, + props: value, + }); + } + + if (value.properties) { + findNonVoidTypeObjects(value.properties, `${currentPath}.properties`, results); + } else { + findNonVoidTypeObjects(value, currentPath, results); + } + } + } + + return results; +} function parseProfileFormSchema(schema: any) { const properties = _.get(schema, 'properties.form.properties.edit.properties.grid.properties') || {}; const fields = []; const requiredFields = []; - Object.values(properties).forEach((row: any) => { - const col = Object.values(row.properties)[0] as any; - const [name, props] = Object.entries(col.properties)[0]; - if (props['x-read-pretty'] || props['x-disable']) { + const configs = findNonVoidTypeObjects(properties); + Object.values(configs).forEach(({ name, props }) => { + if (props['x-read-pretty'] || props['x-disabled']) { return; } if (props['required']) { From aae9319f735f42a0caa069db9f21f1de2b93e267 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Wed, 9 Apr 2025 06:28:10 +0000 Subject: [PATCH 113/137] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publi?= =?UTF-8?q?sh=20v1.6.17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lerna.json | 2 +- packages/core/acl/package.json | 6 +- packages/core/actions/package.json | 8 +- packages/core/app/package.json | 10 +- packages/core/auth/package.json | 12 +- packages/core/build/package.json | 2 +- packages/core/cache/package.json | 2 +- packages/core/cli/package.json | 6 +- packages/core/client/package.json | 8 +- .../core/create-nocobase-app/package.json | 2 +- .../core/data-source-manager/package.json | 12 +- packages/core/database/package.json | 6 +- packages/core/devtools/package.json | 8 +- packages/core/evaluators/package.json | 4 +- packages/core/lock-manager/package.json | 4 +- packages/core/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 28 ++-- packages/core/telemetry/package.json | 4 +- packages/core/test/package.json | 4 +- packages/core/utils/package.json | 2 +- .../plugins/@nocobase/plugin-acl/package.json | 2 +- .../plugin-action-bulk-edit/package.json | 2 +- .../plugin-action-bulk-update/package.json | 2 +- .../plugin-action-custom-request/package.json | 2 +- .../plugin-action-duplicate/package.json | 2 +- .../plugin-action-export/package.json | 2 +- .../plugin-action-import/package.json | 2 +- .../plugin-action-print/package.json | 2 +- .../plugins/@nocobase/plugin-ai/package.json | 2 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/package.json | 2 +- .../plugin-async-task-manager/package.json | 2 +- .../@nocobase/plugin-audit-logs/package.json | 2 +- .../@nocobase/plugin-auth-sms/package.json | 2 +- .../@nocobase/plugin-auth/package.json | 2 +- .../plugin-backup-restore/package.json | 2 +- .../plugin-block-iframe/package.json | 2 +- .../plugin-block-workbench/package.json | 2 +- .../@nocobase/plugin-calendar/package.json | 2 +- .../@nocobase/plugin-charts/package.json | 2 +- .../@nocobase/plugin-client/package.json | 2 +- .../plugin-collection-sql/package.json | 2 +- .../plugin-collection-tree/package.json | 2 +- .../plugin-data-source-main/package.json | 2 +- .../plugin-data-source-manager/package.json | 2 +- .../plugin-data-visualization/package.json | 2 +- .../plugin-disable-pm-add/package.json | 2 +- .../plugin-environment-variables/package.json | 2 +- .../plugin-error-handler/package.json | 2 +- .../plugin-field-china-region/package.json | 2 +- .../plugin-field-formula/package.json | 2 +- .../plugin-field-m2m-array/package.json | 2 +- .../plugin-field-markdown-vditor/package.json | 2 +- .../plugin-field-sequence/package.json | 2 +- .../@nocobase/plugin-field-sort/package.json | 2 +- .../plugin-file-manager/package.json | 2 +- .../@nocobase/plugin-gantt/package.json | 2 +- .../package.json | 2 +- .../@nocobase/plugin-kanban/package.json | 2 +- .../plugin-locale-tester/package.json | 2 +- .../plugin-localization/package.json | 2 +- .../@nocobase/plugin-logger/package.json | 2 +- .../plugins/@nocobase/plugin-map/package.json | 2 +- .../plugin-mobile-client/package.json | 2 +- .../@nocobase/plugin-mobile/package.json | 2 +- .../plugin-mock-collections/package.json | 2 +- .../plugin-multi-app-manager/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-email/package.json | 2 +- .../package.json | 2 +- .../plugin-notification-manager/package.json | 2 +- .../plugin-notifications/package.json | 2 +- .../plugin-public-forms/package.json | 2 +- .../plugin-sample-hello/package.json | 2 +- .../plugin-snapshot-field/package.json | 2 +- .../plugin-system-settings/package.json | 2 +- .../plugin-theme-editor/package.json | 2 +- .../plugin-ui-schema-storage/package.json | 2 +- .../plugin-user-data-sync/package.json | 2 +- .../@nocobase/plugin-users/package.json | 2 +- .../plugin-verification/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-aggregate/package.json | 2 +- .../plugin-workflow-delay/package.json | 2 +- .../package.json | 2 +- .../plugin-workflow-loop/package.json | 2 +- .../plugin-workflow-mailer/package.json | 2 +- .../plugin-workflow-manual/package.json | 2 +- .../plugin-workflow-notification/package.json | 2 +- .../plugin-workflow-parallel/package.json | 2 +- .../plugin-workflow-request/package.json | 2 +- .../plugin-workflow-sql/package.json | 2 +- .../plugin-workflow-test/package.json | 2 +- .../@nocobase/plugin-workflow/package.json | 4 +- packages/presets/nocobase/package.json | 144 +++++++++--------- 97 files changed, 216 insertions(+), 216 deletions(-) diff --git a/lerna.json b/lerna.json index 392ee40e77..7033200cda 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.16", + "version": "1.6.17", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index a7ba7f9e8f..8cae3c4a85 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/resourcer": "1.6.17", + "@nocobase/utils": "1.6.17", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 1981a3c7c3..f92f616922 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.6.16", - "@nocobase/database": "1.6.16", - "@nocobase/resourcer": "1.6.16" + "@nocobase/cache": "1.6.17", + "@nocobase/database": "1.6.17", + "@nocobase/resourcer": "1.6.17" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index e1ddca117b..53f35c624e 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.6.16", - "@nocobase/preset-nocobase": "1.6.16", - "@nocobase/server": "1.6.16" + "@nocobase/database": "1.6.17", + "@nocobase/preset-nocobase": "1.6.17", + "@nocobase/server": "1.6.17" }, "devDependencies": { - "@nocobase/client": "1.6.16" + "@nocobase/client": "1.6.17" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 06884d277e..99dabdd862 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.16", - "@nocobase/cache": "1.6.16", - "@nocobase/database": "1.6.16", - "@nocobase/resourcer": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/actions": "1.6.17", + "@nocobase/cache": "1.6.17", + "@nocobase/database": "1.6.17", + "@nocobase/resourcer": "1.6.17", + "@nocobase/utils": "1.6.17", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 88e684dd15..465df45d1c 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.6.16", + "version": "1.6.17", "description": "Library build tool based on rollup.", "main": "lib/index.js", "types": "./lib/index.d.ts", diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index 1ba7a9e736..dedd15c897 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index 6d15f9d7f6..7d1b7184bf 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.6.16", + "@nocobase/app": "1.6.17", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.19.0" }, "devDependencies": { - "@nocobase/devtools": "1.6.16" + "@nocobase/devtools": "1.6.17" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 0c5682855d..e13ddc4f83 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -27,9 +27,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "1.6.16", - "@nocobase/sdk": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/evaluators": "1.6.17", + "@nocobase/sdk": "1.6.17", + "@nocobase/utils": "1.6.17", "ahooks": "^3.7.2", "antd": "5.12.8", "antd-style": "3.7.1", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 7c6aebc17e..252dcc6467 100755 --- a/packages/core/create-nocobase-app/package.json +++ b/packages/core/create-nocobase-app/package.json @@ -1,6 +1,6 @@ { "name": "create-nocobase-app", - "version": "1.6.16", + "version": "1.6.17", "main": "src/index.js", "license": "AGPL-3.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index ac432404f0..7f2a44e5ba 100644 --- a/packages/core/data-source-manager/package.json +++ b/packages/core/data-source-manager/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/data-source-manager", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.6.16", - "@nocobase/cache": "1.6.16", - "@nocobase/database": "1.6.16", - "@nocobase/resourcer": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/actions": "1.6.17", + "@nocobase/cache": "1.6.17", + "@nocobase/database": "1.6.17", + "@nocobase/resourcer": "1.6.17", + "@nocobase/utils": "1.6.17", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 1036b36baf..84505bbd9b 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.6.16", + "version": "1.6.17", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/logger": "1.6.17", + "@nocobase/utils": "1.6.17", "async-mutex": "^0.3.2", "chalk": "^4.1.1", "cron-parser": "4.4.0", diff --git a/packages/core/devtools/package.json b/packages/core/devtools/package.json index a07f6cb678..f5a5712efe 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.6.16", - "@nocobase/client": "1.6.16", - "@nocobase/test": "1.6.16", + "@nocobase/build": "1.6.17", + "@nocobase/client": "1.6.17", + "@nocobase/test": "1.6.17", "@types/koa": "^2.15.0", "@types/koa-bodyparser": "^4.3.4", "@types/lodash": "^4.14.177", diff --git a/packages/core/evaluators/package.json b/packages/core/evaluators/package.json index cc558a0254..62e3a5ecfd 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.6.16", + "version": "1.6.17", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.4.9", - "@nocobase/utils": "1.6.16", + "@nocobase/utils": "1.6.17", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/lock-manager/package.json b/packages/core/lock-manager/package.json index 62b5119fe4..790af01b1f 100644 --- a/packages/core/lock-manager/package.json +++ b/packages/core/lock-manager/package.json @@ -1,10 +1,10 @@ { "name": "@nocobase/lock-manager", - "version": "1.6.16", + "version": "1.6.17", "main": "lib/index.js", "license": "AGPL-3.0", "devDependencies": { - "@nocobase/utils": "1.6.16", + "@nocobase/utils": "1.6.17", "async-mutex": "^0.5.0" } } diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 12c7631997..b59fec9be5 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.6.16", + "version": "1.6.17", "description": "nocobase logging library", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index 181d91c36e..1c528b30af 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.6.16", + "version": "1.6.17", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.6.16", + "@nocobase/utils": "1.6.17", "deepmerge": "^4.2.2", "koa-compose": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/core/sdk/package.json b/packages/core/sdk/package.json index cd8b716525..599d6e9c96 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/core/server/package.json b/packages/core/server/package.json index 0644d076c4..6c718ad9bd 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.6.16", + "version": "1.6.17", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,19 +10,19 @@ "@koa/cors": "^5.0.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.6.16", - "@nocobase/actions": "1.6.16", - "@nocobase/auth": "1.6.16", - "@nocobase/cache": "1.6.16", - "@nocobase/data-source-manager": "1.6.16", - "@nocobase/database": "1.6.16", - "@nocobase/evaluators": "1.6.16", - "@nocobase/lock-manager": "1.6.16", - "@nocobase/logger": "1.6.16", - "@nocobase/resourcer": "1.6.16", - "@nocobase/sdk": "1.6.16", - "@nocobase/telemetry": "1.6.16", - "@nocobase/utils": "1.6.16", + "@nocobase/acl": "1.6.17", + "@nocobase/actions": "1.6.17", + "@nocobase/auth": "1.6.17", + "@nocobase/cache": "1.6.17", + "@nocobase/data-source-manager": "1.6.17", + "@nocobase/database": "1.6.17", + "@nocobase/evaluators": "1.6.17", + "@nocobase/lock-manager": "1.6.17", + "@nocobase/logger": "1.6.17", + "@nocobase/resourcer": "1.6.17", + "@nocobase/sdk": "1.6.17", + "@nocobase/telemetry": "1.6.17", + "@nocobase/utils": "1.6.17", "@types/decompress": "4.2.7", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index caeda1e34c..abb7918f54 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.6.16", + "version": "1.6.17", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.6.16", + "@nocobase/utils": "1.6.17", "@opentelemetry/api": "^1.7.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", diff --git a/packages/core/test/package.json b/packages/core/test/package.json index 3378f60c76..2b6cb64b55 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.6.16", + "version": "1.6.17", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -51,7 +51,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "1.6.16", + "@nocobase/server": "1.6.17", "@playwright/test": "^1.45.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 908d4b8b42..4e00f7fc80 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.6.16", + "version": "1.6.17", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index de2f1f214a..219bca3625 100644 --- a/packages/plugins/@nocobase/plugin-acl/package.json +++ b/packages/plugins/@nocobase/plugin-acl/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "权限控制", "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.", "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index a41f85fb72..18322852d7 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-edit", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-edit", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-edit", diff --git a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json index 0d010657c7..2fe34fb54a 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-update/package.json +++ b/packages/plugins/@nocobase/plugin-action-bulk-update/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-bulk-update", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-bulk-update", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-bulk-update", diff --git a/packages/plugins/@nocobase/plugin-action-custom-request/package.json b/packages/plugins/@nocobase/plugin-action-custom-request/package.json index b4757588a4..afd6b69173 100644 --- a/packages/plugins/@nocobase/plugin-action-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-action-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-custom-request", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-custom-request", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request", diff --git a/packages/plugins/@nocobase/plugin-action-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index 41d892750d..e00aa022c0 100644 --- a/packages/plugins/@nocobase/plugin-action-duplicate/package.json +++ b/packages/plugins/@nocobase/plugin-action-duplicate/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-duplicate", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-duplicate", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-duplicate", diff --git a/packages/plugins/@nocobase/plugin-action-export/package.json b/packages/plugins/@nocobase/plugin-action-export/package.json index ee3ad364fb..f21f9790e1 100644 --- a/packages/plugins/@nocobase/plugin-action-export/package.json +++ b/packages/plugins/@nocobase/plugin-action-export/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导出记录", "description": "Export filtered records to excel, you can configure which fields to export.", "description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-action-import/package.json b/packages/plugins/@nocobase/plugin-action-import/package.json index 964166793f..36270f4054 100644 --- a/packages/plugins/@nocobase/plugin-action-import/package.json +++ b/packages/plugins/@nocobase/plugin-action-import/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "操作:导入记录", "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.", "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-action-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index 76e5938c87..ad9708d247 100644 --- a/packages/plugins/@nocobase/plugin-action-print/package.json +++ b/packages/plugins/@nocobase/plugin-action-print/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-action-print", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-print", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-print", diff --git a/packages/plugins/@nocobase/plugin-ai/package.json b/packages/plugins/@nocobase/plugin-ai/package.json index 05b5716091..51b7b1db9e 100644 --- a/packages/plugins/@nocobase/plugin-ai/package.json +++ b/packages/plugins/@nocobase/plugin-ai/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "AI 集成", "description": "Support integration with AI services, providing AI-related workflow nodes to enhance business processing capabilities.", "description.zh-CN": "支持接入 AI 服务,提供 AI 相关的工作流节点,增强业务处理能力。", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index a731b13749..fb5cd02f06 100644 --- a/packages/plugins/@nocobase/plugin-api-doc/package.json +++ b/packages/plugins/@nocobase/plugin-api-doc/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-api-doc", - "version": "1.6.16", + "version": "1.6.17", "displayName": "API documentation", "displayName.zh-CN": "API 文档", "description": "An OpenAPI documentation generator for NocoBase HTTP API.", diff --git a/packages/plugins/@nocobase/plugin-api-keys/package.json b/packages/plugins/@nocobase/plugin-api-keys/package.json index 2c98fa573f..2ccc131eeb 100644 --- a/packages/plugins/@nocobase/plugin-api-keys/package.json +++ b/packages/plugins/@nocobase/plugin-api-keys/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:API 密钥", "description": "Allows users to use API key to access application's HTTP API", "description.zh-CN": "允许用户使用 API 密钥访问应用的 HTTP API", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-async-task-manager/package.json b/packages/plugins/@nocobase/plugin-async-task-manager/package.json index ab24af9d94..cb37a7c8e2 100644 --- a/packages/plugins/@nocobase/plugin-async-task-manager/package.json +++ b/packages/plugins/@nocobase/plugin-async-task-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "异步任务管理器", "description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.", "description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index d47ddf8e9a..68d79d3504 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/package.json +++ b/packages/plugins/@nocobase/plugin-audit-logs/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-audit-logs", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Audit logs (deprecated)", "displayName.zh-CN": "审计日志(废弃)", "description": "This plugin is deprecated. There will be a new audit log plugin in the future.", diff --git a/packages/plugins/@nocobase/plugin-auth-sms/package.json b/packages/plugins/@nocobase/plugin-auth-sms/package.json index 949ad44083..ba881cf058 100644 --- a/packages/plugins/@nocobase/plugin-auth-sms/package.json +++ b/packages/plugins/@nocobase/plugin-auth-sms/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-sms", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms", diff --git a/packages/plugins/@nocobase/plugin-auth/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index 51baac1e8b..906d0e5f11 100644 --- a/packages/plugins/@nocobase/plugin-auth/package.json +++ b/packages/plugins/@nocobase/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-auth", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth", diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index 3096bc5520..3449752f9c 100644 --- a/packages/plugins/@nocobase/plugin-backup-restore/package.json +++ b/packages/plugins/@nocobase/plugin-backup-restore/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "应用的备份与还原(废弃)", "description": "Backup and restore applications for scenarios such as application replication, migration, and upgrades.", "description.zh-CN": "备份和还原应用,可用于应用的复制、迁移、升级等场景。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-block-iframe/package.json b/packages/plugins/@nocobase/plugin-block-iframe/package.json index 9496919084..27f58b48fd 100644 --- a/packages/plugins/@nocobase/plugin-block-iframe/package.json +++ b/packages/plugins/@nocobase/plugin-block-iframe/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "区块:iframe", "description": "Create an iframe block on the page to embed and display external web pages or content.", "description.zh-CN": "在页面上创建和管理iframe,用于嵌入和展示外部网页或内容。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-block-workbench/package.json b/packages/plugins/@nocobase/plugin-block-workbench/package.json index 879bcf127f..03ba448216 100644 --- a/packages/plugins/@nocobase/plugin-block-workbench/package.json +++ b/packages/plugins/@nocobase/plugin-block-workbench/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-block-workbench", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Block: Action panel", "displayName.zh-CN": "区块:操作面板", "description": "Centrally manages and displays various actions, allowing users to efficiently perform tasks. It supports extensibility, with current action types including pop-ups, links, scanning, and custom requests.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index db92fd5af8..c2ed1ab4c8 100644 --- a/packages/plugins/@nocobase/plugin-calendar/package.json +++ b/packages/plugins/@nocobase/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-calendar", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Calendar", "displayName.zh-CN": "日历", "description": "Provides callendar collection template and block for managing date data, typically for date/time related information such as events, appointments, tasks, and so on.", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index 9fd1a08788..e3c832908b 100644 --- a/packages/plugins/@nocobase/plugin-charts/package.json +++ b/packages/plugins/@nocobase/plugin-charts/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "图表(废弃)", "description": "The plugin has been deprecated, please use the data visualization plugin instead.", "description.zh-CN": "已废弃插件,请使用数据可视化插件代替。", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index 05aca41861..ae39a17560 100644 --- a/packages/plugins/@nocobase/plugin-client/package.json +++ b/packages/plugins/@nocobase/plugin-client/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "WEB 客户端", "description": "Provides a client interface for the NocoBase server", "description.zh-CN": "为 NocoBase 服务端提供客户端界面", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-sql/package.json b/packages/plugins/@nocobase/plugin-collection-sql/package.json index 03953d5da4..ec155c771c 100644 --- a/packages/plugins/@nocobase/plugin-collection-sql/package.json +++ b/packages/plugins/@nocobase/plugin-collection-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表: SQL", "description": "Provides SQL collection template", "description.zh-CN": "提供 SQL 数据表模板", - "version": "1.6.16", + "version": "1.6.17", "homepage": "https://docs-cn.nocobase.com/handbook/collection-sql", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/collection-sql", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-collection-tree/package.json b/packages/plugins/@nocobase/plugin-collection-tree/package.json index 210c7ec67e..5fe2c3c8ba 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/package.json +++ b/packages/plugins/@nocobase/plugin-collection-tree/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-collection-tree", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Collection: Tree", "displayName.zh-CN": "数据表:树", "description": "Provides tree collection template", diff --git a/packages/plugins/@nocobase/plugin-data-source-main/package.json b/packages/plugins/@nocobase/plugin-data-source-main/package.json index f7e730373b..0db5a3c73c 100644 --- a/packages/plugins/@nocobase/plugin-data-source-main/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-main/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as PostgreSQL, MySQL, MariaDB and so on.", "description.zh-CN": "NocoBase 主数据库,支持 PostgreSQL、MySQL、MariaDB 等关系型数据库。", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/data-source-main", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-main", diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index c6ea07c2eb..6060bf0f09 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/package.json +++ b/packages/plugins/@nocobase/plugin-data-source-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-source-manager", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "displayName": "Data source manager", "displayName.zh-CN": "数据源管理", diff --git a/packages/plugins/@nocobase/plugin-data-visualization/package.json b/packages/plugins/@nocobase/plugin-data-visualization/package.json index bb7d5e144f..243b84c41b 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/package.json +++ b/packages/plugins/@nocobase/plugin-data-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-data-visualization", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Data visualization", "displayName.zh-CN": "数据可视化", "description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.", diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index 9a0c818831..8114065bd8 100644 --- a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json +++ b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-disable-pm-add", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-environment-variables/package.json b/packages/plugins/@nocobase/plugin-environment-variables/package.json index 38635ef15a..5143251ca9 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/package.json +++ b/packages/plugins/@nocobase/plugin-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-environment-variables", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index 64e846cf65..f9e6ca0c06 100644 --- a/packages/plugins/@nocobase/plugin-error-handler/package.json +++ b/packages/plugins/@nocobase/plugin-error-handler/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "错误处理器", "description": "Handling application errors and exceptions.", "description.zh-CN": "处理应用程序中的错误和异常。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-field-china-region/package.json b/packages/plugins/@nocobase/plugin-field-china-region/package.json index 371899dc15..c7b21fe127 100644 --- a/packages/plugins/@nocobase/plugin-field-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-field-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-china-region", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Collection field: administrative divisions of China", "displayName.zh-CN": "数据表字段:中国行政区划", "description": "Provides data and field type for administrative divisions of China.", diff --git a/packages/plugins/@nocobase/plugin-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 29a16669c1..bfcc8d4de4 100644 --- a/packages/plugins/@nocobase/plugin-field-formula/package.json +++ b/packages/plugins/@nocobase/plugin-field-formula/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:公式", "description": "Configure and store the results of calculations between multiple field values in the same record, supporting both Math.js and Excel formula functions.", "description.zh-CN": "可以配置并存储同一条记录的多字段值之间的计算结果,支持 Math.js 和 Excel formula functions 两种引擎", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json index 199d6c6a2a..f55aa96636 100644 --- a/packages/plugins/@nocobase/plugin-field-m2m-array/package.json +++ b/packages/plugins/@nocobase/plugin-field-m2m-array/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:多对多 (数组)", "description": "Allows to create many to many relationships between two models by storing an array of unique keys of the target model.", "description.zh-CN": "支持通过在数组中存储目标表唯一键的方式建立多对多关系。", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json index 741a7f3c5c..5d260b3313 100644 --- a/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json +++ b/packages/plugins/@nocobase/plugin-field-markdown-vditor/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:Markdown(Vditor)", "description": "Used to store Markdown and render it using Vditor editor, supports common Markdown syntax such as list, code, quote, etc., and supports uploading images, recordings, etc.It also allows for instant rendering, where what you see is what you get.", "description.zh-CN": "用于存储 Markdown,并使用 Vditor 编辑器渲染,支持常见 Markdown 语法,如列表,代码,引用等,并支持上传图片,录音等。同时可以做到即时渲染,所见即所得。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-markdown-vditor", diff --git a/packages/plugins/@nocobase/plugin-field-sequence/package.json b/packages/plugins/@nocobase/plugin-field-sequence/package.json index efc61f0a4a..70fef97a11 100644 --- a/packages/plugins/@nocobase/plugin-field-sequence/package.json +++ b/packages/plugins/@nocobase/plugin-field-sequence/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:自动编码", "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index 5a3918ab4d..93849133e7 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-field-sort", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "displayName": "Collection field: Sort", "displayName.zh-CN": "数据表字段:排序", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 5eeb800238..1f61bb960e 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/package.json +++ b/packages/plugins/@nocobase/plugin-file-manager/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-file-manager", - "version": "1.6.16", + "version": "1.6.17", "displayName": "File manager", "displayName.zh-CN": "文件管理器", "description": "Provides files storage services with files collection template and attachment field.", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index 19aab720e1..af533c544f 100644 --- a/packages/plugins/@nocobase/plugin-gantt/package.json +++ b/packages/plugins/@nocobase/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-gantt", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Block: Gantt", "displayName.zh-CN": "区块:甘特图", "description": "Provides Gantt block.", diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json index 32f46bf953..baf8b76e7e 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "可视化数据表管理", "description": "An ER diagram-like tool. Currently only the Master database is supported.", "description.zh-CN": "类似 ER 图的工具,目前只支持主数据库。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/graph-collection-manager", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index 752803dffd..6643f153ff 100644 --- a/packages/plugins/@nocobase/plugin-kanban/package.json +++ b/packages/plugins/@nocobase/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-kanban", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-kanban", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/block-kanban", diff --git a/packages/plugins/@nocobase/plugin-locale-tester/package.json b/packages/plugins/@nocobase/plugin-locale-tester/package.json index 1b07f931a7..327916fca5 100644 --- a/packages/plugins/@nocobase/plugin-locale-tester/package.json +++ b/packages/plugins/@nocobase/plugin-locale-tester/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-locale-tester", "displayName": "Locale tester", "displayName.zh-CN": "翻译测试工具", - "version": "1.6.16", + "version": "1.6.17", "homepage": "https://github.com/nocobase/locales", "main": "dist/server/index.js", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-localization/package.json b/packages/plugins/@nocobase/plugin-localization/package.json index a2d4d992bc..6d90026652 100644 --- a/packages/plugins/@nocobase/plugin-localization/package.json +++ b/packages/plugins/@nocobase/plugin-localization/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/localization-management", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/localization-management", diff --git a/packages/plugins/@nocobase/plugin-logger/package.json b/packages/plugins/@nocobase/plugin-logger/package.json index 71a091a784..c9bb6d7082 100644 --- a/packages/plugins/@nocobase/plugin-logger/package.json +++ b/packages/plugins/@nocobase/plugin-logger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "日志", "description": "Server-side logs, mainly including API request logs and system runtime logs, and allows to package and download log files.", "description.zh-CN": "服务端日志,主要包括接口请求日志和系统运行日志,并支持打包和下载日志文件。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/logger", diff --git a/packages/plugins/@nocobase/plugin-map/package.json b/packages/plugins/@nocobase/plugin-map/package.json index 81c36a20fd..505ae4dbe1 100644 --- a/packages/plugins/@nocobase/plugin-map/package.json +++ b/packages/plugins/@nocobase/plugin-map/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-map", "displayName": "Block: Map", "displayName.zh-CN": "区块:地图", - "version": "1.6.16", + "version": "1.6.17", "description": "Map block, support Gaode map and Google map, you can also extend more map types.", "description.zh-CN": "地图区块,支持高德地图和 Google 地图,你也可以扩展更多地图类型。", "license": "AGPL-3.0", diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index dfdc9e6d48..1f1291bc76 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/package.json +++ b/packages/plugins/@nocobase/plugin-mobile-client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile-client", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile-client", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile-client", diff --git a/packages/plugins/@nocobase/plugin-mobile/package.json b/packages/plugins/@nocobase/plugin-mobile/package.json index 2b2bb15adb..2ed40c2882 100644 --- a/packages/plugins/@nocobase/plugin-mobile/package.json +++ b/packages/plugins/@nocobase/plugin-mobile/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-mobile", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/mobile", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/mobile", diff --git a/packages/plugins/@nocobase/plugin-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index 7223e45a04..330f83c4bb 100644 --- a/packages/plugins/@nocobase/plugin-mock-collections/package.json +++ b/packages/plugins/@nocobase/plugin-mock-collections/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-mock-collections", "displayName": "mock-collections", "description": "mock-collections", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "license": "AGPL-3.0", "peerDependencies": { diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json index 808e54106e..24e27f954d 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用管理器", "description": "Dynamically create multiple apps without separate deployments.", "description.zh-CN": "无需单独部署即可动态创建多个应用。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/multi-app-manager", diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json index 4bb5fcc603..0733881314 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "多应用数据表共享", "description": "", "description.zh-CN": "", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notification-email/package.json b/packages/plugins/@nocobase/plugin-notification-email/package.json index 0211f10c2a..b30ba17adf 100644 --- a/packages/plugins/@nocobase/plugin-notification-email/package.json +++ b/packages/plugins/@nocobase/plugin-notification-email/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-email", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Notification: Email", "displayName.zh-CN": "通知:电子邮件", "description": "Used for sending email notifications with built-in SMTP transport.", diff --git a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json index 081c52efc0..0c93e75ed2 100644 --- a/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json +++ b/packages/plugins/@nocobase/plugin-notification-in-app-message/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notification-in-app-message", - "version": "1.6.16", + "version": "1.6.17", "displayName": "Notification: In-app message", "displayName.zh-CN": "通知:站内信", "description": "It supports users in receiving real-time message notifications within the NocoBase application.", diff --git a/packages/plugins/@nocobase/plugin-notification-manager/package.json b/packages/plugins/@nocobase/plugin-notification-manager/package.json index d3f19f4067..b23366638f 100644 --- a/packages/plugins/@nocobase/plugin-notification-manager/package.json +++ b/packages/plugins/@nocobase/plugin-notification-manager/package.json @@ -4,7 +4,7 @@ "description": "Provides a unified management service that includes channel configuration, logging, and other features, supporting the configuration of various notification channels, including in-app message and email.", "displayName.zh-CN": "通知管理", "description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。", - "version": "1.6.16", + "version": "1.6.17", "homepage": "https://docs.nocobase.com/handbook/notification-manager", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager", "main": "dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index a5b4b303f0..52664bab62 100644 --- a/packages/plugins/@nocobase/plugin-notifications/package.json +++ b/packages/plugins/@nocobase/plugin-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-notifications", - "version": "1.6.16", + "version": "1.6.17", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-public-forms/package.json b/packages/plugins/@nocobase/plugin-public-forms/package.json index ad5a58b519..6cd0163220 100644 --- a/packages/plugins/@nocobase/plugin-public-forms/package.json +++ b/packages/plugins/@nocobase/plugin-public-forms/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-public-forms", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "displayName": "Public forms", "displayName.zh-CN": "公开表单", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index 144b1e98d9..604f34af0e 100644 --- a/packages/plugins/@nocobase/plugin-sample-hello/package.json +++ b/packages/plugins/@nocobase/plugin-sample-hello/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-sample-hello", - "version": "1.6.16", + "version": "1.6.17", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index 16edfb4df2..e188488ba2 100644 --- a/packages/plugins/@nocobase/plugin-snapshot-field/package.json +++ b/packages/plugins/@nocobase/plugin-snapshot-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据表字段:关系快照", "description": "When adding a new record, create a snapshot for its relational record and save in the new record. The snapshot will not be updated when the relational record is updated.", "description.zh-CN": "在添加数据时,为它的关系数据创建快照,并保存在当前的数据中。关系数据更新时,快照不会更新。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-snapshot", diff --git a/packages/plugins/@nocobase/plugin-system-settings/package.json b/packages/plugins/@nocobase/plugin-system-settings/package.json index 58fe1bb246..83309b947b 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/package.json +++ b/packages/plugins/@nocobase/plugin-system-settings/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "系统设置", "description": "Used to adjust the system title, logo, language, etc.", "description.zh-CN": "用于调整系统的标题、LOGO、语言等。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/system-settings", diff --git a/packages/plugins/@nocobase/plugin-theme-editor/package.json b/packages/plugins/@nocobase/plugin-theme-editor/package.json index 2be1e2af04..953e77abc9 100644 --- a/packages/plugins/@nocobase/plugin-theme-editor/package.json +++ b/packages/plugins/@nocobase/plugin-theme-editor/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-theme-editor", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/theme-editor", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/theme-editor", diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 594e24eb3d..51db172d49 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "UI schema 存储服务", "description": "Provides centralized UI schema storage service.", "description.zh-CN": "提供中心化的 UI schema 存储服务。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/ui-schema-storage", diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json index 233ef4cd32..d55e0e3f9a 100644 --- a/packages/plugins/@nocobase/plugin-user-data-sync/package.json +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户数据同步", "description": "Reigster and manage extensible user data synchronization sources, with HTTP API provided by default. Support for synchronizing data to resources such as users and departments.", "description.zh-CN": "注册和管理可扩展的用户数据同步来源,默认提供 HTTP API。支持向用户和部门等资源同步数据。", - "version": "1.6.16", + "version": "1.6.17", "main": "dist/server/index.js", "peerDependencies": { "@nocobase/client": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 0586d82a5a..d1dc0f3484 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "用户", "description": "Provides basic user model, as well as created by and updated by fields.", "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/users", diff --git a/packages/plugins/@nocobase/plugin-verification/package.json b/packages/plugins/@nocobase/plugin-verification/package.json index f4efe8947a..6ba0775d55 100644 --- a/packages/plugins/@nocobase/plugin-verification/package.json +++ b/packages/plugins/@nocobase/plugin-verification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "验证码", "description": "verification setting.", "description.zh-CN": "验证码配置。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/verification", diff --git a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json index eaff9a3111..fde70f1458 100644 --- a/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-action-trigger/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:操作后事件", "description": "Triggered after the completion of a request initiated through an action button or API, such as after adding, updating, deleting data, or \"submit to workflow\". Suitable for data processing, sending notifications, etc., after actions are completed.", "description.zh-CN": "通过操作按钮或 API 发起请求并在执行完成后触发,比如新增、更新、删除数据或者“提交至工作流”之后。适用于在操作完成后进行数据处理、发送通知等。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/plugins/workflow-action-trigger", diff --git a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json index 1c656e5040..2be6e91c4b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-aggregate/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:聚合查询节点", "description": "Used to aggregate data against the database in workflow, such as: statistics, sum, average, etc.", "description.zh-CN": "可用于在工作流中对数据库进行聚合查询,如:统计数量、求和、平均值等。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-aggregate", diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/package.json b/packages/plugins/@nocobase/plugin-workflow-delay/package.json index 4ed440e80e..51817e9229 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-delay/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:延时节点", "description": "Could be used in workflow parallel branch for waiting other branches.", "description.zh-CN": "可用于工作流并行分支中等待其他分支执行完成。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-delay", diff --git a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json index e3f9babd91..31633ef31f 100644 --- a/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-dynamic-calculation/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:动态表达式计算节点", "description": "Useful plugin for doing dynamic calculation based on expression collection records in workflow.", "description.zh-CN": "用于在工作流中进行基于数据行的动态表达式计算。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-dynamic-calculation", diff --git a/packages/plugins/@nocobase/plugin-workflow-loop/package.json b/packages/plugins/@nocobase/plugin-workflow-loop/package.json index 2657b02ef1..2919c03cf5 100644 --- a/packages/plugins/@nocobase/plugin-workflow-loop/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-loop/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:循环节点", "description": "Used to repeat the sub-process processing of each value in an array, and can also be used for fixed times of sub-process processing.", "description.zh-CN": "用于对一个数组中的每个值进行重复的子流程处理,也可用于固定次数的重复子流程处理。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-loop", diff --git a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json index 424446a94c..cd44562e75 100644 --- a/packages/plugins/@nocobase/plugin-workflow-mailer/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-mailer/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:邮件发送节点", "description": "Send email in workflow.", "description.zh-CN": "可用于在工作流中发送电子邮件。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index 85c478dacb..e0d71bb062 100644 --- a/packages/plugins/@nocobase/plugin-workflow-manual/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-manual/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:人工处理节点", "description": "Could be used for workflows which some of decisions are made by users.", "description.zh-CN": "用于人工控制部分决策的流程。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-manual", diff --git a/packages/plugins/@nocobase/plugin-workflow-notification/package.json b/packages/plugins/@nocobase/plugin-workflow-notification/package.json index 4566fc544b..b22c4ac7b8 100644 --- a/packages/plugins/@nocobase/plugin-workflow-notification/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-notification/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:通知节点", "description": "Send notification in workflow.", "description.zh-CN": "可用于在工作流中发送各类通知。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer", diff --git a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index 39682e1649..aa934dbf85 100644 --- a/packages/plugins/@nocobase/plugin-workflow-parallel/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:并行分支节点", "description": "Could be used for parallel execution of branch processes in the workflow.", "description.zh-CN": "用于在工作流中需要并行执行的分支流程。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-parallel", diff --git a/packages/plugins/@nocobase/plugin-workflow-request/package.json b/packages/plugins/@nocobase/plugin-workflow-request/package.json index 467e809bb9..4838b107ed 100644 --- a/packages/plugins/@nocobase/plugin-workflow-request/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-request/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:HTTP 请求节点", "description": "Send HTTP requests to any HTTP service for data interaction in workflow.", "description.zh-CN": "可用于在工作流中向任意 HTTP 服务发送请求,进行数据交互。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-request", diff --git a/packages/plugins/@nocobase/plugin-workflow-sql/package.json b/packages/plugins/@nocobase/plugin-workflow-sql/package.json index 6c9e87296b..861170f91b 100644 --- a/packages/plugins/@nocobase/plugin-workflow-sql/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-sql/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "工作流:SQL 节点", "description": "Execute SQL statements in workflow.", "description.zh-CN": "可用于在工作流中对数据库执行任意 SQL 语句。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow-sql", diff --git a/packages/plugins/@nocobase/plugin-workflow-test/package.json b/packages/plugins/@nocobase/plugin-workflow-test/package.json index 0614fb13ac..e2cae2170e 100644 --- a/packages/plugins/@nocobase/plugin-workflow-test/package.json +++ b/packages/plugins/@nocobase/plugin-workflow-test/package.json @@ -2,7 +2,7 @@ "name": "@nocobase/plugin-workflow-test", "displayName": "Workflow: test kit", "displayName.zh-CN": "工作流:测试工具包", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "dist/server/index.js", "types": "./dist/server/index.d.ts", diff --git a/packages/plugins/@nocobase/plugin-workflow/package.json b/packages/plugins/@nocobase/plugin-workflow/package.json index c903dd7037..eea83bcaef 100644 --- a/packages/plugins/@nocobase/plugin-workflow/package.json +++ b/packages/plugins/@nocobase/plugin-workflow/package.json @@ -4,13 +4,13 @@ "displayName.zh-CN": "工作流", "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.", "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/workflow", "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/workflow", "dependencies": { - "@nocobase/plugin-workflow-test": "1.6.16" + "@nocobase/plugin-workflow-test": "1.6.17" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index c6eada096d..ec5c439304 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,81 +1,81 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.6.16", + "version": "1.6.17", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.6.16", - "@nocobase/plugin-action-bulk-edit": "1.6.16", - "@nocobase/plugin-action-bulk-update": "1.6.16", - "@nocobase/plugin-action-custom-request": "1.6.16", - "@nocobase/plugin-action-duplicate": "1.6.16", - "@nocobase/plugin-action-export": "1.6.16", - "@nocobase/plugin-action-import": "1.6.16", - "@nocobase/plugin-action-print": "1.6.16", - "@nocobase/plugin-ai": "1.6.16", - "@nocobase/plugin-api-doc": "1.6.16", - "@nocobase/plugin-api-keys": "1.6.16", - "@nocobase/plugin-async-task-manager": "1.6.16", - "@nocobase/plugin-audit-logs": "1.6.16", - "@nocobase/plugin-auth": "1.6.16", - "@nocobase/plugin-auth-sms": "1.6.16", - "@nocobase/plugin-backup-restore": "1.6.16", - "@nocobase/plugin-block-iframe": "1.6.16", - "@nocobase/plugin-block-workbench": "1.6.16", - "@nocobase/plugin-calendar": "1.6.16", - "@nocobase/plugin-charts": "1.6.16", - "@nocobase/plugin-client": "1.6.16", - "@nocobase/plugin-collection-sql": "1.6.16", - "@nocobase/plugin-collection-tree": "1.6.16", - "@nocobase/plugin-data-source-main": "1.6.16", - "@nocobase/plugin-data-source-manager": "1.6.16", - "@nocobase/plugin-data-visualization": "1.6.16", - "@nocobase/plugin-environment-variables": "1.6.16", - "@nocobase/plugin-error-handler": "1.6.16", - "@nocobase/plugin-field-china-region": "1.6.16", - "@nocobase/plugin-field-formula": "1.6.16", - "@nocobase/plugin-field-m2m-array": "1.6.16", - "@nocobase/plugin-field-markdown-vditor": "1.6.16", - "@nocobase/plugin-field-sequence": "1.6.16", - "@nocobase/plugin-field-sort": "1.6.16", - "@nocobase/plugin-file-manager": "1.6.16", - "@nocobase/plugin-gantt": "1.6.16", - "@nocobase/plugin-graph-collection-manager": "1.6.16", - "@nocobase/plugin-kanban": "1.6.16", - "@nocobase/plugin-locale-tester": "1.6.16", - "@nocobase/plugin-localization": "1.6.16", - "@nocobase/plugin-logger": "1.6.16", - "@nocobase/plugin-map": "1.6.16", - "@nocobase/plugin-mobile": "1.6.16", - "@nocobase/plugin-mobile-client": "1.6.16", - "@nocobase/plugin-mock-collections": "1.6.16", - "@nocobase/plugin-multi-app-manager": "1.6.16", - "@nocobase/plugin-multi-app-share-collection": "1.6.16", - "@nocobase/plugin-notification-email": "1.6.16", - "@nocobase/plugin-notification-in-app-message": "1.6.16", - "@nocobase/plugin-notification-manager": "1.6.16", - "@nocobase/plugin-public-forms": "1.6.16", - "@nocobase/plugin-snapshot-field": "1.6.16", - "@nocobase/plugin-system-settings": "1.6.16", - "@nocobase/plugin-theme-editor": "1.6.16", - "@nocobase/plugin-ui-schema-storage": "1.6.16", - "@nocobase/plugin-user-data-sync": "1.6.16", - "@nocobase/plugin-users": "1.6.16", - "@nocobase/plugin-verification": "1.6.16", - "@nocobase/plugin-workflow": "1.6.16", - "@nocobase/plugin-workflow-action-trigger": "1.6.16", - "@nocobase/plugin-workflow-aggregate": "1.6.16", - "@nocobase/plugin-workflow-delay": "1.6.16", - "@nocobase/plugin-workflow-dynamic-calculation": "1.6.16", - "@nocobase/plugin-workflow-loop": "1.6.16", - "@nocobase/plugin-workflow-mailer": "1.6.16", - "@nocobase/plugin-workflow-manual": "1.6.16", - "@nocobase/plugin-workflow-notification": "1.6.16", - "@nocobase/plugin-workflow-parallel": "1.6.16", - "@nocobase/plugin-workflow-request": "1.6.16", - "@nocobase/plugin-workflow-sql": "1.6.16", - "@nocobase/server": "1.6.16", + "@nocobase/plugin-acl": "1.6.17", + "@nocobase/plugin-action-bulk-edit": "1.6.17", + "@nocobase/plugin-action-bulk-update": "1.6.17", + "@nocobase/plugin-action-custom-request": "1.6.17", + "@nocobase/plugin-action-duplicate": "1.6.17", + "@nocobase/plugin-action-export": "1.6.17", + "@nocobase/plugin-action-import": "1.6.17", + "@nocobase/plugin-action-print": "1.6.17", + "@nocobase/plugin-ai": "1.6.17", + "@nocobase/plugin-api-doc": "1.6.17", + "@nocobase/plugin-api-keys": "1.6.17", + "@nocobase/plugin-async-task-manager": "1.6.17", + "@nocobase/plugin-audit-logs": "1.6.17", + "@nocobase/plugin-auth": "1.6.17", + "@nocobase/plugin-auth-sms": "1.6.17", + "@nocobase/plugin-backup-restore": "1.6.17", + "@nocobase/plugin-block-iframe": "1.6.17", + "@nocobase/plugin-block-workbench": "1.6.17", + "@nocobase/plugin-calendar": "1.6.17", + "@nocobase/plugin-charts": "1.6.17", + "@nocobase/plugin-client": "1.6.17", + "@nocobase/plugin-collection-sql": "1.6.17", + "@nocobase/plugin-collection-tree": "1.6.17", + "@nocobase/plugin-data-source-main": "1.6.17", + "@nocobase/plugin-data-source-manager": "1.6.17", + "@nocobase/plugin-data-visualization": "1.6.17", + "@nocobase/plugin-environment-variables": "1.6.17", + "@nocobase/plugin-error-handler": "1.6.17", + "@nocobase/plugin-field-china-region": "1.6.17", + "@nocobase/plugin-field-formula": "1.6.17", + "@nocobase/plugin-field-m2m-array": "1.6.17", + "@nocobase/plugin-field-markdown-vditor": "1.6.17", + "@nocobase/plugin-field-sequence": "1.6.17", + "@nocobase/plugin-field-sort": "1.6.17", + "@nocobase/plugin-file-manager": "1.6.17", + "@nocobase/plugin-gantt": "1.6.17", + "@nocobase/plugin-graph-collection-manager": "1.6.17", + "@nocobase/plugin-kanban": "1.6.17", + "@nocobase/plugin-locale-tester": "1.6.17", + "@nocobase/plugin-localization": "1.6.17", + "@nocobase/plugin-logger": "1.6.17", + "@nocobase/plugin-map": "1.6.17", + "@nocobase/plugin-mobile": "1.6.17", + "@nocobase/plugin-mobile-client": "1.6.17", + "@nocobase/plugin-mock-collections": "1.6.17", + "@nocobase/plugin-multi-app-manager": "1.6.17", + "@nocobase/plugin-multi-app-share-collection": "1.6.17", + "@nocobase/plugin-notification-email": "1.6.17", + "@nocobase/plugin-notification-in-app-message": "1.6.17", + "@nocobase/plugin-notification-manager": "1.6.17", + "@nocobase/plugin-public-forms": "1.6.17", + "@nocobase/plugin-snapshot-field": "1.6.17", + "@nocobase/plugin-system-settings": "1.6.17", + "@nocobase/plugin-theme-editor": "1.6.17", + "@nocobase/plugin-ui-schema-storage": "1.6.17", + "@nocobase/plugin-user-data-sync": "1.6.17", + "@nocobase/plugin-users": "1.6.17", + "@nocobase/plugin-verification": "1.6.17", + "@nocobase/plugin-workflow": "1.6.17", + "@nocobase/plugin-workflow-action-trigger": "1.6.17", + "@nocobase/plugin-workflow-aggregate": "1.6.17", + "@nocobase/plugin-workflow-delay": "1.6.17", + "@nocobase/plugin-workflow-dynamic-calculation": "1.6.17", + "@nocobase/plugin-workflow-loop": "1.6.17", + "@nocobase/plugin-workflow-mailer": "1.6.17", + "@nocobase/plugin-workflow-manual": "1.6.17", + "@nocobase/plugin-workflow-notification": "1.6.17", + "@nocobase/plugin-workflow-parallel": "1.6.17", + "@nocobase/plugin-workflow-request": "1.6.17", + "@nocobase/plugin-workflow-sql": "1.6.17", + "@nocobase/server": "1.6.17", "cronstrue": "^2.11.0", "fs-extra": "^11.1.1" }, From 6f4e27a286aa19197a1e229338384e7bea4f742a Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Wed, 9 Apr 2025 06:44:38 +0000 Subject: [PATCH 114/137] docs: update changelogs --- CHANGELOG.md | 42 ++++++++++++++++++++++++++++++++++++++++++ CHANGELOG.zh-CN.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0058471f7..2e16271476 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,48 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.6.17](https://github.com/nocobase/nocobase/compare/v1.6.16...v1.6.17) - 2025-04-09 + +### 🚀 Improvements + +- **[utils]** Add duration extension for dayjs ([#6630](https://github.com/nocobase/nocobase/pull/6630)) by @mytharcher + +- **[client]** + - Support to search field in Filter component ([#6627](https://github.com/nocobase/nocobase/pull/6627)) by @mytharcher + + - Add `trim` API for `Input` and `Variable.TextArea` ([#6624](https://github.com/nocobase/nocobase/pull/6624)) by @mytharcher + +- **[Error handler]** Support custom title in AppError component. ([#6409](https://github.com/nocobase/nocobase/pull/6409)) by @sheldon66 + +- **[IP restriction]** Update IP restriction message content. by @sheldon66 + +- **[File storage: S3(Pro)]** Support global variables in storage configuration by @mytharcher + +### 🐛 Bug Fixes + +- **[client]** + - rule with 'any' condition does not take effect when condition list is empty ([#6628](https://github.com/nocobase/nocobase/pull/6628)) by @katherinehhh + + - data issue with Gantt block in tree collection ([#6617](https://github.com/nocobase/nocobase/pull/6617)) by @katherinehhh + + - The relationship fields in the filter form report an error after the page is refreshed because x-data-source is not carried ([#6619](https://github.com/nocobase/nocobase/pull/6619)) by @zhangzhonghe + + - variable parse failure when URL parameters contain Chinese characters ([#6618](https://github.com/nocobase/nocobase/pull/6618)) by @katherinehhh + +- **[Users]** Issue with parsing the user profile form schema ([#6635](https://github.com/nocobase/nocobase/pull/6635)) by @2013xile + +- **[Mobile]** single-select field with 'contains' filter on mobile does not support multiple selection ([#6629](https://github.com/nocobase/nocobase/pull/6629)) by @katherinehhh + +- **[Action: Export records]** missing filter params when exporting data after changing pagination ([#6633](https://github.com/nocobase/nocobase/pull/6633)) by @katherinehhh + +- **[Email manager]** fix email management permission cannot view email list by @jiannx + +- **[File storage: S3(Pro)]** Throw error to user when upload logo to S3 Pro storage (set to default) by @mytharcher + +- **[Workflow: Approval]** Fix `updatedAt` changed after migration by @mytharcher + +- **[Migration manager]** migration log creation time is displayed incorrectly in some environments by @gchust + ## [v1.6.16](https://github.com/nocobase/nocobase/compare/v1.6.15...v1.6.16) - 2025-04-03 ### 🐛 Bug Fixes diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index e5cff93429..8ab0be9a2f 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -5,6 +5,48 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +## [v1.6.17](https://github.com/nocobase/nocobase/compare/v1.6.16...v1.6.17) - 2025-04-09 + +### 🚀 优化 + +- **[utils]** 为 dayjs 包增加时长扩展 ([#6630](https://github.com/nocobase/nocobase/pull/6630)) by @mytharcher + +- **[client]** + - 支持筛选组件中对字段进行搜索 ([#6627](https://github.com/nocobase/nocobase/pull/6627)) by @mytharcher + + - 为 `Input` 和 `Variable.TextArea` 组件增加 `trim` API ([#6624](https://github.com/nocobase/nocobase/pull/6624)) by @mytharcher + +- **[错误处理器]** 在 AppError 组件中支持自定义标题。 ([#6409](https://github.com/nocobase/nocobase/pull/6409)) by @sheldon66 + +- **[IP 限制]** 更新 IP 限制消息内容。 by @sheldon66 + +- **[文件存储:S3 (Pro)]** 支持存储引擎的配置中使用全局变量 by @mytharcher + +### 🐛 修复 + +- **[client]** + - 联动规则条件设置为任意且无条件内容时属性设置不生效 ([#6628](https://github.com/nocobase/nocobase/pull/6628)) by @katherinehhh + + - 树表使用甘特图区块时数据显示异常 ([#6617](https://github.com/nocobase/nocobase/pull/6617)) by @katherinehhh + + - 筛选表单中的关系字段在刷新页面后,由于没有携带 x-data-source 而报错 ([#6619](https://github.com/nocobase/nocobase/pull/6619)) by @zhangzhonghe + + - 链接中中文参数变量值解析失败 ([#6618](https://github.com/nocobase/nocobase/pull/6618)) by @katherinehhh + +- **[用户]** 用户个人资料表单 schema 的解析问题 ([#6635](https://github.com/nocobase/nocobase/pull/6635)) by @2013xile + +- **[移动端]** 下拉单选字段在移动端设置筛选符为包含时组件未支持多选 ([#6629](https://github.com/nocobase/nocobase/pull/6629)) by @katherinehhh + +- **[操作:导出记录]** 筛选数据后切换分页再导出时筛选参数丢失 ([#6633](https://github.com/nocobase/nocobase/pull/6633)) by @katherinehhh + +- **[邮件管理]** 邮件管理权限无法查看邮件列表 by @jiannx + +- **[文件存储:S3 (Pro)]** 当用户上传 logo 失败时提示错误(设置为默认存储的 S3 Pro) by @mytharcher + +- **[工作流:审批]** 修复更新时间在迁移后变化 by @mytharcher + +- **[迁移管理]** 部分服务器环境下迁移日志创建日期显示不正确 by @gchust + ## [v1.6.16](https://github.com/nocobase/nocobase/compare/v1.6.15...v1.6.16) - 2025-04-03 ### 🐛 修复 From 86380b2ba57ac7d62eedba1a7c71a5269a4e4dd4 Mon Sep 17 00:00:00 2001 From: Junyi Date: Wed, 9 Apr 2025 21:43:15 +0800 Subject: [PATCH 115/137] refactor(plugin-workflow-delay): support to use variable for duration (#6621) --- .../src/client/DelayInstruction.tsx | 80 +++++++---------- .../src/locale/zh-CN.json | 1 + .../src/server/DelayInstruction.ts | 5 +- .../src/server/__tests__/instruction.test.ts | 49 ++++++++++- .../20250403223032-add-duration-unit.test.ts | 86 +++++++++++++++++++ .../20250403223032-add-duration-unit.ts | 54 ++++++++++++ 6 files changed, 221 insertions(+), 54 deletions(-) create mode 100644 packages/plugins/@nocobase/plugin-workflow-delay/src/server/__tests__/migrations/20250403223032-add-duration-unit.test.ts create mode 100644 packages/plugins/@nocobase/plugin-workflow-delay/src/server/migrations/20250403223032-add-duration-unit.ts diff --git a/packages/plugins/@nocobase/plugin-workflow-delay/src/client/DelayInstruction.tsx b/packages/plugins/@nocobase/plugin-workflow-delay/src/client/DelayInstruction.tsx index 81935fa347..0f66b56457 100644 --- a/packages/plugins/@nocobase/plugin-workflow-delay/src/client/DelayInstruction.tsx +++ b/packages/plugins/@nocobase/plugin-workflow-delay/src/client/DelayInstruction.tsx @@ -8,11 +8,10 @@ */ import React from 'react'; -import { InputNumber, Select } from 'antd'; +import { Space } from 'antd'; import { HourglassOutlined } from '@ant-design/icons'; -import { css, useCompile } from '@nocobase/client'; -import { Instruction, JOB_STATUS } from '@nocobase/plugin-workflow/client'; +import { Instruction, JOB_STATUS, WorkflowVariableInput } from '@nocobase/plugin-workflow/client'; import { NAMESPACE } from '../locale'; @@ -24,47 +23,6 @@ const UnitOptions = [ { value: 604800_000, label: `{{t('Weeks', { ns: "workflow" })}}` }, ]; -function getNumberOption(v) { - return UnitOptions.slice() - .reverse() - .find((item) => !(v % item.value)); -} - -function Duration({ value = 60000, onChange }) { - const compile = useCompile(); - const option = getNumberOption(value); - const quantity = Math.round(value / option.value); - - return ( -
- onChange(Math.round(v * option.value))} - className="auto-width" - /> - { + if (!value) { + field.setValue([]); + return; + } + field.setValue( + value.map(({ label, value }: { label: string; value: string }) => ({ + id: value, + nickname: label, + })), + ); + }} + mode="multiple" + value={value} + labelInValue={true} + onDropdownVisibleChange={(open) => setVisible(open)} + /> + + + ); +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTable.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTable.tsx new file mode 100644 index 0000000000..e86ca90309 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTable.tsx @@ -0,0 +1,261 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import { + CollectionContext, + CollectionProvider_deprecated, + ResourceActionContext, + SchemaComponent, + mergeFilter, + removeNullCondition, + useFilterFieldOptions, + useFilterFieldProps, + useResourceActionContext, +} from '@nocobase/client'; +import React, { createContext, useContext, useEffect, useState } from 'react'; +import { useDepartmentManager } from '../hooks'; +import { Table, TablePaginationConfig } from 'antd'; +import { departmentCollection } from '../collections/departments'; +import { useDepartmentTranslation } from '../locale'; +import { useField } from '@formily/react'; +import { Field } from '@formily/core'; +import { uid } from '@formily/shared'; +import { getDepartmentTitle } from '../utils'; + +const ExpandMetaContext = createContext({}); + +export const useFilterActionProps = () => { + const { setHasFilter, setExpandedKeys } = useContext(ExpandMetaContext); + const { t } = useDepartmentTranslation(); + const collection = useContext(CollectionContext); + const options = useFilterFieldOptions(collection.fields); + const service = useResourceActionContext(); + const { run, defaultRequest } = service; + const field = useField(); + const { params } = defaultRequest || {}; + + return { + options, + onSubmit: async (values: any) => { + // filter parameter for the block + const defaultFilter = params.filter; + // filter parameter for the filter action + const filter = removeNullCondition(values?.filter); + run({ + ...params, + page: 1, + pageSize: 10, + filter: mergeFilter([filter, defaultFilter]), + }); + const items = filter?.$and || filter?.$or; + if (items?.length) { + field.title = t('{{count}} filter items', { count: items?.length || 0 }); + setHasFilter(true); + } else { + field.title = t('Filter'); + setHasFilter(false); + } + }, + onReset() { + run({ + ...(params || {}), + filter: { + ...(params?.filter || {}), + parentId: null, + }, + page: 1, + pageSize: 10, + }); + field.title = t('Filter'); + setHasFilter(false); + setExpandedKeys([]); + }, + }; +}; + +const useDefaultDisabled = () => { + return { + disabled: () => false, + }; +}; + +const InternalDepartmentTable: React.FC<{ + useDisabled?: () => { + disabled: (record: any) => boolean; + }; +}> = ({ useDisabled = useDefaultDisabled }) => { + const { t } = useDepartmentTranslation(); + const ctx = useResourceActionContext(); + console.log(ctx); + const { run, data, loading, defaultRequest } = ctx; + const { resource, resourceOf, params } = defaultRequest || {}; + const { treeData, initData, loadData } = useDepartmentManager({ + resource, + resourceOf, + params, + }); + const field = useField(); + const { disabled } = useDisabled(); + const { hasFilter, expandedKeys, setExpandedKeys } = useContext(ExpandMetaContext); + + useEffect(() => { + if (hasFilter) { + return; + } + initData(data?.data); + }, [data, initData, loading, hasFilter]); + + const pagination: TablePaginationConfig = {}; + if (params?.pageSize) { + pagination.defaultPageSize = params.pageSize; + } + if (!pagination.total && data?.meta) { + const { count, page, pageSize } = data.meta; + pagination.total = count; + pagination.current = page; + pagination.pageSize = pageSize; + } + + return ( + (hasFilter ? getDepartmentTitle(record) : text), + }, + ]} + rowSelection={{ + selectedRowKeys: (field?.value || []).map((dept: any) => dept.id), + onChange: (keys, depts) => field?.setValue?.(depts), + getCheckboxProps: (record: any) => ({ + disabled: disabled(record), + }), + }} + pagination={{ + showSizeChanger: true, + ...pagination, + onChange(page, pageSize) { + run({ + ...(ctx?.params?.[0] || {}), + page, + pageSize, + }); + }, + }} + dataSource={hasFilter ? data?.data || [] : treeData} + expandable={{ + onExpand: (expanded, record) => { + loadData({ + key: record.id, + children: record.children, + }); + }, + expandedRowKeys: expandedKeys, + onExpandedRowsChange: (keys) => setExpandedKeys(keys), + }} + /> + ); +}; + +const RequestProvider: React.FC<{ + useDataSource: any; +}> = (props) => { + const [expandedKeys, setExpandedKeys] = useState([]); + const [hasFilter, setHasFilter] = useState(false); + const { useDataSource } = props; + const service = useDataSource({ + manual: true, + }); + useEffect(() => { + service.run({ + filter: { + parentId: null, + }, + pageSize: 10, + }); + }, []); + return ( + + + + {props.children} + + + + ); +}; + +export const DepartmentTable: React.FC<{ + useDataSource: any; + useDisabled?: (record: any) => boolean; +}> = ({ useDataSource, useDisabled }) => { + return ( + + ); +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTree.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTree.tsx new file mode 100644 index 0000000000..03ac4080b6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTree.tsx @@ -0,0 +1,181 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import React, { useContext, useEffect } from 'react'; +import { Tree, Dropdown, App, Empty } from 'antd'; +import { MoreOutlined } from '@ant-design/icons'; +import { useAPIClient, useResourceActionContext } from '@nocobase/client'; +import { useDepartmentTranslation } from '../locale'; +import { editDepartmentSchema, newSubDepartmentSchema } from './schemas/departments'; +import { ResourcesContext } from '../ResourcesProvider'; +import { DepartmentTreeContext } from './Department'; +import { css } from '@emotion/css'; + +type DepartmentTreeProps = { + node: { + id: number; + title: string; + parent?: any; + }; + setVisible: (visible: boolean) => void; + setDrawer: (schema: any) => void; +}; + +export const DepartmentTree: React.FC & { + Item: React.FC; +} = () => { + const { data, loading } = useResourceActionContext(); + const { department, setDepartment, setUser } = useContext(ResourcesContext); + const { treeData, nodeMap, loadData, loadedKeys, setLoadedKeys, initData, expandedKeys, setExpandedKeys } = + useContext(DepartmentTreeContext); + const handleSelect = (keys: number[]) => { + if (!keys.length) { + return; + } + const node = nodeMap[keys[0]]; + setDepartment(node); + setUser(null); + }; + + const handleExpand = (keys: number[]) => { + setExpandedKeys(keys); + }; + + const handleLoad = (keys: number[]) => { + setLoadedKeys(keys); + }; + + useEffect(() => { + initData(data?.data); + }, [data, initData, loading]); + + useEffect(() => { + if (!department) { + return; + } + const getIds = (node: any) => { + if (node.parent) { + return [node.parent.id, ...getIds(node.parent)]; + } + return []; + }; + const newKeys = getIds(department); + setExpandedKeys((keys) => Array.from(new Set([...keys, ...newKeys]))); + }, [department, setExpandedKeys]); + + return ( +
+ {treeData?.length ? ( + + ) : ( + + )} +
+ ); +}; + +DepartmentTree.Item = function DepartmentTreeItem({ node, setVisible, setDrawer }: DepartmentTreeProps) { + const { t } = useDepartmentTranslation(); + const { refreshAsync } = useResourceActionContext(); + const { setLoadedKeys, expandedKeys, setExpandedKeys } = useContext(DepartmentTreeContext); + const { modal, message } = App.useApp(); + const api = useAPIClient(); + const deleteDepartment = () => { + modal.confirm({ + title: t('Delete'), + content: t('Are you sure you want to delete it?'), + onOk: async () => { + await api.resource('departments').destroy({ filterByTk: node.id }); + message.success(t('Deleted successfully')); + setExpandedKeys((keys) => keys.filter((k) => k !== node.id)); + const expanded = [...expandedKeys]; + setLoadedKeys([]); + setExpandedKeys([]); + await refreshAsync(); + setExpandedKeys(expanded); + }, + }); + }; + const openDrawer = (schema: any) => { + setDrawer({ schema, node }); + setVisible(true); + }; + const handleClick = ({ key, domEvent }) => { + domEvent.stopPropagation(); + switch (key) { + case 'new-sub': + openDrawer(newSubDepartmentSchema); + break; + case 'edit': + openDrawer(editDepartmentSchema); + break; + case 'delete': + deleteDepartment(); + } + }; + return ( +
+
{node.title}
+ +
+ +
+
+
+ ); +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTreeSelect.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTreeSelect.tsx new file mode 100644 index 0000000000..b66b511548 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/DepartmentTreeSelect.tsx @@ -0,0 +1,136 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import React, { useCallback, useContext, useEffect } from 'react'; +import { TreeSelect } from 'antd'; +import { useField } from '@formily/react'; +import { Field } from '@formily/core'; +import { useRecord } from '@nocobase/client'; +import { ResourcesContext } from '../ResourcesProvider'; +import { useDepartmentManager } from '../hooks/departments-manager'; + +export const DepartmentTreeSelect: React.FC<{ + originData: any; + treeData: any[]; + [key: string]: any; +}> = (props) => { + const field = useField(); + const [value, setValue] = React.useState({ label: null, value: null }); + const { treeData, initData, getByKeyword, loadData, loadedKeys, setLoadedKeys, originData } = props; + + const handleSearch = async (keyword: string) => { + if (!keyword) { + initData(originData); + return; + } + await getByKeyword(keyword); + }; + + const getTitle = useCallback((record: any) => { + const title = record.title; + const parent = record.parent; + if (parent) { + return getTitle(parent) + ' / ' + title; + } + return title; + }, []); + + useEffect(() => { + initData(originData); + }, [originData, initData]); + + useEffect(() => { + if (!field.value) { + setValue({ label: null, value: null }); + return; + } + setValue({ + label: getTitle(field.value) || field.value.label, + value: field.value.id, + }); + }, [field.value, getTitle]); + + return ( + { + field.setValue(node); + }} + onChange={(value: any) => { + if (!value) { + field.setValue(null); + } + }} + treeData={treeData} + treeLoadedKeys={loadedKeys} + onTreeLoad={(keys: any[]) => setLoadedKeys(keys)} + loadData={(node: any) => loadData({ key: node.id, children: node.children })} + fieldNames={{ + value: 'id', + }} + showSearch + allowClear + treeNodeFilterProp="title" + onSearch={handleSearch} + labelInValue={true} + /> + ); +}; + +export const DepartmentSelect: React.FC = () => { + const departmentManager = useDepartmentManager(); + const { departmentsResource } = useContext(ResourcesContext); + const { + service: { data }, + } = departmentsResource || {}; + return ; +}; + +export const SuperiorDepartmentSelect: React.FC = () => { + const departmentManager = useDepartmentManager(); + const { setTreeData, getChildrenIds } = departmentManager; + const record = useRecord() as any; + const { departmentsResource } = useContext(ResourcesContext); + const { + service: { data }, + } = departmentsResource || {}; + + useEffect(() => { + if (!record.id) { + return; + } + const childrenIds = getChildrenIds(record.id); + childrenIds.push(record.id); + setTreeData((treeData) => { + const setDisabled = (treeData: any[]) => { + return treeData.map((node) => { + if (childrenIds.includes(node.id)) { + node.disabled = true; + } + if (node.children) { + node.children = setDisabled(node.children); + } + return node; + }); + }; + return setDisabled(treeData); + }); + }, [setTreeData, record.id, getChildrenIds]); + + return ; +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/IsOwnerField.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/IsOwnerField.tsx new file mode 100644 index 0000000000..e685d2d89a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/IsOwnerField.tsx @@ -0,0 +1,30 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import React, { useContext } from 'react'; +import { useDepartmentTranslation } from '../locale'; +import { Checkbox, useRecord } from '@nocobase/client'; +import { ResourcesContext } from '../ResourcesProvider'; + +export const IsOwnerField: React.FC = () => { + const { department } = useContext(ResourcesContext); + const record = useRecord() as any; + const dept = (record.departments || []).find((dept: any) => dept?.id === department?.id); + + return ; +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/Member.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/Member.tsx new file mode 100644 index 0000000000..a23aa2bde8 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/Member.tsx @@ -0,0 +1,235 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import React, { useContext, useRef, useEffect, useMemo } from 'react'; +import { useDepartmentTranslation } from '../locale'; +import { + CollectionContext, + ResourceActionProvider, + SchemaComponent, + useAPIClient, + useActionContext, + useFilterFieldOptions, + useFilterFieldProps, + useRecord, + useResourceActionContext, + useTableBlockContext, +} from '@nocobase/client'; +import { membersActionSchema, addMembersSchema, rowRemoveActionSchema, getMembersSchema } from './schemas/users'; +import { App } from 'antd'; +import { DepartmentField } from './DepartmentField'; +import { IsOwnerField } from './IsOwnerField'; +import { UserDepartmentsField } from './UserDepartmentsField'; +import { ResourcesContext } from '../ResourcesProvider'; +import { useTableBlockProps } from '../hooks/useTableBlockProps'; + +const AddMembersListProvider: React.FC = (props) => { + const { department } = useContext(ResourcesContext); + return ( + + {props.children} + + ); +}; + +const useAddMembersFilterActionProps = () => { + const collection = useContext(CollectionContext); + const options = useFilterFieldOptions(collection.fields); + const service = useResourceActionContext(); + return useFilterFieldProps({ + options, + params: service.state?.params?.[0] || service.params, + service, + }); +}; + +export const AddMembers: React.FC = () => { + const { department } = useContext(ResourcesContext); + // This resource is the list of members of the current department. + const { + service: { refresh }, + } = useTableBlockContext(); + const selectedKeys = useRef([]); + const api = useAPIClient(); + + const useAddMembersActionProps = () => { + const { department } = useContext(ResourcesContext); + const { setVisible } = useActionContext(); + return { + async onClick() { + const selected = selectedKeys.current; + if (!selected?.length) { + return; + } + await api.resource('departments.members', department.id).add({ + values: selected, + }); + selectedKeys.current = []; + refresh(); + setVisible?.(false); + }, + }; + }; + + const handleSelect = (keys: any[]) => { + selectedKeys.current = keys; + }; + + return ( + + ); +}; + +const useBulkRemoveMembersAction = () => { + const { t } = useDepartmentTranslation(); + const { message } = App.useApp(); + const api = useAPIClient(); + const { + service: { refresh }, + field, + } = useTableBlockContext(); + const { department } = useContext(ResourcesContext); + return { + async run() { + const selected = field?.data?.selectedRowKeys; + if (!selected?.length) { + message.warning(t('Please select members')); + return; + } + await api.resource('departments.members', department.id).remove({ + values: selected, + }); + field.data.selectedRowKeys = []; + refresh(); + }, + }; +}; + +const useRemoveMemberAction = () => { + const api = useAPIClient(); + const { department } = useContext(ResourcesContext); + const { id } = useRecord() as any; + const { + service: { refresh }, + } = useTableBlockContext(); + return { + async run() { + await api.resource('departments.members', department.id).remove({ + values: [id], + }); + refresh(); + }, + }; +}; + +const useShowTotal = () => { + const { + service: { data }, + } = useTableBlockContext(); + const { t } = useDepartmentTranslation(); + return t('Total {{count}} members', { count: data?.meta?.count }); +}; + +const useRefreshActionProps = () => { + const { service } = useTableBlockContext(); + return { + async onClick() { + service?.refresh?.(); + }, + }; +}; + +const RowRemoveAction = () => { + const { department } = useContext(ResourcesContext); + return department ? : null; +}; + +const MemberActions = () => { + const { department } = useContext(ResourcesContext); + return department ? : null; +}; + +const useMemberFilterActionProps = () => { + const collection = useContext(CollectionContext); + const options = useFilterFieldOptions(collection.fields); + const { service } = useTableBlockContext(); + return useFilterFieldProps({ + options, + params: service.state?.params?.[0] || service.params, + service, + }); +}; + +export const Member: React.FC = () => { + const { t } = useDepartmentTranslation(); + const { department, user } = useContext(ResourcesContext); + const { + service: { data, setState }, + } = useTableBlockContext(); + + useEffect(() => { + setState?.({ selectedRowKeys: [] }); + }, [data, setState]); + + const schema = useMemo(() => getMembersSchema(department, user), [department, user]); + + return ( + <> + {!user ?

{t(department?.title || 'All users')}

:

{t('Search results')}

} + + + ); +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/NewDepartment.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/NewDepartment.tsx new file mode 100644 index 0000000000..08f4e78a9f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/NewDepartment.tsx @@ -0,0 +1,97 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import { SchemaComponent } from '@nocobase/client'; +import React from 'react'; +import { useDepartmentTranslation } from '../locale'; + +export const NewDepartment: React.FC = () => { + const { t } = useDepartmentTranslation(); + return ( + + ); +}; diff --git a/packages/plugins/@nocobase/plugin-departments/src/client/departments/UserDepartmentsField.tsx b/packages/plugins/@nocobase/plugin-departments/src/client/departments/UserDepartmentsField.tsx new file mode 100644 index 0000000000..e72869046a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-departments/src/client/departments/UserDepartmentsField.tsx @@ -0,0 +1,273 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This program is offered under a commercial license. + * For more information, see + */ + +import { + ActionContextProvider, + SchemaComponent, + useAPIClient, + useRecord, + useRequest, + useResourceActionContext, + useTableBlockContext, +} from '@nocobase/client'; +import React, { useState } from 'react'; +import { Tag, Button, Dropdown, App } from 'antd'; +import { PlusOutlined, MoreOutlined } from '@ant-design/icons'; +import { Field } from '@formily/core'; +import { useField, useForm } from '@formily/react'; +import { userDepartmentsSchema } from './schemas/users'; +import { getDepartmentTitle } from '../utils'; +import { useDepartmentTranslation } from '../locale'; +import { DepartmentTable } from './DepartmentTable'; + +const useDataSource = (options?: any) => { + const defaultRequest = { + resource: 'departments', + action: 'list', + params: { + appends: ['parent(recursively=true)'], + // filter: { + // parentId: null, + // }, + sort: ['createdAt'], + }, + }; + const service = useRequest(defaultRequest, options); + return { + ...service, + defaultRequest, + }; +}; + +export const UserDepartmentsField: React.FC = () => { + const { modal, message } = App.useApp(); + const { t } = useDepartmentTranslation(); + const [visible, setVisible] = useState(false); + const user = useRecord() as any; + const field = useField(); + const { + service: { refresh }, + } = useTableBlockContext(); + + const formatData = (data: any[]) => { + if (!data?.length) { + return []; + } + + return data.map((department) => ({ + ...department, + isMain: department.departmentsUsers?.isMain, + isOwner: department.departmentsUsers?.isOwner, + title: getDepartmentTitle(department), + })); + }; + + const api = useAPIClient(); + useRequest( + () => + api + .resource(`users.departments`, user.id) + .list({ + appends: ['parent(recursively=true)'], + paginate: false, + }) + .then((res) => { + const data = formatData(res?.data?.data); + field.setValue(data); + }), + { + ready: user.id, + }, + ); + + const useAddDepartments = () => { + const api = useAPIClient(); + const drawerForm = useForm(); + const { departments } = drawerForm.values || {}; + return { + async run() { + await api.resource('users.departments', user.id).add({ + values: departments.map((dept: any) => dept.id), + }); + drawerForm.reset(); + field.setValue([ + ...field.value, + ...departments.map((dept: any, index: number) => ({ + ...dept, + isMain: index === 0 && field.value.length === 0, + title: getDepartmentTitle(dept), + })), + ]); + setVisible(false); + refresh(); + }, + }; + }; + + const removeDepartment = (dept: any) => { + modal.confirm({ + title: t('Remove department'), + content: t('Are you sure you want to remove it?'), + onOk: async () => { + await api.resource('users.departments', user.id).remove({ values: [dept.id] }); + message.success(t('Deleted successfully')); + field.setValue( + field.value + .filter((d: any) => d.id !== dept.id) + .map((d: any, index: number) => ({ + ...d, + isMain: (dept.isMain && index === 0) || d.isMain, + })), + ); + refresh(); + }, + }); + }; + + const setMainDepartment = async (dept: any) => { + await api.resource('users').setMainDepartment({ + values: { + userId: user.id, + departmentId: dept.id, + }, + }); + message.success(t('Set successfully')); + field.setValue( + field.value.map((d: any) => ({ + ...d, + isMain: d.id === dept.id, + })), + ); + refresh(); + }; + + const setOwner = async (dept: any) => { + await api.resource('departments').setOwner({ + values: { + userId: user.id, + departmentId: dept.id, + }, + }); + message.success(t('Set successfully')); + field.setValue( + field.value.map((d: any) => ({ + ...d, + isOwner: d.id === dept.id ? true : d.isOwner, + })), + ); + refresh(); + }; + + const removeOwner = async (dept: any) => { + await api.resource('departments').removeOwner({ + values: { + userId: user.id, + departmentId: dept.id, + }, + }); + message.success(t('Set successfully')); + field.setValue( + field.value.map((d: any) => ({ + ...d, + isOwner: d.id === dept.id ? false : d.isOwner, + })), + ); + refresh(); + }; + + const handleClick = (key: string, dept: any) => { + switch (key) { + case 'setMain': + setMainDepartment(dept); + break; + case 'setOwner': + setOwner(dept); + break; + case 'removeOwner': + removeOwner(dept); + break; + case 'remove': + removeDepartment(dept); + } + }; + + const useDisabled = () => ({ + disabled: (record: any) => { + return field.value.some((dept: any) => dept.id === record.id); + }, + }); + + return ( + + <> + {(field?.value || []).map((dept) => ( + + {dept.title} + {dept.isMain ? ( + + {t('Main')} + + ) : ( + '' + )} + {/* {dept.isOwner ? ( */} + {/* */} + {/* {t('Owner')} */} + {/* */} + {/* ) : ( */} + {/* '' */} + {/* )} */} + handleClick(key, dept), + }} + > +
+ +
+
+
+ ))} +