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
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
YANG QIA
24601aa66f
feat(auth): support custom authentication ( #2007 )
...
* feat(auth): init auth package & collection
* feat(auth): register
* feat(auth): use authenticator
* feat(auth): mapRoles
* feat(auth): refactor
* feat(auth): base auth class
* feat(auth): add plugin
* chore(auth): test
* chore(auth): add test cases
* feat(auth): authenticators pane
* chore(auth): custom hook useAuthTypes
* feat(auth): authenticator pane
* chore(auth): store options schema using context
* feat(auth): signInPage provider
* feat(auth): signUpPage provider
* chore(auth): solve build errors
* chore(auth): add dependency
* chore(auth): remove dependency cycles
* chore(auth): add plugin-auth to preset
* chore(auth): fix test
* feat(auth): authenticator enable status
* fix(test): fix test using new authentication
* feat(auth): migration, set up basic auth
* chore(auth): can set options ui by component
* fix(test): workflow manunal.test
* fix(test): typo
* feat(auth): support multi-language
* chore(auth): imporve code
* chore(auth): hide button if no configuration
* chore(auth): readme
* chore(auth): remove allowSignup prop
* chore(auth): move configure pane to edit form
* fix(auth): jwt options bug
* feat(auth): init sms-auth
* chore(auth): at least authenticator required
* chore(auth): add test
* feat(auth): support sms auth
* fix(auth): fix test
* chore(auth): move findOrCreateUser to AuthModel
* chore(auth): history compatible processing
* feat(auth): support SAML auth
* chore(auth): saml auth list
* chore(saml-auth): improve ui
* Merge branch 'main' into feat/authentication
* chore(auth): improve code
* fix(saml-auth): fix bug
* fix(saml-auth): fix saml options
* chore(saml-auth): compatible processing && ut
* fix(auth): signin page bug
* chore(auth): saml compatible processing
* feat(auth): oidc-auth
* fix(oidc-auth): bug
* fix(oidc-auth): bug
* fix(auth): fix test
* chore(auth): filter enabled authenticator
* chore(oidc): add field map
* chore(auth): update readme
* docs(auth): create sms-auth readme
* feat(auth): allow signup config
* test(auth): fix test
* feat(auth): allow saml and oidc use http
* chore(oidc-auth): extends timeout
* docs(auth): update readme
* feat(auth): support sort
* docs(saml): update readme
* feat(auth): support sort all authenticator
* Merge branch 'main' into feat/authentication
* Merge branch 'main' into feat/authentication
* feat: improve code
* docs(auth): add doc
* Merge branch 'main' into feat/authentication
* chore: update yarn.lock
* feat: improve code
* chore(acl): write role to acl if it exists in database and not found … (#2001 )
* chore(acl): write role to acl if it exists in database and not found in acl
* fix: test
* fix: eager load with nested association (#2002 )
* chore: upgrade vitest
* chore: edit
* refactor: auth class
* fix: set options
* chore(acl): write role to acl if it exists in database and not found … (#2001 )
* chore(acl): write role to acl if it exists in database and not found in acl
* fix: test
* fix: eager load with nested association (#2002 )
* chore: upgrade vitest
* chore: add migrations
* test: fix api-client test
* chore: add sms-auth
* feat: avoid no permission after auth type disabled
* fix: translation
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-06-07 23:46:42 +08:00
lincode
4296db5859
feat(plugin-manager): better plugin manager experience ( #1927 )
2023-05-29 11:06:54 +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
ChengLei Shao
c0ef071baf
Refactor/append fields ( #1883 )
...
* chore: eager loading tree
* feat: load eager loading tree
* feat: merge stage of eager loading
* feat: merge stage of belongs to
* feat: merge stage of has one
* feat: merge stage of belongs to many
* chore: test
* chore: print tree
* chore: using eager loading tree in repository find
* fix: empty ids load
* fix: belongs to many query
* fix: load belongs to association
* fix: eager load data accessor
* fix: has many
* fix: test
* fix: filter with appends
* chore: remove handle appends query
* chore: console.log
* chore: console.log
* fix: test
2023-05-19 16:39:00 +08:00
JoGosGitHub
770f53ec4e
Feat/translation es_ES ( #1801 )
...
* feat: client and plugin translation ES
* fix: es translation
* fix: es translation
2023-05-17 11:39:37 +08:00
chenos
cf0a921f85
chore(versions): 😊 publish v0.9.3-alpha.1
2023-05-11 12:49:18 +08:00
Junyi
eb0089190e
fix(utils): fix json-templates bug and moved to utils ( #1784 )
2023-04-28 22:22:08 +08:00
chenos
923f6e7884
chore(versions): 😊 publish v0.9.2-alpha.4
2023-04-26 22:33:55 +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
被雨水过滤的空气-Rairn
098140d511
feat(parse-variables): support to parse variables in filter params ( #1558 )
...
* fix: add field linkage on setting default datetime
* fix: fix dateonly timezone problem
* fix: improve test
* docs(DatePicker): add demos
* fix(DatePicker): should return the beginning of a second
* feat(DatePicker): support non-UTC
* refactor: rename
* fix(RangePicker): get correct end date
* test(mapDatePicker): add test
* test(mapRangePicker): add test
* feat(Filter): use non-UTC to filter
* feat(FilterBlock): use non-UTC to filter
* feat: add '$dateBetween' operator in datetime
* feat: use RangePicker on toggled to 'dateBetween' operator
* feat: set ranges for RangePicker
* feat: backend support to parse 'dateBetween' operator
* fix: fix build error
* fix: adaptive content width
* feat: support to use var on data scope
* feat: add parse-variables plugin
* feat: support to parse variables
* feat: support only to set system variables
* test: rename
* feat: cover all
* fix: fix build error
* feat(RangePicker): extend more shortcut keys
* feat(parse-variables): support more date var
* feat: support user variables
* feat: disable unmatched options
* fix: use component name to filter option
* fix: fix build error
* feat: remove some operator of id
* chore: remove useless operators
* fix: built in plugin
* refactor: move to core from plugin
* refactor: remove code of plugin
* refactor: remove useless code
* fix: should after acl
* Update server.ts
* fix: compatible with old version
* feat: test cases
* refactor: rename to 'is between'
* refactor: parse filter
* fix: improve code
* feat: test cases
* fix: fix error
* fix: improve parse date
* fix: date variables
* fix: day range
* fix: test error
* fix: typo
* fix: test error
* feat: $user variable
* fix: toDate
* fix: fix the value range of shortcuts
* feat: add quarter and test
* feat: support to use user's association fields to filter
* refactor: use maxDepth
* refactor: remove useless code
* fix: make AssociationSelect.Designer to support variables
* fix: getField
* fix: parse utc
* fix: remove only
* fix: filter by ctx.db.getFieldByPath
* fix: avoid error
* fix: add translation
* fix(RangePicker): can be set to empty
* feat(utils): add hasEmptyValue
* fix: should not save empty
* fix: last few days should include today
* fix: limit user variable type to display
* fix: parse filter error
* fix: empty
* test: [skip ci]
* fix: remove ';'
* feat: improve code
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-03-30 23:49:57 +08:00
Italo A. G
726b08e87a
Translation pt-BR (Brazilian Portuguese) ( #1591 )
...
* feat: portuguese brazil translations
* feat: add pt-BR languate to the plugins
* feat: add pt-BR languate to the plugins
2023-03-23 22:53:33 +08:00
chenos
4427c70087
feat: compact theme ( #1574 )
...
* feat: compact theme
* fix: theme
* fix: styling
* fix: margin
* feat: improve
* fix: remove console.log
2023-03-19 23:40:11 +08:00
ChengLei Shao
0832a56868
feat: multiple apps ( #1540 )
...
* chore: skip yarn install in pm command
* feat: dump sub app by sub app name
* feat: dump & restore by sub app
* chore: enable application name to edit
* chore: field belongsTo uiSchema
* test: drop schema
* feat: uiSchema migrator
* fix: test
* fix: remove uiSchema
* fix: rerun migration
* chore: migrate fieldsHistory uiSchema
* fix: set uiSchema options
* chore: transaction params
* fix: sql error in mysql
* fix: sql compatibility
* feat: collection group api
* chore: restore & dump action template
* chore: tmp commit
* chore: collectionGroupAction
* feat: dumpableCollection api
* refactor: dump command
* fix: remove uiSchemaUid
* chore: get uiSchemaUid from tmp field
* feat: return dumped file url in dumper.dump
* feat: dump api
* refactor: collection groyoup
* chore: comment
* feat: restore command force option
* feat: dump with collection groups
* refactor: restore command
* feat: restore http api
* fix: test
* fix: test
* fix: restore test
* chore: volta pin
* fix: sub app load collection options
* fix: stop sub app
* feat: add stopped status to application to prevent duplicate application stop
* chore: tmp commit
* test: upgrade
* feat: pass upgrade event to sub app
* fix: app manager client
* fix: remove stopped status
* fix: emit beforeStop event
* feat: support dump & restore subApp through api
* chore: dumpable collections api
* refactor: getTableNameWithSchema
* fix: schema name
* feat: cname
* refactor: collection 同步实现方式
* refactor: move collection group manager to database
* fix: test
* fix: remove uiSchema
* fix: uiSchema
* fix: remove settings
* chore: plugin enable & disable event
* feat: modal warning
* fix: users_jobs namespace
* fix: rolesUischemas namespace
* fix: am snippet
* feat: beforeSubAppInstall event
* fix: improve NOCOBASE_LOCALE_KEY & NOCOBASE_ROLE_KEY
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-03-10 19:16:00 +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
Chareice
01663da7ec
fix: install user error
2023-02-19 16:20:14 +08:00
chenos
e5e503fe87
feat: add namespace and duplicator parameters for collection options ( #1449 )
...
* feat: add namespace and duplicator parameters for collection options
* fix: duplicator:getDict
2023-02-13 09:57:03 +08:00
chenos
68511f05bc
docs: add plug-in documentation
2023-02-11 00:09:39 +08:00
chenos
daa91e95a6
chore(versions): 😊 publish v0.9.0-alpha.2
2023-01-14 12:07:20 +08:00
chenos
cc47041519
feat: load multiple languages dynamically ( #1355 )
...
* feat: load multiple languages dynamically
* fix: map locale
* fix: antd
* fix: locale
* fix: th
* fix: cronstrue locales
* fix: improve code
* fix: defaults
2023-01-13 10:55:04 +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
chenos
fd71d57bdf
fix: add filter operator "is not current logged-in user"
2023-01-09 10:59:26 +08:00
ChengLei Shao
a614bc7de8
feat: acl optimization ( #1136 )
...
* fix: sort field with table dose not have primary key
* feat: fixed params merger
* chore(plugins/acl): fixed params
* chore(plugins/acl): allowConfigure of collections
* chore(plugins/china-region): disable actions other than list
* chore(plugins/collection-manager): allowConfigure permission
* chore(plugins/file-manager): acl fixed params
* chore: acl fixed params
* chore: rolesResourcesScopes onDelete cascade
* fix: install error
* chore: test
* fix: root user fixed params
* fix: role resource scope onDelete
* chore: test
* chore: test
* fix: acl
* chore: disable index.html cache
* chore: disable index.html cache
* test: destory user role
* test: destory throught table
* fix: test
* fix: test
* chore: add rolesUsers to fixed params
* feat: permission logging
* feat: permission logging
* fix: test
* fix: test
* chore: disable grant target action
* fix: appends with fields
* fix: get action params
* fix: associationActions
* chore: change AssociationField using relation type
* chore: typo
* refactor: allow to skip
* fix: prettier
* chore: attachments association action
* fix: allowConfigure condition
* fix: deprecated allow
* fix: please use skip instead
* feat: table column aclcheck
* chore: test
* feat: throw error when detory no permission record
* chore: test
* chore: acl test
* feat: field acl
* chore: after action middleware
* fix: destory permission check
* chore: middleware use
* fix: test
* feat: filter match
* feat: subform/subtable field acl check
* feat: action permision by scope
* feat: action permision by scope
* feat: list action with allowedActions
* chore: all allowed action
* fix: pk error
* fix: merge error
* fix: create query sql
* fix: skip permission
* fix: scope with association field
* feat: action acl fix
* feat: action acl fix
* fix: update submodule
* Feat: setting center permission (#1214 )
* feat: add setting center permissions
* feat: setting center permissions backlist
* feat: setting center permissions BLACKLIST
* feat: setting center permissions blacklist
* feat: setting center permissions blacklist
* feat: setting center permission
* feat: configure plugin tab expand
Co-authored-by: chenos <chenlinxh@gmail.com>
* Feat :field acl (#1211 )
Co-authored-by: chenos <chenlinxh@gmail.com>
* fix: build error
* test: acl snippet
* feat: set field
* fix: test
* fix: build error
* fix: utils Dependency cycles
* feat: general permissions
* feat: delete pluginTabBlacklist
* fix: test
* feat: snippetManager allow method
* feat: acl role snippetAllowed method
* feat: array field repository
* feat: ArrayFieldRepository
* fix: test
* fix: ci
* fix: ci error
* fix: add set parse
* test: array field repository
* chore: addSnippetPatten
* fix: start
* feat: sync role snippets
* feat: snippets check
* feat: snippets check
* chore: acl role snippet api
* fix: test
* fix: test
* refactor: acl role snippets
* chore: registerACLSettingSnippet
* chore: default snippets
* feat: snippets match
* feat: snippets check
* feat: snippets check
* feat: pm permision check
* feat: pm permision check
* feat: snippet pattern match
* feat: pluginManagerToolbar check
* feat: pluginManagerToolbar check
* chore: snippets default value
* feat: set role snippets migration
* chore: snippets
* feat: acl local
* feat: acl local
* feat: bookmask fix
* feat: plugin-manger & ui-editor snippet
* feat: set allowConfigure to false when upgrade to snippets
* feat: destory action acl fix
* feat: destory action acl fix
* fix: association resource params merge
* fix: ui editor snippet
* feat: action acl fix
* chore: move list meta middleware into plugins/acl
* fix: test
* feat: action acl fix
* feat: action acl check fix
* feat: plugins toolbar fix
* feat: gitmodules
* fix: subproject
* chore: add avaiableActions to snippet
* chore: change plugin-manager snippet
* feat: configure action acl fix
* feat: plugin tab acl check fix
* chore: roles snippets
* fix: add actions to snippet
* feat: allowconfigure fix
* fix: count with filterBy
* fix: build error
* feat: get action with allowedActions
* feat: acl route check fix
* feat: aclActionProvider fix
* feat: actionscpe fix
* feat: actionname alias
* feat: setting center fix
* feat: acl provider fix
* fix: role collection
* feat: associate resource acl
* feat: associate resource acl
* feat: redirect to 403
* feat: route redirct
* feat: acl scope check by record
* fix: fields appends fix
* fix: fields appends fix
* fix: fields appends fix
* fix: allowedActions fix
* fix: menu items
* fix: rename
* fix: improve code
* fix: improve code
* fix: improve code
* fix: ctx?.data?.data
* fix: styling
* fix: allowAll after ignore scope
* chore: allowConfigure condition
* fix: collections.fields:*
* fix: acl test
* fix: update submodule
* fix: acl test
* fix: acl snippet
* fix: updates
* fix: only load history for logged-in users
* fix: this.app.acl.registerSnippet
* fix: downloadXlsxTemplate
* fix: 404
* feat: allowedAction in association list response
* fix: listData get
* fix: test
* fix: x-collection-field
* fix: update record error
* fix: calendar template
* test: allow manager
* fix: fetch action step
* fix: update submodule
* fix: refresh
* fix: refresh
* fix: rolesResourcesScopes
* test: snippets
* fix: snippets
* fix: test
* fix: omit filter.createdById
* fix: improve code
* fix: collections path
* fix: test error
* fix: upgrade error
* fix: errors
* fix: read allowed actions error
* fix: kanban error
* fix: error
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-01-09 07:35:48 +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
Junyi
1aa5df88c3
fix(plugin-users): fix initialization of sms verification ( #1173 )
2022-12-01 18:19:40 -08:00
Junyi
7b5277fb2a
Feat: plugin verification config ( #1129 )
...
* feat(plugin-verification): add client config
* feat(plugin-verification): add config ui
* fix(plugin-verification): fix schema
* refactor(plugin-verification): add default for verification providers
* fix(plugin-users): fix initVerification in lifecycle
* fix(plugin-users): fix initVerification in lifecycle
* fix(plugin-verification): fix locale and default provider
* fix(plugin-verification): fix test case
* fix(plugin-verification): fix locale
2022-11-28 00:41:58 -08:00
ChengLei Shao
73e2d27e29
feat: using bigint for id field ( #1100 )
...
* feat: using bigint for id field
* fix: postgres bigint parse
* fix: sequelize test
* test: update to bigint migrator
* chore: updateToBigInt method
* fix: mysql update bigint
* fix: update to bigint with inherits table
* feat: update fields type in fields table
* fix: import
* fix: bigInt
Co-authored-by: chenos <chenlinxh@gmail.com>
2022-11-20 14:40:41 +08:00
Junyi
c470209ecd
refactor(plugin-workflow): split transaction for collection trigger ( #1080 )
...
* refactor(plugin-workflow): split transaction for collection trigger
* fix(plugin-workflow): fix delay test case
* refactor(plugin-workflow): use micro queue to dispatch executions
* fix(plugin-workflow): fix usages of private api
* fix(plugin-workflow): fix wrong variable
2022-11-14 20:05:01 +08:00
chenos
dcb5a71b92
feat: log user id
2022-11-13 17:14:14 +08:00
chenos
dcee3dd94a
chore(versions): 😊 publish v0.8.0-alpha.13
2022-11-04 21:23:02 +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
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
3e22a47be6
fix: unbind on error throwing ( #914 )
2022-10-15 10:47:01 +08:00
chenos
3e6d1a3427
fix: version judgment is not accurate
2022-10-14 09:48:27 +08:00
chenos
8bf23004a1
refactor: middleware ( #857 )
...
* refactor: middleware
* fix: test error
* fix: test error
* fix: test
* fix: tag
2022-09-29 21:05:31 +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