Commit Graph

260 Commits

Author SHA1 Message Date
chenos
fd4809d8ad fix: e2e with build 2024-01-08 10:29:41 +08:00
Zeke Zhang
2ab9f8625e
chore(e2e): make parallelism mode more stable (#3294)
* chore: make parallelism mode more stable

* refactor: optimize e2e tests

* test: make test more stable

* chore: change concurrency to 4 from 2

* refactor: inline variable

* test: fix error

* test: avoid error

* test: avoid error

* test: avoid error

* chore(e2e): remove --stop-on-error on CI runs

* Revert "refactor: inline variable"

This reverts commit 454bb04613f6f394f2f27db6808295261487c963.

* test: make more stable

* chore: adjust timeout

* chore: update config

* test: make test more stable

* chore: update yarn.lock

* Revert "chore: update yarn.lock"

This reverts commit 1bb7a661d181050e647450d5d8b2cfd67bd128b1.

* test(workflow): increase local timeout

* test: optimize

* test: more stable

* test: fix errors

* test: more stable

* chore: increase retries to 2 in CI
2024-01-06 06:37:23 +08:00
xilesun
004998a80a chore(versions): 😊 publish v0.18.0-alpha.9 2024-01-03 10:00:45 +08:00
Junyi
e8b7fbd699
chore(vscode): add inspect argument for attaching to debug port (#3307) 2024-01-03 09:19:51 +08:00
Zeke Zhang
e99c2f2011
fix(defaultValue): fix unparsed default value in edit form's subtable (#3289)
* chore: yarn.lock

* fix: fix unparsed default value in edit form's subtable

* test: fix test

* fix: fix T-2805

* chore: increase timeout

* chore: increase expect timeout

* test: optimize parallelism mode

* test: reduce expect timeout

* test: mack test more stable

* chore: test

* chore: test

* test: fix parallelism mode

* chore: restart
2024-01-01 18:44:42 +08:00
chenos
8bac8dac71 chore(versions): 😊 publish v0.18.0-alpha.8 2023-12-29 15:49:02 +08:00
chenos
501e3f1db2 chore(versions): 😊 publish v0.18.0-alpha.3 2023-12-29 09:42:06 +08:00
hongboji
e7c2c9ff83
test: workflow e2e (#3261)
* test: workflow e2e

* test: workflow e2e

* fix: merge main, fix incompatibility

* test: remove unneeded test cases

* fix: process.env.PLAYWRIGHT_AUTH_FILE

* fix: workflow e2e

* test: increase e2e timeout-minutes to 180

* fix: error

* fix: workflow aggregate e2e test

* fix: cancel useTransaction

* fix: updateRecord

* fix: queryRecord

* fix: queryRecord

* fix: queryRecord

* fix: formEvent

* fix: format files

* fix: test

* fix: error

* fix: error

* fix: split files

* fix: ci

* fix: error

* fix: error

* fix: client end

* fix: test

* fix: test

* feat: concurrency=10

* fix: concurrency=3

* test: increase timeout

* test: p-test

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: Zeke Zhang <958414905@qq.com>
2023-12-29 09:13:00 +08:00
chenos
e8f481ae68 chore(versions): 😊 publish v0.18.0-alpha.2 2023-12-25 22:26:05 +08:00
chenos
cc2b132aa1
fix: tsx cli (#3254) 2023-12-25 15:03:48 +08:00
chenos
e4c97651bf fix: incorrect tsx version on windows 2023-12-23 15:27:11 +08:00
chenos
95e6a32647 chore(versions): 😊 publish v0.18.0-alpha.1 2023-12-21 20:40:32 +08:00
ChengLei Shao
261d4c4137
refactor: establish a sound testing system (#3179)
* chore: use vitest to replace jest

* chore: support vitest

* feat: vitest 1.0

* fix: test

* chore: yarn.lock

* chore: github actions

* fix: test

* fix: test

* fix: test

* fix: test

* fix: jest.fn

* fix: require

* fix: test

* fix: build

* fix: test

* fix: test

* fix: test

* fix: test

* fix: test

* fix: test

* fix: test

* fix: dynamic import

* fix: bug

* chore: yarn run test command

* chore: package.json

* chore: package.json

* chore: vite 5

* fix: fix variable test

* fix: import json

* feat: initEnv

* fix: env.APP_ENV_PATH

* chore: get package json

* fix: remove GlobalThmeProvider

* chore: update snap

* chore: test env

* chore: test env

* chore: import module

* chore: jest

* fix: load package json

* chore: test

* fix: bug

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* fix: import file in windows

* chore: import module with absolute file path

* fix: test error

* test: update snapshot

* chore: update yarn.lock

* fix: front-end tests do not include utils folder

* refactor: use vitest-dom

* fix: fix build

* fix: test error

* fix: change to vitest.config.mts

* fix: types error

* fix: types error

* fix: types error

* fix: error

* fix: test

* chore: test

* fix: test package

* feat: update dependencies

* refactor: test

* fix: error

* fix: error

* fix: __dirname is not defined in ES module scope

* fix: allow only

* fix: error

* fix: error

* fix: error

* fix: create-app

* fix: install-deps

* feat: update docs

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: dream2023 <1098626505@qq.com>
Co-authored-by: Zeke Zhang <958414905@qq.com>
2023-12-21 20:39:11 +08:00
xilesun
d6dbc970a5 chore(versions): 😊 publish v0.17.0-alpha.7 2023-12-15 11:39:15 +08:00
chenos
a702762cca chore(versions): 😊 publish v0.17.0-alpha.6 2023-12-13 16:36:59 +08:00
xilesun
35301358de chore(versions): 😊 publish v0.17.0-alpha.5 2023-12-12 23:07:55 +08:00
chenos
cf9ccfe4f9 chore(versions): 😊 publish v0.17.0-alpha.4 2023-12-12 14:10:36 +08:00
chenos
eef101c177 chore(versions): 😊 publish v0.17.0-alpha.3 2023-12-06 17:19:35 +08:00
jack zhang
8e7cb832cc
fix: delete root docs (#3145)
* fix: delete root docs

* docs: update useSchemaOptionsContext()

* chore: change ci

* chore: upgrade dumi theme

* fix: upgrade tsx
2023-12-06 16:20:31 +08:00
chenos
36fd4881b2 chore(versions): 😊 publish v0.17.0-alpha.2 2023-12-06 13:20:48 +08:00
chenos
1757a96b51 chore(versions): 😊 publish v0.17.0-alpha.1 2023-12-04 14:58:09 +08:00
xilesun
9d644304c1 chore(versions): 😊 publish v0.16.0-alpha.6 2023-12-04 11:01:24 +08:00
chenos
8977420eec chore(versions): 😊 publish v0.16.0-alpha.5 2023-11-30 12:41:50 +08:00
chenos
5ebd5d5c62 fix(cli): unsafe shell command constructed from library input 2023-11-27 09:07:16 +08:00
chenos
ffb300d357 chore(versions): 😊 publish v0.16.0-alpha.4 2023-11-24 23:15:10 +08:00
chenos
cba967933e chore(versions): 😊 publish v0.16.0-alpha.3 2023-11-20 19:36:12 +08:00
chenos
dfb940e091
feat: node >= 18 (#3066)
* feat: node >= 18

* fix: release version

* chore(versions): test publish packages xxx

* fix: gitignore
2023-11-20 19:35:30 +08:00
chenos
91053b31ef chore(versions): 😊 publish v0.16.0-alpha.1 2023-11-20 17:19:09 +08:00
chenos
ef1b9db2a9 chore(versions): 😊 publish v0.15.0-alpha.4 2023-11-18 21:22:03 +08:00
chenos
60112aae62 chore(versions): 😊 publish v0.15.0-alpha.3 2023-11-16 15:03:40 +08:00
chenos
03062a2b05
feat: e2e commands (#3042) 2023-11-16 12:33:56 +08:00
chenos
b597aec1dc chore(versions): 😊 publish v0.15.0-alpha.2 2023-11-13 18:28:48 +08:00
chenos
29457cb2bc chore(versions): 😊 publish v0.15.0-alpha.1 2023-11-13 11:02:35 +08:00
chenos
2bb0f7c51c chore(versions): 😊 publish v0.14.0-alpha.8 2023-11-01 09:52:49 +08:00
Rain
384cc1c56c chore(versions): 😊 publish v0.14.0-alpha.7 2023-10-07 15:53:49 +08:00
jack zhang
836b34a6a4
fix: gen tsconfig.paths.json bug (#2708)
* fix: gen tsconfig.paths.json  bug

* fix: load remote plugin error

* fix: bug
2023-09-23 10:52:14 +08:00
mytharcher
8eb634459d chore(versions): 😊 publish v0.14.0-alpha.6 2023-09-22 15:49:50 +08:00
mytharcher
bffa53a04e chore(versions): 😊 publish v0.14.0-alpha.5 2023-09-22 15:47:28 +08:00
Junyi
60aeba4a12
fix(cli): fix template file mode (#2697) 2023-09-22 05:35:58 +08:00
mytharcher
d20398f73f chore(versions): 😊 publish v0.14.0-alpha.4 2023-09-21 23:25:31 +08:00
jack zhang
9e5e96b9e4
fix: improve build (#2643)
* fix: client lib require wrapper

* fix: bug

* fix: add tsconfig.paths.json

* fix: collection dir not exists

* fix: improve...

* fix: update yarn.lock

* fix: db.sync

* fix: bugs

* fix: bugs

* fix: bugs

* fix: bugs && allow user custom build config

* docs: user custom config docs

* refactor: custom user build config

* fix: bugs

* fix: build plugin-client bug

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-09-15 08:51:20 +08:00
chenos
6058850db1 chore(versions): 😊 publish v0.14.0-alpha.3 2023-09-13 18:29:38 +08:00
chenos
22bf23b59e fix: add env SERVER_TSCONFIG_PATH 2023-09-13 12:21:29 +08:00
chenos
3670d670ac chore(versions): 😊 publish v0.14.0-alpha.2 2023-09-13 03:57:15 +08:00
chenos
117d4b8186 chore(versions): 😊 publish v0.14.0-alpha.1 2023-09-12 22:42:43 +08:00
jack zhang
705b7449f0
feat: new plugin manager, supports adding plugins through UI (#2430)
* refactor: plugin manager page

* fix: bug

* feat: addByNpm api

* fix: improve the addByNpm

* feat: improve applicationPlugins:list api

* fix: re-download npm package when restart app

* fix: plugin delete api

* feat: plugin detail api

* feat: zipUrl add api

* fix: upload api bug

* fix: plugin detail info

* feat: upgrade api

* fix: upload api

* feat: handle plugin load error

* feat: support authToken

* feat: muti lang

* fix: build error

* fix: self review

* Update plugin-manager.ts

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: bugs

* fix: detail click and remove isOfficial

* fix: upgrade no refresh

* fix: file size and type check

* fix: bug

* fix: upgrade error

* fix: bug

* fix: bug

* fix: plugin card layout

* fix: handling exceptional cases

* fix: tgz file support

* fix: macos compress file

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: add upgrade npm type

* fix: bugs

* fix: bug

* fix: change plugins static expose url

* fix: api prefix

* fix: bug

* fix: add nginx `/static/plugin/` path

* fix: bugs and pr docker build no dts

* fix: bug

* fix: build tools bug

* fix: improve code

* fix: build bug

* feat: improve plugin info

* fix: ui bug

* fix: plugin document bug

* feat: improve code

* feat: improve code

* feat: process dev deps check

* feat: improve code

* feat: process.env.IS_DEV_CMD

* fix: do not delete the plugin package

* feat: plugin symlink

* fix: tsx watch --ignore=./storage/plugins/**

* fix: test error

* fix: improve code

* fix: improve code

* fix: emitStartedEvent

* fix: improve code

* fix: type error

* fix: test error

* test: console.log

* fix: createStoragePluginSymLink

* fix: clientStaticMiddleware rename to clientStaticUtils

* feat: build tools support plugins folder

* fix: 350px

* fix: error

* feat: client dev support plugin folder

* fix: clear cli options

* fix: typeError: Converting circular structure to JSON

* fix: plugin name

* chore: restart application after command

* feat: upgrade error & docs

* Update v14-changelog.md

* Update v14-changelog.md

* Update v14-changelog.md

* fix: gateway test

* refactor(plugin-workflow): add ready state for gracefully tearing down

* Revert "chore: restart application after command"

This reverts commit 5015274f8e4e06e506e15754b672330330e8c7f8.

* chore: stop application whe restart

* T 1218 change plugin folder (#2629)

* feat: change folder name

* feat: change `pm create` command

* feat:  revert plugin name change

* fix: delete samples

* feat: change plugins folder

* fix: pm create

* feat: update docs

* fix: link package error

* fix: docs

* fix: create command

* fix: pm add error

* fix: create  add build

* fix: pm creatre + add

* feat: add tar command

* fix: docs

* fix: bug

* fix: docs

---------

Co-authored-by: chenos <chenlinxh@gmail.com>

* feat: docs

* Update your-fisrt-plugin.md

* Update your-fisrt-plugin.md

* chore: application reload

* chore: test

* fix: pm add error

* chore: preset install skip exists plugin

* fix: createIfNotExists

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: chareice <chareice@live.com>
Co-authored-by: Zhou <zhou.working@gmail.com>
Co-authored-by: mytharcher <mytharcher@gmail.com>
2023-09-12 22:39:23 +08:00
Rain
fec17d5661 chore(versions): 😊 publish v0.13.0-alpha.10 2023-09-10 00:33:14 +08:00
chenos
b655517a74 chore(versions): 😊 publish v0.13.0-alpha.9 2023-09-07 12:46:24 +08:00
Rain
17d4476c10 chore(versions): 😊 publish v0.13.0-alpha.8 2023-09-07 09:04:08 +08:00
ChengLei Shao
97b4570bd2 chore(versions): 😊 publish v0.13.0-alpha.7 2023-09-05 09:01:30 +08:00
Rain
e5f5358be0 chore(versions): 😊 publish v0.13.0-alpha.6 2023-09-04 20:48:48 +08:00
chareice
fed3eb1a51 chore: async/await on clean.js 2023-09-04 10:38:32 +08:00
chareice
ffe443b4e9 fix: clean command on windows 2023-09-04 10:36:24 +08:00
chareice
eb255df35e fix: yarn install on windows 2023-09-04 09:52:45 +08:00
chenos
af34fe10ab chore(versions): 😊 publish v0.13.0-alpha.5 2023-09-03 11:35:48 +08:00
jack zhang
08c5383bee
refactor: build tools (#2374)
* refactor: core/build and cli/build.js

* fix: build

* fix: bug

* fix: replaceAll to replace

* fix: node version check

* fix: add require check

* fix: esbuild other ext

* fix: process json

* fix: exlude jsx-runtime

* feat: split chunk

* fix: minify plugin client bundle

* fix: compatibility

* fix: support import()

* feat: update docs

* fix: server deps

* feat: demo

* fix: remove cjs treeshake

* fix: local error

* fix: bug

* fix: lazy load

* fix: rewrites

* fix: remove dynamic import  function

* feat: doc demo

* fix: codesanbox vite template

* fix: codesanbox demo

* fix: hide stackblitz

* fix: revert rspack

* fix: test bug

* fix: delete console

* fix: import dayjs locale

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-09-03 10:59:33 +08:00
chenos
0fd38a5c56 chore(versions): 😊 publish v0.13.0-alpha.4 2023-08-27 10:04:58 +08:00
chenos
5278017fff chore(versions): 😊 publish v0.13.0-alpha.3 2023-08-26 16:43:41 +08:00
chenos
e596025bd4 fix: yarn dev --client error 2023-08-25 09:44:47 +08:00
chenos
f4a1953980 chore(versions): 😊 publish v0.13.0-alpha.2 2023-08-24 23:14:03 +08:00
chenos
6debb8d00b chore(versions): 😊 publish v0.13.0-alpha.1 2023-08-24 17:49:13 +08:00
ChengLei Shao
39ee4b8873
feat: application supervisor (#2353)
* chore: skip sync localization-management plugin enable status

* chore: unSyncPlugins array

* chore: remove install at dev

* chore: gateway and supervisor

* chore: install command

* chore: remove app manager

* chore: share plugin

* chore: wsserver

* chore: websocket server

* chore: websocket connection with app status

* feat: socket server at gateway

* chore: loading message

* chore: ready status

* chore: handle app error

* feat: restart app at supervisor

* feat: health check endpoint

* chore: test

* chore: test

* chore: test

* chore: test

* chore: build

* chore: test

* chore: build

* chore: application ready status

* chore: error message

* chore: handle application error

* chore: handle error in load

* chore: report error in websocket

* chore: ws error

* chore: ws error

* chore: typo

* chore: switch app ready status at install

* chore: test

* chore: test

* chore: test

* chore: test

* feat: add WebSocket client

* chore: start gateway

* chore: start command in application

* chore: code

* chore: pm command

* chore: run start after load sub app

* feat: application fsm

* refactor: server life cycle (#2402)

* refactor: server life cycle

* fix: test error

* fix: test error

* fix: test error

* fix: app.start

* fix: cronjob stop

* fix: db.sync before upgrade

* fix: pm.get

* fix: test error

* fix: test error

* fix: test error

* test: add test cases

* fix: remove PluginType

* chore: start application after install

* chore: fsm

* chore: working status

* chore: working command

* chore: remove swith app ready status

* chore: switch status after working done

* chore: ws status

* chore: gateway error

* chore: test

* chore: stopping status

* chore: test

* chore: test

* feat: app proxy

* chore: application destory

* chore: application message changed with status

* chore: test

* chore: test timeout

* test: remove listener add by plugin

* test: remove listener add by plugin

* chore: test

* feat: app maintaining

* fix: add AppMaintainingDialog

* feat: off

* test: gateway http response

* test: gateway with errors

* chore: unkown error

* chore: websocket message

* chore: ws message

* chore: code

* chore: error format

* chore: delay app load

* feat: improve code

* chore: application initializing status

* chore: supervisor with app status

* chore: command status response

* chore: test

* chore: ws message

* chore: test

* fix: command running message

* feat: restart

* chore: code

* chore: status transition

* chore: test

* fix: improve code

* fix: error

* fix: restart

* fix: command

* chore: reset client app tag when app selector changed

* chore: error report

* fix: application status

* fix: build

* chore: disable help command dispatch

* chore: test

* test: multi apps test

* fix: improve code

* fix: test

* fix: test

* fix: multi apps single running

* fix: improve code

* fix: app status

* chore: move plugin static file to gateway

* feat: static file handler

* chore: test

* chore: enable plugins in share collection

* chore: gateway serve upload files

* fix: improve client

* chore: ws nginx config

* fix: gateway with naonoid

* fix: db sync

* fix: loading

* fix: ping

* fix: locale load

* fix: yarn start --quickstart

* fix: add debug log

* chore: application started event

* chore: running working message payload

* chore: nginx log

* chore: nginxconf

* chore: working message log

* feat: logs

* feat: compression

* fix: remove koa-send and koa-static

* fix: remove -e

* fix: remove nginx

* fix: remove -e

* fix: __appName

* chore: delay install sub application

* chore: sync plugin status

* fix: boot sub app

* fix: main app reload

* fix: test

* fix: app status

* test: field.bind block event loop

* feat: newrelic

* feat: debug log

* chore: upgrade

* fix(file-manager): test error

* fix: default app selector

* fix: reload after maintained

* chore: boot sub app

* chore: application destroy command

* chore: destroy command

* chore: clean code

* chore: package.json

* chore: maintaining message

* chore: test

* fix: collection.sync

* feat: add test cases

* chore: application

* fix: test error

* feat: improve codes and add test cases

* fix: test error

* fix: pm enable and disable

* fix: pm.disable

* feat: update docs

* chore: update dockerfile

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-08-24 17:47:45 +08:00
chenos
d8787493db chore(versions): 😊 publish v0.12.0-alpha.5 2023-08-18 15:53:53 +08:00
chenos
df85fb430a chore(versions): 😊 publish v0.12.0-alpha.4 2023-08-15 12:22:49 +08:00
chenos
9251fe015f chore(versions): 😊 publish v0.12.0-alpha.3 2023-08-02 11:25:57 +08:00
chenos
6ae22cea68 chore(versions): 😊 publish v0.12.0-alpha.2 2023-08-02 02:25:49 +08:00
chenos
93f2bc2e67 chore(versions): 😊 publish v0.12.0-alpha.1 2023-08-02 00:10:42 +08:00
jack zhang
5df3b0e75d
refactor!: plugins build and plugins load (#2253)
* refactor: plugin build and plugin template

* refactor: plugins' deps

* refactor: plugins bugs

* feat: add plugin static middleware

* fix: bugs

* refactor: frontend plugin add from remote

* refactor: delete useless app/client/plugins

* fix: requirejs move to local

* fix: tests case

* refactor: add src/client and src/server dir check

* fix: lodash tree shaking

* refactor: add BUILD_TIP

* refactor: add file size tip

* fix: bugs

* fix: bug

* fix: change china-division

* fix: change plugins response

* fix: recover dynamicImport

* fix: change server src entry

* fix: test error

* fix: plugins sourcemap => false

* fix: production file error

* refactor: change build tools to vite and tsup

* fix: yarn.lock

* fix: bugs

* fix: server build bugs

* fix: delete .fatherrc.ts

* fix: bug

* fix: bug

* fix: bugs

* fix: bugs

* fix: bugs

* refactor: add plugin d.ts

* refactor: delete fatherrc

* refactor: delete father scripts

* refactor: build bug

* fix: bug

* fix: deps adjust

* fix: add build tips

* fix: bug

* refactor: ignore plugins when build client

* docs: update doc

* refactor: docs and build

* fix: bug

* refactor: build deps

* fix: add USER_REMOTE_PLUGIN env

* feat: add plugin static cache

* feat: add build deps cache

* fix: bugs

* test: add test

* fix: add plugin depden on plugin tip

* fix: adjust shouldDevDependencies

* fix: deps

* fix: ajust deps

* fix: mobile style error

* fix: map error

* fix: test

* fix: bug

* feat: lodash and dayjs import from themself

* feat: @emotion/css 、ahooks and lodash to global

* fix: theme-editor plugin error

* fix: review

* feat: move all plugins' dependencies to devDependencies

* feat: change build

* feat: add devPlugins

* fix: bug

* fix: bugs

* fix: bugs

* fix: bugs

* feat: build bugs

* fix: bugs

* fix: bugs

* fix: review

* fix: bug

* fix: change deps build

* fix: bugs

* fix: bug

* fix: bug

* fix: bugs

* fix: bug

* fix: bug

* fix: multi language

* fix: dist

* fix: cronstrue

* fix: getPackageClientStaticUrl

* fix: antd dayjs locale

* fix: plugin' d.ts import from dist

* fix: multi language

* fix: build types error

* fix: requireModule

* fix: plugin lifecycle

* fix: client resource

* fix: improve code

* fix: locale

* feat: custom build

* fix: require locale

* fix: improve code

* fix: improve code

* fix: skip preset

* fix: collection undefined

* feat: yarn build

* fix: remove enabled

* fix: update dockerfile

* fix: formily version

* docs: update v12 changelog

* fix: devDependencies

* feat: @nocobase/app

* feat: generateAppDir

* fix: improve code

* fix: 0.11.1-alpha.5

* fix: missing @nocobase/client

* fix: error

* fix: add .npmignore

* feat: upgrade antd version

* fix: dependencies

* fix: peerDependencies

* fix: remove china-division dep

* fix: toposort deps

* fix: update dockerfile

* fix: plugin template

* fix: app client outputPath

* feat: update docs

* fix: nginx server root

* fix: storage/.app-dev

* fix: getChinaDivisionData

* feat: plugin info

* feat: update docs

* fix: docs menu

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-08-02 00:07:52 +08:00
chenos
40c4aab507 chore(versions): 😊 publish v0.11.1-alpha.5 2023-07-29 20:25:18 +08:00
chenos
b93f28a952 chore(versions): 😊 publish v0.11.1-alpha.4 2023-07-29 09:11:52 +08:00
ChengLei Shao
a64b64384c chore: yarn dev with tsx watch 2023-07-27 11:00:39 +08:00
ChengLei Shao
0d92e59985
chore: tsx (#2329)
* chore: upgrade jest

* fix: eslint

* chore: github action backend test

* fix: import

* chore: export

* fix: test

* chore: install tsx

* chore: type

* chore: replace @koa/multer

* chore: replace ts-node-dev with tsx
2023-07-27 10:29:07 +08:00
chenos
81819f04e3 chore(versions): 😊 publish v0.11.1-alpha.3 2023-07-26 17:37:20 +08:00
chenos
c84476d805 chore(versions): 😊 publish v0.11.1-alpha.2 2023-07-23 12:44:50 +08:00
chenos
e979194cf2 chore(versions): 😊 publish v0.11.1-alpha.1 2023-07-22 12:50:04 +08:00
chenos
6aeb9b321e fix(cli): missing fs.existsSync 2023-07-08 09:54:23 +08:00
chenos
c0a59524ab chore(versions): 😊 publish v0.11.0-alpha.1 2023-07-08 08:29:33 +08:00
jack zhang
2cb1203aa4
refactor(client)!: application, router and plugin (#2068)
BREAKING CHANGE:

* refactor: update umi version 3.x to version 4.x

* refactor: update react-router-dom version to 6.x

* refactor(react-router-dom): change Layout Component `props.children` to `<Outlet />`

* refactor(react-router-dom): change <Route /> props and <RouteSwitch /> correct

* refactor(react-router-dom): replace `<Redirect />` to `<Navigate replace />`

* refactor(react-router-dom): replace `useHistory` to `useNavigate`

* refactor(react-router-dom): replace `useRouteMatch` to `useParams`

* refactor(react-router-dom & dumi): fix <RouteSwitch /> & umi document bug

* refactor(react-router-dom): `useRoutes` Optimize `<RouteSwitch />` code

* refactor(react-router-dom): update `Route` types and docs

* refactor(react-router-dom): optimize RouteSwitch code

* refactor(react-router-dom): `useLocation` no generics type

* refactor(react-router-dom): add `less v3.9.0` to `resolutions` to solve the error of `gulp-less`

* refactor(react-router-dom): fix `<RouteSwitch />`  `props.routes` as an array is not handled

* chore: upgrade `dumi` and refactor docs

* fix: completed code review, add `targets` to solve browser compatibility & removed `chainWebpack`

* refactor(dumi): upgraded dumi under `packages/core/client`

* refactor(dumi): delete `packages/core/dumi-theme-nocobase`

* refactor(dumi): degrade `react`  & replace `dumi-theme-antd` to `dumi-theme-nocobase`

* refactor(dumi): solve conflicts between multiple dumi applications

* fix: login page error in react 17

* refactor(dumi): remove less resolutions

* refactor(dumi): umi add `msfu: true` config

* fix: merge bug

* fix: self code review

* fix: code reivew and test bug

* refactor: upgrade react to 18

* refactor: degrade react types to 17

* chore: fix ci error

* fix: support routerBase & fix workflow page params

* fix(doc): menu externel link

* fix: build error

* fix: delete

* fix: vitest error

* fix: react-router new code replace

* fix: vitest markdown error

* fix: title is none when refresh

* fix: merge error

* fix: sidebar width is wrong

* fix: useProps error

* fix: side-menu-width

* fix: menu selectId is wrong & useProps is string

* fix: menu selected first default & side menu hide when change

* fix: test error & v0.10 change log

* fix: new compnent doc modify

* fix: set umi `fastRefresh=false`

* refactor: application v2

* fix: improve code

* fix: bug

* fix: page = 0 error

* fix: workflow navigate error

* feat: plugin manager

* fix: afterAdd

* feat: complete basic functional refactor

* fix: performance Application

* feat: support client and server build

* refactor: nocobase build-in plugin and providers

* fix: server can't start

* refactor: all plugins package `Prodiver` change to `Plugin`

* feat: nested router and change mobile client

* feat: delete application-v1 and router-switch

* feat: improve routes

* fix: change mobile not nested

* feat: delete RouteSwitchContext and change buildin Provider to Plugin

* feat: delete RouteSwitchContext plugins

* fix: refactor SchemaComponentOptions

* feat: improve SchemaComponentOptions

* fix: add useAdminSchemaUid

* fix: merge master error

* fix: vitest error

* fix: bug

* feat: bugs

* fix: improve code

* fix: restore code

* feat: vitest

* fix: bugs

* fix: bugs

* docs: update doc

* feat: improve code

* feat: add docs and imporve code

* fix: bugs

* feat: add tests

* fix: remove deps

* fix: muti app router error

* fix: router error

* fix: workflow error

* fix: cli error

* feat: change NoCobase -> Nocobase

* fix: code review

* fix: type error

* fix: cli error and plugin demo

* feat: update doc theme

* fix: build error

* fix: mobile router

* fix: code rewview

* fix: bug

* fix: test bug

* fix: bug

* refactor: add the "client" directory to all plugins

* refactor: modify samples client and plugin template

* fix: merge error

* fix: add files in package.json

* refactor: add README to files in package.json

* fix: adjust plugins depencies

* refactor: completing plugins' devDependencies and dependencies

* fix: bug

* refactor: remove @emotion/css

* refactor: jsonwebtoken deps

* refactor: remove sequelize

* refactor: dayjs and moment deps

* fix: bugs

* fix: bug

* fix: cycle detect

* fix: merge bug

* feat: new plugin bug

* fix: lang bug

* fix: dynamic import bug

* refactor: plugins and example add father config

* feat: improve code

* fix: add AppSpin and AppError components

* Revert "refactor: plugins and example add father config"

This reverts commit 483315bca5524e4b8cbbb20cbad77986f081089d.

# Conflicts:
#	packages/plugins/auth/package.json
#	packages/plugins/multi-app-manager/package.json
#	packages/samples/command/package.json
#	packages/samples/custom-collection-template/package.json
#	packages/samples/ratelimit/package.json
#	packages/samples/shop-actions/package.json
#	packages/samples/shop-events/package.json
#	packages/samples/shop-modeling/package.json

* feat: update doc

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-07-07 14:35:22 +08:00
chenos
15f028295c chore(versions): 😊 publish v0.10.1-alpha.1 2023-07-07 06:56:04 +08:00
chenos
560c00cc3e chore(versions): 😊 publish v0.10.0-alpha.5 2023-06-29 15:34:40 +08:00
chenos
f3f91bd649 chore(versions): 😊 publish v0.10.0-alpha.4 2023-06-27 13:50:59 +08:00
chenos
83bf8ea3bb chore(versions): 😊 publish v0.10.0-alpha.3 2023-06-25 14:04:19 +08:00
jack zhang
20f673a6b3
fix: create plugin cli error (#2102) 2023-06-23 15:54:48 +08:00
chenos
0b06e2cd69 chore(versions): 😊 publish v0.10.0-alpha.2 2023-06-20 11:51:16 +08:00
jack zhang
d76e8fb87f
refactor: upgrade umi, react and react-router-dom (#1921)
* refactor: update umi version 3.x to version 4.x

* refactor: update react-router-dom version to 6.x

* refactor(react-router-dom): change Layout Component `props.children` to `<Outlet />`

* refactor(react-router-dom): change <Route /> props and <RouteSwitch /> correct

* refactor(react-router-dom): replace `<Redirect />` to `<Navigate replace />`

* refactor(react-router-dom): replace `useHistory` to `useNavigate`

* refactor(react-router-dom): replace `useRouteMatch` to `useParams`

* refactor(react-router-dom & dumi): fix <RouteSwitch /> & umi document bug

* refactor(react-router-dom): `useRoutes` Optimize `<RouteSwitch />` code

* refactor(react-router-dom): update `Route` types and docs

* refactor(react-router-dom): optimize RouteSwitch code

* refactor(react-router-dom): `useLocation` no generics type

* refactor(react-router-dom): add `less v3.9.0` to `resolutions` to solve the error of `gulp-less`

* refactor(react-router-dom): fix `<RouteSwitch />`  `props.routes` as an array is not handled

* chore: upgrade `dumi` and refactor docs

* fix: completed code review, add `targets` to solve browser compatibility & removed `chainWebpack`

* refactor(dumi): upgraded dumi under `packages/core/client`

* refactor(dumi): delete `packages/core/dumi-theme-nocobase`

* refactor(dumi): degrade `react`  & replace `dumi-theme-antd` to `dumi-theme-nocobase`

* refactor(dumi): solve conflicts between multiple dumi applications

* fix: login page error in react 17

* refactor(dumi): remove less resolutions

* refactor(dumi): umi add `msfu: true` config

* fix: merge bug

* fix: self code review

* fix: code reivew and test bug

* refactor: upgrade react to 18

* refactor: degrade react types to 17

* chore: fix ci error

* fix: support routerBase & fix workflow page params

* fix(doc): menu externel link

* fix: build error

* fix: delete

* fix: vitest error

* fix: react-router new code replace

* fix: vitest markdown error

* fix: title is none when refresh

* fix: merge error

* fix: sidebar width is wrong

* fix: useProps error

* fix: side-menu-width

* fix: menu selectId is wrong & useProps is string

* fix: menu selected first default & side menu hide when change

* fix: test error & v0.10 change log

* fix: new compnent doc modify

* fix: set umi `fastRefresh=false`

* refactor: application v2

* fix: improve code

* fix: bug

* fix: page = 0 error

* fix: workflow navigate error

* feat: plugin manager

* fix: afterAdd

* feat: update docs

* feat: update docs

* fix: page tab change not work

* fix: login redirect query param doesn't work

* fix: bug and doc

* feat: update docs

* fix: ci error

* fix: merge main

* feat: update docs

* feat: update docs

* feat: update docs

* chore(versions): 😊 publish v0.10.0-alpha.1

* fix: translations

* chore: backend node test max old space size

* docs: add useSearchParams

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: ChengLei Shao <chareice@live.com>
2023-06-20 11:48:02 +08:00
chenos
e6a2a292b3
feat: upgrade formily (#1880)
* feat: upgrade formily

* fix: upgrade @formily/json-schema

* fix: optimizing performance

* fix: performance code

* refactor: `React.memo` and `observer` component add `displayName` property

* fix: add cache to Schema.compile

* feat: 优化代码

* fix: 修复卡顿最终的问题

* Update SchemaComponentProvider.tsx

* feat: 再次优化代码

* feat: optimized code

---------

Co-authored-by: dream2023 <1098626505@qq.com>
2023-06-06 19:33:04 +08:00
chenos
d7f21460c6 chore(versions): 😊 publish v0.9.4-alpha.2 2023-05-26 17:05:46 +08:00
chenos
9c94840c6b chore(versions): 😊 publish v0.9.4-alpha.1 2023-05-25 22:48:39 +08:00
YANG QIA
eac034cb23
feat: support reboot application manually (#1889)
* feat(reload-btn): reload application manually

* feat(app): support reboot

* feat: collections load after upgrade

* feat(reboot): support reboot manually

* chore(reboot): some typo

* fix(reboot): fix storage path

* fix(reboot): change restart file path

* fix: menu divider

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-05-19 20:34:22 +08:00
chenos
cf0a921f85 chore(versions): 😊 publish v0.9.3-alpha.1 2023-05-11 12:49:18 +08:00
chenos
923f6e7884 chore(versions): 😊 publish v0.9.2-alpha.4 2023-04-26 22:33:55 +08:00
ChengLei Shao
76527465f3
feat: node args in pm2 runtime (#1774) 2023-04-26 20:54:38 +08:00
chenos
9756dd134b chore(versions): 😊 publish v0.9.2-alpha.3 2023-04-25 13:15:40 +08:00
chenos
883f1e6fd1
fix: eslint (#1759)
* fix: eslint

* fix: eslint --fix

* fix: changelog
2023-04-25 13:12:14 +08:00
chenos
3dfd5a1f7a chore(versions): 😊 publish v0.9.2-alpha.2 2023-04-19 13:10:55 +08:00
chenos
bc5156d458 chore(versions): 😊 publish v0.9.1-alpha.2 2023-03-09 12:45:30 +08:00
chenos
946c8f25a3 chore(versions): 😊 publish v0.9.1-alpha.1 2023-03-03 09:34:06 +08:00
chenos
2dc9c5c444
fix: error:0308010C:digital envelope routines::unsupported (#1447)
* fix: error:0308010C:digital envelope routines::unsupported

* fix: process.env.UNSET_NODE_OPTIONS
2023-02-10 11:16:36 +08:00
ChengLei Shao
bab10c928b
fix: inherit startup sort (#1402) 2023-01-29 15:46:53 +08:00
chenos
daa91e95a6 chore(versions): 😊 publish v0.9.0-alpha.2 2023-01-14 12:07:20 +08:00
chenos
013f0916a5 chore(versions): 😊 publish v0.9.0-alpha.1 2023-01-11 12:08:24 +08:00
chenos
8d30bee757
feat: change license (#1350) 2023-01-11 11:58:47 +08:00
ChengLei Shao
6b0ed79f51
feat: duplicator plugin (#1265)
* chore: dump plugin

* chore: rename plugin

* chore: add duplicator into preset

* chore: tmp commit

* feat: restore & dump action

* feat: collection dump & restore

* feat: collection dump & restore

* fix: dump with json type

* fix: dump uischema

* chore: tmp commit

* chore: tmp commit

* feat: restore custom collections

* chore: code

* fix: build

* chore: tmp commit

* fix: pm.generateClientFile

* feat: dump with user plugins

* feat: restore ignore collection

* feat: ignore user with rolesUsers

* chore: client plugins

* refactor: restore insert sql

* chore: code format

* feat: restore with sequelize insert query

* fix: restore json field

* fix: json restore

* refactor: dumper

* refactor: restorer

* chore: dump file name

* chore: dump file name

* chore: dump message

* fix: restore with jsonb fields

* feat: field data writer

* chore: code

* feat: collection group manager

* feat: duplicator client

* feat: duplicator panel

* chore: disable duplicator ui

* feat: dump with inquirer

* chore: dumper

* chore: collection group manager

* feat: restore with inquirer

* chore: comment

* chore: inquirer page size

* feat: warning before restore

* feat: sync postgres sequence id after import collection

* chore: restore checked

* feat: dump with through table

* feat: restore with through table

* feat: restore with sequence field

* chore: graph collection manager collection group

* fix: dump with no column tables

* fix: dump empty table

* fix: force remove workdir

* chore: disable throw error when sync empty table

* feat: support map field restore

* fix: restore from pg dumped file

* fix: dump with logic field

* chore: console.log

* chore: collection group

* chore: handle import collection error

* fix: dump migrations table

* feat: display custom collection title

* fix: restore collection title display

* fix: dump iframe html

* fix: dump with postgres inhertitance

* fix: dump sql

* chore: export snapshot field

* fix: import with sequences

* fix: import sequences

* fix: storage

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-01-08 12:45:02 +08:00
chenos
d062c8fd99
chore(versions): 😊 publish v0.8.1-alpha.4 (#1331) 2023-01-05 23:22:18 +08:00
chenos
4ecd2ee40d chore(versions): 😊 publish v0.8.1-alpha.2 2023-01-05 18:29:47 +08:00
chenos
b96cdea2fc
feat(cli): quickstart (#1204) 2022-12-05 22:19:22 +08:00
chenos
c64e32945e
fix: yarn start error in windows system (#1177)
* feat: add .env.test.example

* fix: yarn start error in windows system
2022-12-02 14:23:07 +08:00
ChengLei Shao
1ebb70e4c5
fix/inherits issues(#1146)
* chore: sync inherits command

* fix: inherit field type conflit

* fix: merge

* fix: test

* fix: test

* chore: app command

* chore: create inheritance map

* fix: test

* fix: test

* fix: test
2022-11-26 09:24:53 +08:00
chenos
dcee3dd94a chore(versions): 😊 publish v0.8.0-alpha.13 2022-11-04 21:23:02 +08:00
chenos
3aa7c0787a
fix: db sync failed (#1037)
* fix: db sync failed

* fix: remove db sync
2022-11-04 15:38:08 +08:00
chenos
642e04490d chore(versions): 😊 publish v0.8.0-alpha.9 2022-11-02 22:27:03 +08:00
chenos
d5680f80d7 chore(versions): 😊 publish v0.8.0-alpha.8 2022-11-01 18:34:12 +08:00
chenos
85ead5375a
chore(versions): 😊 publish v0.8.0-alpha.7 (#1002) 2022-11-01 17:29:49 +08:00
chenos
3453f46997 chore(versions): 😊 publish v0.8.0-alpha.5 2022-11-01 00:50:00 +08:00
chenos
a6eebb940f
feat: update docs (#990)
* feat: improve code

* feat: update docs

* feat: update docs

* Update index.md

* Update features.md

* Update when.md

* Update contributing.md

* Update translations.md

* feat: clean up

* Add files via upload

* Update the-first-app.md

* Update plugins.md

* Update a-b-c.md

* Update blocks.md

* feat: update docs

* Add files via upload

* Update charts.md

* feat: update navs

* Update index.md

* Update index.md

* Update features.md

* Update index.md

* Update docker-compose.md

* Update create-nocobase-app.md

* Update git-clone.md

* Update contributing.md

* Update translations.md

* Update plugins.md

* Update the-first-app.md

* Add files via upload

* Update charts.md

* Update charts.md

* Update a-b-c.md

* Update collections.md

* Update menus.md

* Update menus.md

Co-authored-by: Zhou <zhou.working@gmail.com>
2022-10-31 11:52:17 +08:00
chenos
249dff16d3
refactor: plugin manager (#965)
* feat: improve code

* chore: update version

* feat: api service

* fix: api services

* feat: improve code

* feat: improve code

* feat: improve code

* feat: pm socket

* fix: test errors

* feat: add built-in plugins before upgrade

* feat: update docs

* feat: improve code

* fix: after load
2022-10-27 13:00:16 +08:00
chenos
7e929b8f68
fix: auto install a plugin on enable (#852) 2022-09-26 23:47:07 +08:00
chenos
50286e2c3c fix: some bugs 2022-09-26 14:52:10 +08:00
chenos
f9f8dc78f4
refactor: plugin manager (#775)
* feat: dynamic import plugin client

* refactor: pm

* chore: improve cli

* feat: improve code

* feat: update dependences

* feat: hello plugin

* fix: plugin.enabled

* fix: test error

* feat: improve code

* feat: pm command

* feat: add samples

* fix: redirect

* feat: transitions

* feat: bookmark

* feat: add pm script
2022-09-18 14:10:01 +08:00
Junyi
b92f3b3b95
refactor(database): fix some fields and types (#820)
* refactor(database): fix some fields and types

* fix(database): fix operator ne to null
2022-09-11 21:58:49 +08:00
chenos
7fde444a60
chore(versions): 😊 publish v0.7.4-alpha.7 (#740) 2022-08-15 16:12:12 +08:00
chenos
a3810ac61a
chore(versions): 😊 publish v0.7.4-alpha.4 (#727) 2022-08-12 10:54:10 +08:00
chenos
bc12c92091
chore(versions): 😊 publish v0.7.4-alpha.1 (#696)
* docs: update release notes

* chore(versions): 😊 publish v0.7.4-alpha.1

* feat: update docker image version
2022-07-28 23:16:17 +08:00
chenos
83f2e19ef3
chore(versions): 😊 publish v0.7.3-alpha.1 (#657) 2022-07-20 15:28:13 +08:00
chenos
451d6ae974
chore(versions): 😊 publish v0.7.2-alpha.7 (#611)
* fix(cli): db sync error
* fix(cli): upgrade error
* feat: update docker image version
2022-07-10 00:41:36 +08:00
chenos
689a793593 feat(cli): add daemon option to start command 2022-07-09 14:45:47 +08:00
chenos
307c4ca1dc
chore(versions): 😊 publish v0.7.2-alpha.3 (#608) 2022-07-08 11:02:33 +08:00
chenos
654f0380b6
chore(versions): 😊 publish v0.7.2-alpha.2 (#606) 2022-07-07 18:38:30 +08:00
chenos
7c7fd1bb5e fix(cli): remove process.env.NODE_OPTIONS 2022-07-05 13:10:50 +08:00
chenos
1e7746292f
chore(versions): 😊 publish v0.7.2-alpha.1 (#578)
* chore(versions): 😊 publish v0.7.2-alpha.1

* feat: update docker image version
2022-07-05 09:55:22 +08:00
chenos
ec7bc2bc8b
feat(cli): check database version before installation (#572)
* feat(cli): check database version before installation

* fix: log

* fix: fix bugs

* fix: postgres

* fix: run beforeInstall
2022-07-04 13:41:07 +08:00
chenos
a8f951dfab
chore(versions): 😊 publish v0.7.1-alpha.7 (#539)
* fix(cli): upgrade from docker

* chore(versions): 😊 publish v0.7.1-alpha.6

* fix: export bug

* chore(versions): 😊 publish v0.7.1-alpha.7

* docs: update release notes
2022-06-26 11:25:13 +08:00
chenos
c9159c6cf4 chore(versions): 😊 publish v0.7.1-alpha.5 2022-06-26 07:36:22 +08:00
chenos
c4c96e5a79 fix(cli): upgrade from docker 2022-06-26 07:35:45 +08:00
chenos
570d039f19 chore(versions): 😊 publish v0.7.1-alpha.4 2022-06-26 07:21:10 +08:00
chenos
cd5bd09c50
chore(create-nocobase-app): fix some bugs (#538)
* fix: tsconfig

* chore(versions): 😊 publish v0.7.1-alpha.1

* fix: update gitHead

* fix: update gitHead

* chore(versions): 😊 publish v0.7.1-alpha.2

* fix: update client/server entry file

* chore(versions): 😊 publish v0.7.1-alpha.3

* fix: check core dir

* fix: missing core dir

* feat: relationship fields are loaded on demand
2022-06-26 07:19:03 +08:00
chenos
3dce31f6a1
refactor: client application (#533)
* refactor: client application

* feat: application

* fix: improve code

* fix: app plugin

* fix: app plugin

* fix: china region plugin
2022-06-24 21:19:57 +08:00
chenos
8514953157 fix(cli): upgrade error in node v14 2022-06-17 14:21:56 +08:00
金昶
b91ca4420b
feat: association field block (#493)
* feat: association field block

* feat: association details block

* feat: template add resource name

* feat: add association calendar

* fix: update yarn.lock

* fix: remove useAssociationNames

* fix: restore useFilterByTk logic

* feat: client doc

* fix: resolveNocobasePackagesAlias

* fix: input textarea readpretty

* feat: styling

* fix: oho & obo

* fix: field-summary component remove to collection manager

* fix: translation

* feat: improve code

* fix(audit-logs): skip when collection does not exist

* feat: m2m

* fix: improve code

* fix: title field

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-06-14 15:46:48 +08:00
Junyi
588ee21f4d
chore(debug): add debug config (#475) 2022-06-06 23:01:37 +08:00
chenos
8298d2a691 fix(cli): yarn install --production error 2022-06-02 14:44:10 +08:00
chenos
838f4f18dc chore(versions): 😊 publish v0.7.0-alpha.83 2022-06-01 12:49:30 +08:00
chenos
1a5d1f1ebf fix: default value of time zone 2022-06-01 12:25:21 +08:00
chenos
9a64384bc1 fix: error message "error:0308010C:digital envelope routines::unsupported" 2022-05-29 11:44:28 +08:00
Junyi
e286e1bf59
fix(cli): typo (#429) 2022-05-27 21:09:55 +08:00
chenos
4820fd0937 chore(versions): 😊 publish v0.7.0-alpha.82 2022-05-27 00:02:32 +08:00
chenos
735581d20d
feat: add create-plugin command (#423)
* feat: add create-plugin command

* chore(versions): 😊 publish v0.7.0-alpha.79

* chore(versions): 😊 publish v0.7.0-alpha.80

* chore(versions): 😊 publish v0.7.0-alpha.81
2022-05-25 23:21:19 +08:00
chenos
cd39e927b6
chore(versions): 😊 publish v0.7.0-alpha.78 (#419)
* chore(versions): 😊 publish v0.7.0-alpha.68

* chore(versions): 😊 publish v0.7.0-alpha.69

* chore(versions): 😊 publish v0.7.0-alpha.70

* chore(versions): 😊 publish v0.7.0-alpha.71

* chore(versions): 😊 publish v0.7.0-alpha.72

* chore(versions): 😊 publish v0.7.0-alpha.78
2022-05-24 19:37:15 +08:00
chenos
326297936b chore(versions): 😊 publish v0.7.0-alpha.67 2022-05-24 15:53:45 +08:00
chenos
9c19e4d67f chore(versions): 😊 publish v0.7.0-alpha.66 2022-05-24 15:52:21 +08:00