refactor: plugin manager optimize & support keywords (#3467)
* refactor: plugin manager refactor * refactor: plugin manager keywords * refactor: plugin manager keywords * refactor: disabled plugin support seccend confirm * refactor: plugin manager * refactor: plugin manager * refactor: plugin manager * refactor: plugin manager * refactor: plugin manager * refactor: plugin manager * fix: styles * fix: 4 * refactor: plugin manger sort by display name * refactor: plugin manger homepage * refactor: plugin manger keyword --------- Co-authored-by: chenos <chenlinxh@gmail.com>
This commit is contained in:
parent
4d4a70b2f4
commit
44a70107af
@ -698,6 +698,7 @@
|
||||
"Plugin starting...": "Plugin starting...",
|
||||
"Plugin stopping...": "Plugin stopping...",
|
||||
"Are you sure to delete this plugin?": "Are you sure to delete this plugin?",
|
||||
"Are you sure to disable this plugin?": "Are you sure to disable this plugin?",
|
||||
"re-download file": "re-download file",
|
||||
"Not enabled": "Not enabled",
|
||||
"Search plugin": "Search plugin",
|
||||
|
@ -661,6 +661,7 @@
|
||||
"Plugin starting...": "プラグインを起動しています...",
|
||||
"Plugin stopping...": "プラグインを停止しています...",
|
||||
"Are you sure to delete this plugin?": "このプラグインを削除してもよろしいですか?",
|
||||
"Are you sure to delete this plugin":"本当にこのプラグインを無効にしますか?",
|
||||
"re-download file": "ファイルを再ダウンロード",
|
||||
"Not enabled": "有効になっていません",
|
||||
"Search plugin": "プラグインを検索",
|
||||
|
@ -651,6 +651,7 @@
|
||||
"Plugin starting...": "Plugin iniciando...",
|
||||
"Plugin stopping...": "Plugin parando...",
|
||||
"Are you sure to delete this plugin?": "Tem certeza de que deseja excluir este plugin?",
|
||||
"Are you sure to delete this plugin":"Tem a certeza que deseja desactivar este plugin",
|
||||
"re-download file": "re-fazer download do arquivo",
|
||||
"Not enabled": "Não habilitado",
|
||||
"Search plugin": "Pesquisar plugin",
|
||||
|
@ -201,7 +201,7 @@
|
||||
"Actions": "操作",
|
||||
"Update": "更新",
|
||||
"Update record": "更新数据",
|
||||
"Unnamed":"未命名",
|
||||
"Unnamed": "未命名",
|
||||
"View": "查看",
|
||||
"View record": "查看数据",
|
||||
"Refresh": "刷新",
|
||||
@ -225,7 +225,7 @@
|
||||
"General collection": "普通数据表",
|
||||
"SQL collection": "SQL数据表",
|
||||
"Connect to database view": "连接数据库视图",
|
||||
"Sync from database":"从数据库同步",
|
||||
"Sync from database": "从数据库同步",
|
||||
"Source collections": "来源数据表",
|
||||
"Field source": "来源字段",
|
||||
"Preview": "预览",
|
||||
@ -715,6 +715,7 @@
|
||||
"Plugin starting...": "插件启动中...",
|
||||
"Plugin stopping...": "插件停止中...",
|
||||
"Are you sure to delete this plugin?": "确定要删除此插件吗?",
|
||||
"Are you sure to disable this plugin?": "确定要禁用此插件吗?",
|
||||
"re-download file": "重新下载文件",
|
||||
"Not enabled": "未启用",
|
||||
"Search plugin": "搜索插件",
|
||||
@ -841,6 +842,12 @@
|
||||
"Sign in with another account": "登录其他账号",
|
||||
"Return to the main application": "返回主应用",
|
||||
"Permission denied": "没有权限",
|
||||
"Allow add new":"允许新增",
|
||||
"Allow selection of existing records":"允许选择已有数据"
|
||||
"Allow add new": "允许新增",
|
||||
"Allow selection of existing records": "允许选择已有数据",
|
||||
"Data model": "数据模型",
|
||||
"Security": "认证与安全",
|
||||
"Action": "操作",
|
||||
"System": "系统管理",
|
||||
"Other": "其他",
|
||||
"Workflow":"工作流"
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ interface IPluginInfo extends IPluginCard {
|
||||
function PluginInfo(props: IPluginInfo) {
|
||||
const { data, onClick } = props;
|
||||
const app = useApp();
|
||||
const { name, displayName, isCompatible, packageName, updatable, builtIn, enabled, description, type, error } = data;
|
||||
const { name, displayName, isCompatible, packageName, updatable, builtIn, enabled, description, error, homepage } =
|
||||
data;
|
||||
const { styles, theme } = useStyles();
|
||||
const navigate = useNavigate();
|
||||
const { t } = useTranslation();
|
||||
@ -78,7 +79,15 @@ function PluginInfo(props: IPluginInfo) {
|
||||
`}
|
||||
actions={[
|
||||
<Space split={<Divider type="vertical" />} key={'1'}>
|
||||
<a key={'5'}>
|
||||
<a
|
||||
key={'5'}
|
||||
href={homepage}
|
||||
target="_blank"
|
||||
onClick={(event) => {
|
||||
event.stopPropagation();
|
||||
}}
|
||||
rel="noreferrer"
|
||||
>
|
||||
<ReadOutlined /> {t('Docs')}
|
||||
</a>
|
||||
{updatable && (
|
||||
@ -143,12 +152,26 @@ function PluginInfo(props: IPluginInfo) {
|
||||
message.error(t("Dependencies check failed, can't enable."));
|
||||
return;
|
||||
}
|
||||
await api.request({
|
||||
url: `pm:${checked ? 'enable' : 'disable'}`,
|
||||
params: {
|
||||
filterByTk: name,
|
||||
},
|
||||
});
|
||||
if (!checked) {
|
||||
modal.confirm({
|
||||
title: t('Are you sure to disable this plugin?'),
|
||||
onOk: async () => {
|
||||
await api.request({
|
||||
url: `pm:disable`,
|
||||
params: {
|
||||
filterByTk: name,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
} else {
|
||||
await api.request({
|
||||
url: `pm:enable`,
|
||||
params: {
|
||||
filterByTk: name,
|
||||
},
|
||||
});
|
||||
}
|
||||
}}
|
||||
checked={enabledVal}
|
||||
></Switch>,
|
||||
|
@ -111,90 +111,81 @@ export const PluginDetail: FC<IPluginDetail> = ({ plugin, onCancel }) => {
|
||||
label: t('Readme'),
|
||||
children: (
|
||||
<Row gutter={20}>
|
||||
<Col span={16}>
|
||||
{plugin?.readmeUrl ? (
|
||||
<PluginDocument url={plugin?.readmeUrl} packageName={plugin.packageName} />
|
||||
) : (
|
||||
t('No README.md file')
|
||||
)}
|
||||
{plugin.name && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Name')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.name}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{plugin.displayName && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('DisplayName')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.displayName}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('PackageName')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.packageName}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={8}>
|
||||
<Row>
|
||||
{plugin.name && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Name')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.name}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{plugin.displayName && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('DisplayName')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.displayName}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('PackageName')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.packageName}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
{repository && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Repository')}</Typography.Text>
|
||||
<Typography.Text strong>{repository}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{data?.data?.packageJson.homepage && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Homepage')}</Typography.Text>
|
||||
<Typography.Text strong>{data?.data?.packageJson.homepage}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{plugin.description && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Description')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.description}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{data?.data?.packageJson.license && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('License')}</Typography.Text>
|
||||
<Typography.Text strong>{data?.data?.packageJson.license}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{author && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Author')}</Typography.Text>
|
||||
<Typography.Text strong>{author}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Last updated')}</Typography.Text>
|
||||
<Typography.Text strong>{dayjs(data?.data?.lastUpdated).fromNow()}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Version')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin?.version}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
{repository && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Repository')}</Typography.Text>
|
||||
<Typography.Text strong>{repository}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{data?.data?.packageJson.homepage && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Homepage')}</Typography.Text>
|
||||
<a href={data?.data?.packageJson.homepage} target="_blank" rel="noreferrer">
|
||||
{data?.data?.packageJson.homepage}
|
||||
</a>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{plugin.description && (
|
||||
<Col span={24}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Description')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin.description}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{data?.data?.packageJson.license && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('License')}</Typography.Text>
|
||||
<Typography.Text strong>{data?.data?.packageJson.license}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
{author && (
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Author')}</Typography.Text>
|
||||
<Typography.Text strong>{author}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
)}
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Last updated')}</Typography.Text>
|
||||
<Typography.Text strong>{dayjs(data?.data?.lastUpdated).fromNow()}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={12}>
|
||||
<div className={styles.PluginDetailBaseInfo}>
|
||||
<Typography.Text type="secondary">{t('Version')}</Typography.Text>
|
||||
<Typography.Text strong>{plugin?.version}</Typography.Text>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
),
|
||||
@ -239,7 +230,7 @@ export const PluginDetail: FC<IPluginDetail> = ({ plugin, onCancel }) => {
|
||||
];
|
||||
|
||||
return (
|
||||
<Modal open={!!plugin} footer={false} destroyOnClose width={1200} onCancel={onCancel}>
|
||||
<Modal open={!!plugin} footer={false} destroyOnClose width={600} onCancel={onCancel}>
|
||||
{loading ? (
|
||||
<Spin />
|
||||
) : (
|
||||
|
@ -1,7 +1,7 @@
|
||||
export * from './PluginManagerLink';
|
||||
import { PageHeader } from '@ant-design/pro-layout';
|
||||
import { useDebounce } from 'ahooks';
|
||||
import { Button, Divider, Input, Result, Space, Spin, Tabs } from 'antd';
|
||||
import { Button, Col, Divider, Input, List, Result, Row, Space, Spin, Tabs } from 'antd';
|
||||
import _ from 'lodash';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
@ -71,10 +71,50 @@ const LocalPlugins = () => {
|
||||
const [filterIndex, setFilterIndex] = useState(0);
|
||||
const [isShowAddForm, setShowAddForm] = useState(false);
|
||||
const [searchValue, setSearchValue] = useState('');
|
||||
const [keyword, setKeyword] = useState(null);
|
||||
const debouncedSearchValue = useDebounce(searchValue, { wait: 100 });
|
||||
|
||||
const keywordList = useMemo(() => {
|
||||
let keyWordlists = [];
|
||||
data?.data.forEach((v) => {
|
||||
if (v.keywords) {
|
||||
keyWordlists = keyWordlists.concat(v.keywords);
|
||||
}
|
||||
});
|
||||
keyWordlists.sort((a, b) => {
|
||||
if (a === 'data model') return -1;
|
||||
if (b === 'data model') return 1;
|
||||
return 0;
|
||||
});
|
||||
return _.uniq(keyWordlists).concat('other');
|
||||
}, [data?.data]);
|
||||
|
||||
const keyWordsfilterList = useMemo(() => {
|
||||
const list = keywordList.map((i) => {
|
||||
if (i === 'other') {
|
||||
const result = data?.data.filter((v) => !v.keywords);
|
||||
return {
|
||||
key: i,
|
||||
list: result,
|
||||
};
|
||||
}
|
||||
const result = data?.data.filter((v) => v.keywords?.includes(i));
|
||||
return {
|
||||
key: i,
|
||||
list: result,
|
||||
};
|
||||
});
|
||||
return list;
|
||||
}, [keywordList]);
|
||||
|
||||
const pluginList = useMemo(() => {
|
||||
let list = filterList[filterIndex]?.list || [];
|
||||
if (!filterIndex && keyword) {
|
||||
list = keyWordsfilterList.find((v) => v.key === keyword).list;
|
||||
} else if (filterIndex && keyword) {
|
||||
const keyList = keyWordsfilterList.find((v) => v.key === keyword).list;
|
||||
list = keyList.filter((value) => list.find((k) => k.name === value.name));
|
||||
}
|
||||
const searchLowerCaseValue = debouncedSearchValue.toLocaleLowerCase().trim();
|
||||
if (searchLowerCaseValue) {
|
||||
list = _.filter(
|
||||
@ -88,8 +128,8 @@ const LocalPlugins = () => {
|
||||
.includes(searchLowerCaseValue),
|
||||
);
|
||||
}
|
||||
return list;
|
||||
}, [filterIndex, filterList, debouncedSearchValue]);
|
||||
return list.sort((a, b) => a.displayName.localeCompare(b.displayName));
|
||||
}, [filterIndex, filterList, debouncedSearchValue, keyword]);
|
||||
|
||||
const handleSearch = (value: string) => {
|
||||
setSearchValue(value);
|
||||
@ -98,7 +138,6 @@ const LocalPlugins = () => {
|
||||
if (loading) {
|
||||
return <Spin />;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<PluginAddModal
|
||||
@ -108,6 +147,7 @@ const LocalPlugins = () => {
|
||||
// if (isRefresh) refresh();
|
||||
}}
|
||||
/>
|
||||
|
||||
<div style={{ width: '100%' }}>
|
||||
<div
|
||||
style={{ marginBottom: theme.marginLG }}
|
||||
@ -117,7 +157,7 @@ const LocalPlugins = () => {
|
||||
align-items: center;
|
||||
`}
|
||||
>
|
||||
<div>
|
||||
<div style={{ marginLeft: 200 }}>
|
||||
<Space size={theme.marginXXS} split={<Divider type="vertical" />}>
|
||||
{filterList.map((item, index) => (
|
||||
<a
|
||||
@ -127,7 +167,8 @@ const LocalPlugins = () => {
|
||||
key={item.type}
|
||||
style={{ fontWeight: filterIndex === index ? 'bold' : 'normal' }}
|
||||
>
|
||||
{t(item.type)}({item.list?.length})
|
||||
{t(item.type)}
|
||||
{filterIndex === index ? `(${pluginList?.length})` : null}
|
||||
</a>
|
||||
))}
|
||||
<Input
|
||||
@ -145,22 +186,45 @@ const LocalPlugins = () => {
|
||||
</Space>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={css`
|
||||
--grid-gutter: ${theme.margin}px;
|
||||
--extensions-card-width: 350px;
|
||||
display: grid;
|
||||
grid-column-gap: var(--grid-gutter);
|
||||
grid-row-gap: var(--grid-gutter);
|
||||
grid-template-columns: repeat(auto-fill, var(--extensions-card-width));
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
`}
|
||||
>
|
||||
{pluginList.map((item) => (
|
||||
<PluginCard key={item.name} data={item} />
|
||||
))}
|
||||
</div>
|
||||
<Row style={{ width: '100%' }}>
|
||||
<Col flex="200px">
|
||||
<List
|
||||
size="small"
|
||||
dataSource={keyWordsfilterList}
|
||||
split={false}
|
||||
renderItem={(item) => {
|
||||
return (
|
||||
<List.Item
|
||||
style={{ padding: '3px 0' }}
|
||||
onClick={() => (item.key !== keyword ? setKeyword(item.key) : setKeyword(null))}
|
||||
>
|
||||
<a style={{ fontWeight: keyword === item.key ? 'bold' : 'normal' }}>
|
||||
{t(item.key?.charAt?.(0).toUpperCase() + item.key?.slice?.(1))}
|
||||
</a>
|
||||
</List.Item>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Col>
|
||||
<Col flex="auto">
|
||||
<div
|
||||
className={css`
|
||||
--grid-gutter: ${theme.margin}px;
|
||||
--extensions-card-width: calc(25% - var(--grid-gutter) + var(--grid-gutter) / 4);
|
||||
display: grid;
|
||||
grid-column-gap: var(--grid-gutter);
|
||||
grid-row-gap: var(--grid-gutter);
|
||||
grid-template-columns: repeat(auto-fill, var(--extensions-card-width));
|
||||
justify-content: left;
|
||||
margin: auto;
|
||||
`}
|
||||
>
|
||||
{pluginList.map((item) => (
|
||||
<PluginCard key={item.name} data={item} />
|
||||
))}
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
@ -20,4 +20,6 @@ export interface IPluginData {
|
||||
changelogUrl: string;
|
||||
error: boolean;
|
||||
updatable?: boolean;
|
||||
homepage?: string;
|
||||
keywords?: string[];
|
||||
}
|
||||
|
@ -208,10 +208,12 @@ export abstract class Plugin<O = any> implements PluginInterface {
|
||||
|
||||
const results = {
|
||||
...this.options,
|
||||
keywords: packageJson.keywords,
|
||||
readmeUrl: getExposeReadmeUrl(packageName, locale),
|
||||
changelogUrl: getExposeChangelogUrl(packageName),
|
||||
displayName: packageJson[`displayName.${locale}`] || packageJson.displayName || name,
|
||||
description: packageJson[`description.${locale}`] || packageJson.description,
|
||||
homepage: packageJson[`homepage.${locale}`] || packageJson.homepage,
|
||||
};
|
||||
|
||||
if (!options.withOutOpenFile) {
|
||||
|
@ -7,6 +7,9 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/acl",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/acl",
|
||||
"keywords":["security","users"],
|
||||
"devDependencies": {
|
||||
"@types/jsonwebtoken": "^8.5.8",
|
||||
"async-mutex": "^0.3.2",
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-action-bulk-edit",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/action-bulk-edit",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/action-bulk-edit",
|
||||
"displayName": "Bulk edit action",
|
||||
"displayName.zh-CN": "批量编辑操作",
|
||||
"description": "Provides bulk edit action",
|
||||
@ -12,5 +14,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-action-bulk-update",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/action-bulk-update",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/action-bulk-update",
|
||||
"displayName": "Bulk update action",
|
||||
"displayName.zh-CN": "批量更新操作",
|
||||
"description": "Provides bulk update action",
|
||||
@ -12,5 +14,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-action-duplicate",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/action-duplicate",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/action-duplicate",
|
||||
"displayName": "Data duplicate",
|
||||
"displayName.zh-CN": "数据复制",
|
||||
"description": "Provides deplicate action",
|
||||
@ -12,5 +14,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-action-print",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/action-print",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/action-print",
|
||||
"displayName": "Print",
|
||||
"displayName.zh-CN": "打印操作",
|
||||
"description": "Provides print action",
|
||||
@ -12,5 +14,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"action"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"description.zh-CN": "NocoBase HTTP API 的 OpenAPI 文档生成器",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/api-doc",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/api-doc",
|
||||
"types": "./dist/server/index.d.ts",
|
||||
"devDependencies": {
|
||||
"swagger-ui-dist": "^5.3.1"
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/api-keys",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/api-keys",
|
||||
"devDependencies": {
|
||||
"@formily/react": "2.x",
|
||||
"@formily/shared": "2.x",
|
||||
|
@ -6,6 +6,8 @@
|
||||
"description": "Data addition, modification, deletion logs",
|
||||
"description.zh-CN": "数据的增删改日志",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/audit-logs",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/audit-logs",
|
||||
"license": "AGPL-3.0",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
@ -21,5 +23,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-auth",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/auth",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/auth",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/react": "2.x",
|
||||
@ -24,5 +26,6 @@
|
||||
"displayName.zh-CN": "用户认证",
|
||||
"description": "Basic authentication and authenticator management",
|
||||
"description.zh-CN": "提供基础认证功能和扩展认证器管理功能",
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["security","users"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/backup-restore",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/backup-restore",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/nocobase/nocobase.git",
|
||||
@ -35,5 +37,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
}
|
||||
},
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"description.zh-CN": "提供日历模板和区块",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/calendar",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/calendar",
|
||||
"types": "./dist/server/index.d.ts",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
@ -34,5 +36,8 @@
|
||||
"url": "git+https://github.com/nocobase/nocobase.git",
|
||||
"directory": "packages/plugins/calendar"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"block"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/cas",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/cas",
|
||||
"peerDependencies": {
|
||||
"@nocobase/actions": "0.x",
|
||||
"@nocobase/client": "0.x",
|
||||
@ -21,5 +23,6 @@
|
||||
"antd": "5.x",
|
||||
"react-router-dom": "6.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["security","users"]
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
"description": "Provides China region data and field interface",
|
||||
"description.zh-CN": "提供中国行政区数据和字段(Interface)类型",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/china-region",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/china-region",
|
||||
"license": "AGPL-3.0",
|
||||
"devDependencies": {
|
||||
"@formily/core": "2.x",
|
||||
@ -20,5 +22,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["field"]
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
"description.zh-CN": "提供便捷的数据表管理能力",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/collection-manager",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/collection-manager",
|
||||
"license": "AGPL-3.0",
|
||||
"devDependencies": {
|
||||
"@hapi/topo": "^6.0.0",
|
||||
@ -20,5 +22,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["data model"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-custom-request",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/custom-request",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/custom-request",
|
||||
"displayName": "Custom request",
|
||||
"displayName.zh-CN": "自定义请求",
|
||||
"description": "Custom request action",
|
||||
@ -20,5 +22,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
"description": "Provides business intelligence and data visualization features",
|
||||
"description.zh-CN": "提供 BI 面板和数据可视化功能",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/data-visualization",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/data-visualization",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@ant-design/plots": "^1.2.5",
|
||||
@ -31,5 +33,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["block"]
|
||||
}
|
||||
|
@ -7,5 +7,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["pm"]
|
||||
}
|
||||
|
@ -16,5 +16,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["field"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/export",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/export",
|
||||
"devDependencies": {
|
||||
"@formily/antd-v5": "1.x",
|
||||
"@formily/react": "2.x",
|
||||
@ -25,5 +27,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"description.zh-CN": "提供文件存储服务,并拓展了文件表模板和附件字段",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/file-manager",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/file-manager",
|
||||
"devDependencies": {
|
||||
"@aws-sdk/client-s3": "^3.245.0",
|
||||
"@formily/antd-v5": "1.x",
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/formula-field",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/formula-field",
|
||||
"devDependencies": {
|
||||
"@formily/antd-v5": "1.x",
|
||||
"@formily/core": "2.x",
|
||||
@ -23,5 +25,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["field"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"description.zh-CN": "提供甘特图区块",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/gantt",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/gantt",
|
||||
"dependencies": {
|
||||
"antd-style": "3.4.5"
|
||||
},
|
||||
@ -15,5 +17,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["block"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/graph-collection-manager",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/graph-collection-manager",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@antv/x6": "^2.0.0",
|
||||
@ -33,5 +35,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["data model"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/iframe-block",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/iframe-block",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/react": "2.x",
|
||||
@ -23,5 +25,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["block"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/import",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/import",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/antd-v5": "1.x",
|
||||
@ -32,5 +34,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["action"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-kanban",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/kanban",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/kanban",
|
||||
"license": "AGPL-3.0",
|
||||
"displayName": "Kanban",
|
||||
"displayName.zh-CN": "看板",
|
||||
@ -12,5 +14,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["block"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-localization-management",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/localization-management",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/localization-management",
|
||||
"license": "AGPL-3.0",
|
||||
"devDependencies": {
|
||||
"deepmerge": "^4.3.1"
|
||||
@ -19,5 +21,6 @@
|
||||
"displayName.zh-CN": "多语言管理",
|
||||
"description": "Allows to manage localization resources of the application.",
|
||||
"description.zh-CN": "支持管理应用程序的多语言资源。",
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/logger",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/logger",
|
||||
"devDependencies": {
|
||||
"@types/tar-fs": "^2.0.2",
|
||||
"tar-fs": "^3.0.4"
|
||||
@ -17,5 +19,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"description.zh-CN": "提供地图字段和区块",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/map",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/map",
|
||||
"devDependencies": {
|
||||
"@amap/amap-jsapi-loader": "^1.0.1",
|
||||
"@amap/amap-jsapi-types": "^0.0.10",
|
||||
@ -34,5 +36,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["block"]
|
||||
}
|
||||
|
@ -19,5 +19,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["field"]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-mobile-client",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/mobile-client",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/mobile-client",
|
||||
"license": "AGPL-3.0",
|
||||
"displayName": "Mobile client",
|
||||
"displayName.zh-CN": "移动端",
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/multi-app-manager",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/multi-app-manager",
|
||||
"devDependencies": {
|
||||
"@formily/react": "2.x",
|
||||
"@formily/shared": "2.x",
|
||||
@ -26,5 +28,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -23,5 +23,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -16,5 +16,6 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["system"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/oidc",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/oidc",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/antd-v5": "1.x",
|
||||
@ -27,5 +29,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["security","users"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/saml",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/saml",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/react": "2.x",
|
||||
@ -25,5 +27,6 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords":["security","users"]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/sequence-field",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/sequence-field",
|
||||
"devDependencies": {
|
||||
"@formily/antd-v5": "1.x",
|
||||
"@formily/core": "2.x",
|
||||
@ -27,5 +29,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"field"
|
||||
]
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
"description.zh-CN": "SMS authentication for NocoBase",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/sms-auth",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/sms-auth",
|
||||
"license": "AGPL-3.0",
|
||||
"devDependencies": {
|
||||
"@formily/react": "2.x",
|
||||
@ -23,5 +25,9 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"security",
|
||||
"users"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/snapshot-field",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/snapshot-field",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/core": "2.x",
|
||||
@ -24,5 +26,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"field"
|
||||
]
|
||||
}
|
||||
|
@ -7,11 +7,16 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/system-settings",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/system-settings",
|
||||
"peerDependencies": {
|
||||
"@nocobase/client": "0.x",
|
||||
"@nocobase/database": "0.x",
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"system"
|
||||
]
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "@nocobase/plugin-theme-editor",
|
||||
"version": "0.19.0-alpha.5",
|
||||
"main": "dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/theme-editor",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/theme-editor",
|
||||
"displayName": "Theme editor",
|
||||
"displayName.zh-CN": "主题编辑器",
|
||||
"description": "Allows you to customize UI colors, sizes, etc",
|
||||
@ -30,5 +32,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"system"
|
||||
]
|
||||
}
|
||||
|
@ -17,5 +17,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"system"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/ui-schema-storage",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/ui-schema-storage",
|
||||
"devDependencies": {
|
||||
"@formily/json-schema": "2.x"
|
||||
},
|
||||
@ -22,5 +24,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"system"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/users",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/users",
|
||||
"devDependencies": {
|
||||
"@types/jsonwebtoken": "^8.5.8",
|
||||
"jsonwebtoken": "^8.5.1"
|
||||
@ -22,5 +24,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"users"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/verification",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/verification",
|
||||
"devDependencies": {
|
||||
"@alicloud/dysmsapi20170525": "2.0.17",
|
||||
"@alicloud/openapi-client": "0.4.1",
|
||||
@ -29,5 +31,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"system"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-aggregate",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-aggregate",
|
||||
"devDependencies": {
|
||||
"antd": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-delay",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-delay",
|
||||
"devDependencies": {
|
||||
"antd": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-dynamic-calculation",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-dynamic-calculation",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/antd-v5": "1.x",
|
||||
@ -28,5 +30,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-form-trigger",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-form-trigger",
|
||||
"devDependencies": {
|
||||
"antd": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-loop",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-loop",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-manual",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-manual",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"@formily/antd-v5": "1.x",
|
||||
@ -28,5 +30,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-parallel",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-parallel",
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.x",
|
||||
"antd": "5.x",
|
||||
@ -20,5 +22,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-request",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-request",
|
||||
"devDependencies": {
|
||||
"antd": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow-sql",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow-sql",
|
||||
"devDependencies": {
|
||||
"antd": "5.x",
|
||||
"react": "18.x",
|
||||
@ -19,5 +21,8 @@
|
||||
"@nocobase/server": "0.x",
|
||||
"@nocobase/test": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
"version": "0.19.0-alpha.5",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "./dist/server/index.js",
|
||||
"homepage": "https://docs.nocobase.com/plugins/workflow",
|
||||
"homepage.zh-CN": "https://docs-cn.nocobase.com/plugins/workflow",
|
||||
"dependencies": {
|
||||
"@nocobase/plugin-workflow-test": "0.19.0-alpha.5"
|
||||
},
|
||||
@ -43,5 +45,8 @@
|
||||
"@nocobase/test": "0.x",
|
||||
"@nocobase/utils": "0.x"
|
||||
},
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde"
|
||||
"gitHead": "979a9c59a98c61a2287dd847580746a9b597cbde",
|
||||
"keywords": [
|
||||
"workflow"
|
||||
]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user