From 1a85719657fa0e1985839792880b07e6ec4a4780 Mon Sep 17 00:00:00 2001 From: chenos Date: Mon, 26 Aug 2024 17:49:32 +0800 Subject: [PATCH 01/17] fix(tree): missing collection schema (#5131) --- .../migrations/20240802141435-collection-tree.ts | 6 ++++-- .../plugin-collection-tree/src/server/plugin.ts | 15 ++++++++++----- 2 files changed, 14 insertions(+), 7 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 e3e233b430..371e22af9d 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 @@ -7,10 +7,10 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Migration } from '@nocobase/server'; import { Model, SyncOptions } from '@nocobase/database'; -import { Transaction } from 'sequelize'; +import { Migration } from '@nocobase/server'; import lodash from 'lodash'; +import { Transaction } from 'sequelize'; export default class extends Migration { on = 'afterLoad'; // 'beforeLoad' or 'afterLoad' @@ -30,6 +30,7 @@ export default class extends Migration { const name = `main_${treeCollection.name}_path`; this.app.db.collection({ name, + schema: treeCollection.options.schema, autoGenId: false, timestamps: false, fields: [ @@ -48,6 +49,7 @@ export default class extends Migration { await this.app.db.getCollection(name).sync({ transaction } as SyncOptions); this.app.db.collection({ name: treeCollection.name, + schema: treeCollection.options.schema, autoGenId: false, timestamps: false, fields: [ diff --git a/packages/plugins/@nocobase/plugin-collection-tree/src/server/plugin.ts b/packages/plugins/@nocobase/plugin-collection-tree/src/server/plugin.ts index 93faf0f44d..7fce8610e4 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/src/server/plugin.ts +++ b/packages/plugins/@nocobase/plugin-collection-tree/src/server/plugin.ts @@ -7,11 +7,11 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Plugin } from '@nocobase/server'; -import { Collection, Model, SyncOptions, DestroyOptions } from '@nocobase/database'; import { DataSource, SequelizeCollectionManager } from '@nocobase/data-source-manager'; -import { Transaction } from 'sequelize'; +import { Collection, DestroyOptions, Model, SyncOptions } from '@nocobase/database'; +import { Plugin } from '@nocobase/server'; import lodash from 'lodash'; +import { Transaction } from 'sequelize'; import { TreeCollection } from './tree-collection'; const getFilterTargetKey = (model: Model) => { @@ -40,7 +40,11 @@ class PluginCollectionTreeServer extends Plugin { const parentForeignKey = collection.treeParentField?.foreignKey || 'parentId'; //always define tree path collection - this.defineTreePathCollection(name); + const options = {}; + if (collection.options.schema) { + options['schema'] = collection.options.schema; + } + this.defineTreePathCollection(name, options); //afterSync collectionManager.db.on(`${collection.name}.afterSync`, async ({ transaction }) => { @@ -134,7 +138,7 @@ class PluginCollectionTreeServer extends Plugin { }); } - private async defineTreePathCollection(name: string) { + private async defineTreePathCollection(name: string, options: { schema?: string }) { this.db.collection({ name, autoGenId: false, @@ -149,6 +153,7 @@ class PluginCollectionTreeServer extends Plugin { fields: [{ name: 'path', length: 191 }], }, ], + ...options, }); } From c4b819528a15f3f7294ce4027ea64342742881f3 Mon Sep 17 00:00:00 2001 From: chenos Date: Mon, 26 Aug 2024 18:42:59 +0800 Subject: [PATCH 02/17] fix: missing schema --- .../20240802141435-collection-tree.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 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 371e22af9d..480ed9651c 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 @@ -28,9 +28,8 @@ export default class extends Migration { for (const treeCollection of treeCollections) { const name = `main_${treeCollection.name}_path`; - this.app.db.collection({ + const collectionOptions = { name, - schema: treeCollection.options.schema, autoGenId: false, timestamps: false, fields: [ @@ -43,20 +42,27 @@ export default class extends Migration { fields: [{ name: 'path', length: 191 }], }, ], - }); + }; + if (treeCollection.options.schema) { + collectionOptions['schema'] = treeCollection.options.schema; + } + 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); - this.app.db.collection({ + const opts = { name: treeCollection.name, - schema: treeCollection.options.schema, autoGenId: false, timestamps: false, fields: [ { type: 'integer', name: 'id' }, { type: 'integer', name: 'parentId' }, ], - }); + }; + if (treeCollection.options.schema) { + opts['schema'] = treeCollection.options.schema; + } + this.app.db.collection(opts); const chunkSize = 1000; await this.app.db.getRepository(treeCollection.name).chunk({ chunkSize: chunkSize, From 97096f8a6afe04762af3c8a264533143661ef5e2 Mon Sep 17 00:00:00 2001 From: chenos Date: Mon, 26 Aug 2024 19:18:05 +0800 Subject: [PATCH 03/17] fix: test env file --- .env.test.example | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.env.test.example b/.env.test.example index 1b79c4c9eb..67cbb7de29 100644 --- a/.env.test.example +++ b/.env.test.example @@ -19,6 +19,8 @@ DB_STORAGE=storage/db/nocobase-test.sqlite # DB_USER=nocobase # DB_PASSWORD=nocobase # DB_LOGGING=on +TZ=UTC +ENCRYPTION_FIELD_KEY="2DKJ)P+u(9bP5eF#MTdhy8ZJdfa(xT)K" ################# CACHE ################# # default is memory cache, when develop mode,code's change will be clear memory cache, so can use 'cache-manager-fs-hash' From c069fbebd467e418eacfa403a98f7c9e0751c4d6 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Mon, 26 Aug 2024 23:40:48 +0800 Subject: [PATCH 04/17] feat(publish): publish pro repos (#5129) * feat(publish): publish pro repos * feat: use app token * chore: add trigger branch * chore: ref main * chore: add owner * chore: change owner * chore: set repos * chore: get repo name * chore: update * chore: update * chore: update * chore: update * chore: update branch * fix: bug * fix: bug * fix: private key * feat: encrypt github app token * fix: bug * fix: token * fix: output * fix: base64 * fix: error * fix: token cut * fix: base64 * fix: repo name * chore: print token * chore: skip token revoke * fix: clone * fix: clone * fix: job * chore: shell bash * fix: ignore * fix: ignore * fix: invalid * fix: branch * fix: bug * fix: jq * fix: jq * fix: jq * fix: remove quotes * fix: directory * fix: directory * chore: update * chore: update * fix: invalid * fix: branch --- .github/workflows/get-nocobase-app-token.yml | 40 +++++ .github/workflows/manual-release.yml | 177 +++++++++++-------- .github/workflows/release-next.yml | 20 ++- .github/workflows/release.yml | 20 ++- release.sh | 7 + 5 files changed, 192 insertions(+), 72 deletions(-) create mode 100644 .github/workflows/get-nocobase-app-token.yml diff --git a/.github/workflows/get-nocobase-app-token.yml b/.github/workflows/get-nocobase-app-token.yml new file mode 100644 index 0000000000..abfc2b1b2c --- /dev/null +++ b/.github/workflows/get-nocobase-app-token.yml @@ -0,0 +1,40 @@ +name: Get nocobase app github token + +on: + workflow_call: + outputs: + token: + value: ${{ jobs.get-app-token.outputs.token }} + user-id: + value: ${{ jobs.get-app-token.outputs.user-id }} + app-slug: + value: ${{ jobs.get-app-token.outputs.app-slug }} + +jobs: + get-app-token: + runs-on: ubuntu-latest + outputs: + token: ${{ steps.encrypt-token.outputs.token }} + app-slug: ${{ steps.app-token.outputs.app-slug }} + user-id: ${{ steps.get-user-id.outputs.user-id }} + steps: + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.NOCOBASE_APP_ID }} + private-key: ${{ secrets.NOCOBASE_APP_PRIVATE_KEY }} + repositories: nocobase,pro-plugins,${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ',') }} + skip-token-revoke: true + - name: Encrypt token + id: encrypt-token + shell: bash + run: | + APP_TOKEN=${{ steps.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$APP_TOKEN" | openssl enc -aes-256-cbc -pbkdf2 -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + ENCRYPTED_SECRET=$(echo -n "$BINARY_ENCRYPTED_SECRET" | base64 -w 0); + echo "token=$ENCRYPTED_SECRET" >> $GITHUB_OUTPUT + - name: Get GitHub App User ID + id: get-user-id + run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT" + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml index 2c5378b214..f7565d4ce1 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/manual-release.yml @@ -12,14 +12,62 @@ on: type: boolean jobs: - push-commit: + app-token: + uses: nocobase/nocobase/.github/workflows/get-nocobase-app-token.yml@main + secrets: inherit + pre-merge-main-into-next: + runs-on: ubuntu-latest + needs: app-token + strategy: + matrix: + repo: + - 'nocobase' + - 'pro-plugins' + - ${{ fromJSON(vars.PRO_PLUGIN_REPOS) }} + steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT + - name: Checkout + uses: actions/checkout@v4 + with: + # ref: 'main' + repository: nocobase/${{ matrix.repo }} + fetch-depth: 0 + token: ${{ steps.app-token.outputs.token }} + - name: main -> next (nocobase/${{ matrix.repo }}) + run: | + git config --global user.name '${{ needs.app-token.outputs.app-slug }}[bot]' + git config --global user.email '${{ needs.app-token.outputs.user-id }}+${{ needs.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' + git checkout main + git pull origin main + git checkout next + git merge main + git push origin next --tags --atomic + update-version: + needs: + - app-token + - pre-merge-main-into-next runs-on: ubuntu-latest steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v4 with: repository: nocobase/nocobase - ssh-key: ${{ secrets.NOCOBASE_DEPLOY_KEY }} + token: ${{ steps.app-token.outputs.token }} persist-credentials: true fetch-depth: 0 - name: Checkout pro-plugins @@ -28,43 +76,15 @@ jobs: repository: nocobase/pro-plugins path: packages/pro-plugins fetch-depth: 0 - ssh-key: ${{ secrets.PRO_PLUGINS_DEPLOY_KEY }} + token: ${{ steps.app-token.outputs.token }} persist-credentials: true - - name: main -> next(nocobase) + - name: Clone pro repos + shell: bash run: | - git config --global user.email "actions@github.com" - git config --global user.name "GitHub Actions Bot" - git checkout main - git pull origin main - git checkout next - git merge main - git push origin next - - name: main -> next(pro-plugins) - run: | - cd ./packages/pro-plugins - git checkout main - git pull origin main - git checkout next - git merge main - git push origin next - - name: push pro plugins(next) - continue-on-error: true - uses: ad-m/github-push-action@master - with: - ssh: true - branch: next - directory: packages/pro-plugins - repository: nocobase/pro-plugins - tags: true - atomic: true - - name: push nocobase(next) - uses: ad-m/github-push-action@master - with: - branch: next - ssh: true - repository: nocobase/nocobase - tags: true - atomic: true + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + git clone -b main https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo + done - name: Set Node.js 18 uses: actions/setup-node@v3 with: @@ -72,17 +92,33 @@ jobs: - name: Install Lerna run: npm install -g lerna@4 auto-changelog@2 - name: Run release.sh + shell: bash run: | cd ./packages/pro-plugins git checkout main + git rm -rf --cached . + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + echo "@nocobase/$repo" >> .git/info/exclude + done + echo "$(<.git/info/exclude )" cd ./../.. git checkout main - git config --global user.email "actions@github.com" - git config --global user.name "GitHub Actions Bot" - echo "packages/pro-plugins/" >> .git/info/exclude + git config --global user.name '${{ needs.app-token.outputs.app-slug }}[bot]' + git config --global user.email '${{ needs.app-token.outputs.user-id }}+${{ needs.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' + echo "packages/pro-plugins" >> .git/info/exclude bash release.sh $IS_FEAT env: IS_FEAT: ${{ inputs.is_feat && '--is-feat' || '' }} + PRO_PLUGIN_REPOS: ${{ vars.PRO_PLUGIN_REPOS }} + - name: push pro repos + run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + cd ./packages/pro-plugins/@nocobase/$repo + git push origin main --atomic --tags + cd ../../../../ + done - name: push pro plugins continue-on-error: true uses: ad-m/github-push-action@master @@ -101,38 +137,39 @@ jobs: repository: nocobase/nocobase tags: true atomic: true - - name: main -> next + post-merge-main-into-next: + needs: + - app-token + - pre-merge-main-into-next + - update-version + runs-on: ubuntu-latest + strategy: + matrix: + repo: + - 'nocobase' + - 'pro-plugins' + - ${{ fromJSON(vars.PRO_PLUGIN_REPOS) }} + steps: + - name: Decrypt app token + id: app-token + shell: bash run: | - git config --global user.email "actions@github.com" - git config --global user.name "GitHub Actions Bot" + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT + - name: Checkout + uses: actions/checkout@v4 + with: + repository: nocobase/${{ matrix.repo }} + fetch-depth: 0 + token: ${{ steps.app-token.outputs.token }} + - name: main -> next (nocobase/${{ matrix.repo }}) + run: | + git config --global user.name '${{ needs.app-token.outputs.app-slug }}[bot]' + git config --global user.email '${{ needs.app-token.outputs.user-id }}+${{ needs.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' git checkout main git pull origin main git checkout next git merge -X ours main --no-edit - git push origin next - - name: main -> next - run: | - cd ./packages/pro-plugins - git checkout main - git pull origin main - git checkout next - git merge -X ours main --no-edit - git push origin next - - name: push pro plugins - continue-on-error: true - uses: ad-m/github-push-action@master - with: - ssh: true - branch: next - directory: packages/pro-plugins - repository: nocobase/pro-plugins - tags: true - atomic: true - - name: push nocobase - uses: ad-m/github-push-action@master - with: - branch: next - ssh: true - repository: nocobase/nocobase - tags: true - atomic: true \ No newline at end of file + git push origin next --tags --atomic diff --git a/.github/workflows/release-next.yml b/.github/workflows/release-next.yml index 1638cf45fd..0040206bf9 100644 --- a/.github/workflows/release-next.yml +++ b/.github/workflows/release-next.yml @@ -8,6 +8,9 @@ on: workflow_dispatch: jobs: + app-token: + uses: nocobase/nocobase/.github/workflows/get-nocobase-app-token.yml@main + secrets: inherit publish-npm: runs-on: ubuntu-latest container: node:18 @@ -81,13 +84,28 @@ jobs: git commit -m "chore(versions): test publish packages xxx" cat lerna.json yarn release:force --no-verify-access --no-git-reset --registry https://registry.npmjs.org/ --dist-tag=next + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout pro-plugins uses: actions/checkout@v3 with: repository: nocobase/pro-plugins path: packages/pro-plugins ref: next - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} + - name: Clone pro repos + shell: bash + run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + git clone -b next https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo + done - name: Build Pro plugins continue-on-error: true run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9c102d6a28..f9fc38012e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,9 @@ on: - 'v*' jobs: + app-token: + uses: nocobase/nocobase/.github/workflows/get-nocobase-app-token.yml@main + secrets: inherit publish-npm: runs-on: ubuntu-latest container: node:18 @@ -55,12 +58,27 @@ jobs: yarn config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} npm whoami yarn release:force --no-verify-access --no-git-reset --registry https://registry.npmjs.org/ + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout pro-plugins uses: actions/checkout@v3 with: repository: nocobase/pro-plugins path: packages/pro-plugins - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} + - name: Clone pro repos + shell: bash + run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + git clone -b main https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo + done - name: Build Pro plugins continue-on-error: true run: | diff --git a/release.sh b/release.sh index e8e6753047..323c82a3a0 100755 --- a/release.sh +++ b/release.sh @@ -12,6 +12,13 @@ fi lerna version $new_version --preid alpha --force-publish=* --no-git-tag-version -y +echo $PRO_PLUGIN_REPOS | jq -r '.[]' | while read i; do + cd ./packages/pro-plugins/@nocobase/$i + git add . + git commit -m "chore(versions): 😊 publish v$(jq -r '.version' ../../../../lerna.json)" + git tag v$(jq -r '.version' ../../../../lerna.json) + cd ../../../../ +done cd ./packages/pro-plugins git add . git commit -m "chore(versions): 😊 publish v$(jq -r '.version' ../../lerna.json)" From 90967c77de9f2a1dfb279de85398248d5d50f7a2 Mon Sep 17 00:00:00 2001 From: xilesun <2013xile@gmail.com> Date: Mon, 26 Aug 2024 23:48:14 +0800 Subject: [PATCH 05/17] fix(release): token --- .github/workflows/manual-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml index f7565d4ce1..7fb5ef504c 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/manual-release.yml @@ -123,7 +123,7 @@ jobs: continue-on-error: true uses: ad-m/github-push-action@master with: - ssh: true + github_token: ${{ steps.app-token.outputs.token }} branch: main directory: packages/pro-plugins repository: nocobase/pro-plugins @@ -133,7 +133,7 @@ jobs: uses: ad-m/github-push-action@master with: branch: main - ssh: true + github_token: ${{ steps.app-token.outputs.token }} repository: nocobase/nocobase tags: true atomic: true From 4aff92ad3bf338a8f798b3cc7460b32316f83d65 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:07:23 +0000 Subject: [PATCH 06/17] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publish?= =?UTF-8?q?=20v1.3.1-beta?= 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/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 26 ++-- 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 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/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-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 +- .../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-notifications/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 +- .../@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-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 | 122 +++++++++--------- 85 files changed, 191 insertions(+), 191 deletions(-) diff --git a/lerna.json b/lerna.json index 8d8b32d303..e2d2dc2eb3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.0-beta", + "version": "1.3.1-beta", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": [ diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index ce5d6db72e..ab7e6e84c5 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/resourcer": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index a3f405be51..1155a1e414 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.3.0-beta", - "@nocobase/database": "1.3.0-beta", - "@nocobase/resourcer": "1.3.0-beta" + "@nocobase/cache": "1.3.1-beta", + "@nocobase/database": "1.3.1-beta", + "@nocobase/resourcer": "1.3.1-beta" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index f6ddf9ada2..f9433d0c9a 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.3.0-beta", - "@nocobase/preset-nocobase": "1.3.0-beta", - "@nocobase/server": "1.3.0-beta" + "@nocobase/database": "1.3.1-beta", + "@nocobase/preset-nocobase": "1.3.1-beta", + "@nocobase/server": "1.3.1-beta" }, "devDependencies": { - "@nocobase/client": "1.3.0-beta" + "@nocobase/client": "1.3.1-beta" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 8063b98093..864ab02579 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.0-beta", - "@nocobase/cache": "1.3.0-beta", - "@nocobase/database": "1.3.0-beta", - "@nocobase/resourcer": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/actions": "1.3.1-beta", + "@nocobase/cache": "1.3.1-beta", + "@nocobase/database": "1.3.1-beta", + "@nocobase/resourcer": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 9c6a762278..e238497276 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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 2da0bc0c70..a9e29ebbd4 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index 83a18015af..bd8e820fb6 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.3.0-beta", + "@nocobase/app": "1.3.1-beta", "@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": "1.3.0-beta" + "@nocobase/devtools": "1.3.1-beta" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 3571fb3b52..30f7968e03 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "license": "AGPL-3.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": "1.3.0-beta", - "@nocobase/sdk": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/evaluators": "1.3.1-beta", + "@nocobase/sdk": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "ahooks": "^3.7.2", "antd": "^5.12.8", "antd-style": "3.4.5", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 08daa82746..5962c2a8be 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.3.0-beta", + "version": "1.3.1-beta", "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 bf06b066ba..846ea557c0 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.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.0-beta", - "@nocobase/cache": "1.3.0-beta", - "@nocobase/database": "1.3.0-beta", - "@nocobase/resourcer": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/actions": "1.3.1-beta", + "@nocobase/cache": "1.3.1-beta", + "@nocobase/database": "1.3.1-beta", + "@nocobase/resourcer": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index b2453e1e64..621dc23ec0 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/logger": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "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 d2ba648143..7e6afb1da4 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.3.0-beta", - "@nocobase/client": "1.3.0-beta", - "@nocobase/test": "1.3.0-beta", + "@nocobase/build": "1.3.1-beta", + "@nocobase/client": "1.3.1-beta", + "@nocobase/test": "1.3.1-beta", "@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 ec97d62e54..3968123a4b 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.2.0", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/utils": "1.3.1-beta", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 44840788a3..a9705ff8b6 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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 c004e2a3f7..6163473439 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.3.0-beta", + "@nocobase/utils": "1.3.1-beta", "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 34fe30c7de..2678540513 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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 9391393204..c00d8c0dc7 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,18 +10,18 @@ "@koa/cors": "^3.1.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.3.0-beta", - "@nocobase/actions": "1.3.0-beta", - "@nocobase/auth": "1.3.0-beta", - "@nocobase/cache": "1.3.0-beta", - "@nocobase/data-source-manager": "1.3.0-beta", - "@nocobase/database": "1.3.0-beta", - "@nocobase/evaluators": "1.3.0-beta", - "@nocobase/logger": "1.3.0-beta", - "@nocobase/resourcer": "1.3.0-beta", - "@nocobase/sdk": "1.3.0-beta", - "@nocobase/telemetry": "1.3.0-beta", - "@nocobase/utils": "1.3.0-beta", + "@nocobase/acl": "1.3.1-beta", + "@nocobase/actions": "1.3.1-beta", + "@nocobase/auth": "1.3.1-beta", + "@nocobase/cache": "1.3.1-beta", + "@nocobase/data-source-manager": "1.3.1-beta", + "@nocobase/database": "1.3.1-beta", + "@nocobase/evaluators": "1.3.1-beta", + "@nocobase/logger": "1.3.1-beta", + "@nocobase/resourcer": "1.3.1-beta", + "@nocobase/sdk": "1.3.1-beta", + "@nocobase/telemetry": "1.3.1-beta", + "@nocobase/utils": "1.3.1-beta", "@types/decompress": "4.2.4", "@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 25e206e5fb..acfc3ba98c 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.3.0-beta", + "@nocobase/utils": "1.3.1-beta", "@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 6956382a5c..3f2127248e 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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.3.0-beta", + "@nocobase/server": "1.3.1-beta", "@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 e173441215..b6e0aa552b 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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 f7c3cff5a9..77bb5d80ed 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.3.0-beta", + "version": "1.3.1-beta", "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 069aaf4365..3c32eeb911 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.3.0-beta", + "version": "1.3.1-beta", "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 562f1b20d2..b1e02bd7b2 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.3.0-beta", + "version": "1.3.1-beta", "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 cd7678a7a4..d6eab99018 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.3.0-beta", + "version": "1.3.1-beta", "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 489754b2b9..d98dc022c6 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.3.0-beta", + "version": "1.3.1-beta", "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 e2f6a8c3f2..48bcc3de01 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.3.0-beta", + "version": "1.3.1-beta", "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 0af786a5ef..f2090a5a94 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.3.0-beta", + "version": "1.3.1-beta", "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 adfab22555..3811d283f2 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.3.0-beta", + "version": "1.3.1-beta", "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 06a1f0ed2f..338ad0dc60 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.3.0-beta", + "version": "1.3.1-beta", "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 e59e79c99b..aff543e5d1 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.3.0-beta", + "version": "1.3.1-beta", "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 b7ec07bb87..87e0573477 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.3.0-beta", + "version": "1.3.1-beta", "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 04cf3202b0..a849b3e11b 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.3.0-beta", + "version": "1.3.1-beta", "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 ac931a000d..20f961eaa9 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.3.0-beta", + "version": "1.3.1-beta", "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 c42222b806..d768307d36 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.3.0-beta", + "version": "1.3.1-beta", "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 b9e2a0e5dc..4a23000003 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.3.0-beta", + "version": "1.3.1-beta", "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 05921ae1aa..ac7a05163b 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.3.0-beta", + "version": "1.3.1-beta", "displayName": "Block: Workbench", "displayName.zh-CN": "区块:工作台", "description": "Add buttons for actions, links, etc. in the workbench block to quickly initiate actions and jump pages.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 4315dec8d9..43686b5432 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.3.0-beta", + "version": "1.3.1-beta", "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 8784601af4..b32497cd76 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.3.0-beta", + "version": "1.3.1-beta", "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 b1d0bbbfd8..c9b0b6ab5f 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.3.0-beta", + "version": "1.3.1-beta", "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 8cf1f91ea9..2b8e7622f3 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.3.0-beta", + "version": "1.3.1-beta", "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 d948bc0a82..ac1577fa44 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.3.0-beta", + "version": "1.3.1-beta", "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 8f52ebb40d..b8305ba1c8 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 MySQL, PostgreSQL, SQLite and so on.", "description.zh-CN": "NocoBase 主数据库,支持 MySQL、PostgreSQL、SQLite 等关系型数据库。", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "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 3271228b7c..855407002c 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.3.0-beta", + "version": "1.3.1-beta", "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 be41e3a3e5..699309230b 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.3.0-beta", + "version": "1.3.1-beta", "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 9aee732a06..de4dc9acbe 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.3.0-beta", + "version": "1.3.1-beta", "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 b2d5899b2f..5badcf38ec 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.3.0-beta", + "version": "1.3.1-beta", "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 ddf8a8d452..ac102ead0d 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.3.0-beta", + "version": "1.3.1-beta", "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-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 4e46461758..7e50c8eeb1 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.3.0-beta", + "version": "1.3.1-beta", "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 503be69a1f..a76753782f 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.3.0-beta", + "version": "1.3.1-beta", "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 ad8085cf95..2ac3fb77ce 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.3.0-beta", + "version": "1.3.1-beta", "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 3581932e08..c2b7eb4b98 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.3.0-beta", + "version": "1.3.1-beta", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 439627ffc0..66b500bcee 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.3.0-beta", + "version": "1.3.1-beta", "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 b50dced1b0..1407eb4674 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.3.0-beta", + "version": "1.3.1-beta", "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 20763f7d44..aa9ebfc51b 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.3.0-beta", + "version": "1.3.1-beta", "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 717e59d152..84bfff1942 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.3.0-beta", + "version": "1.3.1-beta", "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 76f9659aa9..aa4fc9cf58 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.3.0-beta", + "version": "1.3.1-beta", "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 23646ffbdf..90a0ed89a3 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.3.0-beta", + "version": "1.3.1-beta", "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 13a33fb533..e20c13c281 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.3.0-beta", + "version": "1.3.1-beta", "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 82bf4429cc..f9baeb0b65 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.3.0-beta", + "version": "1.3.1-beta", "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 4bffed2079..7a52cc738c 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.3.0-beta", + "version": "1.3.1-beta", "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 493a31c798..720ef8459f 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.3.0-beta", + "version": "1.3.1-beta", "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 8c50eab224..6e2ea46bf2 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.3.0-beta", + "version": "1.3.1-beta", "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 03b6b8ae96..6f70885128 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.3.0-beta", + "version": "1.3.1-beta", "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 690f5f902d..758f6b3bd1 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.3.0-beta", + "version": "1.3.1-beta", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index a63809cde4..0b13795328 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.3.0-beta", + "version": "1.3.1-beta", "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 d2d424aa18..bd922431d0 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.3.0-beta", + "version": "1.3.1-beta", "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 a506eaa86f..7c7014c09a 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.3.0-beta", + "version": "1.3.1-beta", "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 54a87780e0..f2900fe80d 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.3.0-beta", + "version": "1.3.1-beta", "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 733208a370..308ad5d39b 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.3.0-beta", + "version": "1.3.1-beta", "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 3913a7f1ff..ff6a4dfe48 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.3.0-beta", + "version": "1.3.1-beta", "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 eb5070dac3..d22bbd8086 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.3.0-beta", + "version": "1.3.1-beta", "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 a7749f1931..14bcd2d99a 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.3.0-beta", + "version": "1.3.1-beta", "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 aeca81a7a5..83accba0af 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.3.0-beta", + "version": "1.3.1-beta", "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 badefe6cfa..af6bf4f98c 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.3.0-beta", + "version": "1.3.1-beta", "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 9d55a2d574..35b2649fa5 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.3.0-beta", + "version": "1.3.1-beta", "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 aa92a382f2..fd3b64aa1c 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.3.0-beta", + "version": "1.3.1-beta", "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 c6506f4f2b..1830fcdd5b 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.3.0-beta", + "version": "1.3.1-beta", "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 bb30aeee74..ca91d77be1 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.3.0-beta", + "version": "1.3.1-beta", "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 9cb3827a0d..3c2a3d3237 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.3.0-beta", + "version": "1.3.1-beta", "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 3ea639dfaa..7d1b302a03 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.3.0-beta", + "version": "1.3.1-beta", "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 d7d7541c2c..acef69d304 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.3.0-beta", + "version": "1.3.1-beta", "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 63e681c3a9..b0486d7ba7 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.3.0-beta", + "version": "1.3.1-beta", "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 1100c4cec3..ee675ff182 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.3.0-beta", + "version": "1.3.1-beta", "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.3.0-beta" + "@nocobase/plugin-workflow-test": "1.3.1-beta" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index fd4bb872b7..e05b59cbed 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,70 +1,70 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.3.0-beta", + "version": "1.3.1-beta", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.3.0-beta", - "@nocobase/plugin-action-bulk-edit": "1.3.0-beta", - "@nocobase/plugin-action-bulk-update": "1.3.0-beta", - "@nocobase/plugin-action-custom-request": "1.3.0-beta", - "@nocobase/plugin-action-duplicate": "1.3.0-beta", - "@nocobase/plugin-action-export": "1.3.0-beta", - "@nocobase/plugin-action-import": "1.3.0-beta", - "@nocobase/plugin-action-print": "1.3.0-beta", - "@nocobase/plugin-api-doc": "1.3.0-beta", - "@nocobase/plugin-api-keys": "1.3.0-beta", - "@nocobase/plugin-audit-logs": "1.3.0-beta", - "@nocobase/plugin-auth": "1.3.0-beta", - "@nocobase/plugin-auth-sms": "1.3.0-beta", - "@nocobase/plugin-backup-restore": "1.3.0-beta", - "@nocobase/plugin-block-iframe": "1.3.0-beta", - "@nocobase/plugin-block-workbench": "1.3.0-beta", - "@nocobase/plugin-calendar": "1.3.0-beta", - "@nocobase/plugin-charts": "1.3.0-beta", - "@nocobase/plugin-client": "1.3.0-beta", - "@nocobase/plugin-collection-sql": "1.3.0-beta", - "@nocobase/plugin-collection-tree": "1.3.0-beta", - "@nocobase/plugin-data-source-main": "1.3.0-beta", - "@nocobase/plugin-data-source-manager": "1.3.0-beta", - "@nocobase/plugin-data-visualization": "1.3.0-beta", - "@nocobase/plugin-error-handler": "1.3.0-beta", - "@nocobase/plugin-field-china-region": "1.3.0-beta", - "@nocobase/plugin-field-formula": "1.3.0-beta", - "@nocobase/plugin-field-m2m-array": "1.3.0-beta", - "@nocobase/plugin-field-markdown-vditor": "1.3.0-beta", - "@nocobase/plugin-field-sequence": "1.3.0-beta", - "@nocobase/plugin-file-manager": "1.3.0-beta", - "@nocobase/plugin-gantt": "1.3.0-beta", - "@nocobase/plugin-graph-collection-manager": "1.3.0-beta", - "@nocobase/plugin-kanban": "1.3.0-beta", - "@nocobase/plugin-localization": "1.3.0-beta", - "@nocobase/plugin-logger": "1.3.0-beta", - "@nocobase/plugin-map": "1.3.0-beta", - "@nocobase/plugin-mobile": "1.3.0-beta", - "@nocobase/plugin-mobile-client": "1.3.0-beta", - "@nocobase/plugin-mock-collections": "1.3.0-beta", - "@nocobase/plugin-multi-app-manager": "1.3.0-beta", - "@nocobase/plugin-multi-app-share-collection": "1.3.0-beta", - "@nocobase/plugin-snapshot-field": "1.3.0-beta", - "@nocobase/plugin-system-settings": "1.3.0-beta", - "@nocobase/plugin-theme-editor": "1.3.0-beta", - "@nocobase/plugin-ui-schema-storage": "1.3.0-beta", - "@nocobase/plugin-users": "1.3.0-beta", - "@nocobase/plugin-verification": "1.3.0-beta", - "@nocobase/plugin-workflow": "1.3.0-beta", - "@nocobase/plugin-workflow-action-trigger": "1.3.0-beta", - "@nocobase/plugin-workflow-aggregate": "1.3.0-beta", - "@nocobase/plugin-workflow-delay": "1.3.0-beta", - "@nocobase/plugin-workflow-dynamic-calculation": "1.3.0-beta", - "@nocobase/plugin-workflow-loop": "1.3.0-beta", - "@nocobase/plugin-workflow-mailer": "1.3.0-beta", - "@nocobase/plugin-workflow-manual": "1.3.0-beta", - "@nocobase/plugin-workflow-parallel": "1.3.0-beta", - "@nocobase/plugin-workflow-request": "1.3.0-beta", - "@nocobase/plugin-workflow-sql": "1.3.0-beta", - "@nocobase/server": "1.3.0-beta", + "@nocobase/plugin-acl": "1.3.1-beta", + "@nocobase/plugin-action-bulk-edit": "1.3.1-beta", + "@nocobase/plugin-action-bulk-update": "1.3.1-beta", + "@nocobase/plugin-action-custom-request": "1.3.1-beta", + "@nocobase/plugin-action-duplicate": "1.3.1-beta", + "@nocobase/plugin-action-export": "1.3.1-beta", + "@nocobase/plugin-action-import": "1.3.1-beta", + "@nocobase/plugin-action-print": "1.3.1-beta", + "@nocobase/plugin-api-doc": "1.3.1-beta", + "@nocobase/plugin-api-keys": "1.3.1-beta", + "@nocobase/plugin-audit-logs": "1.3.1-beta", + "@nocobase/plugin-auth": "1.3.1-beta", + "@nocobase/plugin-auth-sms": "1.3.1-beta", + "@nocobase/plugin-backup-restore": "1.3.1-beta", + "@nocobase/plugin-block-iframe": "1.3.1-beta", + "@nocobase/plugin-block-workbench": "1.3.1-beta", + "@nocobase/plugin-calendar": "1.3.1-beta", + "@nocobase/plugin-charts": "1.3.1-beta", + "@nocobase/plugin-client": "1.3.1-beta", + "@nocobase/plugin-collection-sql": "1.3.1-beta", + "@nocobase/plugin-collection-tree": "1.3.1-beta", + "@nocobase/plugin-data-source-main": "1.3.1-beta", + "@nocobase/plugin-data-source-manager": "1.3.1-beta", + "@nocobase/plugin-data-visualization": "1.3.1-beta", + "@nocobase/plugin-error-handler": "1.3.1-beta", + "@nocobase/plugin-field-china-region": "1.3.1-beta", + "@nocobase/plugin-field-formula": "1.3.1-beta", + "@nocobase/plugin-field-m2m-array": "1.3.1-beta", + "@nocobase/plugin-field-markdown-vditor": "1.3.1-beta", + "@nocobase/plugin-field-sequence": "1.3.1-beta", + "@nocobase/plugin-file-manager": "1.3.1-beta", + "@nocobase/plugin-gantt": "1.3.1-beta", + "@nocobase/plugin-graph-collection-manager": "1.3.1-beta", + "@nocobase/plugin-kanban": "1.3.1-beta", + "@nocobase/plugin-localization": "1.3.1-beta", + "@nocobase/plugin-logger": "1.3.1-beta", + "@nocobase/plugin-map": "1.3.1-beta", + "@nocobase/plugin-mobile": "1.3.1-beta", + "@nocobase/plugin-mobile-client": "1.3.1-beta", + "@nocobase/plugin-mock-collections": "1.3.1-beta", + "@nocobase/plugin-multi-app-manager": "1.3.1-beta", + "@nocobase/plugin-multi-app-share-collection": "1.3.1-beta", + "@nocobase/plugin-snapshot-field": "1.3.1-beta", + "@nocobase/plugin-system-settings": "1.3.1-beta", + "@nocobase/plugin-theme-editor": "1.3.1-beta", + "@nocobase/plugin-ui-schema-storage": "1.3.1-beta", + "@nocobase/plugin-users": "1.3.1-beta", + "@nocobase/plugin-verification": "1.3.1-beta", + "@nocobase/plugin-workflow": "1.3.1-beta", + "@nocobase/plugin-workflow-action-trigger": "1.3.1-beta", + "@nocobase/plugin-workflow-aggregate": "1.3.1-beta", + "@nocobase/plugin-workflow-delay": "1.3.1-beta", + "@nocobase/plugin-workflow-dynamic-calculation": "1.3.1-beta", + "@nocobase/plugin-workflow-loop": "1.3.1-beta", + "@nocobase/plugin-workflow-mailer": "1.3.1-beta", + "@nocobase/plugin-workflow-manual": "1.3.1-beta", + "@nocobase/plugin-workflow-parallel": "1.3.1-beta", + "@nocobase/plugin-workflow-request": "1.3.1-beta", + "@nocobase/plugin-workflow-sql": "1.3.1-beta", + "@nocobase/server": "1.3.1-beta", "cronstrue": "^2.11.0" }, "repository": { From 388b0e2a8869862c86cc365ae5f347b74a372e7e Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:07:28 +0000 Subject: [PATCH 07/17] chore: update changelog --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f75b7f6293..e86d963431 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.3.1-beta](https://github.com/nocobase/nocobase/compare/v1.3.0-beta...v1.3.1-beta) - 2024-08-26 + +### Merged + +- feat(publish): publish pro repos [`#5129`](https://github.com/nocobase/nocobase/pull/5129) +- fix(tree): missing collection schema [`#5131`](https://github.com/nocobase/nocobase/pull/5131) +- fix(cli): support upgrade to next [`#5130`](https://github.com/nocobase/nocobase/pull/5130) +- fix(client): fix field names of variable input [`#5128`](https://github.com/nocobase/nocobase/pull/5128) +- fix: cannot access 'ActionPage' before initialization [`#5125`](https://github.com/nocobase/nocobase/pull/5125) + +### Commits + +- chore(versions): 😊 publish v1.3.1-beta [`4aff92a`](https://github.com/nocobase/nocobase/commit/4aff92ad3bf338a8f798b3cc7460b32316f83d65) +- chore: update changelog [`4515f02`](https://github.com/nocobase/nocobase/commit/4515f0220f2b5854d5b3abbbdab8d116ba818669) +- fix: missing schema [`c4b8195`](https://github.com/nocobase/nocobase/commit/c4b819528a15f3f7294ce4027ea64342742881f3) + ## [v1.3.0-beta](https://github.com/nocobase/nocobase/compare/v1.2.39-alpha...v1.3.0-beta) - 2024-08-25 ### Merged From dd247edba2d717afcc6e7df08ac7fa7cd028bc01 Mon Sep 17 00:00:00 2001 From: xilesun <2013xile@gmail.com> Date: Tue, 27 Aug 2024 00:18:43 +0800 Subject: [PATCH 08/17] fix(release): job dependency --- .github/workflows/release-next.yml | 1 + .github/workflows/release.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/release-next.yml b/.github/workflows/release-next.yml index 0040206bf9..94630afd7c 100644 --- a/.github/workflows/release-next.yml +++ b/.github/workflows/release-next.yml @@ -14,6 +14,7 @@ jobs: publish-npm: runs-on: ubuntu-latest container: node:18 + needs: app-token steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f9fc38012e..dd301f0e28 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,6 +16,7 @@ jobs: publish-npm: runs-on: ubuntu-latest container: node:18 + needs: app-token steps: - name: Checkout uses: actions/checkout@v3 From 6987d46b3eb5d928f7fc3e1d3226578913b68820 Mon Sep 17 00:00:00 2001 From: xilesun <2013xile@gmail.com> Date: Tue, 27 Aug 2024 04:56:27 +0800 Subject: [PATCH 09/17] chore(release): optimize release workflow --- .github/workflows/manual-release.yml | 64 +++++----------------------- 1 file changed, 11 insertions(+), 53 deletions(-) diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml index 7fb5ef504c..f0ed8a67c4 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/manual-release.yml @@ -96,7 +96,6 @@ jobs: run: | cd ./packages/pro-plugins git checkout main - git rm -rf --cached . for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} do echo "@nocobase/$repo" >> .git/info/exclude @@ -111,65 +110,24 @@ jobs: env: IS_FEAT: ${{ inputs.is_feat && '--is-feat' || '' }} PRO_PLUGIN_REPOS: ${{ vars.PRO_PLUGIN_REPOS }} - - name: push pro repos + - name: Push and merge into next run: | for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} do cd ./packages/pro-plugins/@nocobase/$repo git push origin main --atomic --tags + git checkout next + git merge -X ours main --no-edit + git push origin next --tags --atomic cd ../../../../ done - - name: push pro plugins - continue-on-error: true - uses: ad-m/github-push-action@master - with: - github_token: ${{ steps.app-token.outputs.token }} - branch: main - directory: packages/pro-plugins - repository: nocobase/pro-plugins - tags: true - atomic: true - - name: push nocobase - uses: ad-m/github-push-action@master - with: - branch: main - github_token: ${{ steps.app-token.outputs.token }} - repository: nocobase/nocobase - tags: true - atomic: true - post-merge-main-into-next: - needs: - - app-token - - pre-merge-main-into-next - - update-version - runs-on: ubuntu-latest - strategy: - matrix: - repo: - - 'nocobase' - - 'pro-plugins' - - ${{ fromJSON(vars.PRO_PLUGIN_REPOS) }} - steps: - - name: Decrypt app token - id: app-token - shell: bash - run: | - ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; - BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); - APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); - echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - - name: Checkout - uses: actions/checkout@v4 - with: - repository: nocobase/${{ matrix.repo }} - fetch-depth: 0 - token: ${{ steps.app-token.outputs.token }} - - name: main -> next (nocobase/${{ matrix.repo }}) - run: | - git config --global user.name '${{ needs.app-token.outputs.app-slug }}[bot]' - git config --global user.email '${{ needs.app-token.outputs.user-id }}+${{ needs.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' - git checkout main - git pull origin main + cd ./packages/pro-plugins + git push origin main --atomic --tags + git checkout next + git merge -X ours main --no-edit + git push origin next --tags --atomic + cd ../../ + git push origin main --atomic --tags git checkout next git merge -X ours main --no-edit git push origin next --tags --atomic From dcadaa666583b3fdc8e7caa6befd37ad442f56e6 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 20:58:26 +0000 Subject: [PATCH 10/17] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publish?= =?UTF-8?q?=20v1.3.2-beta?= 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/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 26 ++-- 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 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/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-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 +- .../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-notifications/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 +- .../@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-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 | 122 +++++++++--------- 85 files changed, 191 insertions(+), 191 deletions(-) diff --git a/lerna.json b/lerna.json index e2d2dc2eb3..00dad4cc32 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.1-beta", + "version": "1.3.2-beta", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": [ diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index ab7e6e84c5..4c40611c6b 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/resourcer": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 1155a1e414..5ebcde9ede 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.3.1-beta", - "@nocobase/database": "1.3.1-beta", - "@nocobase/resourcer": "1.3.1-beta" + "@nocobase/cache": "1.3.2-beta", + "@nocobase/database": "1.3.2-beta", + "@nocobase/resourcer": "1.3.2-beta" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index f9433d0c9a..e1f5bebf56 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.3.1-beta", - "@nocobase/preset-nocobase": "1.3.1-beta", - "@nocobase/server": "1.3.1-beta" + "@nocobase/database": "1.3.2-beta", + "@nocobase/preset-nocobase": "1.3.2-beta", + "@nocobase/server": "1.3.2-beta" }, "devDependencies": { - "@nocobase/client": "1.3.1-beta" + "@nocobase/client": "1.3.2-beta" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index 864ab02579..a4cd87646d 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.1-beta", - "@nocobase/cache": "1.3.1-beta", - "@nocobase/database": "1.3.1-beta", - "@nocobase/resourcer": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/actions": "1.3.2-beta", + "@nocobase/cache": "1.3.2-beta", + "@nocobase/database": "1.3.2-beta", + "@nocobase/resourcer": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index e238497276..4dedb8e99a 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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 a9e29ebbd4..25e7a494f7 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index bd8e820fb6..db3a129039 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.3.1-beta", + "@nocobase/app": "1.3.2-beta", "@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": "1.3.1-beta" + "@nocobase/devtools": "1.3.2-beta" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 30f7968e03..03ea8db7e3 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "license": "AGPL-3.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": "1.3.1-beta", - "@nocobase/sdk": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/evaluators": "1.3.2-beta", + "@nocobase/sdk": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "ahooks": "^3.7.2", "antd": "^5.12.8", "antd-style": "3.4.5", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 5962c2a8be..401557186c 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.3.1-beta", + "version": "1.3.2-beta", "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 846ea557c0..6d45878638 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.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.1-beta", - "@nocobase/cache": "1.3.1-beta", - "@nocobase/database": "1.3.1-beta", - "@nocobase/resourcer": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/actions": "1.3.2-beta", + "@nocobase/cache": "1.3.2-beta", + "@nocobase/database": "1.3.2-beta", + "@nocobase/resourcer": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 621dc23ec0..973ca200df 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/logger": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "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 7e6afb1da4..241ae69257 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.3.1-beta", - "@nocobase/client": "1.3.1-beta", - "@nocobase/test": "1.3.1-beta", + "@nocobase/build": "1.3.2-beta", + "@nocobase/client": "1.3.2-beta", + "@nocobase/test": "1.3.2-beta", "@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 3968123a4b..8a16dc2fa8 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.2.0", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/utils": "1.3.2-beta", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index a9705ff8b6..356f38b010 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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 6163473439..2ddf3b1798 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.3.1-beta", + "@nocobase/utils": "1.3.2-beta", "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 2678540513..d1412df577 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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 c00d8c0dc7..1e2db3a4ab 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,18 +10,18 @@ "@koa/cors": "^3.1.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.3.1-beta", - "@nocobase/actions": "1.3.1-beta", - "@nocobase/auth": "1.3.1-beta", - "@nocobase/cache": "1.3.1-beta", - "@nocobase/data-source-manager": "1.3.1-beta", - "@nocobase/database": "1.3.1-beta", - "@nocobase/evaluators": "1.3.1-beta", - "@nocobase/logger": "1.3.1-beta", - "@nocobase/resourcer": "1.3.1-beta", - "@nocobase/sdk": "1.3.1-beta", - "@nocobase/telemetry": "1.3.1-beta", - "@nocobase/utils": "1.3.1-beta", + "@nocobase/acl": "1.3.2-beta", + "@nocobase/actions": "1.3.2-beta", + "@nocobase/auth": "1.3.2-beta", + "@nocobase/cache": "1.3.2-beta", + "@nocobase/data-source-manager": "1.3.2-beta", + "@nocobase/database": "1.3.2-beta", + "@nocobase/evaluators": "1.3.2-beta", + "@nocobase/logger": "1.3.2-beta", + "@nocobase/resourcer": "1.3.2-beta", + "@nocobase/sdk": "1.3.2-beta", + "@nocobase/telemetry": "1.3.2-beta", + "@nocobase/utils": "1.3.2-beta", "@types/decompress": "4.2.4", "@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 acfc3ba98c..602dc32fae 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.3.1-beta", + "@nocobase/utils": "1.3.2-beta", "@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 3f2127248e..bd4b92c9f4 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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.3.1-beta", + "@nocobase/server": "1.3.2-beta", "@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 b6e0aa552b..72fdd24b69 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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 77bb5d80ed..c424138660 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.3.1-beta", + "version": "1.3.2-beta", "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 3c32eeb911..64ba0c6655 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.3.1-beta", + "version": "1.3.2-beta", "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 b1e02bd7b2..e0ccaa56e6 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.3.1-beta", + "version": "1.3.2-beta", "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 d6eab99018..7f77759587 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.3.1-beta", + "version": "1.3.2-beta", "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 d98dc022c6..cb986b633e 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.3.1-beta", + "version": "1.3.2-beta", "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 48bcc3de01..99391d062f 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.3.1-beta", + "version": "1.3.2-beta", "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 f2090a5a94..4b48f0f311 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.3.1-beta", + "version": "1.3.2-beta", "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 3811d283f2..4ce8de9f76 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.3.1-beta", + "version": "1.3.2-beta", "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 338ad0dc60..e7f5ff57b7 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.3.1-beta", + "version": "1.3.2-beta", "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 aff543e5d1..f7225a4a51 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.3.1-beta", + "version": "1.3.2-beta", "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 87e0573477..2ed261c6ad 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.3.1-beta", + "version": "1.3.2-beta", "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 a849b3e11b..3306dfebf9 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.3.1-beta", + "version": "1.3.2-beta", "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 20f961eaa9..4c0c4fc6a4 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.3.1-beta", + "version": "1.3.2-beta", "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 d768307d36..1ce842546b 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.3.1-beta", + "version": "1.3.2-beta", "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 4a23000003..cca42bbf8f 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.3.1-beta", + "version": "1.3.2-beta", "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 ac7a05163b..101697f4c1 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.3.1-beta", + "version": "1.3.2-beta", "displayName": "Block: Workbench", "displayName.zh-CN": "区块:工作台", "description": "Add buttons for actions, links, etc. in the workbench block to quickly initiate actions and jump pages.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 43686b5432..7a4fac7cae 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.3.1-beta", + "version": "1.3.2-beta", "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 b32497cd76..c8a36559f3 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.3.1-beta", + "version": "1.3.2-beta", "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 c9b0b6ab5f..eb69cdc189 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.3.1-beta", + "version": "1.3.2-beta", "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 2b8e7622f3..c0d67a0c31 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.3.1-beta", + "version": "1.3.2-beta", "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 ac1577fa44..bc7ab38a25 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.3.1-beta", + "version": "1.3.2-beta", "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 b8305ba1c8..f7e8d05de5 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 MySQL, PostgreSQL, SQLite and so on.", "description.zh-CN": "NocoBase 主数据库,支持 MySQL、PostgreSQL、SQLite 等关系型数据库。", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "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 855407002c..d797f484ff 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.3.1-beta", + "version": "1.3.2-beta", "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 699309230b..a02fbff9d4 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.3.1-beta", + "version": "1.3.2-beta", "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 de4dc9acbe..dbf8d4cc8e 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.3.1-beta", + "version": "1.3.2-beta", "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 5badcf38ec..2ef805a3e5 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.3.1-beta", + "version": "1.3.2-beta", "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 ac102ead0d..bc9b0f6536 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.3.1-beta", + "version": "1.3.2-beta", "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-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index 7e50c8eeb1..c809406787 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.3.1-beta", + "version": "1.3.2-beta", "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 a76753782f..816a7c66ff 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.3.1-beta", + "version": "1.3.2-beta", "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 2ac3fb77ce..427aa776fe 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.3.1-beta", + "version": "1.3.2-beta", "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 c2b7eb4b98..7333c20bc1 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.3.1-beta", + "version": "1.3.2-beta", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 66b500bcee..48660576b8 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.3.1-beta", + "version": "1.3.2-beta", "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 1407eb4674..529da3e2e3 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.3.1-beta", + "version": "1.3.2-beta", "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 aa9ebfc51b..1aa93d5cec 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.3.1-beta", + "version": "1.3.2-beta", "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 84bfff1942..e83ae15b89 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.3.1-beta", + "version": "1.3.2-beta", "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 aa4fc9cf58..dd19dd2ff9 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.3.1-beta", + "version": "1.3.2-beta", "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 90a0ed89a3..12d8322c26 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.3.1-beta", + "version": "1.3.2-beta", "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 e20c13c281..87b379f717 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.3.1-beta", + "version": "1.3.2-beta", "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 f9baeb0b65..49d93ee5ae 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.3.1-beta", + "version": "1.3.2-beta", "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 7a52cc738c..871ddcb726 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.3.1-beta", + "version": "1.3.2-beta", "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 720ef8459f..bb1c38b84d 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.3.1-beta", + "version": "1.3.2-beta", "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 6e2ea46bf2..d113f3f7c4 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.3.1-beta", + "version": "1.3.2-beta", "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 6f70885128..35426fde15 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.3.1-beta", + "version": "1.3.2-beta", "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 758f6b3bd1..6baf8ab140 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.3.1-beta", + "version": "1.3.2-beta", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index 0b13795328..ac97d30f98 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.3.1-beta", + "version": "1.3.2-beta", "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 bd922431d0..ca0ff8ecb2 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.3.1-beta", + "version": "1.3.2-beta", "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 7c7014c09a..2ad8b9e668 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.3.1-beta", + "version": "1.3.2-beta", "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 f2900fe80d..1d8fb973bd 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.3.1-beta", + "version": "1.3.2-beta", "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 308ad5d39b..4fbcfd0701 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.3.1-beta", + "version": "1.3.2-beta", "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 ff6a4dfe48..d16269b79b 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.3.1-beta", + "version": "1.3.2-beta", "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 d22bbd8086..033e7a1999 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.3.1-beta", + "version": "1.3.2-beta", "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 14bcd2d99a..36940c105d 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.3.1-beta", + "version": "1.3.2-beta", "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 83accba0af..315015086c 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.3.1-beta", + "version": "1.3.2-beta", "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 af6bf4f98c..a8158c659b 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.3.1-beta", + "version": "1.3.2-beta", "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 35b2649fa5..5d0a74fc66 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.3.1-beta", + "version": "1.3.2-beta", "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 fd3b64aa1c..1192f961a2 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.3.1-beta", + "version": "1.3.2-beta", "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 1830fcdd5b..0629c914ef 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.3.1-beta", + "version": "1.3.2-beta", "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 ca91d77be1..040d84c16e 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.3.1-beta", + "version": "1.3.2-beta", "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 3c2a3d3237..f66ff6c47d 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.3.1-beta", + "version": "1.3.2-beta", "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 7d1b302a03..bb35e63165 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.3.1-beta", + "version": "1.3.2-beta", "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 acef69d304..87ca201223 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.3.1-beta", + "version": "1.3.2-beta", "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 b0486d7ba7..3f24e02e7f 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.3.1-beta", + "version": "1.3.2-beta", "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 ee675ff182..23fdbc226f 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.3.1-beta", + "version": "1.3.2-beta", "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.3.1-beta" + "@nocobase/plugin-workflow-test": "1.3.2-beta" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index e05b59cbed..90487cfadd 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,70 +1,70 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.3.1-beta", + "version": "1.3.2-beta", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.3.1-beta", - "@nocobase/plugin-action-bulk-edit": "1.3.1-beta", - "@nocobase/plugin-action-bulk-update": "1.3.1-beta", - "@nocobase/plugin-action-custom-request": "1.3.1-beta", - "@nocobase/plugin-action-duplicate": "1.3.1-beta", - "@nocobase/plugin-action-export": "1.3.1-beta", - "@nocobase/plugin-action-import": "1.3.1-beta", - "@nocobase/plugin-action-print": "1.3.1-beta", - "@nocobase/plugin-api-doc": "1.3.1-beta", - "@nocobase/plugin-api-keys": "1.3.1-beta", - "@nocobase/plugin-audit-logs": "1.3.1-beta", - "@nocobase/plugin-auth": "1.3.1-beta", - "@nocobase/plugin-auth-sms": "1.3.1-beta", - "@nocobase/plugin-backup-restore": "1.3.1-beta", - "@nocobase/plugin-block-iframe": "1.3.1-beta", - "@nocobase/plugin-block-workbench": "1.3.1-beta", - "@nocobase/plugin-calendar": "1.3.1-beta", - "@nocobase/plugin-charts": "1.3.1-beta", - "@nocobase/plugin-client": "1.3.1-beta", - "@nocobase/plugin-collection-sql": "1.3.1-beta", - "@nocobase/plugin-collection-tree": "1.3.1-beta", - "@nocobase/plugin-data-source-main": "1.3.1-beta", - "@nocobase/plugin-data-source-manager": "1.3.1-beta", - "@nocobase/plugin-data-visualization": "1.3.1-beta", - "@nocobase/plugin-error-handler": "1.3.1-beta", - "@nocobase/plugin-field-china-region": "1.3.1-beta", - "@nocobase/plugin-field-formula": "1.3.1-beta", - "@nocobase/plugin-field-m2m-array": "1.3.1-beta", - "@nocobase/plugin-field-markdown-vditor": "1.3.1-beta", - "@nocobase/plugin-field-sequence": "1.3.1-beta", - "@nocobase/plugin-file-manager": "1.3.1-beta", - "@nocobase/plugin-gantt": "1.3.1-beta", - "@nocobase/plugin-graph-collection-manager": "1.3.1-beta", - "@nocobase/plugin-kanban": "1.3.1-beta", - "@nocobase/plugin-localization": "1.3.1-beta", - "@nocobase/plugin-logger": "1.3.1-beta", - "@nocobase/plugin-map": "1.3.1-beta", - "@nocobase/plugin-mobile": "1.3.1-beta", - "@nocobase/plugin-mobile-client": "1.3.1-beta", - "@nocobase/plugin-mock-collections": "1.3.1-beta", - "@nocobase/plugin-multi-app-manager": "1.3.1-beta", - "@nocobase/plugin-multi-app-share-collection": "1.3.1-beta", - "@nocobase/plugin-snapshot-field": "1.3.1-beta", - "@nocobase/plugin-system-settings": "1.3.1-beta", - "@nocobase/plugin-theme-editor": "1.3.1-beta", - "@nocobase/plugin-ui-schema-storage": "1.3.1-beta", - "@nocobase/plugin-users": "1.3.1-beta", - "@nocobase/plugin-verification": "1.3.1-beta", - "@nocobase/plugin-workflow": "1.3.1-beta", - "@nocobase/plugin-workflow-action-trigger": "1.3.1-beta", - "@nocobase/plugin-workflow-aggregate": "1.3.1-beta", - "@nocobase/plugin-workflow-delay": "1.3.1-beta", - "@nocobase/plugin-workflow-dynamic-calculation": "1.3.1-beta", - "@nocobase/plugin-workflow-loop": "1.3.1-beta", - "@nocobase/plugin-workflow-mailer": "1.3.1-beta", - "@nocobase/plugin-workflow-manual": "1.3.1-beta", - "@nocobase/plugin-workflow-parallel": "1.3.1-beta", - "@nocobase/plugin-workflow-request": "1.3.1-beta", - "@nocobase/plugin-workflow-sql": "1.3.1-beta", - "@nocobase/server": "1.3.1-beta", + "@nocobase/plugin-acl": "1.3.2-beta", + "@nocobase/plugin-action-bulk-edit": "1.3.2-beta", + "@nocobase/plugin-action-bulk-update": "1.3.2-beta", + "@nocobase/plugin-action-custom-request": "1.3.2-beta", + "@nocobase/plugin-action-duplicate": "1.3.2-beta", + "@nocobase/plugin-action-export": "1.3.2-beta", + "@nocobase/plugin-action-import": "1.3.2-beta", + "@nocobase/plugin-action-print": "1.3.2-beta", + "@nocobase/plugin-api-doc": "1.3.2-beta", + "@nocobase/plugin-api-keys": "1.3.2-beta", + "@nocobase/plugin-audit-logs": "1.3.2-beta", + "@nocobase/plugin-auth": "1.3.2-beta", + "@nocobase/plugin-auth-sms": "1.3.2-beta", + "@nocobase/plugin-backup-restore": "1.3.2-beta", + "@nocobase/plugin-block-iframe": "1.3.2-beta", + "@nocobase/plugin-block-workbench": "1.3.2-beta", + "@nocobase/plugin-calendar": "1.3.2-beta", + "@nocobase/plugin-charts": "1.3.2-beta", + "@nocobase/plugin-client": "1.3.2-beta", + "@nocobase/plugin-collection-sql": "1.3.2-beta", + "@nocobase/plugin-collection-tree": "1.3.2-beta", + "@nocobase/plugin-data-source-main": "1.3.2-beta", + "@nocobase/plugin-data-source-manager": "1.3.2-beta", + "@nocobase/plugin-data-visualization": "1.3.2-beta", + "@nocobase/plugin-error-handler": "1.3.2-beta", + "@nocobase/plugin-field-china-region": "1.3.2-beta", + "@nocobase/plugin-field-formula": "1.3.2-beta", + "@nocobase/plugin-field-m2m-array": "1.3.2-beta", + "@nocobase/plugin-field-markdown-vditor": "1.3.2-beta", + "@nocobase/plugin-field-sequence": "1.3.2-beta", + "@nocobase/plugin-file-manager": "1.3.2-beta", + "@nocobase/plugin-gantt": "1.3.2-beta", + "@nocobase/plugin-graph-collection-manager": "1.3.2-beta", + "@nocobase/plugin-kanban": "1.3.2-beta", + "@nocobase/plugin-localization": "1.3.2-beta", + "@nocobase/plugin-logger": "1.3.2-beta", + "@nocobase/plugin-map": "1.3.2-beta", + "@nocobase/plugin-mobile": "1.3.2-beta", + "@nocobase/plugin-mobile-client": "1.3.2-beta", + "@nocobase/plugin-mock-collections": "1.3.2-beta", + "@nocobase/plugin-multi-app-manager": "1.3.2-beta", + "@nocobase/plugin-multi-app-share-collection": "1.3.2-beta", + "@nocobase/plugin-snapshot-field": "1.3.2-beta", + "@nocobase/plugin-system-settings": "1.3.2-beta", + "@nocobase/plugin-theme-editor": "1.3.2-beta", + "@nocobase/plugin-ui-schema-storage": "1.3.2-beta", + "@nocobase/plugin-users": "1.3.2-beta", + "@nocobase/plugin-verification": "1.3.2-beta", + "@nocobase/plugin-workflow": "1.3.2-beta", + "@nocobase/plugin-workflow-action-trigger": "1.3.2-beta", + "@nocobase/plugin-workflow-aggregate": "1.3.2-beta", + "@nocobase/plugin-workflow-delay": "1.3.2-beta", + "@nocobase/plugin-workflow-dynamic-calculation": "1.3.2-beta", + "@nocobase/plugin-workflow-loop": "1.3.2-beta", + "@nocobase/plugin-workflow-mailer": "1.3.2-beta", + "@nocobase/plugin-workflow-manual": "1.3.2-beta", + "@nocobase/plugin-workflow-parallel": "1.3.2-beta", + "@nocobase/plugin-workflow-request": "1.3.2-beta", + "@nocobase/plugin-workflow-sql": "1.3.2-beta", + "@nocobase/server": "1.3.2-beta", "cronstrue": "^2.11.0" }, "repository": { From 7c28f4d06690d6b36701f773a933287c0a395a6d Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 20:58:31 +0000 Subject: [PATCH 11/17] chore: update changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e86d963431..34d8758e70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.3.2-beta](https://github.com/nocobase/nocobase/compare/v1.3.1-beta...v1.3.2-beta) - 2024-08-26 + +### Commits + +- chore(versions): 😊 publish v1.3.2-beta [`dcadaa6`](https://github.com/nocobase/nocobase/commit/dcadaa666583b3fdc8e7caa6befd37ad442f56e6) +- chore(release): optimize release workflow [`6987d46`](https://github.com/nocobase/nocobase/commit/6987d46b3eb5d928f7fc3e1d3226578913b68820) +- chore: update changelog [`388b0e2`](https://github.com/nocobase/nocobase/commit/388b0e2a8869862c86cc365ae5f347b74a372e7e) + ## [v1.3.1-beta](https://github.com/nocobase/nocobase/compare/v1.3.0-beta...v1.3.1-beta) - 2024-08-26 ### Merged From 2c757c43c5946c106f6f699269026ecd20e47f1d Mon Sep 17 00:00:00 2001 From: Zhi Chen <350447433@qq.com> Date: Tue, 27 Aug 2024 05:25:30 +0800 Subject: [PATCH 12/17] feat: user data sync plugin (#4986) * feat: user data sync plugin * fix: nickname bug * feat: adjust sync * fix: delete package-lock.json * feat: adjust push * feat: adjust user-data-sync plugin * fix: delete submodule * fix: sync bug * fix: adjust log * fix: adjust log * chore: add to build-in * chore: update version * chore: add api doc * chore: add plugin description * chore: api doc * chore: change keywords * feat: add no source type prompt * chore: text to json * feat: optimize resource manager * fix: test & typo * test: add tests for resource manager & fix bug * fix: user sync * chore: remove department resource * fix: test * fix: build * fix: push data * fix: push api add default sourceName * test: add api test * fix: uniqueKey support any * chore: single user belongs to multi department situation * chore: department * fix: fix sync bugs * fix: sync departments * chore: remove department logic * chore: remove department * fix: fix logger type error * fix: fix sync bug * fix: logger & role * fix: fix sync bugs * fix: fix sync bug * fix: fix sync bugs * test: update test cases * chore: update * chore: update * fix: test * fix: test * fix: test * fix: bugs * fix: version --------- Co-authored-by: chenzhi Co-authored-by: xilesun <2013xile@gmail.com> --- .../plugin-user-data-sync/.npmignore | 2 + .../@nocobase/plugin-user-data-sync/README.md | 1 + .../plugin-user-data-sync/client.d.ts | 2 + .../@nocobase/plugin-user-data-sync/client.js | 1 + .../plugin-user-data-sync/package.json | 18 + .../plugin-user-data-sync/server.d.ts | 2 + .../@nocobase/plugin-user-data-sync/server.js | 1 + .../src/client/Options.tsx | 54 ++ .../src/client/UserDataSyncSource.tsx | 284 ++++++++++ .../src/client/client.d.ts | 249 +++++++++ .../src/client/index.tsx | 41 ++ .../src/client/locale/index.ts | 16 + .../client/schemas/user-data-sync-sources.ts | 523 ++++++++++++++++++ .../src/client/sourceType.ts | 27 + .../plugin-user-data-sync/src/index.ts | 11 + .../src/locale/en-US.json | 19 + .../src/locale/zh-CN.json | 22 + .../src/server/__tests__/api.test.ts | 54 ++ .../src/server/__tests__/mock-resource.ts | 41 ++ .../server/__tests__/resource-manager.test.ts | 153 +++++ .../src/server/actions/user-data.ts | 44 ++ .../src/server/collections/.gitkeep | 0 .../user-data-sync-records-resources.ts | 33 ++ .../collections/user-data-sync-records.ts | 64 +++ .../collections/user-data-sync-sources.ts | 88 +++ .../collections/user-data-sync-tasks.ts | 110 ++++ .../plugin-user-data-sync/src/server/index.ts | 12 + .../src/server/models/sync-source.ts | 17 + .../src/server/plugin.ts | 71 +++ .../src/server/sync-source-manager.ts | 58 ++ .../src/server/sync-source.ts | 106 ++++ .../src/server/user-data-resource-manager.ts | 268 +++++++++ .../src/server/user-data-sync-service.ts | 111 ++++ .../src/swagger/index.ts | 121 ++++ .../@nocobase/plugin-users/package.json | 1 + .../src/server/__tests__/data-sync.test.ts | 122 ++++ .../plugin-users/src/server/server.ts | 8 +- .../src/server/user-data-sync-resource.ts | 102 ++++ packages/presets/nocobase/package.json | 1 + packages/presets/nocobase/src/server/index.ts | 1 + 40 files changed, 2858 insertions(+), 1 deletion(-) create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/.npmignore create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/README.md create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/client.d.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/client.js create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/package.json create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/server.d.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/server.js create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/Options.tsx create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/UserDataSyncSource.tsx create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/client.d.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/index.tsx create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/locale/index.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/schemas/user-data-sync-sources.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/client/sourceType.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/index.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/locale/en-US.json create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/locale/zh-CN.json create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/api.test.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/mock-resource.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/resource-manager.test.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/actions/user-data.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/.gitkeep create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records-resources.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-sources.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-tasks.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/index.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/models/sync-source.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/plugin.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source-manager.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-resource-manager.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-sync-service.ts create mode 100644 packages/plugins/@nocobase/plugin-user-data-sync/src/swagger/index.ts create mode 100644 packages/plugins/@nocobase/plugin-users/src/server/__tests__/data-sync.test.ts create mode 100644 packages/plugins/@nocobase/plugin-users/src/server/user-data-sync-resource.ts diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/.npmignore b/packages/plugins/@nocobase/plugin-user-data-sync/.npmignore new file mode 100644 index 0000000000..65f5e8779f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/.npmignore @@ -0,0 +1,2 @@ +/node_modules +/src diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/README.md b/packages/plugins/@nocobase/plugin-user-data-sync/README.md new file mode 100644 index 0000000000..13dcf98789 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/README.md @@ -0,0 +1 @@ +# @nocobase/plugin-user-data-sync diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/client.d.ts b/packages/plugins/@nocobase/plugin-user-data-sync/client.d.ts new file mode 100644 index 0000000000..6c459cbac4 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/client.d.ts @@ -0,0 +1,2 @@ +export * from './dist/client'; +export { default } from './dist/client'; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/client.js b/packages/plugins/@nocobase/plugin-user-data-sync/client.js new file mode 100644 index 0000000000..b6e3be70e6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/client.js @@ -0,0 +1 @@ +module.exports = require('./dist/client/index.js'); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/package.json b/packages/plugins/@nocobase/plugin-user-data-sync/package.json new file mode 100644 index 0000000000..039d36eefc --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/package.json @@ -0,0 +1,18 @@ +{ + "name": "@nocobase/plugin-user-data-sync", + "displayName": "User data synchronization", + "displayName.zh-CN": "用户数据同步", + "description": "Provide user data source management and user data synchronization interface. The data source can be DingTalk, WeCom, etc., and can be expanded.", + "description.zh-CN": "提供用户数据源管理,用户数据同步接口,数据源可为钉钉、企业微信等,可扩展。", + "version": "1.4.0-alpha", + "main": "dist/server/index.js", + "dependencies": {}, + "peerDependencies": { + "@nocobase/client": "1.x", + "@nocobase/server": "1.x", + "@nocobase/test": "1.x" + }, + "keywords": [ + "Users & permissions" + ] +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/server.d.ts b/packages/plugins/@nocobase/plugin-user-data-sync/server.d.ts new file mode 100644 index 0000000000..c41081ddc6 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/server.d.ts @@ -0,0 +1,2 @@ +export * from './dist/server'; +export { default } from './dist/server'; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/server.js b/packages/plugins/@nocobase/plugin-user-data-sync/server.js new file mode 100644 index 0000000000..972842039a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/server.js @@ -0,0 +1 @@ +module.exports = require('./dist/server/index.js'); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/Options.tsx b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/Options.tsx new file mode 100644 index 0000000000..eb5070ed6d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/Options.tsx @@ -0,0 +1,54 @@ +/** + * 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 React from 'react'; +import { observer, useForm } from '@formily/react'; +import { useActionContext, useCollectionRecordData, usePlugin, useRequest } from '@nocobase/client'; +import { useEffect } from 'react'; +import SourcePlugin from '.'; + +export const useValuesFromOptions = (options) => { + const record = useCollectionRecordData(); + const result = useRequest( + () => + Promise.resolve({ + data: { + ...record.options, + }, + }), + { + ...options, + manual: true, + }, + ); + const { run } = result; + const ctx = useActionContext(); + useEffect(() => { + if (ctx.visible) { + run(); + } + }, [ctx.visible, run]); + return result; +}; + +export const useAdminSettingsForm = (sourceType: string) => { + const plugin = usePlugin(SourcePlugin); + const source = plugin.sourceTypes.get(sourceType); + return source?.components?.AdminSettingsForm; +}; + +export const Options = observer( + () => { + const form = useForm(); + const record = useCollectionRecordData(); + const Component = useAdminSettingsForm(form.values.sourceType || record.sourceType); + return Component ? : null; + }, + { displayName: 'Options' }, +); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/UserDataSyncSource.tsx b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/UserDataSyncSource.tsx new file mode 100644 index 0000000000..83c35bcd08 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/UserDataSyncSource.tsx @@ -0,0 +1,284 @@ +/** + * 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 { + ActionContextProvider, + SchemaComponent, + useAPIClient, + useActionContext, + useRequest, + ExtendCollectionsProvider, + useDataBlockRequest, + useDataBlockResource, + useCollection, + useCollectionRecordData, + ActionProps, +} from '@nocobase/client'; +import { App as AntdApp } from 'antd'; +import React, { useContext, useMemo, useState } from 'react'; +import { + userDataSyncSourcesSchema, + createFormSchema, + sourceCollection, + tasksTableBlockSchema, +} from './schemas/user-data-sync-sources'; +import { Button, Dropdown, Empty } from 'antd'; +import { PlusOutlined, DownOutlined } from '@ant-design/icons'; +import { SourceTypeContext, SourceTypesContext, useSourceTypes } from './sourceType'; +import { useValuesFromOptions, Options } from './Options'; +import { NAMESPACE, useUserDataSyncSourceTranslation } from './locale'; +import { Schema, useForm } from '@formily/react'; +import { taskCollection } from './schemas/user-data-sync-sources'; +import { createForm } from '@formily/core'; + +const useEditFormProps = () => { + const recordData = useCollectionRecordData(); + const form = useMemo( + () => + createForm({ + values: recordData, + }), + [], + ); + + return { + form, + }; +}; + +const useSubmitActionProps = () => { + const { setVisible } = useActionContext(); + const { message } = AntdApp.useApp(); + const form = useForm(); + const resource = useDataBlockResource(); + const { runAsync } = useDataBlockRequest(); + const collection = useCollection(); + + return { + type: 'primary', + async onClick() { + await form.submit(); + const values = form.values; + if (values[collection.filterTargetKey]) { + await resource.update({ + values, + filterByTk: values[collection.filterTargetKey], + }); + } else { + await resource.create({ values }); + } + await runAsync(); + message.success('Saved successfully'); + setVisible(false); + }, + }; +}; + +function useDeleteActionProps(): ActionProps { + const { message } = AntdApp.useApp(); + const record = useCollectionRecordData(); + const resource = useDataBlockResource(); + const collection = useCollection(); + const { runAsync } = useDataBlockRequest(); + return { + confirm: { + title: 'Delete', + content: 'Are you sure you want to delete it?', + }, + async onClick() { + await resource.destroy({ + filterByTk: record[collection.filterTargetKey], + }); + await runAsync(); + message.success('Deleted!'); + }, + }; +} + +function useSyncActionProps(): ActionProps { + const { message } = AntdApp.useApp(); + const record = useCollectionRecordData(); + const api = useAPIClient(); + const { runAsync } = useDataBlockRequest(); + return { + async onClick() { + await api.resource('userData').pull({ name: record['name'] }); + await runAsync(); + message.success('Synced!'); + }, + }; +} + +const useCustomFormProps = () => { + const { type: sourceType } = useContext(SourceTypeContext); + const form = useMemo( + () => + createForm({ + initialValues: { + sourceType: sourceType, + }, + }), + [], + ); + return { + form, + }; +}; + +const useTasksTableBlockProps = () => { + const record = useCollectionRecordData(); + const collection = useCollection(); + return { + params: { + pageSize: 20, + filter: { + sourceId: record[collection.filterTargetKey], + }, + sort: ['-sort'], + }, + }; +}; + +function useRetryActionProps(): ActionProps { + const { message } = AntdApp.useApp(); + const record = useCollectionRecordData(); + const resource = useDataBlockResource(); + const collection = useCollection(); + const api = useAPIClient(); + const { runAsync } = useDataBlockRequest(); + return { + async onClick() { + await api.resource('userData').retry({ id: record[collection.filterTargetKey], sourceId: record['sourceId'] }); + await runAsync(); + message.success('Successfully'); + }, + }; +} + +const AddNew = () => { + const { t } = useUserDataSyncSourceTranslation(); + const api = useAPIClient(); + const [visible, setVisible] = useState(false); + const [type, setType] = useState(''); + const types = useSourceTypes(); + const items = types.map((item) => ({ + ...item, + onClick: () => { + setVisible(true); + setType(item.value); + }, + })); + + const emptyItem = [ + { + key: '__empty__', + label: ( + + {t('No user data source plugin installed', { ns: NAMESPACE })} +
{' '} + + {t('View documentation', { ns: NAMESPACE })} + + + } + /> + ), + onClick: () => {}, + }, + ]; + + return ( + + + 0 ? items : emptyItem }}> + + + + + + ); +}; + +const Tasks = () => { + const { t } = useUserDataSyncSourceTranslation(); + const [visible, setVisible] = useState(false); + return ( + + + + + + + ); +}; + +export const UserDataSyncSource: React.FC = () => { + const { t } = useUserDataSyncSourceTranslation(); + const [types, setTypes] = useState([]); + const api = useAPIClient(); + useRequest( + () => + api + .resource('userData') + .listSyncTypes() + .then((res) => { + const types = res?.data?.data || []; + return types.map((type: { name: string; title?: string }) => ({ + key: type.name, + label: Schema.compile(type.title || type.name, { t }), + value: type.name, + })); + }), + { + onSuccess: (types) => { + setTypes(types); + }, + }, + ); + + return ( + + + + + + ); +}; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/client.d.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/client.d.ts new file mode 100644 index 0000000000..4e96f83fa1 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/client.d.ts @@ -0,0 +1,249 @@ +/** + * 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. + */ + +// CSS modules +type CSSModuleClasses = { readonly [key: string]: string }; + +declare module '*.module.css' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.scss' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.sass' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.less' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.styl' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.stylus' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.pcss' { + const classes: CSSModuleClasses; + export default classes; +} +declare module '*.module.sss' { + const classes: CSSModuleClasses; + export default classes; +} + +// CSS +declare module '*.css' { } +declare module '*.scss' { } +declare module '*.sass' { } +declare module '*.less' { } +declare module '*.styl' { } +declare module '*.stylus' { } +declare module '*.pcss' { } +declare module '*.sss' { } + +// Built-in asset types +// see `src/node/constants.ts` + +// images +declare module '*.apng' { + const src: string; + export default src; +} +declare module '*.png' { + const src: string; + export default src; +} +declare module '*.jpg' { + const src: string; + export default src; +} +declare module '*.jpeg' { + const src: string; + export default src; +} +declare module '*.jfif' { + const src: string; + export default src; +} +declare module '*.pjpeg' { + const src: string; + export default src; +} +declare module '*.pjp' { + const src: string; + export default src; +} +declare module '*.gif' { + const src: string; + export default src; +} +declare module '*.svg' { + const src: string; + export default src; +} +declare module '*.ico' { + const src: string; + export default src; +} +declare module '*.webp' { + const src: string; + export default src; +} +declare module '*.avif' { + const src: string; + export default src; +} + +// media +declare module '*.mp4' { + const src: string; + export default src; +} +declare module '*.webm' { + const src: string; + export default src; +} +declare module '*.ogg' { + const src: string; + export default src; +} +declare module '*.mp3' { + const src: string; + export default src; +} +declare module '*.wav' { + const src: string; + export default src; +} +declare module '*.flac' { + const src: string; + export default src; +} +declare module '*.aac' { + const src: string; + export default src; +} +declare module '*.opus' { + const src: string; + export default src; +} +declare module '*.mov' { + const src: string; + export default src; +} +declare module '*.m4a' { + const src: string; + export default src; +} +declare module '*.vtt' { + const src: string; + export default src; +} + +// fonts +declare module '*.woff' { + const src: string; + export default src; +} +declare module '*.woff2' { + const src: string; + export default src; +} +declare module '*.eot' { + const src: string; + export default src; +} +declare module '*.ttf' { + const src: string; + export default src; +} +declare module '*.otf' { + const src: string; + export default src; +} + +// other +declare module '*.webmanifest' { + const src: string; + export default src; +} +declare module '*.pdf' { + const src: string; + export default src; +} +declare module '*.txt' { + const src: string; + export default src; +} + +// wasm?init +declare module '*.wasm?init' { + const initWasm: (options?: WebAssembly.Imports) => Promise; + export default initWasm; +} + +// web worker +declare module '*?worker' { + const workerConstructor: { + new(options?: { name?: string }): Worker; + }; + export default workerConstructor; +} + +declare module '*?worker&inline' { + const workerConstructor: { + new(options?: { name?: string }): Worker; + }; + export default workerConstructor; +} + +declare module '*?worker&url' { + const src: string; + export default src; +} + +declare module '*?sharedworker' { + const sharedWorkerConstructor: { + new(options?: { name?: string }): SharedWorker; + }; + export default sharedWorkerConstructor; +} + +declare module '*?sharedworker&inline' { + const sharedWorkerConstructor: { + new(options?: { name?: string }): SharedWorker; + }; + export default sharedWorkerConstructor; +} + +declare module '*?sharedworker&url' { + const src: string; + export default src; +} + +declare module '*?raw' { + const src: string; + export default src; +} + +declare module '*?url' { + const src: string; + export default src; +} + +declare module '*?inline' { + const src: string; + export default src; +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/index.tsx b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/index.tsx new file mode 100644 index 0000000000..2d6b47cd4e --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/index.tsx @@ -0,0 +1,41 @@ +/** + * 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 { Plugin } from '@nocobase/client'; +import { Registry, tval } from '@nocobase/utils/client'; +import { ComponentType } from 'react'; +import { NAMESPACE } from './locale'; +import { UserDataSyncSource } from './UserDataSyncSource'; + +export type SourceOptions = { + components: Partial<{ + AdminSettingsForm: ComponentType; + }>; +}; + +export class PluginUserDataSyncClient extends Plugin { + sourceTypes = new Registry(); + + registerType(sourceType: string, options: SourceOptions) { + this.sourceTypes.register(sourceType, options); + } + + // You can get and modify the app instance here + async load() { + this.app.pluginSettingsManager.add('users-permissions.sync', { + title: tval('Synchronize', { ns: NAMESPACE }), + icon: 'SyncOutlined', + Component: UserDataSyncSource, + sort: 99, + aclSnippet: 'pm.user-data-sync', + }); + } +} + +export default PluginUserDataSyncClient; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/locale/index.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/locale/index.ts new file mode 100644 index 0000000000..2b94158816 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/locale/index.ts @@ -0,0 +1,16 @@ +/** + * 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 { useTranslation } from 'react-i18next'; + +export const NAMESPACE = 'user-data-sync'; + +export function useUserDataSyncSourceTranslation() { + return useTranslation([NAMESPACE, 'client'], { nsMode: 'fallback' }); +} \ No newline at end of file diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/schemas/user-data-sync-sources.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/schemas/user-data-sync-sources.ts new file mode 100644 index 0000000000..107d976c37 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/schemas/user-data-sync-sources.ts @@ -0,0 +1,523 @@ +/** + * 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 { ISchema } from '@nocobase/client'; + +export const sourceCollection = { + name: 'userDataSyncSources', + sortable: true, + filterTargetKey: 'id', + fields: [ + { + name: 'id', + type: 'string', + interface: 'id', + }, + { + interface: 'input', + type: 'string', + name: 'name', + uiSchema: { + type: 'string', + title: '{{t("Source name")}}', + 'x-component': 'Input', + required: true, + }, + }, + { + interface: 'input', + type: 'string', + name: 'sourceType', + allowNull: false, + uiSchema: { + type: 'string', + title: '{{t("Type")}}', + 'x-component': 'Select', + required: true, + dataSource: '{{ types }}', + }, + }, + // { + // interface: 'input', + // type: 'string', + // name: 'displayName', + // uiSchema: { + // type: 'string', + // title: '{{t("Source display name")}}', + // 'x-component': 'Input', + // }, + // }, + { + type: 'boolean', + name: 'enabled', + uiSchema: { + type: 'boolean', + title: '{{t("Enabled")}}', + 'x-component': 'Checkbox', + }, + }, + ], +}; + +export const taskCollection = { + name: 'userDataSyncTasks', + filterTargetKey: 'id', + fields: [ + { + name: 'id', + type: 'bigInt', + interface: 'id', + }, + { + name: 'batch', + interface: 'input', + type: 'string', + allowNull: false, + uiSchema: { + type: 'string', + title: '{{t("Batch")}}', + 'x-component': 'Input', + required: true, + }, + }, + { + name: 'source', + interface: 'input', + type: 'belongsTo', + target: 'userDataSyncSources', + targetKey: 'id', + foreignKey: 'sourceId', + allowNull: false, + uiSchema: { + type: 'object', + title: '{{t("Source")}}', + 'x-component': 'AssociationField', + 'x-component-props': { + fieldNames: { + value: 'id', + label: 'name', + }, + }, + required: true, + 'x-read-pretty': true, + }, + }, + { + name: 'status', + interface: 'input', + type: 'string', + allowNull: false, + uiSchema: { + type: 'string', + title: '{{t("Status")}}', + 'x-component': 'Select', + required: true, + enum: [ + { label: '{{t("Init")}}', value: 'init', color: 'default' }, + { label: '{{t("Processing")}}', value: 'processing', color: 'processing' }, + { label: '{{t("Success")}}', value: 'success', color: 'success' }, + { label: '{{t("Failed")}}', value: 'failed', color: 'error' }, + ], + }, + }, + { + name: 'message', + interface: 'input', + type: 'string', + allowNull: true, + uiSchema: { + type: 'string', + title: '{{t("Message")}}', + 'x-component': 'Input', + required: false, + }, + }, + { + name: 'cost', + interface: 'input', + type: 'integer', + allowNull: true, + uiSchema: { + type: 'integer', + title: '{{t("Cost")}}', + 'x-component': 'InputNumber', + 'x-component-props': { + precision: 0, + }, + required: false, + }, + }, + ], +}; + +export const createFormSchema: ISchema = { + type: 'object', + properties: { + drawer: { + type: 'void', + 'x-component': 'Action.Drawer', + title: '{{t("Add new")}}', + properties: { + form: { + type: 'void', + 'x-component': 'FormV2', + 'x-use-component-props': 'useCustomFormProps', + properties: { + name: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + }, + sourceType: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + 'x-component-props': { + options: '{{ types }}', + }, + }, + // displayName: { + // 'x-component': 'CollectionField', + // 'x-decorator': 'FormItem', + // }, + enabled: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + }, + options: { + type: 'object', + 'x-component': 'Options', + }, + footer: { + type: 'void', + 'x-component': 'Action.Drawer.Footer', + properties: { + submit: { + title: '{{t("Submit")}}', + 'x-component': 'Action', + 'x-use-component-props': 'useSubmitActionProps', + 'x-component-props': { + type: 'primary', + }, + }, + }, + }, + }, + }, + }, + }, + }, +}; + +export const tasksTableBlockSchema: ISchema = { + type: 'object', + properties: { + drawer: { + type: 'void', + 'x-component': 'Action.Drawer', + title: '{{ t("Tasks") }}', + properties: { + table: { + type: 'void', + 'x-decorator': 'TableBlockProvider', + 'x-use-decorator-props': 'useTasksTableBlockProps', + 'x-decorator-props': { + collection: taskCollection.name, + dragSort: false, + action: 'list', + showIndex: true, + }, + properties: { + table: { + type: 'array', + 'x-component': 'TableV2', + 'x-use-component-props': 'useTableBlockProps', + 'x-component-props': { + rowKey: 'id', + }, + properties: { + batch: { + type: 'void', + title: '{{ t("Batch") }}', + 'x-component': 'TableV2.Column', + properties: { + batch: { + type: 'string', + 'x-component': 'CollectionField', + 'x-pattern': 'readPretty', + }, + }, + }, + status: { + type: 'void', + title: '{{ t("Status") }}', + 'x-component': 'TableV2.Column', + properties: { + status: { + type: 'string', + 'x-component': 'CollectionField', + 'x-pattern': 'readPretty', + }, + }, + }, + message: { + type: 'void', + title: '{{ t("Message") }}', + 'x-component': 'TableV2.Column', + properties: { + message: { + type: 'string', + 'x-component': 'CollectionField', + 'x-pattern': 'readPretty', + }, + }, + }, + actions: { + type: 'void', + title: '{{t("Actions")}}', + 'x-decorator': 'TableV2.Column.ActionBar', + 'x-component': 'TableV2.Column', + properties: { + actions: { + type: 'void', + 'x-component': 'Space', + 'x-component-props': { + split: '|', + }, + properties: { + sync: { + type: 'void', + title: '{{ t("Retry") }}', + 'x-component': 'Action.Link', + 'x-use-component-props': 'useRetryActionProps', + 'x-display': '{{ $record.status === "failed" ? "visible" : "hidden" }}', + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, +}; + +export const userDataSyncSourcesSchema: ISchema = { + type: 'void', + name: 'userDataSyncSources', + 'x-component': 'CardItem', + 'x-decorator': 'TableBlockProvider', + 'x-decorator-props': { + collection: sourceCollection.name, + dragSort: false, + action: 'list', + params: { + pageSize: 10, + }, + showIndex: true, + }, + properties: { + actions: { + type: 'void', + 'x-component': 'ActionBar', + 'x-component-props': { + style: { + marginBottom: 16, + }, + }, + properties: { + delete: { + type: 'void', + title: '{{t("Delete")}}', + 'x-component': 'Action', + 'x-use-component-props': 'useBulkDestroyActionProps', + 'x-component-props': { + icon: 'DeleteOutlined', + confirm: { + title: "{{t('Delete')}}", + content: "{{t('Are you sure you want to delete it?')}}", + }, + }, + }, + create: { + type: 'void', + title: '{{t("Add new")}}', + 'x-component': 'AddNew', + 'x-component-props': { + type: 'primary', + }, + }, + }, + }, + table: { + type: 'array', + 'x-component': 'TableV2', + 'x-use-component-props': 'useTableBlockProps', + 'x-component-props': { + rowKey: 'id', + rowSelection: { + type: 'checkbox', + }, + }, + properties: { + name: { + type: 'void', + title: '{{t("Source name")}}', + 'x-component': 'TableV2.Column', + properties: { + name: { + type: 'string', + 'x-component': 'CollectionField', + 'x-pattern': 'readPretty', + }, + }, + }, + // displayName: { + // type: 'void', + // title: '{{t("Source display name")}}', + // 'x-component': 'TableV2.Column', + // properties: { + // displayName: { + // type: 'string', + // 'x-component': 'CollectionField', + // 'x-pattern': 'readPretty', + // }, + // }, + // }, + sourceType: { + type: 'void', + title: '{{t("Type")}}', + 'x-component': 'TableV2.Column', + properties: { + sourceType: { + type: 'string', + 'x-component': 'Select', + 'x-pattern': 'readPretty', + enum: '{{ types }}', + }, + }, + }, + enabled: { + type: 'void', + title: '{{t("Enabled")}}', + 'x-component': 'TableV2.Column', + properties: { + enabled: { + type: 'boolean', + 'x-component': 'CollectionField', + 'x-pattern': 'readPretty', + }, + }, + }, + actions: { + type: 'void', + title: '{{t("Actions")}}', + 'x-decorator': 'TableV2.Column.ActionBar', + 'x-component': 'TableV2.Column', + properties: { + actions: { + type: 'void', + 'x-component': 'Space', + 'x-component-props': { + split: '|', + }, + properties: { + sync: { + type: 'void', + title: '{{ t("Sync") }}', + 'x-component': 'Action.Link', + 'x-use-component-props': 'useSyncActionProps', + 'x-display': '{{ $record.enabled ? "visible" : "hidden" }}', + }, + tasks: { + type: 'void', + title: '{{ t("Tasks") }}', + 'x-component': 'Tasks', + 'x-component-props': { + type: 'primary', + }, + 'x-display': '{{ $record.enabled ? "visible" : "hidden" }}', + }, + edit: { + type: 'void', + title: '{{t("Configure")}}', + 'x-component': 'Action.Link', + 'x-component-props': { + type: 'primary', + openMode: 'drawer', + }, + properties: { + drawer: { + type: 'void', + 'x-component': 'Action.Drawer', + title: '{{t("Configure")}}', + properties: { + form: { + type: 'void', + 'x-component': 'FormV2', + 'x-use-component-props': 'useEditFormProps', + properties: { + name: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + }, + sourceType: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + 'x-component-props': { + options: '{{ types }}', + }, + }, + // displayName: { + // 'x-component': 'CollectionField', + // 'x-decorator': 'FormItem', + // }, + enabled: { + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + }, + options: { + type: 'object', + 'x-component': 'Options', + }, + footer: { + type: 'void', + 'x-component': 'Action.Drawer.Footer', + properties: { + submit: { + title: '{{t("Submit")}}', + 'x-component': 'Action', + 'x-use-component-props': 'useSubmitActionProps', + 'x-component-props': { + type: 'primary', + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + delete: { + type: 'void', + title: '{{ t("Delete") }}', + 'x-component': 'Action.Link', + 'x-use-component-props': 'useDeleteActionProps', + }, + }, + }, + }, + }, + }, + }, + }, +}; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/client/sourceType.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/sourceType.ts new file mode 100644 index 0000000000..4c5845da78 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/client/sourceType.ts @@ -0,0 +1,27 @@ +/** + * 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 { createContext, useContext } from 'react'; + +export const SourceTypeContext = createContext<{ type: string }>({ type: '' }); +SourceTypeContext.displayName = 'SourceTypeContext'; + +export const SourceTypesContext = createContext<{ + types: { + key: string; + label: string; + value: string; + }[]; +}>({ types: [] }); +SourceTypesContext.displayName = 'SourceTypesContext'; + +export const useSourceTypes = () => { + const { types } = useContext(SourceTypesContext); + return types; +}; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/index.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/index.ts new file mode 100644 index 0000000000..53bc727360 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/index.ts @@ -0,0 +1,11 @@ +/** + * 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 './server'; +export { default, UserDataResource, FormatUser, SyncAccept, OriginRecord } from './server'; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/en-US.json b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/en-US.json new file mode 100644 index 0000000000..bd58e56b76 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/en-US.json @@ -0,0 +1,19 @@ +{ + "Synchronize": "Synchronize", + "Source name": "Source name", + "Source display name": "Source display name", + "Type": "Type", + "Sync": "Sync", + "Tasks": "Tasks", + "Batch": "Batch", + "Status": "Status", + "Message": "Message", + "Init": "Init", + "Processing": "Processing", + "Success": "Success", + "Failed": "Failed", + "Authenticator": "Authenticator", + "Retry": "Retry", + "No user data source plugin installed": "No user data source plugin installed", + "View documentation": "View documentation" +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/zh-CN.json b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/zh-CN.json new file mode 100644 index 0000000000..dc72473030 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/locale/zh-CN.json @@ -0,0 +1,22 @@ +{ + "Synchronize": "同步", + "Source name": "数据源名称", + "Source display name": "数据源展示名称", + "Type": "类型", + "Sync": "同步", + "Tasks": "任务", + "Batch": "批次", + "Status": "状态", + "Message": "信息", + "Init": "初始化", + "Processing": "进行中", + "Success": "成功", + "Failed": "失败", + "Authenticator": "用户认证", + "dingtalk": "钉钉", + "wecom": "企业微信", + "default": "默认", + "Retry": "重试", + "No user data source plugin installed": "未安装同步数据源", + "View documentation": "查看文档" +} \ No newline at end of file diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/api.test.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/api.test.ts new file mode 100644 index 0000000000..dd066ead86 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/api.test.ts @@ -0,0 +1,54 @@ +/** + * 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 { MockServer, createMockServer } from '@nocobase/test'; +import { UserDataResourceManager } from '../user-data-resource-manager'; +import { MockUsersResource } from './mock-resource'; +import PluginUserDataSyncServer from '../plugin'; + +describe('api', async () => { + let app: MockServer; + let agent: any; + let resourceManager: UserDataResourceManager; + + beforeEach(async () => { + app = await createMockServer({ + plugins: ['user-data-sync'], + }); + agent = app.agent(); + const plugin = app.pm.get('user-data-sync') as PluginUserDataSyncServer; + resourceManager = plugin.resourceManager; + }); + + afterEach(async () => { + await app.destroy(); + }); + + it('push data', async () => { + const usersResource = new MockUsersResource(app.db, app.logger); + resourceManager.registerResource(usersResource); + const res = await agent.resource('userData').push({ + values: { + dataType: 'user', + records: [ + { + uid: '1', + nickname: 'test', + }, + ], + }, + }); + expect(res.status).toBe(200); + expect(usersResource.data.length).toBe(1); + expect(usersResource.data[0]).toMatchObject({ + uid: '1', + nickname: 'test', + }); + }); +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/mock-resource.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/mock-resource.ts new file mode 100644 index 0000000000..caf964996a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/mock-resource.ts @@ -0,0 +1,41 @@ +/** + * 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 { + OriginRecord, + PrimaryKey, + RecordResourceChanged, + SyncAccept, + UserDataResource, +} from '../user-data-resource-manager'; + +export class MockUsersResource extends UserDataResource { + name = 'mock-users'; + accepts: SyncAccept[] = ['user']; + data = []; + + async update(record: OriginRecord, resourcePks: PrimaryKey[]): Promise { + this.data[resourcePks[0]] = record.metaData; + return []; + } + + async create(record: OriginRecord, matchKey: string): Promise { + this.data.push(record.metaData); + return [{ resourcesPk: this.data.length - 1, isDeleted: false }]; + } +} + +export class ErrorResource extends UserDataResource { + async update(record: OriginRecord, resourcePks: PrimaryKey[]): Promise { + return []; + } + async create(record: OriginRecord, matchKey: string): Promise { + return []; + } +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/resource-manager.test.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/resource-manager.test.ts new file mode 100644 index 0000000000..8319865b93 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/__tests__/resource-manager.test.ts @@ -0,0 +1,153 @@ +/** + * 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 { MockDatabase, MockServer, createMockServer } from '@nocobase/test'; +import { UserDataResourceManager } from '../user-data-resource-manager'; +import { ErrorResource, MockUsersResource } from './mock-resource'; + +describe('user-data-resource-manager', () => { + let app: MockServer; + let db: MockDatabase; + let resourceManager: UserDataResourceManager; + + beforeEach(async () => { + app = await createMockServer({ + plugins: ['user-data-sync'], + }); + db = app.db; + resourceManager = new UserDataResourceManager(); + resourceManager.db = db; + }); + + afterEach(async () => { + await db.clean({ drop: true }); + await app.destroy(); + }); + + it('register resource error', async () => { + try { + const errResource = new ErrorResource(db, app.logger); + expect(resourceManager.registerResource(errResource)).toThrowError( + '"name" for user data synchronize resource is required', + ); + const errResource2 = new ErrorResource(db, app.logger); + errResource2.name = 'error'; + expect(resourceManager.registerResource(errResource2)).toThrowError( + '"accepts" for user data synchronize resource is required', + ); + } catch (error) { + // ... + } + }); + + it('register resource in order', async () => { + const usersResource = new MockUsersResource(db, app.logger); + resourceManager.registerResource(usersResource, { after: 'mock-users2' }); + const usersResource2 = new MockUsersResource(db, app.logger); + usersResource2.name = 'mock-users2'; + resourceManager.registerResource(usersResource2); + const nodes = resourceManager.resources.nodes; + expect(nodes.length).toBe(2); + expect(nodes).toEqual([usersResource2, usersResource]); + }); + + it('create for a resource', async () => { + const mockUsersResource = new MockUsersResource(db, app.logger); + resourceManager.registerResource(mockUsersResource); + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + records: [ + { + uid: '1', + nickname: 'test', + }, + ], + matchKey: 'uid', + }); + expect(mockUsersResource.data.length).toBe(1); + expect(mockUsersResource.data[0]).toMatchObject({ + uid: '1', + nickname: 'test', + }); + const originRecords = await resourceManager.findOriginRecords({ + sourceName: 'test', + dataType: 'user', + sourceUks: ['1'], + }); + expect(originRecords.length).toBe(1); + expect(originRecords[0]).toMatchObject({ + sourceName: 'test', + dataType: 'user', + sourceUk: '1', + metaData: { + uid: '1', + nickname: 'test', + }, + resources: [ + { + resource: 'mock-users', + resourcePk: '0', + }, + ], + }); + }); + + it('update for a resource', async () => { + const mockUsersResource = new MockUsersResource(db, app.logger); + resourceManager.registerResource(mockUsersResource); + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + records: [ + { + uid: '1', + nickname: 'test', + }, + ], + }); + expect(mockUsersResource.data.length).toBe(1); + expect(mockUsersResource.data[0]).toMatchObject({ + nickname: 'test', + }); + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + records: [ + { + uid: '1', + nickname: 'test2', + }, + ], + }); + expect(mockUsersResource.data.length).toBe(1); + expect(mockUsersResource.data[0]).toMatchObject({ + nickname: 'test2', + }); + const originRecords = await resourceManager.findOriginRecords({ + sourceName: 'test', + dataType: 'user', + sourceUks: ['1'], + }); + expect(originRecords.length).toBe(1); + expect(originRecords[0]).toMatchObject({ + sourceName: 'test', + dataType: 'user', + sourceUk: '1', + metaData: { + uid: '1', + nickname: 'test2', + }, + lastMetaData: { + uid: '1', + nickname: 'test', + }, + }); + }); +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/actions/user-data.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/actions/user-data.ts new file mode 100644 index 0000000000..6aa15f9326 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/actions/user-data.ts @@ -0,0 +1,44 @@ +/** + * 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 { Context, Next } from '@nocobase/actions'; +import { PluginUserDataSyncServer } from '../plugin'; + +export default { + listSyncTypes: async (ctx: Context, next: Next) => { + const plugin = ctx.app.pm.get(PluginUserDataSyncServer) as PluginUserDataSyncServer; + ctx.body = plugin.sourceManager.listTypes(); + await next(); + }, + pull: async (ctx: Context, next: Next) => { + const { name } = ctx.action.params; + const plugin = ctx.app.pm.get(PluginUserDataSyncServer) as PluginUserDataSyncServer; + await plugin.syncService.pull(name, ctx); + await next(); + }, + push: async (ctx: Context, next: Next) => { + const data = ctx.action.params.values || {}; + const plugin = ctx.app.pm.get(PluginUserDataSyncServer) as PluginUserDataSyncServer; + try { + const result = await plugin.syncService.push(data); + ctx.body = { code: 0, message: 'success', result }; + } catch (error) { + ctx.status = 500; + ctx.body = { code: 500, message: error.message }; + return; + } + await next(); + }, + retry: async (ctx: Context, next: Next) => { + const { sourceId, id } = ctx.action.params; + const plugin = ctx.app.pm.get(PluginUserDataSyncServer) as PluginUserDataSyncServer; + await plugin.syncService.retry(sourceId, id, ctx); + await next(); + }, +}; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/.gitkeep b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records-resources.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records-resources.ts new file mode 100644 index 0000000000..b104bebd58 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records-resources.ts @@ -0,0 +1,33 @@ +/** + * 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 { defineCollection } from '@nocobase/database'; + +export default defineCollection({ + name: 'userDataSyncRecordsResources', + fields: [ + { + name: 'recordId', + type: 'bigInt', + interface: 'id', + }, + { + name: 'resource', + interface: 'Select', + type: 'string', + allowNull: false, + }, + { + name: 'resourcePk', + interface: 'Input', + type: 'string', + allowNull: true, + }, + ], +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records.ts new file mode 100644 index 0000000000..54e5c90bb8 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-records.ts @@ -0,0 +1,64 @@ +/** + * 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 { defineCollection } from '@nocobase/database'; + +export default defineCollection({ + dumpRules: { + group: 'third-party', + }, + shared: true, + name: 'userDataSyncRecords', + createdAt: true, + updatedAt: true, + logging: true, + fields: [ + { + name: 'id', + type: 'bigInt', + autoIncrement: true, + primaryKey: true, + allowNull: false, + interface: 'id', + }, + { + name: 'sourceName', + interface: 'Input', + type: 'string', + allowNull: false, + }, + { + name: 'sourceUk', + interface: 'Input', + type: 'string', + allowNull: false, + }, + { + name: 'dataType', + interface: 'Select', + type: 'string', + allowNull: false, + }, + { + name: 'resources', + type: 'hasMany', + target: 'userDataSyncRecordsResources', + sourceKey: 'id', + foreignKey: 'recordId', + }, + { + type: 'json', + name: 'metaData', + }, + { + type: 'json', + name: 'lastMetaData', + }, + ], +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-sources.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-sources.ts new file mode 100644 index 0000000000..cedaaceadb --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-sources.ts @@ -0,0 +1,88 @@ +/** + * 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 { defineCollection } from '@nocobase/database'; + +export default defineCollection({ + dumpRules: { + group: 'third-party', + }, + shared: true, + name: 'userDataSyncSources', + title: '{{t("Sync Sources")}}', + sortable: true, + model: 'SyncSourceModel', + createdBy: true, + updatedBy: true, + logging: true, + fields: [ + { + name: 'id', + type: 'bigInt', + autoIncrement: true, + primaryKey: true, + allowNull: false, + interface: 'id', + }, + { + interface: 'input', + type: 'string', + name: 'name', + allowNull: false, + unique: true, + uiSchema: { + type: 'string', + title: '{{t("Source name")}}', + 'x-component': 'Input', + required: true, + }, + }, + { + interface: 'input', + type: 'string', + name: 'sourceType', + allowNull: false, + uiSchema: { + type: 'string', + title: '{{t("Source Type")}}', + 'x-component': 'Input', + required: true, + }, + }, + { + interface: 'input', + type: 'string', + name: 'displayName', + uiSchema: { + type: 'string', + title: '{{t("Source display name")}}', + 'x-component': 'Input', + }, + translation: true, + }, + { + type: 'boolean', + name: 'enabled', + defaultValue: false, + }, + { + type: 'json', + name: 'options', + allowNull: false, + defaultValue: {}, + }, + { + type: 'hasMany', + name: 'tasks', + target: 'userDataSyncTasks', + sourceKey: 'id', + foreignKey: 'sourceId', + }, + ], +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-tasks.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-tasks.ts new file mode 100644 index 0000000000..95d4d5de5f --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/collections/user-data-sync-tasks.ts @@ -0,0 +1,110 @@ +/** + * 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 { defineCollection } from '@nocobase/database'; + +export default defineCollection({ + dumpRules: { + group: 'third-party', + }, + name: 'userDataSyncTasks', + title: '{{t("Sync Tasks")}}', + sortable: 'sort', + model: 'SyncTaskModel', + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + logging: true, + shared: true, + fields: [ + { + name: 'id', + type: 'bigInt', + autoIncrement: true, + primaryKey: true, + allowNull: false, + interface: 'id', + }, + { + name: 'batch', + interface: 'input', + type: 'string', + allowNull: false, + unique: true, + uiSchema: { + type: 'string', + title: '{{t("Batch")}}', + 'x-component': 'Input', + required: true, + }, + }, + { + name: 'source', + interface: 'input', + type: 'belongsTo', + target: 'userDataSyncSources', + targetKey: 'id', + foreignKey: 'sourceId', + allowNull: false, + uiSchema: { + type: 'object', + title: '{{t("Source")}}', + 'x-component': 'AssociationField', + 'x-component-props': { + fieldNames: { + value: 'id', + label: 'name', + }, + }, + required: true, + 'x-read-pretty': true, + }, + }, + { + name: 'status', + interface: 'Select', + type: 'string', + allowNull: false, + uiSchema: { + type: 'string', + title: '{{t("Status")}}', + 'x-component': 'Select', + required: true, + }, + }, + { + name: 'message', + interface: 'input', + type: 'string', + allowNull: true, + uiSchema: { + type: 'string', + title: '{{t("Message")}}', + 'x-component': 'Input', + required: false, + }, + }, + { + name: 'cost', + interface: 'input', + type: 'integer', + allowNull: true, + uiSchema: { + type: 'integer', + title: '{{t("Cost")}}', + 'x-component': 'InputNumber', + 'x-component-props': { + precision: 0, + }, + required: false, + }, + }, + ], +}); diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/index.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/index.ts new file mode 100644 index 0000000000..0384832b85 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/index.ts @@ -0,0 +1,12 @@ +/** + * 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 { SyncSource } from './sync-source'; +export * from './user-data-resource-manager'; +export { default } from './plugin'; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/models/sync-source.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/models/sync-source.ts new file mode 100644 index 0000000000..647d28570d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/models/sync-source.ts @@ -0,0 +1,17 @@ +/** + * 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 { Model } from '@nocobase/database'; + +export class SyncSourceModel extends Model { + declare id: number; + declare name: string; + declare sourceType: string; + declare options: any; +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/plugin.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/plugin.ts new file mode 100644 index 0000000000..1bc33301c4 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/plugin.ts @@ -0,0 +1,71 @@ +/** + * 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 { Plugin } from '@nocobase/server'; +import { UserDataResourceManager } from './user-data-resource-manager'; +import { UserDataSyncService } from './user-data-sync-service'; +import userDataActions from './actions/user-data'; +import { SyncSourceManager } from './sync-source-manager'; +import { SyncSourceModel } from './models/sync-source'; +import { LoggerOptions, Logger } from '@nocobase/logger'; + +export class PluginUserDataSyncServer extends Plugin { + sourceManager: SyncSourceManager; + resourceManager: UserDataResourceManager; + syncService: UserDataSyncService; + + async afterAdd() {} + + async beforeLoad() { + this.app.db.registerModels({ SyncSourceModel }); + this.sourceManager = new SyncSourceManager(); + this.resourceManager = new UserDataResourceManager(); + } + + getLogger(): Logger { + const logger = this.createLogger({ + dirname: 'user-data-sync', + filename: '%DATE%.log', + format: 'json', + } as LoggerOptions); + + return logger; + } + + async load() { + const logger = this.getLogger(); + this.resourceManager.db = this.app.db; + this.resourceManager.logger = this.app.logger; + this.syncService = new UserDataSyncService(this.resourceManager, this.sourceManager, logger); + this.app.resourceManager.define({ + name: 'userData', + actions: { + listSyncTypes: userDataActions.listSyncTypes, + pull: userDataActions.pull, + push: userDataActions.push, + retry: userDataActions.retry, + }, + }); + + this.app.acl.registerSnippet({ + name: `pm.${this.name}`, + actions: ['userData:*', 'userDataSyncSources:*'], + }); + } + + async install() {} + + async afterEnable() {} + + async afterDisable() {} + + async remove() {} +} + +export default PluginUserDataSyncServer; diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source-manager.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source-manager.ts new file mode 100644 index 0000000000..c27525cfb9 --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source-manager.ts @@ -0,0 +1,58 @@ +/** + * 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 { Registry } from '@nocobase/utils'; +import { SyncSource, SyncSourceExtend } from './sync-source'; +import { Context } from '@nocobase/actions'; +import { SyncSourceModel } from './models/sync-source'; + +type SyncSourceConfig = { + syncSource: SyncSourceExtend; + title?: string; +}; + +export class SyncSourceManager { + protected syncSourceTypes: Registry = new Registry(); + registerType(syncSourceType: string, syncSourceConfig: SyncSourceConfig) { + this.syncSourceTypes.register(syncSourceType, syncSourceConfig); + } + + listTypes() { + return Array.from(this.syncSourceTypes.getEntities()).map(([syncSourceType, source]) => ({ + name: syncSourceType, + title: source.title, + })); + } + + async getByName(name: string, ctx: Context) { + const repo = ctx.db.getRepository('userDataSyncSources'); + const sourceInstance: SyncSourceModel = await repo.findOne({ filter: { enabled: true, name: name } }); + if (!sourceInstance) { + throw new Error(`SyncSource [${name}] is not found.`); + } + return this.create(sourceInstance, ctx); + } + + async getById(id: number, ctx: Context) { + const repo = ctx.db.getRepository('userDataSyncSources'); + const sourceInstance: SyncSourceModel = await repo.findOne({ filter: { enabled: true }, filterByTk: id }); + if (!sourceInstance) { + throw new Error(`SyncSource [${id}] is not found.`); + } + return this.create(sourceInstance, ctx); + } + + create(sourceInstance: SyncSourceModel, ctx: Context) { + const { syncSource } = this.syncSourceTypes.get(sourceInstance.sourceType) || {}; + if (!syncSource) { + throw new Error(`SyncSourceType [${sourceInstance.sourceType}] is not found.`); + } + return new syncSource({ sourceInstance: sourceInstance, options: sourceInstance.options, ctx }); + } +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source.ts new file mode 100644 index 0000000000..0be03bb65a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/sync-source.ts @@ -0,0 +1,106 @@ +/** + * 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 { Context } from '@nocobase/actions'; +import { SyncSourceModel } from './models/sync-source'; +import { UserData } from './user-data-resource-manager'; +import dayjs from 'dayjs'; + +export type SyncSourceConfig = { + sourceInstance: SyncSourceModel; + options: { + [key: string]: any; + }; + ctx: Context; +}; + +interface ISyncSource { + pull(): Promise; +} + +export abstract class SyncSource implements ISyncSource { + instance: SyncSourceModel; + protected options: { + [key: string]: any; + }; + protected ctx: Context; + + constructor(config: SyncSourceConfig) { + const { options, ctx, sourceInstance } = config; + this.instance = sourceInstance; + this.options = options; + this.ctx = ctx; + } + + abstract pull(): Promise; + + async newTask() { + const batch = generateUniqueNumber(); + return await this.instance.createTask({ batch, status: 'init' }); + } + + async beginTask(taskId: number) { + const tasks = await this.instance.getTasks({ where: { id: taskId } }); + if (!tasks && !tasks.length) { + throw new Error(`Task [${taskId}] is not found.`); + } + const task = tasks[0]; + if (task.status !== 'init') { + throw new Error(`Task [${taskId}] is not init.`); + } + task.status = 'processing'; + await task.save(); + } + + async endTask(params: EndTaskParams) { + const { taskId, success, cost, message } = params; + const tasks = await this.instance.getTasks({ where: { id: taskId } }); + if (!tasks && !tasks.length) { + throw new Error(`Task [${taskId}] is not found.`); + } + const task = tasks[0]; + if (task.status !== 'processing') { + throw new Error(`Task [${taskId}] is not processing.`); + } + task.status = success ? 'success' : 'failed'; + task.cost = cost; + task.message = message; + await task.save(); + } + + async retryTask(taskId: number) { + const tasks = await this.instance.getTasks({ where: { id: taskId } }); + if (!tasks && !tasks.length) { + throw new Error(`Task [${taskId}] is not found.`); + } + const task = tasks[0]; + if (task.status !== 'failed') { + throw new Error(`Task [${taskId}] is not failed.`); + } + task.status = 'processing'; + task.message = ''; + await task.save(); + return task; + } +} + +export type SyncSourceExtend = new (config: SyncSourceConfig) => T; + +type EndTaskParams = { + taskId: number; + success: boolean; + cost?: number; + message?: string; +}; + +function generateUniqueNumber() { + const formattedDate = dayjs().format('YYYYMMDDHHmmss'); + const randomDigits = Math.floor(100000 + Math.random() * 900000); + return formattedDate + randomDigits; +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-resource-manager.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-resource-manager.ts new file mode 100644 index 0000000000..fa0aac086e --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-resource-manager.ts @@ -0,0 +1,268 @@ +/** + * 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 { Toposort, ToposortOptions } from '@nocobase/utils'; +import Database, { Repository } from '@nocobase/database'; +import { SystemLogger } from '@nocobase/logger'; + +export type FormatUser = { + uid: string; + username?: string; + email?: string; + nickname?: string; + phone?: string; + departments?: string[]; + isDeleted?: boolean; + [key: string]: any; +}; + +export type FormatDepartment = { + uid: string; + title?: string; + parentUid?: string; + isDeleted?: boolean; + [key: string]: any; +}; + +export type UserDataRecord = FormatUser | FormatDepartment; + +export type SyncDataType = 'user' | 'department'; + +export type SyncAccept = SyncDataType; + +export type OriginRecord = { + id: number; + sourceName: string; + sourceUk: string; + dataType: SyncDataType; + metaData: UserDataRecord; + resources: { + resource: string; + resourcePk: string; + }[]; +}; + +export type UserData = { + dataType: SyncDataType; + matchKey?: string; + records: UserDataRecord[]; + sourceName: string; +}; + +export type PrimaryKey = number | string; + +export type RecordResourceChanged = { + resourcesPk: PrimaryKey; + isDeleted: boolean; +}; + +export abstract class UserDataResource { + name: string; + accepts: SyncAccept[]; + db: Database; + logger: SystemLogger; + + constructor(db: Database, logger: SystemLogger) { + this.db = db; + this.logger = logger; + } + + abstract update(record: OriginRecord, resourcePks: PrimaryKey[], matchKey?: string): Promise; + abstract create(record: OriginRecord, matchKey: string): Promise; + + get syncRecordRepo() { + return this.db.getRepository('userDataSyncRecords'); + } + + get syncRecordResourceRepo() { + return this.db.getRepository('userDataSyncRecordsResources'); + } +} + +export type SyncResult = { + resource: string; + detail: { + count: { + all: number; + success: number; + failed: number; + }; + failedRecords: { + record: UserDataRecord; + message: string; + }[]; + }; +}; + +export class UserDataResourceManager { + resources = new Toposort(); + syncRecordRepo: Repository; + syncRecordResourceRepo: Repository; + logger: SystemLogger; + + registerResource(resource: UserDataResource, options?: ToposortOptions) { + if (!resource.name) { + throw new Error('"name" for user data synchronize resource is required'); + } + if (!resource.accepts) { + throw new Error('"accepts" for user data synchronize resource is required'); + } + this.resources.add(resource, { tag: resource.name, ...options }); + } + + set db(value: Database) { + this.syncRecordRepo = value.getRepository('userDataSyncRecords'); + this.syncRecordResourceRepo = value.getRepository('userDataSyncRecordsResources'); + } + + async saveOriginRecords(data: UserData): Promise { + for (const record of data.records) { + if (record.uid === undefined) { + throw new Error(`record must has uid, error record: ${JSON.stringify(record)}`); + } + const syncRecord = await this.syncRecordRepo.findOne({ + where: { + sourceName: data.sourceName, + sourceUk: record.uid, + dataType: data.dataType, + }, + }); + if (syncRecord) { + syncRecord.lastMetaData = syncRecord.metaData; + syncRecord.metaData = record; + await syncRecord.save(); + } else { + await this.syncRecordRepo.create({ + values: { + sourceName: data.sourceName, + sourceUk: record.uid, + dataType: data.dataType, + metaData: record, + }, + }); + } + } + } + + async findOriginRecords({ sourceName, dataType, sourceUks }): Promise { + return await this.syncRecordRepo.find({ + appends: ['resources'], + filter: { sourceName, dataType, sourceUk: { $in: sourceUks } }, + }); + } + + async addResourceToOriginRecord({ recordId, resource, resourcePk }): Promise { + const syncRecord = await this.syncRecordRepo.findOne({ + filter: { + id: recordId, + }, + }); + if (syncRecord) { + await syncRecord.createResource({ + resource, + resourcePk, + }); + } + } + + async removeResourceFromOriginRecord({ recordId, resource, resourcePk }): Promise { + const recordResource = await this.syncRecordResourceRepo.findOne({ + where: { + recordId, + resource, + resourcePk, + }, + }); + if (recordResource) { + await recordResource.destroy(); + } + } + + async updateOrCreate(data: UserData): Promise { + await this.saveOriginRecords(data); + const { dataType, sourceName, records, matchKey } = data; + const sourceUks = records.map((record) => record.uid); + let processed = false; + const syncResults: SyncResult[] = []; + for (const resource of this.resources.nodes) { + if (!resource.accepts.includes(dataType)) { + continue; + } + const associateResource = resource.name; + processed = true; + const originRecords = await this.findOriginRecords({ sourceName, sourceUks, dataType }); + if (!(originRecords && originRecords.length)) { + continue; + } + const successRecords = []; + const failedRecords = []; + for (const originRecord of originRecords) { + const resourceRecords = originRecord.resources?.filter( + (r: { resource: string }) => r.resource === associateResource, + ); + let recordResourceChangeds: RecordResourceChanged[]; + if (resourceRecords && resourceRecords.length > 0) { + const resourcePks = resourceRecords.map((r: { resourcePk: string }) => r.resourcePk); + try { + recordResourceChangeds = await resource.update(originRecord, resourcePks, matchKey); + this.logger?.debug(`update record success. Data changed: ${JSON.stringify(recordResourceChangeds)}`); + successRecords.push(originRecord.metaData); + } catch (error) { + this.logger?.warn(`update record error: ${error.message}`, { originRecord }); + failedRecords.push({ record: originRecord.metaData, message: error.message }); + continue; + } + } else { + try { + recordResourceChangeds = await resource.create(originRecord, matchKey); + this.logger?.debug(`create record success. Data changed: ${JSON.stringify(recordResourceChangeds)}`); + successRecords.push(originRecord.metaData); + } catch (error) { + this.logger?.warn(`create record error: ${error.message}`, { originRecord }); + failedRecords.push({ record: originRecord.metaData, message: error.message }); + continue; + } + } + if (!recordResourceChangeds || recordResourceChangeds.length === 0) { + continue; + } + for (const { resourcesPk, isDeleted } of recordResourceChangeds) { + if (isDeleted) { + await this.removeResourceFromOriginRecord({ + recordId: originRecord.id, + resource: associateResource, + resourcePk: resourcesPk, + }); + } else { + await this.addResourceToOriginRecord({ + recordId: originRecord.id, + resource: associateResource, + resourcePk: resourcesPk, + }); + } + } + } + syncResults.push({ + resource: associateResource, + detail: { + count: { + all: originRecords.length, + success: successRecords.length, + failed: failedRecords.length, + }, + failedRecords, + }, + }); + } + if (!processed) { + throw new Error(`dataType "${dataType}" is not support`); + } + return syncResults; + } +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-sync-service.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-sync-service.ts new file mode 100644 index 0000000000..76bd25f69b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/server/user-data-sync-service.ts @@ -0,0 +1,111 @@ +/** + * 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 { SyncResult, UserData, UserDataResourceManager } from './user-data-resource-manager'; +import { SyncSourceManager } from './sync-source-manager'; +import { Context } from '@nocobase/actions'; +import { SyncSource } from './sync-source'; +import { Logger } from '@nocobase/logger'; + +export class UserDataSyncService { + resourceManager: UserDataResourceManager; + sourceManager: SyncSourceManager; + logger: Logger; + + constructor(resourceManager: UserDataResourceManager, sourceManager: SyncSourceManager, logger: Logger) { + this.resourceManager = resourceManager; + this.sourceManager = sourceManager; + this.logger = logger; + } + + async pull(sourceName: string, ctx: Context) { + const source = await this.sourceManager.getByName(sourceName, ctx); + const task = await source.newTask(); + await source.beginTask(task.id); + ctx.log.info('begin sync task of source', { source: sourceName, sourceType: source.instance.sourceType }); + this.runSync(source, task, ctx); + } + + async push(data: any): Promise { + const { dataType, records } = data; + if (dataType === undefined) { + throw new Error('dataType for user data synchronize is required'); + } + if (dataType !== 'user' && dataType !== 'department') { + throw new Error('dataType must be user or department'); + } + if (records === undefined) { + throw new Error('records for user data synchronize is required'); + } + if (records.length === 0) { + throw new Error('records must have at least one piece of data'); + } + const userData: UserData = { + dataType: data.dataType, + matchKey: data.matchKey, + records: data.records, + sourceName: data.sourceName ? data.sourceName : 'api', + }; + this.logger.info({ + source: data.sourceName ? data.sourceName : 'api', + sourceType: 'api', + data: data, + }); + return await this.resourceManager.updateOrCreate(userData); + } + + async retry(sourceId: number, taskId: number, ctx: Context) { + const source = await this.sourceManager.getById(sourceId, ctx); + const task = await source.retryTask(taskId); + ctx.log.info('retry sync task of source', { + source: source.instance.name, + sourceType: source.instance.name, + task: task.id, + }); + this.runSync(source, task, ctx); + } + + async runSync(source: SyncSource, task: any, ctx: Context) { + const currentTimeMillis = new Date().getTime(); + try { + ctx.log.info('begin pull data of source', { + source: source.instance.name, + sourceType: source.instance.sourceType, + }); + const data = await source.pull(); + // 输出拉取的数据 + this.logger.info({ + source: source.instance.name, + sourceType: source.instance.sourceType, + batch: task.batch, + data: data, + }); + ctx.log.info('end pull data of source', { source: source.instance.name, sourceType: source.instance.sourceType }); + ctx.log.info('begin update data of source', { + source: source.instance.name, + sourceType: source.instance.sourceType, + }); + for (const item of data) { + await this.resourceManager.updateOrCreate(item); + } + ctx.log.info('end update data of source', { + source: source.instance.name, + sourceType: source.instance.sourceType, + }); + const costTime = new Date().getTime() - currentTimeMillis; + await source.endTask({ taskId: task.id, success: true, cost: costTime }); + } catch (err) { + ctx.log.error( + `sync task of source: ${source.instance.name} sourceType: ${source.instance.sourceType} error: ${err.message}`, + { method: 'runSync', err: err.stack, cause: err.cause }, + ); + await source.endTask({ taskId: task.id, success: false, message: err.message }); + } + } +} diff --git a/packages/plugins/@nocobase/plugin-user-data-sync/src/swagger/index.ts b/packages/plugins/@nocobase/plugin-user-data-sync/src/swagger/index.ts new file mode 100644 index 0000000000..6cb7f81a0d --- /dev/null +++ b/packages/plugins/@nocobase/plugin-user-data-sync/src/swagger/index.ts @@ -0,0 +1,121 @@ +/** + * 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 default { + info: { + title: 'NocoBase API - User data synchronization plugin', + }, + paths: { + '/userData:push': { + post: { + description: 'Push user data', + tags: ['Push'], + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'array', + items: { + $ref: '#/components/schemas/userData', + }, + }, + }, + }, + }, + responses: { + 200: { + description: 'ok', + }, + }, + }, + }, + }, + components: { + schemas: { + userData: { + type: 'object', + description: '用户数据', + properties: { + dataType: { + type: 'string', + description: '数据类型, 目前可选值为: user, department', + }, + uniqueKey: { + type: 'string', + description: '唯一键', + }, + records: { + type: 'array', + description: + '数据, 若 dataType 为 user, 则为用户数据字段见schemas/user, 若 dataType 为 department, 则为部门数据字段见schemas/department', + items: { + type: 'object', + }, + }, + sourceName: { + type: 'string', + description: '数据源名称', + }, + }, + }, + user: { + type: 'object', + description: '用户', + properties: { + id: { + type: 'integer', + description: 'ID', + }, + nickname: { + type: 'string', + description: '昵称', + }, + email: { + type: 'string', + description: '邮箱', + }, + phone: { + type: 'string', + description: '手机号', + }, + departments: { + type: 'array', + description: '所属部门, 部门ID 数组', + items: { + type: 'string', + }, + }, + }, + }, + department: { + type: 'object', + description: '部门', + properties: { + id: { + type: 'string', + description: 'ID', + }, + name: { + type: 'string', + description: '名称', + }, + parentId: { + type: 'string', + description: '父级部门ID', + }, + }, + }, + }, + }, +}; + +/* +/api/userData:push +*/ diff --git a/packages/plugins/@nocobase/plugin-users/package.json b/packages/plugins/@nocobase/plugin-users/package.json index de694f975f..d1163f130a 100644 --- a/packages/plugins/@nocobase/plugin-users/package.json +++ b/packages/plugins/@nocobase/plugin-users/package.json @@ -19,6 +19,7 @@ "@nocobase/database": "1.x", "@nocobase/plugin-acl": "1.x", "@nocobase/plugin-auth": "1.x", + "@nocobase/plugin-user-data-sync": "1.x", "@nocobase/resourcer": "1.x", "@nocobase/server": "1.x", "@nocobase/test": "1.x", diff --git a/packages/plugins/@nocobase/plugin-users/src/server/__tests__/data-sync.test.ts b/packages/plugins/@nocobase/plugin-users/src/server/__tests__/data-sync.test.ts new file mode 100644 index 0000000000..816925a7dd --- /dev/null +++ b/packages/plugins/@nocobase/plugin-users/src/server/__tests__/data-sync.test.ts @@ -0,0 +1,122 @@ +/** + * 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 { UserDataResourceManager } from '@nocobase/plugin-user-data-sync'; +import { MockDatabase, MockServer, createMockServer } from '@nocobase/test'; +import PluginUserDataSyncServer from 'packages/plugins/@nocobase/plugin-user-data-sync/src/server/plugin'; + +describe('user data sync', () => { + let app: MockServer; + let db: MockDatabase; + let resourceManager: UserDataResourceManager; + + beforeEach(async () => { + app = await createMockServer({ + plugins: ['user-data-sync', 'users'], + }); + db = app.db; + const plugin = app.pm.get('user-data-sync') as PluginUserDataSyncServer; + resourceManager = plugin.resourceManager; + }); + + afterEach(async () => { + await db.clean({ drop: true }); + await app.destroy(); + }); + + it('should create user', async () => { + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + matchKey: 'email', + records: [ + { + uid: '1', + nickname: 'test', + email: 'test@nocobase.com', + }, + ], + }); + const user = await db.getRepository('users').findOne({ + filter: { + email: 'test@nocobase.com', + }, + }); + expect(user).toBeTruthy(); + expect(user.nickname).toBe('test'); + }); + + it('should update existing user when creating', async () => { + const user = await db.getRepository('users').create({ + values: { + email: 'test@nocobase.com', + }, + }); + expect(user.nickname).toBeFalsy(); + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + matchKey: 'email', + records: [ + { + uid: '1', + nickname: 'test', + email: 'test@nocobase.com', + }, + ], + }); + const user2 = await db.getRepository('users').findOne({ + filter: { + id: user.id, + }, + }); + expect(user2).toBeTruthy(); + expect(user2.nickname).toBe('test'); + }); + + it('shoud update user', async () => { + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + matchKey: 'email', + records: [ + { + uid: '1', + nickname: 'test', + email: 'test@nocobase.com', + }, + ], + }); + const user = await db.getRepository('users').findOne({ + filter: { + email: 'test@nocobase.com', + }, + }); + expect(user).toBeTruthy(); + await resourceManager.updateOrCreate({ + sourceName: 'test', + dataType: 'user', + matchKey: 'email', + records: [ + { + uid: '1', + nickname: 'test2', + email: 'test@nocobase.com', + }, + ], + }); + const user2 = await db.getRepository('users').findOne({ + filter: { + id: user.id, + }, + }); + expect(user2).toBeTruthy(); + expect(user2.nickname).toBe('test2'); + }); +}); diff --git a/packages/plugins/@nocobase/plugin-users/src/server/server.ts b/packages/plugins/@nocobase/plugin-users/src/server/server.ts index 54aa0f0c44..ac4d218e0b 100644 --- a/packages/plugins/@nocobase/plugin-users/src/server/server.ts +++ b/packages/plugins/@nocobase/plugin-users/src/server/server.ts @@ -11,10 +11,11 @@ import { Collection, Op } from '@nocobase/database'; import { Plugin } from '@nocobase/server'; import { parse } from '@nocobase/utils'; import { resolve } from 'path'; - import { Cache } from '@nocobase/cache'; import * as actions from './actions/users'; import { UserModel } from './models/UserModel'; +import PluginUserDataSyncServer from '@nocobase/plugin-user-data-sync'; +import { UserDataSyncResource } from './user-data-sync-resource'; export default class PluginUsersServer extends Plugin { async beforeLoad() { @@ -179,6 +180,11 @@ export default class PluginUsersServer extends Plugin { } } }); + + const userDataSyncPlugin = this.app.pm.get('user-data-sync') as PluginUserDataSyncServer; + if (userDataSyncPlugin) { + userDataSyncPlugin.resourceManager.registerResource(new UserDataSyncResource(this.db, this.app.logger)); + } } getInstallingData(options: any = {}) { diff --git a/packages/plugins/@nocobase/plugin-users/src/server/user-data-sync-resource.ts b/packages/plugins/@nocobase/plugin-users/src/server/user-data-sync-resource.ts new file mode 100644 index 0000000000..ec9137059b --- /dev/null +++ b/packages/plugins/@nocobase/plugin-users/src/server/user-data-sync-resource.ts @@ -0,0 +1,102 @@ +/** + * 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 { Model } from '@nocobase/database'; +import { + FormatUser, + OriginRecord, + PrimaryKey, + RecordResourceChanged, + SyncAccept, + UserDataResource, +} from '@nocobase/plugin-user-data-sync'; + +export class UserDataSyncResource extends UserDataResource { + name = 'users'; + accepts: SyncAccept[] = ['user']; + + get userRepo() { + return this.db.getRepository('users'); + } + + async updateUser(user: Model, sourceUser: FormatUser) { + if (sourceUser.isDeleted) { + // 删除用户 + const roles = await user.getRoles(); + // 是否有Root角色 + for (const role of roles) { + if (role.name === 'root') { + return; + } + } + await user.destroy(); + return; + } + let dataChanged = false; + if (sourceUser.username !== undefined && user.username !== sourceUser.username) { + user.username = sourceUser.username; + dataChanged = true; + } + if (sourceUser.phone !== undefined && user.phone !== sourceUser.phone) { + user.phone = sourceUser.phone; + dataChanged = true; + } + if (sourceUser.email !== undefined && user.email !== sourceUser.email) { + user.email = sourceUser.email; + dataChanged = true; + } + if (sourceUser.nickname !== undefined && user.nickname !== sourceUser.nickname) { + user.nickname = sourceUser.nickname; + dataChanged = true; + } + if (dataChanged) { + await user.save(); + } + } + + async update(record: OriginRecord, resourcePks: PrimaryKey[], matchKey: string): Promise { + const { metaData: sourceUser } = record; + const resourcePk = resourcePks[0]; + const user = await this.userRepo.findOne({ + filterByTk: resourcePk, + }); + if (!user) { + // 用户不存在, 重新创建用户 + const result = await this.create(record, matchKey); + return [...result, { resourcesPk: resourcePk, isDeleted: true }]; + } + await this.updateUser(user, sourceUser); + return []; + } + + async create(record: OriginRecord, matchKey: string): Promise { + const { metaData: sourceUser } = record; + const filter = {}; + let user: any; + if (['phone', 'email', 'username'].includes(matchKey)) { + filter[matchKey] = sourceUser[matchKey]; + user = await this.userRepo.findOne({ + filter, + }); + } + if (user) { + await this.updateUser(user, sourceUser); + } else { + user = await this.userRepo.create({ + values: { + nickname: sourceUser.nickname, + phone: sourceUser.phone, + email: sourceUser.email, + username: sourceUser.username, + }, + }); + } + return [{ resourcesPk: user.id, isDeleted: false }]; + } +} diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 5b89f1b465..abc22716df 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -52,6 +52,7 @@ "@nocobase/plugin-theme-editor": "1.4.0-alpha", "@nocobase/plugin-ui-schema-storage": "1.4.0-alpha", "@nocobase/plugin-users": "1.4.0-alpha", + "@nocobase/plugin-user-data-sync": "1.4.0-alpha", "@nocobase/plugin-verification": "1.4.0-alpha", "@nocobase/plugin-workflow": "1.4.0-alpha", "@nocobase/plugin-workflow-action-trigger": "1.4.0-alpha", diff --git a/packages/presets/nocobase/src/server/index.ts b/packages/presets/nocobase/src/server/index.ts index 44d8a948ed..49e2c0aed9 100644 --- a/packages/presets/nocobase/src/server/index.ts +++ b/packages/presets/nocobase/src/server/index.ts @@ -22,6 +22,7 @@ export class PresetNocoBase extends Plugin { 'field-sequence', 'verification', 'users', + 'user-data-sync', 'acl', 'field-china-region', 'workflow', From 685f0764f17d2f5ade1428ad4d70b57939cfefa0 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Tue, 27 Aug 2024 06:46:25 +0800 Subject: [PATCH 13/17] chore: optimize pro image build ci (#5140) * chore: optimize pro image build ci * chore: update * chore: update * fix: branch --- .github/workflows/build-pro-image.yml | 49 ++++++++++++++++++-- .github/workflows/manual-build-pro-image.yml | 34 ++++++++++++-- .github/workflows/release-next.yml | 16 +++---- .github/workflows/release.yml | 16 +++---- 4 files changed, 91 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build-pro-image.yml b/.github/workflows/build-pro-image.yml index de5761a3a2..a1deadc821 100644 --- a/.github/workflows/build-pro-image.yml +++ b/.github/workflows/build-pro-image.yml @@ -15,8 +15,12 @@ on: - '.github/workflows/build-pro-image.yml' jobs: - build-and-push: + app-token: if: github.event.pull_request.head.repo.fork != true + uses: nocobase/nocobase/.github/workflows/get-nocobase-app-token.yml@main + secrets: inherit + build-and-push: + needs: app-token runs-on: ubuntu-latest services: verdaccio: @@ -24,10 +28,18 @@ jobs: ports: - 4873:4873 steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v3 with: - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} submodules: true - name: Checkout pro-plugins uses: actions/checkout@v3 @@ -36,7 +48,14 @@ jobs: ref: main path: packages/pro-plugins fetch-depth: 0 - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} + - name: Clone pro repos + shell: bash + run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + git clone -b main https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo + done - run: | cd packages/pro-plugins && if git show-ref --quiet refs/remotes/origin/${{ github.head_ref || github.ref_name }}; then @@ -48,8 +67,30 @@ jobs: git checkout main fi fi + - run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + cd ./packages/pro-plugins/@nocobase/$repo + if git show-ref --quiet refs/remotes/origin/${{ github.head_ref || github.ref_name }}; then + git checkout ${{ github.head_ref || github.ref_name }} + else + if git show-ref --quiet refs/remotes/origin/${{ github.event.pull_request.base.ref }}; then + git checkout ${{ github.event.pull_request.base.ref }} + else + git checkout main + fi + fi + cd ../../../../ + done - name: rm .git - run: rm -rf packages/pro-plugins/.git && git config --global user.email "you@example.com" && git config --global user.name "Your Name" && git add -A && git commit -m "tmp commit" + run: | + rm -rf packages/pro-plugins/.git + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + rm -rf packages/pro-plugins/@nocobase/$repo/.git + done + git config --global user.email "you@example.com" + git config --global user.name "Your Name" && git add -A && git commit -m "tmp commit" - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx diff --git a/.github/workflows/manual-build-pro-image.yml b/.github/workflows/manual-build-pro-image.yml index fbddf5f7a4..b23c8be2f2 100644 --- a/.github/workflows/manual-build-pro-image.yml +++ b/.github/workflows/manual-build-pro-image.yml @@ -16,8 +16,12 @@ on: required: true jobs: - build-and-push: + app-token: if: github.event.pull_request.head.repo.fork != true + uses: nocobase/nocobase/.github/workflows/get-nocobase-app-token.yml@main + secrets: inherit + build-and-push: + needs: app-token runs-on: ubuntu-latest services: verdaccio: @@ -25,11 +29,19 @@ jobs: ports: - 4873:4873 steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v3 with: ref: ${{ github.event.inputs.base_branch }} - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} submodules: true - name: Set PR branch id: set_pro_pr_branch @@ -43,9 +55,23 @@ jobs: repository: nocobase/pro-plugins path: packages/pro-plugins ref: ${{ steps.set_pro_pr_branch.outputs.pr_branch || 'main' }} - ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }} + token: ${{ steps.app-token.outputs.token }} + - name: Clone pro repos + shell: bash + run: | + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + git clone -b ${{ steps.set_pro_pr_branch.outputs.pr_branch || 'main' }} https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo + done - name: rm .git - run: rm -rf packages/pro-plugins/.git && git config --global user.email "you@example.com" && git config --global user.name "Your Name" && git add -A && git commit -m "tmp commit" + run: | + rm -rf packages/pro-plugins/.git + for repo in ${{ join(fromJSON(vars.PRO_PLUGIN_REPOS), ' ') }} + do + rm -rf packages/pro-plugins/@nocobase/$repo/.git + done + git config --global user.email "you@example.com" + git config --global user.name "Your Name" && git add -A && git commit -m "tmp commit" - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx diff --git a/.github/workflows/release-next.yml b/.github/workflows/release-next.yml index 94630afd7c..cd05b0d368 100644 --- a/.github/workflows/release-next.yml +++ b/.github/workflows/release-next.yml @@ -16,6 +16,14 @@ jobs: container: node:18 needs: app-token steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v4 with: @@ -85,14 +93,6 @@ jobs: git commit -m "chore(versions): test publish packages xxx" cat lerna.json yarn release:force --no-verify-access --no-git-reset --registry https://registry.npmjs.org/ --dist-tag=next - - name: Decrypt app token - id: app-token - shell: bash - run: | - ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; - BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); - APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); - echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout pro-plugins uses: actions/checkout@v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dd301f0e28..de07b0f00d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,6 +18,14 @@ jobs: container: node:18 needs: app-token steps: + - name: Decrypt app token + id: app-token + shell: bash + run: | + ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; + BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); + APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); + echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v3 - name: Send curl request and parse response @@ -59,14 +67,6 @@ jobs: yarn config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} npm whoami yarn release:force --no-verify-access --no-git-reset --registry https://registry.npmjs.org/ - - name: Decrypt app token - id: app-token - shell: bash - run: | - ENCRYPTED_SECRET=${{ needs.app-token.outputs.token }}; - BINARY_ENCRYPTED_SECRET=$(echo -n "$ENCRYPTED_SECRET" | base64 --decode); - APP_TOKEN=$(echo -n "$BINARY_ENCRYPTED_SECRET" | openssl enc -aes-256-cbc -pbkdf2 -d -salt -k "${{ secrets.APP_TOKEN_ENCRYPTION_PASSWORD }}"); - echo "token=$APP_TOKEN" >> $GITHUB_OUTPUT - name: Checkout pro-plugins uses: actions/checkout@v3 with: From 1de0ce5e1a28640a3faee6ced4f163f1e9ddd660 Mon Sep 17 00:00:00 2001 From: chenos Date: Tue, 27 Aug 2024 07:15:54 +0800 Subject: [PATCH 14/17] fix: use the built-in logo file (#5032) * fix: logo url * fix: logo with internal url * fix: tz * fix: improve code * fix: tz * fix: tz * fix: test case * fix: tz --- packages/core/app/client/public/nocobase.png | Bin 0 -> 11186 bytes packages/core/cli/src/util.js | 6 +- .../src/server/__tests__/sync.test.ts | 55 ++++-------------- .../src/server/logo.png | Bin 0 -> 11186 bytes .../src/server/server.ts | 27 ++++++--- 5 files changed, 36 insertions(+), 52 deletions(-) create mode 100644 packages/core/app/client/public/nocobase.png create mode 100644 packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png diff --git a/packages/core/app/client/public/nocobase.png b/packages/core/app/client/public/nocobase.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6625caaa7b324dfec0b85a60ac2aad30a1f649 GIT binary patch literal 11186 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 literal 0 HcmV?d00001 diff --git a/packages/core/cli/src/util.js b/packages/core/cli/src/util.js index c18ad659d0..eb3acd54f8 100644 --- a/packages/core/cli/src/util.js +++ b/packages/core/cli/src/util.js @@ -313,7 +313,7 @@ function areTimeZonesEqual(timeZone1, timeZone2) { } timeZone1 = getTimezonesByOffset(timeZone1); timeZone2 = getTimezonesByOffset(timeZone2); - return moment.tz(timeZone1).format() === moment.tz(timeZone2).format(); + return moment.tz(timeZone1).format('Z') === moment.tz(timeZone2).format('Z'); } exports.initEnv = function initEnv() { @@ -406,6 +406,10 @@ exports.initEnv = function initEnv() { process.env.DB_TIMEZONE = process.env.TZ; } + if (!/^[+-]\d{1,2}:\d{2}$/.test(process.env.DB_TIMEZONE)) { + process.env.DB_TIMEZONE = moment.tz(process.env.DB_TIMEZONE).format('Z'); + } + if (!areTimeZonesEqual(process.env.DB_TIMEZONE, process.env.TZ)) { throw new Error( `process.env.DB_TIMEZONE="${process.env.DB_TIMEZONE}" and process.env.TZ="${process.env.TZ}" are different`, diff --git a/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts b/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts index 2a1aae5043..2291fc041c 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts +++ b/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts @@ -7,9 +7,9 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Repository } from '@nocobase/database'; import { MockDatabase, MockServer, createMockServer } from '@nocobase/test'; import Migration from '../migrations/20240802141435-collection-tree'; -import { Repository } from '@nocobase/database'; describe('tree collection sync', async () => { let app: MockServer; @@ -77,38 +77,25 @@ describe('collection tree migrate test', () => { { type: 'belongsTo', name: 'parent', + foreignKey: 'parentId', + target: 'test_tree', treeParent: true, }, { type: 'hasMany', name: 'children', + foreignKey: 'parentId', + target: 'test_tree', treeChildren: true, }, ], }, + context: {}, }); - const collection = db.collection({ - name: 'test_tree', - tree: 'adjacency-list', - fields: [ - { - type: 'string', - name: 'name', - }, - { - type: 'belongsTo', - name: 'parent', - treeParent: true, - }, - { - type: 'hasMany', - name: 'children', - treeChildren: true, - }, - ], - }); - await collection.sync(); - await collection.repository.create({ + await app.db.getCollection('test_tree').model.truncate(); + await app.db.getCollection('main_test_tree_path').model.truncate(); + const repository = app.db.getRepository('test_tree'); + await repository.create({ values: [ { name: 'c1', @@ -131,7 +118,6 @@ describe('collection tree migrate test', () => { }); afterEach(async () => { - await app.db.clean({ drop: true }); await app.destroy(); }); @@ -164,26 +150,7 @@ describe('collection tree migrate test', () => { }, }); expect(p.name).toBe('collection-tree'); - const collection1 = db.collection({ - name: 'test_tree', - tree: 'adjacency-list', - fields: [ - { - type: 'string', - name: 'name', - }, - { - type: 'belongsTo', - name: 'parent', - treeParent: true, - }, - { - type: 'hasMany', - name: 'children', - treeChildren: true, - }, - ], - }); + const collection1 = db.getCollection('test_tree'); const pathCollection1 = db.getCollection(name); expect(pathCollection1).toBeTruthy(); expect(await pathCollection1.existsInDb()).toBeTruthy(); diff --git a/packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png b/packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6625caaa7b324dfec0b85a60ac2aad30a1f649 GIT binary patch literal 11186 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 literal 0 HcmV?d00001 diff --git a/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts b/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts index 326271631c..87d51fb5e7 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts +++ b/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts @@ -7,6 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import PluginFileManagerServer from '@nocobase/plugin-file-manager'; import { InstallOptions, Plugin } from '@nocobase/server'; import { resolve } from 'path'; @@ -16,18 +17,30 @@ export class PluginSystemSettingsServer extends Plugin { } async install(options?: InstallOptions) { + const plugin = this.pm.get('file-manager') as PluginFileManagerServer; + const logo = plugin + ? await plugin.createFileRecord({ + filePath: resolve(__dirname, './logo.png'), + collectionName: 'attachments', + values: { + title: 'nocobase-logo', + extname: '.png', + mimetype: 'image/png', + }, + }) + : { + title: 'nocobase-logo', + filename: '682e5ad037dd02a0fe4800a3e91c283b.png', + extname: '.png', + mimetype: 'image/png', + url: '/nocobase.png', + }; await this.db.getRepository('systemSettings').create({ values: { title: 'NocoBase', appLang: this.getInitAppLang(options), enabledLanguages: [this.getInitAppLang(options)], - logo: { - title: 'nocobase-logo', - filename: '682e5ad037dd02a0fe4800a3e91c283b.png', - extname: '.png', - mimetype: 'image/png', - url: 'https://nocobase.oss-cn-beijing.aliyuncs.com/682e5ad037dd02a0fe4800a3e91c283b.png', - }, + logo, }, }); } From 5a41ab063c8eea8bb0240cc6baf5d485b4fe9f84 Mon Sep 17 00:00:00 2001 From: xilesun <2013xile@gmail.com> Date: Tue, 27 Aug 2024 08:25:43 +0800 Subject: [PATCH 15/17] fix(release): remove continue-on-error for build step --- .github/workflows/release-next.yml | 1 - .github/workflows/release.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/release-next.yml b/.github/workflows/release-next.yml index cd05b0d368..004f01065f 100644 --- a/.github/workflows/release-next.yml +++ b/.github/workflows/release-next.yml @@ -108,7 +108,6 @@ jobs: git clone -b next https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo done - name: Build Pro plugins - continue-on-error: true run: | yarn config set registry https://registry.npmjs.org/ yarn install diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de07b0f00d..9eba8a0b25 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,6 @@ jobs: git clone -b main https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/nocobase/$repo.git packages/pro-plugins/@nocobase/$repo done - name: Build Pro plugins - continue-on-error: true run: | yarn config set registry https://registry.npmjs.org/ yarn install From 9dffefb90a662789f9c4e12d2a088a73363c89db Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:37:42 +0000 Subject: [PATCH 16/17] =?UTF-8?q?chore(versions):=20=F0=9F=98=8A=20publish?= =?UTF-8?q?=20v1.3.3-beta?= 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/logger/package.json | 2 +- packages/core/resourcer/package.json | 4 +- packages/core/sdk/package.json | 2 +- packages/core/server/package.json | 26 ++-- 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 +- .../@nocobase/plugin-api-doc/package.json | 2 +- .../@nocobase/plugin-api-keys/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-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 +- .../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-notifications/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 +- .../@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-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 | 122 +++++++++--------- 85 files changed, 191 insertions(+), 191 deletions(-) diff --git a/lerna.json b/lerna.json index 00dad4cc32..5be907ece3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.2-beta", + "version": "1.3.3-beta", "npmClient": "yarn", "useWorkspaces": true, "npmClientArgs": [ diff --git a/packages/core/acl/package.json b/packages/core/acl/package.json index 4c40611c6b..dc4f660f70 100644 --- a/packages/core/acl/package.json +++ b/packages/core/acl/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/acl", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/resourcer": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/resourcer": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "minimatch": "^5.1.1" }, "repository": { diff --git a/packages/core/actions/package.json b/packages/core/actions/package.json index 5ebcde9ede..df82f09e79 100644 --- a/packages/core/actions/package.json +++ b/packages/core/actions/package.json @@ -1,14 +1,14 @@ { "name": "@nocobase/actions", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/cache": "1.3.2-beta", - "@nocobase/database": "1.3.2-beta", - "@nocobase/resourcer": "1.3.2-beta" + "@nocobase/cache": "1.3.3-beta", + "@nocobase/database": "1.3.3-beta", + "@nocobase/resourcer": "1.3.3-beta" }, "repository": { "type": "git", diff --git a/packages/core/app/package.json b/packages/core/app/package.json index e1f5bebf56..3266c4c796 100644 --- a/packages/core/app/package.json +++ b/packages/core/app/package.json @@ -1,17 +1,17 @@ { "name": "@nocobase/app", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/database": "1.3.2-beta", - "@nocobase/preset-nocobase": "1.3.2-beta", - "@nocobase/server": "1.3.2-beta" + "@nocobase/database": "1.3.3-beta", + "@nocobase/preset-nocobase": "1.3.3-beta", + "@nocobase/server": "1.3.3-beta" }, "devDependencies": { - "@nocobase/client": "1.3.2-beta" + "@nocobase/client": "1.3.3-beta" }, "repository": { "type": "git", diff --git a/packages/core/auth/package.json b/packages/core/auth/package.json index a4cd87646d..40259f8143 100644 --- a/packages/core/auth/package.json +++ b/packages/core/auth/package.json @@ -1,16 +1,16 @@ { "name": "@nocobase/auth", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.2-beta", - "@nocobase/cache": "1.3.2-beta", - "@nocobase/database": "1.3.2-beta", - "@nocobase/resourcer": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/actions": "1.3.3-beta", + "@nocobase/cache": "1.3.3-beta", + "@nocobase/database": "1.3.3-beta", + "@nocobase/resourcer": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/build/package.json b/packages/core/build/package.json index 4dedb8e99a..4cb941df6d 100644 --- a/packages/core/build/package.json +++ b/packages/core/build/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/build", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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 25e7a494f7..c94774471c 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cache", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", diff --git a/packages/core/cli/package.json b/packages/core/cli/package.json index db3a129039..790fbe80e7 100644 --- a/packages/core/cli/package.json +++ b/packages/core/cli/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/cli", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", @@ -8,7 +8,7 @@ "nocobase": "./bin/index.js" }, "dependencies": { - "@nocobase/app": "1.3.2-beta", + "@nocobase/app": "1.3.3-beta", "@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": "1.3.2-beta" + "@nocobase/devtools": "1.3.3-beta" }, "repository": { "type": "git", diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 03ea8db7e3..7a67323134 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/client", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "license": "AGPL-3.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": "1.3.2-beta", - "@nocobase/sdk": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/evaluators": "1.3.3-beta", + "@nocobase/sdk": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "ahooks": "^3.7.2", "antd": "^5.12.8", "antd-style": "3.4.5", diff --git a/packages/core/create-nocobase-app/package.json b/packages/core/create-nocobase-app/package.json index 401557186c..5947557084 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.3.2-beta", + "version": "1.3.3-beta", "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 6d45878638..63e0aa8613 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.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "dependencies": { - "@nocobase/actions": "1.3.2-beta", - "@nocobase/cache": "1.3.2-beta", - "@nocobase/database": "1.3.2-beta", - "@nocobase/resourcer": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/actions": "1.3.3-beta", + "@nocobase/cache": "1.3.3-beta", + "@nocobase/database": "1.3.3-beta", + "@nocobase/resourcer": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "@types/jsonwebtoken": "^8.5.8", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 973ca200df..12b3d0b1ae 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/database", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/logger": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/logger": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "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 241ae69257..37ce4aaa3c 100644 --- a/packages/core/devtools/package.json +++ b/packages/core/devtools/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/devtools", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./src/index.js", "dependencies": { - "@nocobase/build": "1.3.2-beta", - "@nocobase/client": "1.3.2-beta", - "@nocobase/test": "1.3.2-beta", + "@nocobase/build": "1.3.3-beta", + "@nocobase/client": "1.3.3-beta", + "@nocobase/test": "1.3.3-beta", "@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 8a16dc2fa8..814dc494c7 100644 --- a/packages/core/evaluators/package.json +++ b/packages/core/evaluators/package.json @@ -1,13 +1,13 @@ { "name": "@nocobase/evaluators", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { "@formulajs/formulajs": "4.2.0", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/utils": "1.3.3-beta", "mathjs": "^10.6.0" }, "repository": { diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 356f38b010..2443345824 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/logger", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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 2ddf3b1798..a7848e2931 100644 --- a/packages/core/resourcer/package.json +++ b/packages/core/resourcer/package.json @@ -1,12 +1,12 @@ { "name": "@nocobase/resourcer", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "", "main": "./lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/utils": "1.3.2-beta", + "@nocobase/utils": "1.3.3-beta", "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 d1412df577..59a2c50117 100644 --- a/packages/core/sdk/package.json +++ b/packages/core/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/sdk", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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 1e2db3a4ab..931a4feaf4 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/server", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "main": "lib/index.js", "types": "./lib/index.d.ts", "license": "AGPL-3.0", @@ -10,18 +10,18 @@ "@koa/cors": "^3.1.0", "@koa/multer": "^3.0.2", "@koa/router": "^9.4.0", - "@nocobase/acl": "1.3.2-beta", - "@nocobase/actions": "1.3.2-beta", - "@nocobase/auth": "1.3.2-beta", - "@nocobase/cache": "1.3.2-beta", - "@nocobase/data-source-manager": "1.3.2-beta", - "@nocobase/database": "1.3.2-beta", - "@nocobase/evaluators": "1.3.2-beta", - "@nocobase/logger": "1.3.2-beta", - "@nocobase/resourcer": "1.3.2-beta", - "@nocobase/sdk": "1.3.2-beta", - "@nocobase/telemetry": "1.3.2-beta", - "@nocobase/utils": "1.3.2-beta", + "@nocobase/acl": "1.3.3-beta", + "@nocobase/actions": "1.3.3-beta", + "@nocobase/auth": "1.3.3-beta", + "@nocobase/cache": "1.3.3-beta", + "@nocobase/data-source-manager": "1.3.3-beta", + "@nocobase/database": "1.3.3-beta", + "@nocobase/evaluators": "1.3.3-beta", + "@nocobase/logger": "1.3.3-beta", + "@nocobase/resourcer": "1.3.3-beta", + "@nocobase/sdk": "1.3.3-beta", + "@nocobase/telemetry": "1.3.3-beta", + "@nocobase/utils": "1.3.3-beta", "@types/decompress": "4.2.4", "@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 602dc32fae..95f72f8193 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/telemetry", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "description": "nocobase telemetry library", "license": "AGPL-3.0", "main": "./lib/index.js", @@ -11,7 +11,7 @@ "directory": "packages/telemetry" }, "dependencies": { - "@nocobase/utils": "1.3.2-beta", + "@nocobase/utils": "1.3.3-beta", "@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 bd4b92c9f4..2f17c4553b 100644 --- a/packages/core/test/package.json +++ b/packages/core/test/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/test", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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.3.2-beta", + "@nocobase/server": "1.3.3-beta", "@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 72fdd24b69..e65a63b78e 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@nocobase/utils", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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 c424138660..dac1fc7b4c 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.3.2-beta", + "version": "1.3.3-beta", "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 64ba0c6655..b65fbeec95 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.3.2-beta", + "version": "1.3.3-beta", "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 e0ccaa56e6..0e6834bf92 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.3.2-beta", + "version": "1.3.3-beta", "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 7f77759587..6186b3e4af 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.3.2-beta", + "version": "1.3.3-beta", "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 cb986b633e..592d35bb30 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.3.2-beta", + "version": "1.3.3-beta", "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 99391d062f..f81842da58 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.3.2-beta", + "version": "1.3.3-beta", "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 4b48f0f311..0b219de2ae 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.3.2-beta", + "version": "1.3.3-beta", "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 4ce8de9f76..53ad9d1dd9 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.3.2-beta", + "version": "1.3.3-beta", "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 e7f5ff57b7..fdbc0df6cc 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.3.2-beta", + "version": "1.3.3-beta", "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 f7225a4a51..a0b1159af5 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.3.2-beta", + "version": "1.3.3-beta", "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 2ed261c6ad..d964bfd47e 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.3.2-beta", + "version": "1.3.3-beta", "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 3306dfebf9..403481a605 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.3.2-beta", + "version": "1.3.3-beta", "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 4c0c4fc6a4..350ebee1cf 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.3.2-beta", + "version": "1.3.3-beta", "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 1ce842546b..20ade1ab81 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.3.2-beta", + "version": "1.3.3-beta", "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 cca42bbf8f..4b8744419f 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.3.2-beta", + "version": "1.3.3-beta", "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 101697f4c1..3246b62a7a 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.3.2-beta", + "version": "1.3.3-beta", "displayName": "Block: Workbench", "displayName.zh-CN": "区块:工作台", "description": "Add buttons for actions, links, etc. in the workbench block to quickly initiate actions and jump pages.", diff --git a/packages/plugins/@nocobase/plugin-calendar/package.json b/packages/plugins/@nocobase/plugin-calendar/package.json index 7a4fac7cae..250e40e507 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.3.2-beta", + "version": "1.3.3-beta", "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 c8a36559f3..7038bec4d7 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.3.2-beta", + "version": "1.3.3-beta", "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 eb69cdc189..30819a4f4b 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.3.2-beta", + "version": "1.3.3-beta", "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 c0d67a0c31..03f3126e42 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.3.2-beta", + "version": "1.3.3-beta", "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 bc7ab38a25..a93568b382 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.3.2-beta", + "version": "1.3.3-beta", "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 f7e8d05de5..d74e23b983 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 MySQL, PostgreSQL, SQLite and so on.", "description.zh-CN": "NocoBase 主数据库,支持 MySQL、PostgreSQL、SQLite 等关系型数据库。", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "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 d797f484ff..e90bce1029 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.3.2-beta", + "version": "1.3.3-beta", "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 a02fbff9d4..189d9fa396 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.3.2-beta", + "version": "1.3.3-beta", "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 dbf8d4cc8e..bd4ec33733 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.3.2-beta", + "version": "1.3.3-beta", "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 2ef805a3e5..29cc6c7180 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.3.2-beta", + "version": "1.3.3-beta", "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 bc9b0f6536..5782cb176c 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.3.2-beta", + "version": "1.3.3-beta", "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-field-formula/package.json b/packages/plugins/@nocobase/plugin-field-formula/package.json index c809406787..728efda22e 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.3.2-beta", + "version": "1.3.3-beta", "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 816a7c66ff..e8ee0db6d2 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.3.2-beta", + "version": "1.3.3-beta", "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 427aa776fe..4d115967c5 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.3.2-beta", + "version": "1.3.3-beta", "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 7333c20bc1..98d541dd6d 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.3.2-beta", + "version": "1.3.3-beta", "license": "AGPL-3.0", "main": "./dist/server/index.js", "homepage": "https://docs.nocobase.com/handbook/field-sequence", diff --git a/packages/plugins/@nocobase/plugin-file-manager/package.json b/packages/plugins/@nocobase/plugin-file-manager/package.json index 48660576b8..fcb4466621 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.3.2-beta", + "version": "1.3.3-beta", "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 529da3e2e3..9dc325dc5e 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.3.2-beta", + "version": "1.3.3-beta", "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 1aa93d5cec..c6e5312550 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.3.2-beta", + "version": "1.3.3-beta", "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 e83ae15b89..4d3d49b335 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.3.2-beta", + "version": "1.3.3-beta", "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 dd19dd2ff9..a78cfc22ee 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.3.2-beta", + "version": "1.3.3-beta", "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 12d8322c26..10be23909f 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.3.2-beta", + "version": "1.3.3-beta", "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 87b379f717..aef05d9090 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.3.2-beta", + "version": "1.3.3-beta", "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 49d93ee5ae..30981fb49b 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.3.2-beta", + "version": "1.3.3-beta", "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 871ddcb726..0f39992ae3 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.3.2-beta", + "version": "1.3.3-beta", "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 bb1c38b84d..ef559b82f7 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.3.2-beta", + "version": "1.3.3-beta", "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 d113f3f7c4..464caf5109 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.3.2-beta", + "version": "1.3.3-beta", "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 35426fde15..f9e166e8c4 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.3.2-beta", + "version": "1.3.3-beta", "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 6baf8ab140..0366c25fe1 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.3.2-beta", + "version": "1.3.3-beta", "description": "", "license": "AGPL-3.0", "main": "./dist/server/index.js", diff --git a/packages/plugins/@nocobase/plugin-sample-hello/package.json b/packages/plugins/@nocobase/plugin-sample-hello/package.json index ac97d30f98..dbc877a274 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.3.2-beta", + "version": "1.3.3-beta", "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 ca0ff8ecb2..730d12cb48 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.3.2-beta", + "version": "1.3.3-beta", "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 2ad8b9e668..d3450a44b6 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.3.2-beta", + "version": "1.3.3-beta", "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 1d8fb973bd..3ea2fb6099 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.3.2-beta", + "version": "1.3.3-beta", "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 4fbcfd0701..ef069a2b96 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.3.2-beta", + "version": "1.3.3-beta", "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 d16269b79b..bb8c04104b 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.3.2-beta", + "version": "1.3.3-beta", "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 033e7a1999..e2a7296675 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.3.2-beta", + "version": "1.3.3-beta", "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 36940c105d..4bb6d2400a 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.3.2-beta", + "version": "1.3.3-beta", "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 315015086c..779efcc897 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.3.2-beta", + "version": "1.3.3-beta", "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 a8158c659b..cc275f832c 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.3.2-beta", + "version": "1.3.3-beta", "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 5d0a74fc66..501dd99ffc 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.3.2-beta", + "version": "1.3.3-beta", "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 1192f961a2..d96ff02db2 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.3.2-beta", + "version": "1.3.3-beta", "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 0629c914ef..ae7b2e348b 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.3.2-beta", + "version": "1.3.3-beta", "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 040d84c16e..f8aa375181 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.3.2-beta", + "version": "1.3.3-beta", "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 f66ff6c47d..36dfb9d714 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.3.2-beta", + "version": "1.3.3-beta", "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 bb35e63165..94173901d8 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.3.2-beta", + "version": "1.3.3-beta", "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 87ca201223..80622e7908 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.3.2-beta", + "version": "1.3.3-beta", "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 3f24e02e7f..bd7e582ac3 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.3.2-beta", + "version": "1.3.3-beta", "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 23fdbc226f..bc379f12c0 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.3.2-beta", + "version": "1.3.3-beta", "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.3.2-beta" + "@nocobase/plugin-workflow-test": "1.3.3-beta" }, "devDependencies": { "@ant-design/icons": "5.x", diff --git a/packages/presets/nocobase/package.json b/packages/presets/nocobase/package.json index 90487cfadd..46a1a560de 100644 --- a/packages/presets/nocobase/package.json +++ b/packages/presets/nocobase/package.json @@ -1,70 +1,70 @@ { "name": "@nocobase/preset-nocobase", - "version": "1.3.2-beta", + "version": "1.3.3-beta", "license": "AGPL-3.0", "main": "./lib/server/index.js", "dependencies": { "@formily/json-schema": "2.x", - "@nocobase/plugin-acl": "1.3.2-beta", - "@nocobase/plugin-action-bulk-edit": "1.3.2-beta", - "@nocobase/plugin-action-bulk-update": "1.3.2-beta", - "@nocobase/plugin-action-custom-request": "1.3.2-beta", - "@nocobase/plugin-action-duplicate": "1.3.2-beta", - "@nocobase/plugin-action-export": "1.3.2-beta", - "@nocobase/plugin-action-import": "1.3.2-beta", - "@nocobase/plugin-action-print": "1.3.2-beta", - "@nocobase/plugin-api-doc": "1.3.2-beta", - "@nocobase/plugin-api-keys": "1.3.2-beta", - "@nocobase/plugin-audit-logs": "1.3.2-beta", - "@nocobase/plugin-auth": "1.3.2-beta", - "@nocobase/plugin-auth-sms": "1.3.2-beta", - "@nocobase/plugin-backup-restore": "1.3.2-beta", - "@nocobase/plugin-block-iframe": "1.3.2-beta", - "@nocobase/plugin-block-workbench": "1.3.2-beta", - "@nocobase/plugin-calendar": "1.3.2-beta", - "@nocobase/plugin-charts": "1.3.2-beta", - "@nocobase/plugin-client": "1.3.2-beta", - "@nocobase/plugin-collection-sql": "1.3.2-beta", - "@nocobase/plugin-collection-tree": "1.3.2-beta", - "@nocobase/plugin-data-source-main": "1.3.2-beta", - "@nocobase/plugin-data-source-manager": "1.3.2-beta", - "@nocobase/plugin-data-visualization": "1.3.2-beta", - "@nocobase/plugin-error-handler": "1.3.2-beta", - "@nocobase/plugin-field-china-region": "1.3.2-beta", - "@nocobase/plugin-field-formula": "1.3.2-beta", - "@nocobase/plugin-field-m2m-array": "1.3.2-beta", - "@nocobase/plugin-field-markdown-vditor": "1.3.2-beta", - "@nocobase/plugin-field-sequence": "1.3.2-beta", - "@nocobase/plugin-file-manager": "1.3.2-beta", - "@nocobase/plugin-gantt": "1.3.2-beta", - "@nocobase/plugin-graph-collection-manager": "1.3.2-beta", - "@nocobase/plugin-kanban": "1.3.2-beta", - "@nocobase/plugin-localization": "1.3.2-beta", - "@nocobase/plugin-logger": "1.3.2-beta", - "@nocobase/plugin-map": "1.3.2-beta", - "@nocobase/plugin-mobile": "1.3.2-beta", - "@nocobase/plugin-mobile-client": "1.3.2-beta", - "@nocobase/plugin-mock-collections": "1.3.2-beta", - "@nocobase/plugin-multi-app-manager": "1.3.2-beta", - "@nocobase/plugin-multi-app-share-collection": "1.3.2-beta", - "@nocobase/plugin-snapshot-field": "1.3.2-beta", - "@nocobase/plugin-system-settings": "1.3.2-beta", - "@nocobase/plugin-theme-editor": "1.3.2-beta", - "@nocobase/plugin-ui-schema-storage": "1.3.2-beta", - "@nocobase/plugin-users": "1.3.2-beta", - "@nocobase/plugin-verification": "1.3.2-beta", - "@nocobase/plugin-workflow": "1.3.2-beta", - "@nocobase/plugin-workflow-action-trigger": "1.3.2-beta", - "@nocobase/plugin-workflow-aggregate": "1.3.2-beta", - "@nocobase/plugin-workflow-delay": "1.3.2-beta", - "@nocobase/plugin-workflow-dynamic-calculation": "1.3.2-beta", - "@nocobase/plugin-workflow-loop": "1.3.2-beta", - "@nocobase/plugin-workflow-mailer": "1.3.2-beta", - "@nocobase/plugin-workflow-manual": "1.3.2-beta", - "@nocobase/plugin-workflow-parallel": "1.3.2-beta", - "@nocobase/plugin-workflow-request": "1.3.2-beta", - "@nocobase/plugin-workflow-sql": "1.3.2-beta", - "@nocobase/server": "1.3.2-beta", + "@nocobase/plugin-acl": "1.3.3-beta", + "@nocobase/plugin-action-bulk-edit": "1.3.3-beta", + "@nocobase/plugin-action-bulk-update": "1.3.3-beta", + "@nocobase/plugin-action-custom-request": "1.3.3-beta", + "@nocobase/plugin-action-duplicate": "1.3.3-beta", + "@nocobase/plugin-action-export": "1.3.3-beta", + "@nocobase/plugin-action-import": "1.3.3-beta", + "@nocobase/plugin-action-print": "1.3.3-beta", + "@nocobase/plugin-api-doc": "1.3.3-beta", + "@nocobase/plugin-api-keys": "1.3.3-beta", + "@nocobase/plugin-audit-logs": "1.3.3-beta", + "@nocobase/plugin-auth": "1.3.3-beta", + "@nocobase/plugin-auth-sms": "1.3.3-beta", + "@nocobase/plugin-backup-restore": "1.3.3-beta", + "@nocobase/plugin-block-iframe": "1.3.3-beta", + "@nocobase/plugin-block-workbench": "1.3.3-beta", + "@nocobase/plugin-calendar": "1.3.3-beta", + "@nocobase/plugin-charts": "1.3.3-beta", + "@nocobase/plugin-client": "1.3.3-beta", + "@nocobase/plugin-collection-sql": "1.3.3-beta", + "@nocobase/plugin-collection-tree": "1.3.3-beta", + "@nocobase/plugin-data-source-main": "1.3.3-beta", + "@nocobase/plugin-data-source-manager": "1.3.3-beta", + "@nocobase/plugin-data-visualization": "1.3.3-beta", + "@nocobase/plugin-error-handler": "1.3.3-beta", + "@nocobase/plugin-field-china-region": "1.3.3-beta", + "@nocobase/plugin-field-formula": "1.3.3-beta", + "@nocobase/plugin-field-m2m-array": "1.3.3-beta", + "@nocobase/plugin-field-markdown-vditor": "1.3.3-beta", + "@nocobase/plugin-field-sequence": "1.3.3-beta", + "@nocobase/plugin-file-manager": "1.3.3-beta", + "@nocobase/plugin-gantt": "1.3.3-beta", + "@nocobase/plugin-graph-collection-manager": "1.3.3-beta", + "@nocobase/plugin-kanban": "1.3.3-beta", + "@nocobase/plugin-localization": "1.3.3-beta", + "@nocobase/plugin-logger": "1.3.3-beta", + "@nocobase/plugin-map": "1.3.3-beta", + "@nocobase/plugin-mobile": "1.3.3-beta", + "@nocobase/plugin-mobile-client": "1.3.3-beta", + "@nocobase/plugin-mock-collections": "1.3.3-beta", + "@nocobase/plugin-multi-app-manager": "1.3.3-beta", + "@nocobase/plugin-multi-app-share-collection": "1.3.3-beta", + "@nocobase/plugin-snapshot-field": "1.3.3-beta", + "@nocobase/plugin-system-settings": "1.3.3-beta", + "@nocobase/plugin-theme-editor": "1.3.3-beta", + "@nocobase/plugin-ui-schema-storage": "1.3.3-beta", + "@nocobase/plugin-users": "1.3.3-beta", + "@nocobase/plugin-verification": "1.3.3-beta", + "@nocobase/plugin-workflow": "1.3.3-beta", + "@nocobase/plugin-workflow-action-trigger": "1.3.3-beta", + "@nocobase/plugin-workflow-aggregate": "1.3.3-beta", + "@nocobase/plugin-workflow-delay": "1.3.3-beta", + "@nocobase/plugin-workflow-dynamic-calculation": "1.3.3-beta", + "@nocobase/plugin-workflow-loop": "1.3.3-beta", + "@nocobase/plugin-workflow-mailer": "1.3.3-beta", + "@nocobase/plugin-workflow-manual": "1.3.3-beta", + "@nocobase/plugin-workflow-parallel": "1.3.3-beta", + "@nocobase/plugin-workflow-request": "1.3.3-beta", + "@nocobase/plugin-workflow-sql": "1.3.3-beta", + "@nocobase/server": "1.3.3-beta", "cronstrue": "^2.11.0" }, "repository": { From 3403e8d76684950d6962a6110a4440eb95856a35 Mon Sep 17 00:00:00 2001 From: "nocobase[bot]" <179432756+nocobase[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:37:47 +0000 Subject: [PATCH 17/17] chore: update changelog --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34d8758e70..daaabad264 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.3.3-beta](https://github.com/nocobase/nocobase/compare/v1.3.2-beta...v1.3.3-beta) - 2024-08-27 + +### Merged + +- fix: use the built-in logo file [`#5032`](https://github.com/nocobase/nocobase/pull/5032) +- chore: optimize pro image build ci [`#5140`](https://github.com/nocobase/nocobase/pull/5140) + +### Commits + +- chore(versions): 😊 publish v1.3.3-beta [`9dffefb`](https://github.com/nocobase/nocobase/commit/9dffefb90a662789f9c4e12d2a088a73363c89db) +- chore: update changelog [`7c28f4d`](https://github.com/nocobase/nocobase/commit/7c28f4d06690d6b36701f773a933287c0a395a6d) +- fix(release): remove continue-on-error for build step [`5a41ab0`](https://github.com/nocobase/nocobase/commit/5a41ab063c8eea8bb0240cc6baf5d485b4fe9f84) + ## [v1.3.2-beta](https://github.com/nocobase/nocobase/compare/v1.3.1-beta...v1.3.2-beta) - 2024-08-26 ### Commits