diff --git a/.github/workflows/manual-e2e.yml b/.github/workflows/manual-e2e.yml new file mode 100644 index 000000000..f558f3661 --- /dev/null +++ b/.github/workflows/manual-e2e.yml @@ -0,0 +1,93 @@ +name: manual-e2e + +on: + workflow_dispatch: + inputs: + branch: + description: 'nocobase/pro-plugins repository branch' + required: true + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.branch }} + cancel-in-progress: true + +jobs: + e2e-test-postgres: + strategy: + matrix: + node_version: ['18'] + runs-on: ubuntu-latest + container: node:${{ matrix.node_version }} + services: + # Label used to access the service container + postgres: + # Docker Hub image + image: postgres:11 + # Provide the password for postgres + env: + POSTGRES_USER: nocobase + POSTGRES_PASSWORD: password + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Checkout pro-plugins - ${{ inputs.branch }} + uses: actions/checkout@v3 + with: + repository: nocobase/pro-plugins + ref: ${{ inputs.branch }} + path: packages/pro-plugins + ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + # - name: Set variables + # run: | + # target_directory="./packages/pro-plugins/@nocobase" + # subdirectories=$(find "$target_directory" -mindepth 1 -maxdepth 1 -type d -exec basename {} \; | tr '\n' ' ') + # trimmed_variable=$(echo "$subdirectories" | xargs) + # packageNames="@nocobase/${trimmed_variable// / @nocobase/}" + # pluginNames="${trimmed_variable//plugin-/}" + # BEFORE_PACK_NOCOBASE="yarn add @nocobase/plugin-notifications @nocobase/plugin-disable-pm-add $packageNames -W" + # APPEND_PRESET_LOCAL_PLUGINS="notifications,disable-pm-add,${pluginNames// /,}" + # echo "var1=$BEFORE_PACK_NOCOBASE" >> $GITHUB_OUTPUT + # echo "var2=$APPEND_PRESET_LOCAL_PLUGINS" >> $GITHUB_OUTPUT + # id: vars + - name: Use Node.js ${{ matrix.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node_version }} + cache: 'yarn' + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v3 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - run: yarn install + - run: ls -a ./node_modules/@nocobase + - name: yarn build + run: yarn build + env: + __E2E__: true + - run: npx playwright install chromium --with-deps + - name: Test with postgres + run: yarn e2e p-test + env: + __E2E__: true + APP_ENV: production + LOGGER_LEVEL: error + DB_DIALECT: postgres + DB_HOST: postgres + DB_PORT: 5432 + DB_USER: nocobase + DB_PASSWORD: password + DB_DATABASE: nocobase + APPEND_PRESET_BUILT_IN_PLUGINS: mock-collections,workflow-response-message,workflow-request-interceptor,workflow-json-query,workflow-approval,telemetry-prometheus,data-source-external-postgres,embed,data-source-external-mysql,workflow-variable,collection-fdw,demo-platform,departments,data-source-external-mariadb + timeout-minutes: 120 diff --git a/CHANGELOG.md b/CHANGELOG.md index e0c468f98..309e25b1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v0.20.0-alpha.14](https://github.com/nocobase/nocobase/compare/v0.20.0-alpha.13...v0.20.0-alpha.14) - 2024-03-18 + +### Merged + +- refactor: url field support text type as availableTypes [`#3751`](https://github.com/nocobase/nocobase/pull/3751) +- chore: system logger with error stack [`#3747`](https://github.com/nocobase/nocobase/pull/3747) +- chore: adapt to plugin-custom-brand [`#3740`](https://github.com/nocobase/nocobase/pull/3740) +- fix(data-vi): tooltip bug of pie chart [`#3745`](https://github.com/nocobase/nocobase/pull/3745) + +### Commits + +- chore(versions): 😊 publish v0.20.0-alpha.14 [`c75d38b`](https://github.com/nocobase/nocobase/commit/c75d38bb05b8d1924d35c1ad1b175f7801d9c3b5) +- fix(field-interface): nested filterable [`3b61968`](https://github.com/nocobase/nocobase/commit/3b619682ee91426a1f091d2043a3aa876446bacc) +- chore: update changelog [`84f0808`](https://github.com/nocobase/nocobase/commit/84f080846ce459e5ba1bb8fa4074057beb40fb07) + +## [v0.20.0-alpha.13](https://github.com/nocobase/nocobase/compare/v0.20.0-alpha.12...v0.20.0-alpha.13) - 2024-03-17 + +### Merged + +- fix: collections undefined inuseCollectionState [`#3741`](https://github.com/nocobase/nocobase/pull/3741) +- test(acl):column action acl e2e [`#3738`](https://github.com/nocobase/nocobase/pull/3738) +- refactor: colDivider style improve for draging overing [`#3709`](https://github.com/nocobase/nocobase/pull/3709) +- fix(data-vi): association fields transform bug [`#3737`](https://github.com/nocobase/nocobase/pull/3737) +- fix(acl): invalid action permission judgment [`#3735`](https://github.com/nocobase/nocobase/pull/3735) + +### Commits + +- chore(versions): 😊 publish v0.20.0-alpha.13 [`db9ff33`](https://github.com/nocobase/nocobase/commit/db9ff337e5e69a5462be8474caea1eaf59ff9342) +- fix: console command [`820352f`](https://github.com/nocobase/nocobase/commit/820352f280abd61ae43c5f29b37db889388ba044) +- chore: update changelog [`6f74230`](https://github.com/nocobase/nocobase/commit/6f7423037a5c7ccb5d442549a22b81453430d971) + ## [v0.20.0-alpha.12](https://github.com/nocobase/nocobase/compare/v0.20.0-alpha.11...v0.20.0-alpha.12) - 2024-03-16 ### Merged diff --git a/lerna.json b/lerna.json index 22efc4d0d..b1ec16cb3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": ["--ignore-engines"], diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index d85cf13ee..53302600c 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/resourcer": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 1d399e62d..860c86720 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "0.20.0-alpha.12", - "@nocobase/database": "0.20.0-alpha.12", - "@nocobase/resourcer": "0.20.0-alpha.12" + "@nocobase/cache": "0.20.0-alpha.14", + "@nocobase/database": "0.20.0-alpha.14", + "@nocobase/resourcer": "0.20.0-alpha.14" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index b49102fa9..cb51d718f 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "0.20.0-alpha.12", - "@nocobase/preset-nocobase": "0.20.0-alpha.12", - "@nocobase/server": "0.20.0-alpha.12" + "@nocobase/database": "0.20.0-alpha.14", + "@nocobase/preset-nocobase": "0.20.0-alpha.14", + "@nocobase/server": "0.20.0-alpha.14" }, "devDependencies": { - "@nocobase/client": "0.20.0-alpha.12" + "@nocobase/client": "0.20.0-alpha.14" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index fd1614733..503af6b7c 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "0.20.0-alpha.12", - "@nocobase/cache": "0.20.0-alpha.12", - "@nocobase/database": "0.20.0-alpha.12", - "@nocobase/resourcer": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/actions": "0.20.0-alpha.14", + "@nocobase/cache": "0.20.0-alpha.14", + "@nocobase/database": "0.20.0-alpha.14", + "@nocobase/resourcer": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 1d2e1d7f2..d4f0634a8 100755 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 965f5b143..a49d73ffa 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index 75409c233..9b441e4ed 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "0.20.0-alpha.12", + "@nocobase/app": "0.20.0-alpha.14", "@types/fs-extra": "^11.0.1", "@umijs/utils": "3.5.20", "chalk": "^4.1.1", @@ -25,7 +25,7 @@ "tsx": "^4.6.2" }, "devDependencies": { - "@nocobase/devtools": "0.20.0-alpha.12" + "@nocobase/devtools": "0.20.0-alpha.14" }, "repository": { "type": "git", diff --git a/packages/core/cli/src/util.js b/packages/core/cli/src/util.js index 93dbbd02c..5764e5f60 100644 --- a/packages/core/cli/src/util.js +++ b/packages/core/cli/src/util.js @@ -348,15 +348,17 @@ exports.initEnv = function initEnv() { } } - if (process.env.APP_PUBLIC_PATH) { + if (!process.env.__env_modified__ && process.env.APP_PUBLIC_PATH) { const publicPath = process.env.APP_PUBLIC_PATH.replace(/\/$/g, ''); const keys = ['API_BASE_PATH', 'WS_PATH', 'PLUGIN_STATICS_PATH']; for (const key of keys) { process.env[key] = publicPath + process.env[key]; } + process.env.__env_modified__ = true; } - if (process.env.APP_SERVER_BASE_URL && !process.env.API_BASE_URL) { + if (!process.env.__env_modified__ && process.env.APP_SERVER_BASE_URL && !process.env.API_BASE_URL) { process.env.API_BASE_URL = process.env.APP_SERVER_BASE_URL + process.env.API_BASE_PATH; + process.env.__env_modified__ = true; } }; diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 4ec8f20ce..23d06a68e 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "Apache-2.0", "main": "lib/index.js", "module": "es/index.mjs", @@ -26,9 +26,9 @@ "@formily/reactive-react": "^2.2.27", "@formily/shared": "^2.2.27", "@formily/validator": "^2.2.27", - "@nocobase/evaluators": "0.20.0-alpha.12", - "@nocobase/sdk": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/evaluators": "0.20.0-alpha.14", + "@nocobase/sdk": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "ahooks": "^3.7.2", "antd": "^5.12.8", "antd-style": "3.4.5", diff --git a/packages/core/client/src/application/PluginManager.ts b/packages/core/client/src/application/PluginManager.ts index 8bd215cf8..08f66cecd 100644 --- a/packages/core/client/src/application/PluginManager.ts +++ b/packages/core/client/src/application/PluginManager.ts @@ -2,7 +2,7 @@ import type { Application } from './Application'; import type { Plugin } from './Plugin'; import { getPlugins } from './utils/remotePlugins'; -export type PluginOptions = { name?: string; config?: T }; +export type PluginOptions = { name?: string; packageName?: string; config?: T }; export type PluginType = typeof Plugin | [typeof Plugin, PluginOptions]; export type PluginData = { name: string; @@ -63,6 +63,11 @@ export class PluginManager { if (opts.name) { this.pluginsAliases[opts.name] = instance; } + + if (opts.packageName) { + this.pluginsAliases[opts.packageName] = instance; + } + await instance.afterAdd(); } diff --git a/packages/core/client/src/collection-manager/interfaces/createdBy.ts b/packages/core/client/src/collection-manager/interfaces/createdBy.ts index dd14ae2de..0f564ef67 100644 --- a/packages/core/client/src/collection-manager/interfaces/createdBy.ts +++ b/packages/core/client/src/collection-manager/interfaces/createdBy.ts @@ -1,7 +1,7 @@ import { ISchema } from '@formily/react'; import { cloneDeep } from 'lodash'; -import { defaultProps, operators, recordPickerViewer } from './properties'; import { CollectionFieldInterface } from '../../data-source/collection-field-interface/CollectionFieldInterface'; +import { defaultProps, recordPickerViewer } from './properties'; export class CreatedByFieldInterface extends CollectionFieldInterface { name = 'createdBy'; @@ -32,28 +32,30 @@ export class CreatedByFieldInterface extends CollectionFieldInterface { ...defaultProps, }; filterable = { - children: [ - { - name: 'id', - title: '{{t("ID")}}', - operators: operators.id, - schema: { - title: '{{t("ID")}}', - type: 'number', - 'x-component': 'InputNumber', - }, - }, - { - name: 'nickname', - title: '{{t("Nickname")}}', - operators: operators.string, - schema: { - title: '{{t("Nickname")}}', - type: 'string', - 'x-component': 'Input', - }, - }, - ], + nested: true, + children: [], + // children: [ + // { + // name: 'id', + // title: '{{t("ID")}}', + // operators: operators.id, + // schema: { + // title: '{{t("ID")}}', + // type: 'number', + // 'x-component': 'InputNumber', + // }, + // }, + // { + // name: 'nickname', + // title: '{{t("Nickname")}}', + // operators: operators.string, + // schema: { + // title: '{{t("Nickname")}}', + // type: 'string', + // 'x-component': 'Input', + // }, + // }, + // ], }; schemaInitialize(schema: ISchema, { block }: { block: string }): void { diff --git a/packages/core/client/src/collection-manager/interfaces/updatedBy.ts b/packages/core/client/src/collection-manager/interfaces/updatedBy.ts index 2b9072478..d19546192 100644 --- a/packages/core/client/src/collection-manager/interfaces/updatedBy.ts +++ b/packages/core/client/src/collection-manager/interfaces/updatedBy.ts @@ -1,7 +1,7 @@ import { ISchema } from '@formily/react'; import { cloneDeep } from 'lodash'; -import { defaultProps, operators, recordPickerViewer } from './properties'; import { CollectionFieldInterface } from '../../data-source/collection-field-interface/CollectionFieldInterface'; +import { defaultProps, recordPickerViewer } from './properties'; export class UpdatedByFieldInterface extends CollectionFieldInterface { name = 'updatedBy'; @@ -32,28 +32,30 @@ export class UpdatedByFieldInterface extends CollectionFieldInterface { ...defaultProps, }; filterable = { - children: [ - { - name: 'id', - title: '{{t("ID")}}', - operators: operators.id, - schema: { - title: '{{t("ID")}}', - type: 'number', - 'x-component': 'InputNumber', - }, - }, - { - name: 'nickname', - title: '{{t("Nickname")}}', - operators: operators.string, - schema: { - title: '{{t("Nickname")}}', - type: 'string', - 'x-component': 'Input', - }, - }, - ], + nested: true, + children: [], + // children: [ + // { + // name: 'id', + // title: '{{t("ID")}}', + // operators: operators.id, + // schema: { + // title: '{{t("ID")}}', + // type: 'number', + // 'x-component': 'InputNumber', + // }, + // }, + // { + // name: 'nickname', + // title: '{{t("Nickname")}}', + // operators: operators.string, + // schema: { + // title: '{{t("Nickname")}}', + // type: 'string', + // 'x-component': 'Input', + // }, + // }, + // ], }; schemaInitialize(schema: ISchema, { block }) { schema['properties'] = { diff --git a/packages/core/client/src/collection-manager/interfaces/url.ts b/packages/core/client/src/collection-manager/interfaces/url.ts index 52d70dc75..1dc17297c 100644 --- a/packages/core/client/src/collection-manager/interfaces/url.ts +++ b/packages/core/client/src/collection-manager/interfaces/url.ts @@ -9,13 +9,13 @@ export class UrlFieldInterface extends CollectionFieldInterface { order = 5; title = '{{t("URL")}}'; default = { - type: 'string', + type: 'text', uiSchema: { type: 'string', 'x-component': 'Input.URL', }, }; - availableTypes = ['string']; + availableTypes = ['string', 'text']; schemaInitialize(schema: ISchema, { block }) {} properties = { ...defaultProps, diff --git a/packages/core/client/src/index.ts b/packages/core/client/src/index.ts index 4461b52c8..8b3ea63d8 100644 --- a/packages/core/client/src/index.ts +++ b/packages/core/client/src/index.ts @@ -38,6 +38,7 @@ export * from './nocobase-buildin-plugin'; export * from './plugin-manager'; export * from './pm'; export * from './powered-by'; +export * from './powered-by-v2'; export * from './record-provider'; export * from './route-switch'; export * from './schema-component'; diff --git a/packages/core/client/src/modules/blocks/data-blocks/details-multi/DetailsBlockInitializer.tsx b/packages/core/client/src/modules/blocks/data-blocks/details-multi/DetailsBlockInitializer.tsx index 361f73521..4c5bb13ca 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/details-multi/DetailsBlockInitializer.tsx +++ b/packages/core/client/src/modules/blocks/data-blocks/details-multi/DetailsBlockInitializer.tsx @@ -14,6 +14,7 @@ export const DetailsBlockInitializer = ({ createBlockSchema, templateWrap, showAssociationFields, + hideChildrenIfSingleCollection, }: { filterCollections: (options: { collection?: Collection; associationField?: CollectionFieldOptions }) => boolean; onlyCurrentDataSource: boolean; @@ -33,6 +34,7 @@ export const DetailsBlockInitializer = ({ }, ) => any; showAssociationFields?: boolean; + hideChildrenIfSingleCollection?: boolean; }) => { const { insert } = useSchemaInitializer(); const { getCollection } = useCollectionManager_deprecated(); @@ -66,6 +68,7 @@ export const DetailsBlockInitializer = ({ filter={filterCollections} templateWrap={templateWrap} showAssociationFields={showAssociationFields} + hideChildrenIfSingleCollection={hideChildrenIfSingleCollection} /> ); }; diff --git a/packages/core/client/src/modules/blocks/data-blocks/form/FormBlockInitializer.tsx b/packages/core/client/src/modules/blocks/data-blocks/form/FormBlockInitializer.tsx index 1e195fe5c..5ea124e2e 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/form/FormBlockInitializer.tsx +++ b/packages/core/client/src/modules/blocks/data-blocks/form/FormBlockInitializer.tsx @@ -13,6 +13,7 @@ export const FormBlockInitializer = ({ componentType = 'FormItem', templateWrap, showAssociationFields, + hideChildrenIfSingleCollection, }: { filterCollections: (options: { collection?: Collection; associationField?: CollectionFieldOptions }) => boolean; onlyCurrentDataSource: boolean; @@ -31,6 +32,7 @@ export const FormBlockInitializer = ({ }, ) => any; showAssociationFields?: boolean; + hideChildrenIfSingleCollection?: boolean; }) => { const { insert } = useSchemaInitializer(); const itemConfig = useSchemaInitializerItem(); @@ -80,6 +82,7 @@ export const FormBlockInitializer = ({ onlyCurrentDataSource={onlyCurrentDataSource} hideSearch={hideSearch} showAssociationFields={showAssociationFields} + hideChildrenIfSingleCollection={hideChildrenIfSingleCollection} /> ); }; diff --git a/packages/core/client/src/modules/blocks/filter-blocks/collapse/FilterCollapseBlockInitializer.tsx b/packages/core/client/src/modules/blocks/filter-blocks/collapse/FilterCollapseBlockInitializer.tsx index d5879ddd5..075f59343 100644 --- a/packages/core/client/src/modules/blocks/filter-blocks/collapse/FilterCollapseBlockInitializer.tsx +++ b/packages/core/client/src/modules/blocks/filter-blocks/collapse/FilterCollapseBlockInitializer.tsx @@ -9,11 +9,11 @@ import { Collection, CollectionFieldOptions } from '../../../../data-source'; export const FilterCollapseBlockInitializer = ({ filterCollections, onlyCurrentDataSource, - showChildren, + hideChildrenIfSingleCollection, }: { filterCollections: (options: { collection?: Collection; associationField?: CollectionFieldOptions }) => boolean; onlyCurrentDataSource: boolean; - showChildren?: boolean; + hideChildrenIfSingleCollection?: boolean; }) => { const itemConfig = useSchemaInitializerItem(); const { insert } = useSchemaInitializer(); @@ -34,7 +34,7 @@ export const FilterCollapseBlockInitializer = ({ insert(schema); }} filter={filterCollections} - showChildren={showChildren} + hideChildrenIfSingleCollection={hideChildrenIfSingleCollection} /> ); }; diff --git a/packages/core/client/src/modules/blocks/filter-blocks/form/FilterFormBlockInitializer.tsx b/packages/core/client/src/modules/blocks/filter-blocks/form/FilterFormBlockInitializer.tsx index 60a966017..1842396f5 100644 --- a/packages/core/client/src/modules/blocks/filter-blocks/form/FilterFormBlockInitializer.tsx +++ b/packages/core/client/src/modules/blocks/filter-blocks/form/FilterFormBlockInitializer.tsx @@ -8,11 +8,11 @@ import { Collection, CollectionFieldOptions } from '../../../../data-source'; export const FilterFormBlockInitializer = ({ filterCollections, onlyCurrentDataSource, - showChildren, + hideChildrenIfSingleCollection, }: { filterCollections: (options: { collection?: Collection; associationField?: CollectionFieldOptions }) => boolean; onlyCurrentDataSource: boolean; - showChildren?: boolean; + hideChildrenIfSingleCollection?: boolean; }) => { const itemConfig = useSchemaInitializerItem(); const { insert } = useSchemaInitializer(); @@ -45,7 +45,7 @@ export const FilterFormBlockInitializer = ({ ); }} filter={filterCollections} - showChildren={showChildren} + hideChildrenIfSingleCollection={hideChildrenIfSingleCollection} /> ); }; diff --git a/packages/core/client/src/powered-by-v2/index.tsx b/packages/core/client/src/powered-by-v2/index.tsx new file mode 100644 index 000000000..2010591b2 --- /dev/null +++ b/packages/core/client/src/powered-by-v2/index.tsx @@ -0,0 +1,25 @@ +import { css } from '@emotion/css'; +import React from 'react'; +import { useToken } from '../style'; + +export const PoweredByV2 = () => { + const { token } = useToken(); + const date = new Date(); + const year = date.getFullYear(); + return ( +
+ ©2023-{year} 上海道有云网络科技有限公司 版权所有 沪ICP备2023024678号 +
+ ); +}; diff --git a/packages/core/client/src/powered-by/index.tsx b/packages/core/client/src/powered-by/index.tsx index 1963d879a..949762aae 100644 --- a/packages/core/client/src/powered-by/index.tsx +++ b/packages/core/client/src/powered-by/index.tsx @@ -1,31 +1,42 @@ -import { css } from '@emotion/css'; +import { css, cx } from '@emotion/css'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useToken } from '../style'; +import { usePlugin } from '../application'; +import { parseHTML } from '@nocobase/utils/client'; +import { useCurrentAppInfo } from '../appInfo/CurrentAppInfoProvider'; export const PoweredBy = () => { const { i18n } = useTranslation(); const { token } = useToken(); + const customBrandPlugin: any = usePlugin('@nocobase/plugin-custom-brand'); + const data = useCurrentAppInfo(); const urls = { 'en-US': 'https://www.nocobase.com', 'zh-CN': 'https://cn.nocobase.com', }; - const date = new Date(); - const year = date.getFullYear(); + const style = css` + text-align: center; + color: ${token.colorTextDescription}; + a { + color: ${token.colorTextDescription}; + &:hover { + color: ${token.colorText}; + } + } + `; + const appVersion = `v${data?.data?.version}`; + return (
- ©2023-{year} 上海道有云网络科技有限公司 版权所有 沪ICP备2023024678号 -
+ className={cx(style, 'nb-brand')} + dangerouslySetInnerHTML={{ + __html: parseHTML( + customBrandPlugin?.options?.options?.brand || + `Powered by NocoBase`, + { appVersion }, + ), + }} + > ); }; 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 ed84c9d13..61979bdbc 100644 --- a/packages/core/client/src/schema-component/antd/action/Action.tsx +++ b/packages/core/client/src/schema-component/antd/action/Action.tsx @@ -41,7 +41,7 @@ export const Action: ComposedAction = observer( title, onClick, style, - openSize, + openSize: os, disabled: propsDisabled, actionCallback, /** 如果为 true 则说明该按钮是树表格的 Add child 按钮 */ @@ -62,6 +62,8 @@ export const Action: ComposedAction = observer( const record = useRecord(); const designerProps = fieldSchema['x-designer-props']; const openMode = fieldSchema?.['x-component-props']?.['openMode']; + const openSize = fieldSchema?.['x-component-props']?.['openSize']; + const disabled = form.disabled || field.disabled || field.data?.disabled || propsDisabled; const linkageRules = fieldSchema?.['x-linkage-rules'] || []; const { designable } = useDesignable(); @@ -150,7 +152,6 @@ export const Action: ComposedAction = observer( ); }; - const result = ( { @@ -291,7 +291,7 @@ export const DataBlockInitializer = (props: DataBlockInitializerProps) => { onlyCurrentDataSource, hideSearch, showAssociationFields, - showChildren, + hideChildrenIfSingleCollection, filterDataSource, } = props; const { insert, setVisible } = useSchemaInitializer(); @@ -327,7 +327,7 @@ export const DataBlockInitializer = (props: DataBlockInitializerProps) => { const compiledMenuItems = useMemo(() => { let children = searchedChildren.filter((item) => item.key !== 'search' && item.key !== 'empty'); const hasAssociationField = children.some((item) => item.associationField); - if (!showChildren && !hasAssociationField && children.length === 1) { + if (hideChildrenIfSingleCollection && !hasAssociationField && children.length === 1) { // 只有一项可选时,直接展开 children = children[0].children; } else { diff --git a/packages/core/client/src/user/Help.tsx b/packages/core/client/src/user/Help.tsx index 45b55a126..893060805 100644 --- a/packages/core/client/src/user/Help.tsx +++ b/packages/core/client/src/user/Help.tsx @@ -1,10 +1,12 @@ import { QuestionCircleOutlined } from '@ant-design/icons'; import { css } from '@emotion/css'; -import { Dropdown, Menu } from 'antd'; +import { Dropdown, Menu, Popover } from 'antd'; import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { DropdownVisibleContext, useToken } from '..'; +import { DropdownVisibleContext, usePlugin, useToken } from '..'; import { useCurrentAppInfo } from '../appInfo/CurrentAppInfoProvider'; +import { observer } from '@formily/reactive-react'; +import { parseHTML } from '@nocobase/utils/client'; /** * @note If you want to change here, Note the Setting block on the mobile side @@ -66,48 +68,74 @@ const SettingsMenu: React.FC<{ return ; }; -export const Help = () => { - const [visible, setVisible] = useState(false); - const { token } = useToken(); +const helpClassName = css` + display: inline-block; + vertical-align: top; + width: 46px; + height: 46px; + &:hover { + background: rgba(255, 255, 255, 0.1) !important; + } +`; - return ( -
- - { - setVisible(visible); - }} - dropdownRender={() => { - return ; - }} - > - { + const [visible, setVisible] = useState(false); + const { token } = useToken(); + const customBrandPlugin: any = usePlugin('@nocobase/plugin-custom-brand'); + const data = useCurrentAppInfo(); + + const icon = ( + + + + ); + + if (customBrandPlugin?.options?.options?.about) { + const appVersion = `v${data?.data?.version}`; + const content = parseHTML(customBrandPlugin.options.options.about, { appVersion }); + + return ( +
+
} > - -
-
-
-
- ); -}; + {icon} + + + ); + } + + return ( +
+ + { + setVisible(visible); + }} + dropdownRender={() => { + return ; + }} + > + {icon} + + +
+ ); + }, + { displayName: 'Help' }, +); diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 0b11f25a6..5b8ddf1d6 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "src/index.js", "license": "Apache-2.0", "dependencies": { diff --git a/packages/core/data-source-manager/package.json b/packages/core/data-source-manager/package.json index 49141aff9..20099feb6 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "0.20.0-alpha.12", - "@nocobase/cache": "0.20.0-alpha.12", - "@nocobase/database": "0.20.0-alpha.12", - "@nocobase/resourcer": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/actions": "0.20.0-alpha.14", + "@nocobase/cache": "0.20.0-alpha.14", + "@nocobase/database": "0.20.0-alpha.14", + "@nocobase/resourcer": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/data-source-manager/src/data-source.ts b/packages/core/data-source-manager/src/data-source.ts index d0c09d8c9..f673f95d3 100644 --- a/packages/core/data-source-manager/src/data-source.ts +++ b/packages/core/data-source-manager/src/data-source.ts @@ -1,10 +1,10 @@ import { ACL } from '@nocobase/acl'; import { getNameByParams, parseRequest } from '@nocobase/resourcer'; -import compose from 'koa-compose'; -import { ResourceManager } from './resource-manager'; -import { loadDefaultActions } from './load-default-actions'; -import { ICollectionManager } from './types'; import EventEmitter from 'events'; +import compose from 'koa-compose'; +import { loadDefaultActions } from './load-default-actions'; +import { ResourceManager } from './resource-manager'; +import { ICollectionManager } from './types'; export type DataSourceOptions = any; @@ -30,7 +30,7 @@ export abstract class DataSource extends EventEmitter { this.acl = this.createACL(); this.resourceManager = this.createResourceManager({ - prefix: '/api', + prefix: process.env.API_BASE_PATH, ...options.resourceManager, }); diff --git a/packages/core/database/package.json b/packages/core/database/package.json index e9218bee2..02e3890d0 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "Apache-2.0", "dependencies": { - "@nocobase/logger": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/logger": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "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 d8233e44f..366eb3b5e 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "Apache-2.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "0.20.0-alpha.12", - "@nocobase/client": "0.20.0-alpha.12", - "@nocobase/test": "0.20.0-alpha.12", + "@nocobase/build": "0.20.0-alpha.14", + "@nocobase/client": "0.20.0-alpha.14", + "@nocobase/test": "0.20.0-alpha.14", "@types/koa": "^2.13.4", "@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 d5d9e111c..8eaed2cc1 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "Apache-2.0", "dependencies": { "@formulajs/formulajs": "4.2.0", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/utils": "0.20.0-alpha.14", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 8862e750a..7fe0db5a5 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "nocobase logging library", "license": "Apache-2.0", "main": "./lib/index.js", diff --git a/packages/core/logger/src/system-logger.ts b/packages/core/logger/src/system-logger.ts index bc7fa2887..76ed33d2f 100644 --- a/packages/core/logger/src/system-logger.ts +++ b/packages/core/logger/src/system-logger.ts @@ -49,11 +49,12 @@ class SystemLoggerTransport extends Transport { } log(info: any, callback: any) { - const { level, message, reqId, app, [SPLAT]: args } = info; + const { level, message, reqId, app, stack, [SPLAT]: args } = info; const logger = level === 'error' && this.errorLogger ? this.errorLogger : this.logger; const { module, submodule, method, ...meta } = args?.[0] || {}; logger.log({ level, + stack, message, meta, module: module || info['module'] || '', diff --git a/packages/core/resourcer/package.json b/packages/core/resourcer/package.json index 22514787f..b2396c032 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "Apache-2.0", "dependencies": { - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/utils": "0.20.0-alpha.14", "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 2f7e60ac6..aeaea7556 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "Apache-2.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 d324031f3..91d564795 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "Apache-2.0", @@ -10,18 +10,18 @@ "@koa/cors": "^3.1.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "0.20.0-alpha.12", - "@nocobase/actions": "0.20.0-alpha.12", - "@nocobase/auth": "0.20.0-alpha.12", - "@nocobase/cache": "0.20.0-alpha.12", - "@nocobase/data-source-manager": "0.20.0-alpha.12", - "@nocobase/database": "0.20.0-alpha.12", - "@nocobase/evaluators": "0.20.0-alpha.12", - "@nocobase/logger": "0.20.0-alpha.12", - "@nocobase/resourcer": "0.20.0-alpha.12", - "@nocobase/sdk": "0.20.0-alpha.12", - "@nocobase/telemetry": "0.20.0-alpha.12", - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/acl": "0.20.0-alpha.14", + "@nocobase/actions": "0.20.0-alpha.14", + "@nocobase/auth": "0.20.0-alpha.14", + "@nocobase/cache": "0.20.0-alpha.14", + "@nocobase/data-source-manager": "0.20.0-alpha.14", + "@nocobase/database": "0.20.0-alpha.14", + "@nocobase/evaluators": "0.20.0-alpha.14", + "@nocobase/logger": "0.20.0-alpha.14", + "@nocobase/resourcer": "0.20.0-alpha.14", + "@nocobase/sdk": "0.20.0-alpha.14", + "@nocobase/telemetry": "0.20.0-alpha.14", + "@nocobase/utils": "0.20.0-alpha.14", "@types/decompress": "4.2.4", "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", diff --git a/packages/core/server/src/commands/pm.ts b/packages/core/server/src/commands/pm.ts index 740c4ad4b..394d09fab 100644 --- a/packages/core/server/src/commands/pm.ts +++ b/packages/core/server/src/commands/pm.ts @@ -23,7 +23,7 @@ export default (app: Application) => { try { await app.pm.addViaCLI(name, _.cloneDeep(options)); } catch (error) { - throw new PluginCommandError(`Failed to add plugin: ${error.message}`); + throw new PluginCommandError(`Failed to add plugin`, { cause: error }); } }); @@ -42,7 +42,7 @@ export default (app: Application) => { packageName, }); } catch (error) { - throw new PluginCommandError(`Failed to update plugin: ${error.message}`); + throw new PluginCommandError(`Failed to update plugin`, { cause: error }); } }); @@ -54,7 +54,7 @@ export default (app: Application) => { try { await app.pm.enable(plugins); } catch (error) { - throw new PluginCommandError(`Failed to enable plugin: ${error.message}`); + throw new PluginCommandError(`Failed to enable plugin`, { cause: error }); } }); @@ -66,7 +66,7 @@ export default (app: Application) => { try { await app.pm.disable(plugins); } catch (error) { - throw new PluginCommandError(`Failed to disable plugin: ${error.message}`); + throw new PluginCommandError(`Failed to disable plugin`, { cause: error }); } }); diff --git a/packages/core/server/src/gateway/index.ts b/packages/core/server/src/gateway/index.ts index 71ff9dd21..ad76b81ec 100644 --- a/packages/core/server/src/gateway/index.ts +++ b/packages/core/server/src/gateway/index.ts @@ -334,7 +334,7 @@ export class Gateway extends EventEmitter { from: 'node', }) .then(async () => { - if (!(await mainApp.isStarted())) { + if (!isStart && !(await mainApp.isStarted())) { await mainApp.stop({ logging: false }); } }) @@ -342,7 +342,7 @@ export class Gateway extends EventEmitter { if (e.code !== 'commander.helpDisplayed') { mainApp.log.error(e); } - if (!(await mainApp.isStarted())) { + if (!isStart && !(await mainApp.isStarted())) { await mainApp.stop({ logging: false }); } }); diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index f7c484477..d43103f31 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "nocobase telemetry library", "license": "Apache-2.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "0.20.0-alpha.12", + "@nocobase/utils": "0.20.0-alpha.14", "@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 755879a39..ce6bb78fc 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "lib/index.js", "module": "./src/index.ts", "types": "./lib/index.d.ts", @@ -40,7 +40,7 @@ }, "dependencies": { "@faker-js/faker": "8.1.0", - "@nocobase/server": "0.20.0-alpha.12", + "@nocobase/server": "0.20.0-alpha.14", "@playwright/test": "^1.42.1", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 541f53cc0..d92d2f6f1 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "Apache-2.0", diff --git a/packages/core/utils/src/client.ts b/packages/core/utils/src/client.ts index 08502cb20..2cb72b915 100644 --- a/packages/core/utils/src/client.ts +++ b/packages/core/utils/src/client.ts @@ -18,3 +18,4 @@ export * from './isPortalInBody'; export * from './uid'; export * from './url'; export { dayjs, lodash }; +export * from './parseHTML'; diff --git a/packages/core/utils/src/parseHTML.ts b/packages/core/utils/src/parseHTML.ts new file mode 100644 index 000000000..53c100ffe --- /dev/null +++ b/packages/core/utils/src/parseHTML.ts @@ -0,0 +1,11 @@ +/** + * parseHTML('{{version}}', { version: '1.0.0' }) -> '1.0.0' + * @param html + * @param variables + * @returns + */ +export function parseHTML(html: string, variables: Record) { + return html.replace(/\{\{(\w+)\}\}/g, function (match, key) { + return typeof variables[key] !== 'undefined' ? variables[key] : match; + }); +} diff --git a/packages/plugins/@nocobase/plugin-acl/package.json b/packages/plugins/@nocobase/plugin-acl/package.json index ac869ef14..901365e48 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/acl", diff --git a/packages/plugins/@nocobase/plugin-acl/src/server/server.ts b/packages/plugins/@nocobase/plugin-acl/src/server/server.ts index bdb13b93c..98d33fa19 100644 --- a/packages/plugins/@nocobase/plugin-acl/src/server/server.ts +++ b/packages/plugins/@nocobase/plugin-acl/src/server/server.ts @@ -10,10 +10,10 @@ import { checkAction } from './actions/role-check'; import { roleCollectionsResource } from './actions/role-collections'; import { setDefaultRole } from './actions/user-setDefaultRole'; import { setCurrentRole } from './middlewares/setCurrentRole'; +import { createWithACLMetaMiddleware } from './middlewares/with-acl-meta'; import { RoleModel } from './model/RoleModel'; import { RoleResourceActionModel } from './model/RoleResourceActionModel'; import { RoleResourceModel } from './model/RoleResourceModel'; -import { createWithACLMetaMiddleware } from './middlewares/with-acl-meta'; export interface AssociationFieldAction { associationActions: string[]; @@ -179,6 +179,7 @@ export class PluginACL extends Plugin { 'roles.resources:*', 'uiSchemas:getProperties', 'roles.menuUiSchemas:*', + 'roles.users:*', ], }); diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json b/packages/plugins/@nocobase/plugin-action-bulk-edit/package.json index 471354d6e..7308b704d 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 7096076df..2c8d553f7 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-duplicate/package.json b/packages/plugins/@nocobase/plugin-action-duplicate/package.json index 7ecbebfcd..ae466348e 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-print/package.json b/packages/plugins/@nocobase/plugin-action-print/package.json index 169ad56fe..7228ed051 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-api-doc/package.json b/packages/plugins/@nocobase/plugin-api-doc/package.json index 2ee252cd4..7e987d6c5 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 c580db25c..9b1ad1d07 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/api-keys", diff --git a/packages/plugins/@nocobase/plugin-audit-logs/package.json b/packages/plugins/@nocobase/plugin-audit-logs/package.json index 78afa5d97..5f9e0ae3e 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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/package.json b/packages/plugins/@nocobase/plugin-auth/package.json index d4c5cd988..fbe555537 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-auth/src/client/pages/AuthLayout.tsx b/packages/plugins/@nocobase/plugin-auth/src/client/pages/AuthLayout.tsx index d887ca402..096af3fd5 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/client/pages/AuthLayout.tsx +++ b/packages/plugins/@nocobase/plugin-auth/src/client/pages/AuthLayout.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/css'; import React from 'react'; import { Outlet } from 'react-router-dom'; -import { useSystemSettings, PoweredBy, useRequest, useAPIClient } from '@nocobase/client'; +import { useSystemSettings, PoweredByV2 as PoweredBy, useRequest, useAPIClient } from '@nocobase/client'; import { AuthenticatorsContext } from '../authenticator'; export function AuthLayout(props: any) { diff --git a/packages/plugins/@nocobase/plugin-backup-restore/package.json b/packages/plugins/@nocobase/plugin-backup-restore/package.json index f0c88adb8..b703acf9f 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/backup-restore", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 81ff77e9f..49b018f76 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-cas/package.json b/packages/plugins/@nocobase/plugin-cas/package.json index 9bd573a5b..d8080330d 100644 --- a/packages/plugins/@nocobase/plugin-cas/package.json +++ b/packages/plugins/@nocobase/plugin-cas/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:CAS", "description": "CAS authentication.", "description.zh-CN": "通过 CAS 协议认证身份。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-cas", diff --git a/packages/plugins/@nocobase/plugin-charts/package.json b/packages/plugins/@nocobase/plugin-charts/package.json index 791d71f23..c5df2c17b 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-china-region/package.json b/packages/plugins/@nocobase/plugin-china-region/package.json index bb95475f4..aa1019b0f 100644 --- a/packages/plugins/@nocobase/plugin-china-region/package.json +++ b/packages/plugins/@nocobase/plugin-china-region/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-china-region", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "displayName": "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-client/package.json b/packages/plugins/@nocobase/plugin-client/package.json index 112b4f2da..388f5ae3b 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "./dist/server/index.js", "license": "AGPL-3.0", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-collection-manager/package.json b/packages/plugins/@nocobase/plugin-collection-manager/package.json index 6c2f689f9..df7335ec1 100644 --- a/packages/plugins/@nocobase/plugin-collection-manager/package.json +++ b/packages/plugins/@nocobase/plugin-collection-manager/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数据源:主数据库", "description": "NocoBase main database, supports relational databases such as MySQL, PostgreSQL, SQLite and so on.", "description.zh-CN": "NocoBase 主数据库,支持 MySQL、PostgreSQL、SQLite 等关系型数据库。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-custom-request/package.json b/packages/plugins/@nocobase/plugin-custom-request/package.json index 168686f62..8aa459099 100644 --- a/packages/plugins/@nocobase/plugin-custom-request/package.json +++ b/packages/plugins/@nocobase/plugin-custom-request/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-custom-request", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-data-source-manager/package.json b/packages/plugins/@nocobase/plugin-data-source-manager/package.json index f3fb5c949..98dc169fc 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 ed2e66964..2e0564f09 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-data-visualization/src/client/chart/g2plot/pie.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/client/chart/g2plot/pie.ts index dc75e17b3..588a33f10 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/chart/g2plot/pie.ts +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/chart/g2plot/pie.ts @@ -1,6 +1,6 @@ import { G2PlotChart } from './g2plot'; import { Pie as G2Pie } from '@ant-design/plots'; -import { ChartType } from '../chart'; +import { ChartType, RenderProps } from '../chart'; export class Pie extends G2PlotChart { constructor() { @@ -30,4 +30,19 @@ export class Pie extends G2PlotChart { }, }; }; + + getProps({ data, general, advanced, fieldProps }: RenderProps) { + const props = super.getProps({ data, general, advanced, fieldProps }); + return { + ...props, + tooltip: (d, index: number, data, column: any) => { + const field = column.y0.field; + const props = fieldProps[field]; + const name = props?.label || field; + const transformer = props?.transformer; + const value = column.y0.value[index]; + return { name, value: transformer ? transformer(value) : value }; + }, + }; + } } diff --git a/packages/plugins/@nocobase/plugin-disable-pm-add/package.json b/packages/plugins/@nocobase/plugin-disable-pm-add/package.json index 2499f42d9..c422c51b9 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "./dist/server/index.js", "peerDependencies": { "@nocobase/client": "0.x", diff --git a/packages/plugins/@nocobase/plugin-error-handler/package.json b/packages/plugins/@nocobase/plugin-error-handler/package.json index f6ce6c633..8c71dd3c8 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-excel-formula-field/package.json b/packages/plugins/@nocobase/plugin-excel-formula-field/package.json index 3f179b758..2c9697df9 100644 --- a/packages/plugins/@nocobase/plugin-excel-formula-field/package.json +++ b/packages/plugins/@nocobase/plugin-excel-formula-field/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-excel-formula-field", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-export/package.json b/packages/plugins/@nocobase/plugin-export/package.json index fa15d35bd..ce22a3c01 100644 --- a/packages/plugins/@nocobase/plugin-export/package.json +++ b/packages/plugins/@nocobase/plugin-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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-export", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index be95308e1..1fb81551a 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-formula-field/package.json b/packages/plugins/@nocobase/plugin-formula-field/package.json index 3123fa785..9173b5d0d 100644 --- a/packages/plugins/@nocobase/plugin-formula-field/package.json +++ b/packages/plugins/@nocobase/plugin-formula-field/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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-formula", diff --git a/packages/plugins/@nocobase/plugin-gantt/package.json b/packages/plugins/@nocobase/plugin-gantt/package.json index 33844b761..78837c6ef 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 52fff5680..03ed8dea3 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-iframe-block/package.json b/packages/plugins/@nocobase/plugin-iframe-block/package.json index 1a95223b2..115192dad 100644 --- a/packages/plugins/@nocobase/plugin-iframe-block/package.json +++ b/packages/plugins/@nocobase/plugin-iframe-block/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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/block-iframe", diff --git a/packages/plugins/@nocobase/plugin-import/package.json b/packages/plugins/@nocobase/plugin-import/package.json index e4b9e2abf..193a2a0cc 100644 --- a/packages/plugins/@nocobase/plugin-import/package.json +++ b/packages/plugins/@nocobase/plugin-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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/action-import", diff --git a/packages/plugins/@nocobase/plugin-kanban/package.json b/packages/plugins/@nocobase/plugin-kanban/package.json index b8b34e0a8..989f26f80 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-management/package.json b/packages/plugins/@nocobase/plugin-localization-management/package.json index 614a8ae74..14aeff38d 100644 --- a/packages/plugins/@nocobase/plugin-localization-management/package.json +++ b/packages/plugins/@nocobase/plugin-localization-management/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/plugin-localization-management", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 7cfde440c..a1db455ba 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 2647fa684..95598cc50 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-math-formula-field/package.json b/packages/plugins/@nocobase/plugin-math-formula-field/package.json index 89bf23c6d..142a39875 100644 --- a/packages/plugins/@nocobase/plugin-math-formula-field/package.json +++ b/packages/plugins/@nocobase/plugin-math-formula-field/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "数学公式字段", "description": "A powerful mathematical formula field plugin designed to provide flexible mathematical and formula calculation capabilities for databases or data management systems. It seamlessly integrates with various database systems such as MySQL, PostgreSQL, and offers an intuitive user interface for defining and executing mathematical formula fields.", "description.zh-CN": "一个功能强大的数学公式字段插件,旨在为数据库或数据管理系统提供灵活的数学计算和公式计算功能。它可以与各种数据库系统(如MySQL、PostgreSQL)无缝集成,并提供直观的用户界面来定义和执行数学公式字段。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-mobile-client/package.json b/packages/plugins/@nocobase/plugin-mobile-client/package.json index 98befc8b1..cb4e5a649 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-mock-collections/package.json b/packages/plugins/@nocobase/plugin-mock-collections/package.json index 19482d5f6..58e5d27da 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 8d8aa7524..1c3501d02 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 36b029e52..00dfc64ae 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "./dist/server/index.js", "devDependencies": { "@formily/react": "2.x", diff --git a/packages/plugins/@nocobase/plugin-notifications/package.json b/packages/plugins/@nocobase/plugin-notifications/package.json index 510116f01..27ecbbf05 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-oidc/package.json b/packages/plugins/@nocobase/plugin-oidc/package.json index 500c11c5f..a35b9c73d 100644 --- a/packages/plugins/@nocobase/plugin-oidc/package.json +++ b/packages/plugins/@nocobase/plugin-oidc/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:OIDC", "description": "OIDC (OpenID Connect) authentication.", "description.zh-CN": "通过 OIDC (OpenID Connect) 协议认证身份。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-oidc", diff --git a/packages/plugins/@nocobase/plugin-saml/package.json b/packages/plugins/@nocobase/plugin-saml/package.json index 54aea1ca4..39ddb3fd2 100644 --- a/packages/plugins/@nocobase/plugin-saml/package.json +++ b/packages/plugins/@nocobase/plugin-saml/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:SAML 2.0", "description": "SAML 2.0 authentication.", "description.zh-CN": "通过 SAML 2.0 协议认证身份。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/auth-saml", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index d88917930..2746508c5 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "main": "./dist/server/index.js", "displayName": "Hello", "displayName.zh-CN": "Hello", diff --git a/packages/plugins/@nocobase/plugin-sequence-field/package.json b/packages/plugins/@nocobase/plugin-sequence-field/package.json index f26440933..dfb179dc8 100644 --- a/packages/plugins/@nocobase/plugin-sequence-field/package.json +++ b/packages/plugins/@nocobase/plugin-sequence-field/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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-sms-auth/package.json b/packages/plugins/@nocobase/plugin-sms-auth/package.json index 7a3c6f5c3..766aa4cd2 100644 --- a/packages/plugins/@nocobase/plugin-sms-auth/package.json +++ b/packages/plugins/@nocobase/plugin-sms-auth/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "认证:短信", "description": "SMS authentication.", "description.zh-CN": "通过短信验证码认证身份。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-snapshot-field/package.json b/packages/plugins/@nocobase/plugin-snapshot-field/package.json index 044b97547..70eeb5775 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 ae0e74b01..7d2acf875 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 2367838fb..1d203ec70 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-routes-storage/package.json b/packages/plugins/@nocobase/plugin-ui-routes-storage/package.json index 6315ac5d8..1ea50b1eb 100644 --- a/packages/plugins/@nocobase/plugin-ui-routes-storage/package.json +++ b/packages/plugins/@nocobase/plugin-ui-routes-storage/package.json @@ -4,7 +4,7 @@ "displayName.zh-CN": "路由管理", "description": "manage the routes of nocobase", "description.zh-CN": "管理页面路由。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./dist/server/index.js", "devDependencies": { diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json b/packages/plugins/@nocobase/plugin-ui-schema-storage/package.json index 039d0f099..0dc856b97 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index 0fc6c483d..29820721c 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 dcf371fd8..2244dfb1e 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 34382c145..34afa5183 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": "Bind action buttons to trigger workflow events when clicked.", "description.zh-CN": "可对数据操作按钮绑定,在点击后触发对应的工作流事件。", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 7d45c34ac..863b14613 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 7681cac67..bcd0286f4 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 bb41e8f01..154153ac2 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 857ecbd3f..80422aa30 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-manual/package.json b/packages/plugins/@nocobase/plugin-workflow-manual/package.json index 9cad7b4da..2143afb72 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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-parallel/package.json b/packages/plugins/@nocobase/plugin-workflow-parallel/package.json index 077f0d06e..36929071f 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 12183feed..9e685d7f4 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 cbf9f5d28..8991725ae 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 9d590f0b6..679f97005 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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 d431fbe14..341cd4ac1 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": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "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": "0.20.0-alpha.12" + "@nocobase/plugin-workflow-test": "0.20.0-alpha.14" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 9ba782c4a..50aed5af1 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,66 +1,66 @@ { "name": "@nocobase/preset-nocobase", - "version": "0.20.0-alpha.12", + "version": "0.20.0-alpha.14", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "0.20.0-alpha.12", - "@nocobase/plugin-action-bulk-edit": "0.20.0-alpha.12", - "@nocobase/plugin-action-bulk-update": "0.20.0-alpha.12", - "@nocobase/plugin-action-duplicate": "0.20.0-alpha.12", - "@nocobase/plugin-action-print": "0.20.0-alpha.12", - "@nocobase/plugin-api-doc": "0.20.0-alpha.12", - "@nocobase/plugin-api-keys": "0.20.0-alpha.12", - "@nocobase/plugin-audit-logs": "0.20.0-alpha.12", - "@nocobase/plugin-auth": "0.20.0-alpha.12", - "@nocobase/plugin-backup-restore": "0.20.0-alpha.12", - "@nocobase/plugin-calendar": "0.20.0-alpha.12", - "@nocobase/plugin-cas": "0.20.0-alpha.12", - "@nocobase/plugin-charts": "0.20.0-alpha.12", - "@nocobase/plugin-china-region": "0.20.0-alpha.12", - "@nocobase/plugin-client": "0.20.0-alpha.12", - "@nocobase/plugin-collection-manager": "0.20.0-alpha.12", - "@nocobase/plugin-custom-request": "0.20.0-alpha.12", - "@nocobase/plugin-data-source-manager": "0.20.0-alpha.12", - "@nocobase/plugin-data-visualization": "0.20.0-alpha.12", - "@nocobase/plugin-error-handler": "0.20.0-alpha.12", - "@nocobase/plugin-export": "0.20.0-alpha.12", - "@nocobase/plugin-file-manager": "0.20.0-alpha.12", - "@nocobase/plugin-formula-field": "0.20.0-alpha.12", - "@nocobase/plugin-gantt": "0.20.0-alpha.12", - "@nocobase/plugin-graph-collection-manager": "0.20.0-alpha.12", - "@nocobase/plugin-iframe-block": "0.20.0-alpha.12", - "@nocobase/plugin-import": "0.20.0-alpha.12", - "@nocobase/plugin-kanban": "0.20.0-alpha.12", - "@nocobase/plugin-localization-management": "0.20.0-alpha.12", - "@nocobase/plugin-logger": "0.20.0-alpha.12", - "@nocobase/plugin-map": "0.20.0-alpha.12", - "@nocobase/plugin-mobile-client": "0.20.0-alpha.12", - "@nocobase/plugin-mock-collections": "0.20.0-alpha.12", - "@nocobase/plugin-multi-app-manager": "0.20.0-alpha.12", - "@nocobase/plugin-multi-app-share-collection": "0.20.0-alpha.12", - "@nocobase/plugin-oidc": "0.20.0-alpha.12", - "@nocobase/plugin-saml": "0.20.0-alpha.12", - "@nocobase/plugin-sequence-field": "0.20.0-alpha.12", - "@nocobase/plugin-sms-auth": "0.20.0-alpha.12", - "@nocobase/plugin-snapshot-field": "0.20.0-alpha.12", - "@nocobase/plugin-system-settings": "0.20.0-alpha.12", - "@nocobase/plugin-theme-editor": "0.20.0-alpha.12", - "@nocobase/plugin-ui-schema-storage": "0.20.0-alpha.12", - "@nocobase/plugin-users": "0.20.0-alpha.12", - "@nocobase/plugin-verification": "0.20.0-alpha.12", - "@nocobase/plugin-workflow": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-action-trigger": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-aggregate": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-delay": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-dynamic-calculation": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-loop": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-manual": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-parallel": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-request": "0.20.0-alpha.12", - "@nocobase/plugin-workflow-sql": "0.20.0-alpha.12", - "@nocobase/server": "0.20.0-alpha.12", + "@nocobase/plugin-acl": "0.20.0-alpha.14", + "@nocobase/plugin-action-bulk-edit": "0.20.0-alpha.14", + "@nocobase/plugin-action-bulk-update": "0.20.0-alpha.14", + "@nocobase/plugin-action-duplicate": "0.20.0-alpha.14", + "@nocobase/plugin-action-print": "0.20.0-alpha.14", + "@nocobase/plugin-api-doc": "0.20.0-alpha.14", + "@nocobase/plugin-api-keys": "0.20.0-alpha.14", + "@nocobase/plugin-audit-logs": "0.20.0-alpha.14", + "@nocobase/plugin-auth": "0.20.0-alpha.14", + "@nocobase/plugin-backup-restore": "0.20.0-alpha.14", + "@nocobase/plugin-calendar": "0.20.0-alpha.14", + "@nocobase/plugin-cas": "0.20.0-alpha.14", + "@nocobase/plugin-charts": "0.20.0-alpha.14", + "@nocobase/plugin-china-region": "0.20.0-alpha.14", + "@nocobase/plugin-client": "0.20.0-alpha.14", + "@nocobase/plugin-collection-manager": "0.20.0-alpha.14", + "@nocobase/plugin-custom-request": "0.20.0-alpha.14", + "@nocobase/plugin-data-source-manager": "0.20.0-alpha.14", + "@nocobase/plugin-data-visualization": "0.20.0-alpha.14", + "@nocobase/plugin-error-handler": "0.20.0-alpha.14", + "@nocobase/plugin-export": "0.20.0-alpha.14", + "@nocobase/plugin-file-manager": "0.20.0-alpha.14", + "@nocobase/plugin-formula-field": "0.20.0-alpha.14", + "@nocobase/plugin-gantt": "0.20.0-alpha.14", + "@nocobase/plugin-graph-collection-manager": "0.20.0-alpha.14", + "@nocobase/plugin-iframe-block": "0.20.0-alpha.14", + "@nocobase/plugin-import": "0.20.0-alpha.14", + "@nocobase/plugin-kanban": "0.20.0-alpha.14", + "@nocobase/plugin-localization-management": "0.20.0-alpha.14", + "@nocobase/plugin-logger": "0.20.0-alpha.14", + "@nocobase/plugin-map": "0.20.0-alpha.14", + "@nocobase/plugin-mobile-client": "0.20.0-alpha.14", + "@nocobase/plugin-mock-collections": "0.20.0-alpha.14", + "@nocobase/plugin-multi-app-manager": "0.20.0-alpha.14", + "@nocobase/plugin-multi-app-share-collection": "0.20.0-alpha.14", + "@nocobase/plugin-oidc": "0.20.0-alpha.14", + "@nocobase/plugin-saml": "0.20.0-alpha.14", + "@nocobase/plugin-sequence-field": "0.20.0-alpha.14", + "@nocobase/plugin-sms-auth": "0.20.0-alpha.14", + "@nocobase/plugin-snapshot-field": "0.20.0-alpha.14", + "@nocobase/plugin-system-settings": "0.20.0-alpha.14", + "@nocobase/plugin-theme-editor": "0.20.0-alpha.14", + "@nocobase/plugin-ui-schema-storage": "0.20.0-alpha.14", + "@nocobase/plugin-users": "0.20.0-alpha.14", + "@nocobase/plugin-verification": "0.20.0-alpha.14", + "@nocobase/plugin-workflow": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-action-trigger": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-aggregate": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-delay": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-dynamic-calculation": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-loop": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-manual": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-parallel": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-request": "0.20.0-alpha.14", + "@nocobase/plugin-workflow-sql": "0.20.0-alpha.14", + "@nocobase/server": "0.20.0-alpha.14", "cronstrue": "^2.11.0" }, "repository": {