Compare commits

...

40 Commits
3.1.4 ... dev

Author SHA1 Message Date
Xu Chang f8439663fa 3.5.2-dev 2026-01-23 08:36:58 +08:00
Xu Chang 25ca4fdd0c 3.5.1-pub 2026-01-23 08:35:55 +08:00
Pan Qiancheng 2a4f94b62f 适配新改动 2026-01-21 12:38:20 +08:00
Xu Chang eb194867a8 3.5.1-dev 2026-01-09 16:09:32 +08:00
Xu Chang d30667a145 3.5.0-pub 2026-01-09 16:08:30 +08:00
Pan Qiancheng 4160d0b305 build 2026-01-09 15:21:36 +08:00
wkj 22ccb83a46 feat: 新编译器支持i18n检查,修复部分i18n问题 2026-01-07 14:19:46 +08:00
Pan Qiancheng fc80c876cd feat: build.js 2026-01-04 16:53:42 +08:00
Pan Qiancheng a5d940c97b feat: 新编译器 2026-01-04 16:34:44 +08:00
wkj 0f2e6171bd feat: 使用编译脚本,并适配了新的编译器改动 2026-01-04 10:05:47 +08:00
wkj ad91ff2832 feat: 补上元素key 2025-12-23 10:57:54 +08:00
wkj b5a70cb5f1 feat: 适配general-business的message实体声明变动 2025-12-22 17:46:17 +08:00
Xu Chang e9e2833398 3.4.4-dev 2025-12-16 13:58:27 +08:00
Xu Chang 68240be0d9 3.4.3-pub 2025-12-16 13:57:26 +08:00
wkj c3f9ec3296 feat: 适配general-business application声明 2025-12-09 15:43:39 +08:00
Pan Qiancheng 376d1c4231 feat: make:domain && build 2025-12-04 14:58:45 +08:00
Xu Chang cdb470c9c2 3.4.3-dev 2025-12-02 10:40:38 +08:00
Xu Chang 317b197ea0 3.4.2-pub 2025-12-02 10:19:04 +08:00
wkj d8a089c0b5 fix: 支付宝关闭订单时,先查询订单状态,返回状态为closed,则订单已关闭,不需要执行支付宝关闭接口 2025-11-25 12:08:43 +08:00
wkj 551f128b0f fix: settlePlan创建时,检查check处理数组情况时 ,pipeline使用不正确 2025-11-24 19:23:48 +08:00
lxy 4e15d169b8 fix: settlePlanchecker中pipeline使用错误修正 2025-11-21 13:23:03 +08:00
Xu Chang f1f3bcbb6d 3.4.2 2025-11-04 14:37:12 +08:00
Xu Chang 8cd491e084 3.4.1-pub 2025-11-04 14:35:11 +08:00
Xu Chang cdc49b775b 3.5.0-pub 2025-11-04 14:34:31 +08:00
Xu Chang cea1b0dcda build 2025-11-04 14:32:08 +08:00
wkj 88b476f902 feat: 支付宝关闭订单,报交易不存在,这里可以判断关闭成功,原因:在电脑网站下单时,系统首先生成URL;用户扫码后才会创建交易订单。若未完成扫码而订单过期到了直接关闭,提示'交易不存在' 2025-11-04 14:06:23 +08:00
wkj 029c7a6188 feat: 适配general-business实体变动 2025-10-31 12:21:39 +08:00
wkj 851c6019a5 feat: 适配oak-general-business, 新增oauth相关的实体定义及类型定义, 2025-10-27 14:05:40 +08:00
Xu Chang 5764cf5930 3.3.2-dev 2025-10-16 11:01:17 +08:00
Xu Chang 2e6137c349 3.3.1-pub 2025-10-16 11:00:14 +08:00
Xu Chang 9ef22c7df4 build 2025-10-16 10:58:42 +08:00
Xu Chang 1c205e6849 适配domain的改动 2025-10-07 18:54:28 +08:00
Xu Chang 44b75cebba 3.2.1-dev 2025-09-26 13:13:28 +08:00
Xu Chang 47396d99d3 3.2.0-pub 2025-09-26 13:12:23 +08:00
lxy 02979c3a41 开始退款逻辑中不检查0元退款的opers 2025-09-25 14:24:18 +08:00
Xu Chang 033e068663 3.1.6-dev 2025-08-23 12:44:10 +08:00
Xu Chang 6ec4ab1835 3.1.5-pub 2025-08-23 12:43:11 +08:00
lxy 39cf2f7e3a build 2025-08-22 18:15:31 +08:00
lxy c6ef2e2fc7 小程序发货信息录入修正 2025-08-22 18:06:54 +08:00
Xu Chang b3ceaaf845 3.1.5-dev 2025-08-16 15:19:48 +08:00
410 changed files with 5212 additions and 883 deletions

View File

@ -6,7 +6,7 @@ import { BRC } from '../types/RuntimeCxt';
*/
export declare function getMpShipState(params: {
shipId: string;
}, context: BRC): Promise<string | null | undefined>;
}, context: BRC): Promise<string | undefined>;
/**
*
*/

View File

@ -46,7 +46,7 @@ const checkers = [
const { orderId, price } = data;
data.refundable = false;
if (orderId) {
// 所有已经支付和正在支付的pay之和不能超过订单总和
// @oak-ignore 所有已经支付和正在支付的pay之和不能超过订单总和
const order = context.select('order', {
data: {
id: 1,

View File

@ -58,12 +58,12 @@ const checkers = [
});
};
if (data instanceof Array) {
for (const d of data) {
checkfn(d);
}
return pipeline(...data.map((ele) => {
return () => checkfn(ele);
}));
}
else {
checkfn(data);
return checkfn(data);
}
}
},

View File

@ -4,66 +4,15 @@
*/
import React from 'react';
import { EntityDict } from '../oak-app-domain';
import { ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef, ListButtonProps, OakAbsAttrUpsertDef } from 'oak-frontend-base';
declare const FilterPanel: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
entity: T;
columns: ColumnProps<EntityDict, T>[];
}>) => React.ReactElement;
declare const List: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
entity: T;
extraActions: OakExtraActionProps[] | ((row: RowWithActions<EntityDict, T>) => OakExtraActionProps[]);
onAction: onActionFnDef;
disabledOp: boolean;
attributes: OakAbsAttrDef[];
data: RowWithActions<EntityDict, T>[];
loading: boolean;
tablePagination?: React.ReactNode;
rowSelection?: any;
hideHeader?: boolean | undefined;
disableSerialNumber?: boolean | undefined;
size?: "small" | "large" | "middle" | undefined;
scroll?: any;
empty?: React.ReactNode;
opWidth?: number | undefined;
ellipsis?: boolean | undefined;
}>) => React.ReactElement;
declare const ListPro: <T extends keyof EntityDict>(props: {
title?: any;
extraContent?: any;
hideDefaultButtons?: boolean | undefined;
buttonGroup?: ListButtonProps[] | undefined;
onReload?: (() => void) | undefined;
entity: T;
extraActions?: OakExtraActionProps[] | ((row: RowWithActions<EntityDict, T>) => OakExtraActionProps[]) | undefined;
onAction?: onActionFnDef | undefined;
disabledOp?: boolean | undefined;
attributes: OakAbsAttrDef[];
data: RowWithActions<EntityDict, T>[];
loading?: boolean | undefined;
tablePagination?: any;
rowSelection?: any;
disableSerialNumber?: boolean | undefined;
size?: "small" | "large" | "middle" | undefined;
scroll?: any;
empty?: any;
opWidth?: number | undefined;
oakPath?: string | undefined;
}) => React.ReactElement;
declare const Detail: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
column?: number | Record<Breakpoint, number> | undefined;
entity: T;
attributes: OakAbsAttrDef[];
data: Partial<EntityDict[T]["Schema"]>;
title?: string | undefined;
bordered?: boolean | undefined;
layout?: "horizontal" | "vertical" | undefined;
}>) => React.ReactElement;
declare const Upsert: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
helps: Record<string, string>;
entity: T;
attributes: OakAbsAttrUpsertDef<EntityDict, T, string | number>[];
data: EntityDict[T]["Schema"];
layout: "horizontal" | "vertical";
mode: "default" | "card";
}>) => React.ReactElement;
import { ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef } from 'oak-frontend-base';
import AbsFilterPanel from 'oak-frontend-base/es/components/filterPanel';
import AbsList from 'oak-frontend-base/es/components/list';
import AbsListPro from 'oak-frontend-base/es/components/listPro';
import AbsDetail from 'oak-frontend-base/es/components/detail';
import AbsUpsert from 'oak-frontend-base/es/components/upsert';
declare const FilterPanel: <T extends keyof EntityDict>(...props: Parameters<typeof AbsFilterPanel<EntityDict, T>>) => React.ReactElement;
declare const List: <T extends keyof EntityDict>(...props: Parameters<typeof AbsList<EntityDict, T>>) => React.ReactElement;
declare const ListPro: <T extends keyof EntityDict>(...props: Parameters<typeof AbsListPro<EntityDict, T>>) => React.ReactElement;
declare const Detail: <T extends keyof EntityDict>(...props: Parameters<typeof AbsDetail<EntityDict, T>>) => React.ReactElement;
declare const Upsert: <T extends keyof EntityDict>(...props: Parameters<typeof AbsUpsert<EntityDict, T>>) => React.ReactElement;
export { FilterPanel, List, ListPro, Detail, Upsert, ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef, };

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
import { EntityDict } from "../../../oak-app-domain";
export default function Render(props: {
accountOpers: EntityDict['accountOper']['OpSchema'][];

View File

@ -51,6 +51,7 @@ export default function render(props) {
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
const { t, addItem, execute, clean } = props.methods;
const getNotNullMessage = (entity, attr) => {
// @oak-ignore
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
};
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));

View File

@ -6,6 +6,7 @@ export default function render(props) {
const { apAccount, aliPay, oakFullpath, systemId } = props.data;
const { t, update } = props.methods;
if (apAccount) {
// @oak-ignore
return (<Form labelCol={{ span: 6 }} wrapperCol={{ span: 16 }} layout="horizontal" style={{ minWidth: 860 }}>
{(!aliPay || aliPay.$$createAt$$ === 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apCreate"/>}
{(apAccount.aliPayId && apAccount?.$$createAt$$ !== 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apUpdate" oakId={apAccount.aliPayId}/>}

View File

@ -9,9 +9,12 @@ export default function render(props) {
const { apAccountId, apProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
const { t, addItem, execute, clean } = props.methods;
const getNotNullMessage = (entity, attr) => {
// @oak-ignore
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
};
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const errMsg = oakExecutable instanceof OakException && (
// @oak-ignore
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const [upsertId, setUpsertId] = useState('');
const U = (<Modal width={920} destroyOnClose title={`${t('apProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
clean();

View File

@ -7,6 +7,7 @@ export default function render(props) {
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
<Form.Item label={t('apProduct:attr.type')}>
<Select value={apProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app', 'person', 'code'].map(ele => ({
// @oak-ignore
label: t(`apProduct:v.type.${ele}`),
value: ele,
}))} onSelect={(type) => {

View File

@ -41,11 +41,15 @@ export default function render(props) {
const getNotNullMessage = (attr) => {
if (['channel', 'name', 'qrCode'].includes(attr)) {
const upsertRow = accounts?.find(ele => ele.id === upsertId);
// @oak-ignore
return t('notnull', { value: t(`offlineAccount::label.${attr}.${upsertRow.type}`) });
}
// @oak-ignore
return t('notnull', { value: t(`offlineAccount:attr.${attr}`) });
};
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const errMsg = oakExecutable instanceof OakException && (
// @oak-ignore
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const U = (<Modal destroyOnClose width={920} title={`${t('offlineAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
clean();
setUpsertId('');

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "offlineAccount", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -7,17 +7,22 @@ export default function render(props) {
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 860, maxHeight: '55vh', overflowY: 'auto' }}>
<Form.Item label={t('offlineAccount:attr.type')} required>
<Select value={offlineAccount.type} options={['bank', 'alipay', 'wechat', 'shouqianba', 'others'].map(ele => ({
// @oak-ignore
label: t(`offlineAccount:v.type.${ele}`),
value: ele,
}))} onSelect={(value) => update({ type: value })}/>
</Form.Item>
{['bank', 'others'].includes(offlineAccount.type) && <Form.Item label={t(`offlineAccount::label.channel.${offlineAccount.type}`)} required>
{['bank', 'others'].includes(offlineAccount.type) && <Form.Item
// @oak-ignore
label={t(`offlineAccount::label.channel.${offlineAccount.type}`)} required>
<Input value={offlineAccount.channel || ''} onChange={({ currentTarget }) => {
const { value } = currentTarget;
update({
channel: value,
});
}} placeholder={t(`placeholder.channel.${offlineAccount.type}`)}/>
}}
// @oak-ignore
placeholder={t(`placeholder.channel.${offlineAccount.type}`)}/>
</Form.Item>}
{!!offlineAccount.type && <Form.Item label={t(`offlineAccount::label.name.${offlineAccount.type}`)} required={['bank'].includes(offlineAccount.type)}>
<Input value={offlineAccount.name || ''} onChange={({ currentTarget }) => {

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "order", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -2,7 +2,7 @@ import { EntityDict } from "../../../oak-app-domain";
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "order", false, {
accountId: string;
accountAvailMax: number;
onSetPays: (pays: Partial<EntityDict['pay']['CreateOperationData']>[]) => void;
onSetPays: (pays: Partial<EntityDict["pay"]["CreateOperationData"]>[]) => void;
accountTips: string;
autoStartPay: boolean;
}>) => React.ReactElement;

View File

@ -24,10 +24,10 @@ export default OakComponent({
},
isList: false,
properties: {
accountId: '',
accountAvailMax: 0,
accountId: '', // 是否可以使用帐户中的余额抵扣
accountAvailMax: 0, // 本次交易可以使用的帐户中的Avail max值调用者自己保证此数值的一致性不要扣成负数
onSetPays: (pays) => undefined,
accountTips: '',
accountTips: '', // 使用余额支付的提示说明
autoStartPay: false,
},
formData({ data }) {

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
export default function Info(props: {
price: number;
t: (k: string) => string;

View File

@ -46,7 +46,9 @@ export default function Render(props) {
return (<ErrorBlock status="default" title={t('paying')}/>);
}
if (!legal) {
return (<ErrorBlock status="default" title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
return (<ErrorBlock status="default"
// @oak-ignore
title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
}
return (<div className={Styles.container}>
<Info t={t} price={ToYuan(order.price)}/>

View File

@ -45,7 +45,9 @@ export default function Render(props) {
return (<Result status="warning" title={t('paying')}/>);
}
if (!legal) {
return (<Result status="warning" title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
return (<Result status="warning"
// @oak-ignore
title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
}
return (<div className={Styles.container}>
<Info t={t} price={ToYuan(order.price)}/>

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
import { PayChannelOption } from "../../../types/Pay";
export default function Render(props: {
data: {

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
import { PayChannelOption } from "../../../types/Pay";
export default function Render(props: {
data: {

View File

@ -201,6 +201,7 @@ export default function Render(props) {
{t('common::back')}
</Button>);
}
// @oak-ignore
return (<div className={Styles.container}>
<Card title={t('title')} extra={<Tag color={iStateColor}>{t(`pay:v.iState.${iState}`)}</Tag>}>
<div>

View File

@ -211,7 +211,9 @@ export default function Render(props) {
</Space>}>
<div className={Styles.container}>
<div className={Styles.detail}>
<Descriptions column={1} bordered items={[
<Descriptions column={1} bordered
// @oak-ignore
items={[
{
key: '0',
label: t('type.label'),

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "pay", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -78,6 +78,7 @@ export default function Render(props) {
'offlineAccount': 'red',
'wpProduct': 'green',
};
// @oak-ignore
return (<div>
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${row.entity}`)}</Tag>
{entity === 'offlineAccount' && (<div className={Styles.entityDetail}>

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -154,6 +154,7 @@ export default function render(props) {
...Object.keys(PayChannelConfigDict).map((ele) => {
const C = PayChannelConfigDict[ele];
return {
// @oak-ignore
label: (<div className={Styles.systemLabel}>
{t(`${ele}:name`)}
</div>),

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "refund", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -71,6 +71,7 @@ export default function Render(props) {
'offlineAccount': 'red',
'wpProduct': 'green',
};
// @oak-ignore
return (<div>
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${entity}`)}</Tag>
<div className={Styles.entityDetail}>{row.payChannel}</div>

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -1,4 +1,3 @@
/// <reference types="wechat-miniprogram" />
import { EntityDict } from "../../../../oak-app-domain";
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "wechatMpShip", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -26,10 +26,10 @@ export default function render(props) {
<Space style={{
marginTop: 22
}}>
{ships.map((ele, idx) => (<Card title={ele.application.name} extra={<Button size="small" icon={<EditOutlined />} type="text" onClick={() => {
{ships.map((ele, idx) => (<Card key={idx} title={ele.application.name} extra={<Button size="small" icon={<EditOutlined />} type="text" onClick={() => {
setUpsertId(ele.id);
}}/>}>
<Detail key={idx} column={1} bordered entity="wechatMpShip" attributes={[
<Detail column={1} bordered entity="wechatMpShip" attributes={[
"disabled",
"sort",
]} data={ele}/>

View File

@ -156,7 +156,7 @@ export default OakComponent({
},
},
filter: {
settled: 0,
settled: 0, //todo 部分settle的order是否需要统计在内
price: {
$gt: 0,
},

View File

@ -130,6 +130,7 @@ export default function render(props) {
if (DetailRender) {
Modal.info({
width: 560,
// @oak-ignore
title: `${t(`${entity}:name`)}${t('common::action.detail')}`,
content: (<DetailRender data={data} systemId={systemId} t={t}/>),
onOk() { },
@ -151,8 +152,12 @@ export default function render(props) {
setShowHistoryList(false);
}} width={800} title={showHistoryAcc.entity === 'offlineAccount' ?
(showHistoryAcc.data.type === 'bank' ?
// @oak-ignore
`${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.channel}-${t('history')}`
: `${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.name}-${t('history')}`) : `${t(`${showHistoryAcc.entity}:name`)}-${t('history')}`} footer={null}>
// @oak-ignore
: `${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.name}-${t('history')}`
// @oak-ignore
) : `${t(`${showHistoryAcc.entity}:name`)}-${t('history')}`} footer={null}>
<div style={{ height: '65vh' }}>
<SysAccountOperList entity={showHistoryAcc.entity} entityId={showHistoryAcc.data.id} oakPath="$opb-sysAccount-survery-operList"/>
</div>

View File

@ -1,3 +1,2 @@
/// <reference types="wechat-miniprogram" />
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -1,4 +1,3 @@
/// <reference types="wechat-miniprogram" />
import { EntityDict } from "../../../oak-app-domain";
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdraw", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
import { EntityDict } from '../../../oak-app-domain';
export default function render(props: {
data: {

View File

@ -1,4 +1,3 @@
/// <reference types="react" />
import { EntityDict } from '../../../oak-app-domain';
export default function render(props: {
data: {

View File

@ -6,7 +6,7 @@ export default function render(props) {
const { t, goBack } = props.methods;
if (withdraws?.length) {
return (<List>
{withdraws.map((ele) => (<List.Item prefix={<HandPayCircleOutline fontSize={38}/>} extra={<Tag color={ele.iStateColor}>{ele.iState}</Tag>} title={ele.lossDescription} description={ele.createAt} onClick={() => gotoDetail(ele.id)}>
{withdraws.map((ele) => (<List.Item key={ele.id} prefix={<HandPayCircleOutline fontSize={38}/>} extra={<Tag color={ele.iStateColor}>{ele.iState}</Tag>} title={ele.lossDescription} description={ele.createAt} onClick={() => gotoDetail(ele.id)}>
<>
<span style={{ marginRight: 3 }}>{t('common::pay.symbol')}</span>
{ele.price}

View File

@ -1,4 +1,3 @@
/// <reference types="wechat-miniprogram" />
import { EntityDict } from '../../../oak-app-domain';
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
export default _default;

View File

@ -50,9 +50,12 @@ export default function render(props) {
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
const { t, addItem, execute, clean } = props.methods;
const getNotNullMessage = (entity, attr) => {
// @oak-ignore
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
};
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const errMsg = oakExecutable instanceof OakException && (
// @oak-ignore
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const [upsertId, setUpsertId] = useState('');
const U = (<Modal width={920} destroyOnClose title={`${t('wpAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
clean();

View File

@ -9,9 +9,12 @@ export default function render(props) {
const { wpAccountId, wpProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
const { t, addItem, execute, clean } = props.methods;
const getNotNullMessage = (entity, attr) => {
// @oak-ignore
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
};
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const errMsg = oakExecutable instanceof OakException && (
// @oak-ignore
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
const [upsertId, setUpsertId] = useState('');
const U = (<Modal width={920} destroyOnClose title={`${t('wpProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
clean();

View File

@ -6,7 +6,9 @@ export default function render(props) {
if (wpProduct) {
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
<Form.Item label={t('wpProduct:attr.type')}>
<Select value={wpProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app'].map(ele => ({
<Select value={wpProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app'].map(
// @oak-ignore
ele => ({
label: t(`wpProduct:v.type.${ele}`),
value: ele,
}))} onSelect={(type) => {

View File

@ -30,7 +30,7 @@ export const entityDesc = {
keyType: '指定应用私钥类型',
gateway: "支付宝网关地址",
wsServiceUrl: 'websocket服务地址',
timeout: "网关超时时间",
timeout: "网关超时时间", //(单位毫秒),默认值是 5000
needEncrypt: "是否需要AES加解密",
encryptKey: 'AES密钥', //调用AES加解密相关接口时需要
},

View File

@ -15,7 +15,6 @@ export const desc = {
type: "object"
}
},
static: true,
actionType: "crud",
actions,
indexes: [

View File

@ -25,6 +25,18 @@ export declare const actionDefDict: {
notification: {
iState: import("oak-domain/lib/types").ActionDef<string, string>;
};
oauthApplication: {
ableState: import("oak-domain/lib/types").ActionDef<import("oak-domain/lib/actions/action").AbleAction, import("oak-domain/lib/actions/action").AbleState>;
};
oauthProvider: {
ableState: import("oak-domain/lib/types").ActionDef<import("oak-domain/lib/actions/action").AbleAction, import("oak-domain/lib/actions/action").AbleState>;
};
oauthUser: {
loadState: import("oak-domain/lib/types").ActionDef<string, string>;
};
oauthUserAuthorization: {
usageState: import("oak-domain/lib/types").ActionDef<string, string>;
};
parasite: {};
toDo: {
iState: import("oak-domain/lib/types").ActionDef<string, string>;

View File

@ -7,6 +7,10 @@ import { actionDefDict as loginName } from "./LoginName/Action";
import { actionDefDict as message } from "./Message/Action";
import { actionDefDict as mobile } from "./Mobile/Action";
import { actionDefDict as notification } from "./Notification/Action";
import { actionDefDict as oauthApplication } from "./OauthApplication/Action";
import { actionDefDict as oauthProvider } from "./OauthProvider/Action";
import { actionDefDict as oauthUser } from "./OauthUser/Action";
import { actionDefDict as oauthUserAuthorization } from "./OauthUserAuthorization/Action";
import { actionDefDict as parasite } from "./Parasite/Action";
import { actionDefDict as toDo } from "./ToDo/Action";
import { actionDefDict as token } from "./Token/Action";
@ -42,6 +46,10 @@ export const actionDefDict = {
message,
mobile,
notification,
oauthApplication,
oauthProvider,
oauthUser,
oauthUserAuthorization,
parasite,
toDo,
token,

View File

@ -4,14 +4,21 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
import { GenericAction } from "oak-domain/lib/actions/action";
import { String, Text } from "oak-domain/lib/types/DataType";
import { Style } from "oak-general-business/lib/types/Style";
export type Passport = "email" | "mobile" | "wechat" | "wechatPublic" | "wechatNative";
export type CosOrigin = "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown" | "s3";
export type AppType = "web" | "wechatMp" | "wechatPublic" | "native";
export type Location = {
protocol: "http:" | "https:";
hostname: string;
port: string;
scanPage?: string | "wechatQrCode/scan";
};
export type WechatMpConfig = {
type: "wechatMp";
appId: string;
appSecret: string;
originalId?: string;
qrCodePrefix?: string;
getPhone?: boolean;
server?: {
url?: string;
token: string;
@ -19,7 +26,10 @@ export type WechatMpConfig = {
mode: "clear" | "compatible" | "safe";
dataFormat: "json" | "xml";
};
passport?: Passport[];
location: Location;
cos?: {
defaultOrigin: CosOrigin;
};
};
export type WebConfig = {
type: "web";
@ -33,11 +43,9 @@ export type WebConfig = {
appId: string;
appSecret: string;
};
passport?: Passport[];
location: {
protocol: "http:" | "https:";
hostname: string;
port: string;
location: Location;
cos?: {
defaultOrigin: CosOrigin;
};
};
export type WechatPublicConfig = {
@ -56,25 +64,21 @@ export type WechatPublicConfig = {
appId: string;
originalId: string;
};
passport?: Passport[];
location: {
protocol: "http:" | "https:";
hostname: string;
port: string;
location: Location;
cos?: {
defaultOrigin: CosOrigin;
};
};
export type NativeConfig = {
type: "native";
passport?: Passport[];
wechatNative?: {
appId: string;
appSecret: string;
domain?: string;
};
location: {
protocol: "http:" | "https:";
hostname: string;
port: string;
location: Location;
cos?: {
defaultOrigin: CosOrigin;
};
};
type Versions = string[];

View File

@ -14,6 +14,9 @@ export const desc = {
isDefault: {
notNull: true,
type: "boolean"
},
allowPwd: {
type: "boolean"
}
},
actionType: "crud",

View File

@ -7,6 +7,7 @@ export type OpSchema = EntityShape & {
applicationId: ForeignKey<"application">;
passportId: ForeignKey<"passport">;
isDefault: Boolean;
allowPwd?: Boolean | null;
} & {
[A in ExpressionKey]?: any;
};
@ -19,6 +20,7 @@ export type OpFilter = {
applicationId: Q_StringValue;
passportId: Q_StringValue;
isDefault: Q_BooleanValue;
allowPwd: Q_BooleanValue;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
"#id"?: NodeId;
@ -30,6 +32,7 @@ export type OpProjection = {
applicationId?: number;
passportId?: number;
isDefault?: number;
allowPwd?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
id: number;
@ -39,6 +42,7 @@ export type OpSortAttr = Partial<{
applicationId: number;
passportId: number;
isDefault: number;
allowPwd: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;
export type OpAction = OakMakeAction<GenericAction | string>;

View File

@ -3,6 +3,7 @@
"attr": {
"application": "应用",
"passport": "登录方式",
"isDefault": "是否默认"
"isDefault": "是否默认",
"allowPwd": "是否支持密码登录"
}
}

View File

@ -32,6 +32,9 @@ export const desc = {
params: {
length: 64
}
},
latestAt: {
type: "datetime"
}
},
actionType: "crud",

View File

@ -2,7 +2,7 @@ import { ForeignKey } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { GenericAction } from "oak-domain/lib/actions/action";
import { String, Boolean } from "oak-domain/lib/types/DataType";
import { String, Boolean, Datetime } from "oak-domain/lib/types/DataType";
export type OpSchema = EntityShape & {
name: String<32>;
isArticle: Boolean;
@ -10,6 +10,7 @@ export type OpSchema = EntityShape & {
isLeaf?: Boolean | null;
entity: String<32>;
entityId: String<64>;
latestAt?: Datetime | null;
} & {
[A in ExpressionKey]?: any;
};
@ -25,6 +26,7 @@ export type OpFilter = {
isLeaf: Q_BooleanValue;
entity: Q_StringValue;
entityId: Q_StringValue;
latestAt: Q_DateValue;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
"#id"?: NodeId;
@ -39,6 +41,7 @@ export type OpProjection = {
isLeaf?: number;
entity?: number;
entityId?: number;
latestAt?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
id: number;
@ -51,6 +54,7 @@ export type OpSortAttr = Partial<{
isLeaf: number;
entity: number;
entityId: number;
latestAt: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;
export type OpAction = OakMakeAction<GenericAction | string>;

View File

@ -7,6 +7,7 @@
"entity": "对象",
"entityId": "对象Id",
"isLeaf": "结点下是否存在叶子结点",
"files": "文件"
"files": "文件",
"latestAt": "最近编辑"
}
}

View File

@ -44,7 +44,12 @@ export const desc = {
type: "enum",
enumeration: ["login", "changePassword", "confirm"]
},
applicationId: {
type: "ref",
ref: "application"
},
iState: {
notNull: true,
type: "enum",
enumeration: ["unsent", "sending", "sent", "failure"]
}

View File

@ -1,3 +1,4 @@
import { ForeignKey } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { Action, ParticularAction, IState } from "./Action";
@ -12,7 +13,8 @@ export type OpSchema = EntityShape & {
expired: Boolean;
expiresAt: Datetime;
type: "login" | "changePassword" | "confirm";
iState?: IState | null;
applicationId?: ForeignKey<"application"> | null;
iState: IState;
} & {
[A in ExpressionKey]?: any;
};
@ -31,6 +33,7 @@ export type OpFilter = {
expired: Q_BooleanValue;
expiresAt: Q_DateValue;
type: Q_EnumValue<"login" | "changePassword" | "confirm">;
applicationId: Q_StringValue;
iState: Q_EnumValue<IState>;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
@ -49,6 +52,7 @@ export type OpProjection = {
expired?: number;
expiresAt?: number;
type?: number;
applicationId?: number;
iState?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
@ -64,6 +68,7 @@ export type OpSortAttr = Partial<{
expired: number;
expiresAt: number;
type: number;
applicationId: number;
iState: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;

View File

@ -10,7 +10,8 @@
"expired": "是否过期",
"expiresAt": "过期时间",
"iState": "状态",
"type": "类型"
"type": "类型",
"application": "应用"
},
"action": {
"send": "发送",

View File

@ -18,6 +18,12 @@ export const desc = {
length: 32
}
},
prevPasswordSha1: {
type: "text"
},
newPasswordSha1: {
type: "text"
},
result: {
notNull: true,
type: "enum",

View File

@ -2,11 +2,13 @@ import { ForeignKey } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { GenericAction } from "oak-domain/lib/actions/action";
import { String } from "oak-domain/lib/types/DataType";
import { String, Text } from "oak-domain/lib/types/DataType";
export type OpSchema = EntityShape & {
userId: ForeignKey<"user">;
prevPassword?: String<32> | null;
newPassword?: String<32> | null;
prevPasswordSha1?: Text | null;
newPasswordSha1?: Text | null;
result: "success" | "fail";
} & {
[A in ExpressionKey]?: any;
@ -20,6 +22,8 @@ export type OpFilter = {
userId: Q_StringValue;
prevPassword: Q_StringValue;
newPassword: Q_StringValue;
prevPasswordSha1: Q_StringValue;
newPasswordSha1: Q_StringValue;
result: Q_EnumValue<"success" | "fail">;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
@ -32,6 +36,8 @@ export type OpProjection = {
userId?: number;
prevPassword?: number;
newPassword?: number;
prevPasswordSha1?: number;
newPasswordSha1?: number;
result?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
@ -42,6 +48,8 @@ export type OpSortAttr = Partial<{
userId: number;
prevPassword: number;
newPassword: number;
prevPasswordSha1: number;
newPasswordSha1: number;
result: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;

View File

@ -4,6 +4,8 @@
"user": "用户",
"prevPassword": "原密码",
"newPassword": "新密码",
"prevPasswordSha1": "原sha1加密密码",
"newPasswordSha1": "新sha1加密密码",
"result": "修改结果"
},
"v": {

View File

@ -24,6 +24,7 @@ export const desc = {
ref: "ship"
},
iState: {
notNull: true,
type: "enum",
enumeration: ["depositing", "successful", "failed", "shipped"]
}

View File

@ -9,7 +9,7 @@ export type OpSchema = EntityShape & {
accountId: ForeignKey<"account">;
creatorId: ForeignKey<"user">;
shipId?: ForeignKey<"ship"> | null;
iState?: IState | null;
iState: IState;
} & {
[A in ExpressionKey]?: any;
};

View File

@ -34,6 +34,13 @@ import * as BaseMessageTypeSmsTemplate from "./MessageTypeSmsTemplate/_baseSchem
import * as BaseMessageTypeTemplate from "./MessageTypeTemplate/_baseSchema";
import * as BaseMobile from "./Mobile/_baseSchema";
import * as BaseNotification from "./Notification/_baseSchema";
import * as BaseOauthApplication from "./OauthApplication/_baseSchema";
import * as BaseOauthAuthorizationCode from "./OauthAuthorizationCode/_baseSchema";
import * as BaseOauthProvider from "./OauthProvider/_baseSchema";
import * as BaseOauthState from "./OauthState/_baseSchema";
import * as BaseOauthToken from "./OauthToken/_baseSchema";
import * as BaseOauthUser from "./OauthUser/_baseSchema";
import * as BaseOauthUserAuthorization from "./OauthUserAuthorization/_baseSchema";
import * as BaseParasite from "./Parasite/_baseSchema";
import * as BasePassport from "./Passport/_baseSchema";
import * as BasePlatform from "./Platform/_baseSchema";
@ -117,12 +124,14 @@ export type ActionAuth = {
Aggregation: DeduceAggregation<ActionAuth["Projection"], ActionAuth["Filter"], ActionAuth["Sorter"]>;
CreateOperationData: FormCreateData<BaseActionAuth.OpSchema & {
relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]>;
}>;
CreateSingle: OakOperation<"create", ActionAuth["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<ActionAuth["CreateOperationData"]>>;
Create: ActionAuth["CreateSingle"] | ActionAuth["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseActionAuth.OpSchema & {
relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]> | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>;
}>;
Update: OakOperation<BaseActionAuth.OpUpdateAction, ActionAuth["UpdateOperationData"], ActionAuth["Filter"], ActionAuth["Sorter"]>;
RemoveOperationData: {};
@ -400,11 +409,17 @@ export type Path = {
Sorter: Path["SortNode"][];
Selection: OakSelection<"select", Path["Projection"], Path["Filter"], Path["Sorter"]>;
Aggregation: DeduceAggregation<Path["Projection"], Path["Filter"], Path["Sorter"]>;
CreateOperationData: FormCreateData<BasePath.OpSchema>;
CreateOperationData: FormCreateData<BasePath.OpSchema & {
actionAuth$path?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "path"> | Omit<ActionAuth["CreateOperationData"], "path">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "path">, ActionAuth["Filter"]>)[];
relationAuth$path?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "path"> | Omit<RelationAuth["CreateOperationData"], "path">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "path">, RelationAuth["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", Path["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<Path["CreateOperationData"]>>;
Create: Path["CreateSingle"] | Path["CreateMulti"];
UpdateOperationData: FormUpdateData<BasePath.OpSchema>;
UpdateOperationData: FormUpdateData<BasePath.OpSchema & {
actionAuth$path?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "path"> | Omit<ActionAuth["CreateOperationData"], "path">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "path">, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[];
relationAuth$path?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "path"> | Omit<RelationAuth["CreateOperationData"], "path">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "path">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
}>;
Update: OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"], Path["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"], Path["Sorter"]>;
@ -490,6 +505,9 @@ export type Relation = {
platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation<BasePlatform.OpUpdateAction, Platform["UpdateOperationData"], Platform["Filter"]>;
session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation<BaseSession.OpUpdateAction, Session["UpdateOperationData"], Session["Filter"]>;
toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation<BaseToDo.OpUpdateAction, ToDo["UpdateOperationData"], ToDo["Filter"]>;
actionAuth$relation?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "relation"> | Omit<ActionAuth["CreateOperationData"], "relation">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "relation">, ActionAuth["Filter"]>)[];
relationAuth$sourceRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "sourceRelation"> | Omit<RelationAuth["CreateOperationData"], "sourceRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "sourceRelation">, RelationAuth["Filter"]>)[];
relationAuth$destRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "destRelation"> | Omit<RelationAuth["CreateOperationData"], "destRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "destRelation">, RelationAuth["Filter"]>)[];
userEntityClaim$relation?: (OakOperation<"create", Omit<UserEntityClaim["CreateOperationData"], "relation"> | Omit<UserEntityClaim["CreateOperationData"], "relation">[]> | OakOperation<BaseUserEntityClaim.OpUpdateAction, Omit<UserEntityClaim["UpdateOperationData"], "relation">, UserEntityClaim["Filter"]>)[];
userRelation$relation?: (OakOperation<"create", Omit<UserRelation["CreateOperationData"], "relation"> | Omit<UserRelation["CreateOperationData"], "relation">[]> | OakOperation<BaseUserRelation.OpUpdateAction, Omit<UserRelation["UpdateOperationData"], "relation">, UserRelation["Filter"]>)[];
}>;
@ -500,6 +518,9 @@ export type Relation = {
platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation<BasePlatform.OpUpdateAction, Platform["UpdateOperationData"], Platform["Filter"]> | OakOperation<"remove", Platform["RemoveOperationData"], Platform["Filter"]>;
session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation<BaseSession.OpUpdateAction, Session["UpdateOperationData"], Session["Filter"]> | OakOperation<"remove", Session["RemoveOperationData"], Session["Filter"]>;
toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation<BaseToDo.OpUpdateAction, ToDo["UpdateOperationData"], ToDo["Filter"]> | OakOperation<"remove", ToDo["RemoveOperationData"], ToDo["Filter"]>;
actionAuth$relation?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "relation"> | Omit<ActionAuth["CreateOperationData"], "relation">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "relation">, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[];
relationAuth$sourceRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "sourceRelation"> | Omit<RelationAuth["CreateOperationData"], "sourceRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "sourceRelation">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
relationAuth$destRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "destRelation"> | Omit<RelationAuth["CreateOperationData"], "destRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "destRelation">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
userEntityClaim$relation?: (OakOperation<"create", Omit<UserEntityClaim["CreateOperationData"], "relation"> | Omit<UserEntityClaim["CreateOperationData"], "relation">[]> | OakOperation<BaseUserEntityClaim.OpUpdateAction, Omit<UserEntityClaim["UpdateOperationData"], "relation">, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[];
userRelation$relation?: (OakOperation<"create", Omit<UserRelation["CreateOperationData"], "relation"> | Omit<UserRelation["CreateOperationData"], "relation">[]> | OakOperation<BaseUserRelation.OpUpdateAction, Omit<UserRelation["UpdateOperationData"], "relation">, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[];
}>;
@ -541,6 +562,7 @@ export type RelationAuth = {
Aggregation: DeduceAggregation<RelationAuth["Projection"], RelationAuth["Filter"], RelationAuth["Sorter"]>;
CreateOperationData: FormCreateData<BaseRelationAuth.OpSchema & {
sourceRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]>;
destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
}>;
CreateSingle: OakOperation<"create", RelationAuth["CreateOperationData"]>;
@ -548,6 +570,7 @@ export type RelationAuth = {
Create: RelationAuth["CreateSingle"] | RelationAuth["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseRelationAuth.OpSchema & {
sourceRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]> | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>;
destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
}>;
Update: OakOperation<BaseRelationAuth.OpUpdateAction, RelationAuth["UpdateOperationData"], RelationAuth["Filter"], RelationAuth["Sorter"]>;
@ -569,6 +592,11 @@ export type User = {
loginName$user?: Array<Omit<LoginName["Schema"], "user">>;
message$user?: Array<Omit<Message["Schema"], "user">>;
mobile$user?: Array<Omit<Mobile["Schema"], "user">>;
oauthAuthorizationCode$user?: Array<Omit<OauthAuthorizationCode["Schema"], "user">>;
oauthState$user?: Array<Omit<OauthState["Schema"], "user">>;
oauthToken$user?: Array<Omit<OauthToken["Schema"], "user">>;
oauthUser$user?: Array<Omit<OauthUser["Schema"], "user">>;
oauthUserAuthorization$user?: Array<Omit<OauthUserAuthorization["Schema"], "user">>;
parasite$user?: Array<Omit<Parasite["Schema"], "user">>;
readRemark$user?: Array<Omit<ReadRemark["Schema"], "user">>;
session$user?: Array<Omit<Session["Schema"], "user">>;
@ -601,6 +629,11 @@ export type User = {
loginName$user$$aggr?: AggregationResult<Omit<LoginName["Schema"], "user">>;
message$user$$aggr?: AggregationResult<Omit<Message["Schema"], "user">>;
mobile$user$$aggr?: AggregationResult<Omit<Mobile["Schema"], "user">>;
oauthAuthorizationCode$user$$aggr?: AggregationResult<Omit<OauthAuthorizationCode["Schema"], "user">>;
oauthState$user$$aggr?: AggregationResult<Omit<OauthState["Schema"], "user">>;
oauthToken$user$$aggr?: AggregationResult<Omit<OauthToken["Schema"], "user">>;
oauthUser$user$$aggr?: AggregationResult<Omit<OauthUser["Schema"], "user">>;
oauthUserAuthorization$user$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "user">>;
parasite$user$$aggr?: AggregationResult<Omit<Parasite["Schema"], "user">>;
readRemark$user$$aggr?: AggregationResult<Omit<ReadRemark["Schema"], "user">>;
session$user$$aggr?: AggregationResult<Omit<Session["Schema"], "user">>;
@ -681,6 +714,36 @@ export type User = {
mobile$user$$aggr?: DeduceAggregation<Omit<Mobile["Projection"], "user">, Omit<Mobile["Filter"], "user">, Mobile["Sorter"]> & {
$entity: "mobile";
};
oauthAuthorizationCode$user?: OakSelection<"select", Omit<OauthAuthorizationCode["Projection"], "user">, Omit<OauthAuthorizationCode["Filter"], "user">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthAuthorizationCode$user$$aggr?: DeduceAggregation<Omit<OauthAuthorizationCode["Projection"], "user">, Omit<OauthAuthorizationCode["Filter"], "user">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthState$user?: OakSelection<"select", Omit<OauthState["Projection"], "user">, Omit<OauthState["Filter"], "user">, OauthState["Sorter"]> & {
$entity: "oauthState";
};
oauthState$user$$aggr?: DeduceAggregation<Omit<OauthState["Projection"], "user">, Omit<OauthState["Filter"], "user">, OauthState["Sorter"]> & {
$entity: "oauthState";
};
oauthToken$user?: OakSelection<"select", Omit<OauthToken["Projection"], "user">, Omit<OauthToken["Filter"], "user">, OauthToken["Sorter"]> & {
$entity: "oauthToken";
};
oauthToken$user$$aggr?: DeduceAggregation<Omit<OauthToken["Projection"], "user">, Omit<OauthToken["Filter"], "user">, OauthToken["Sorter"]> & {
$entity: "oauthToken";
};
oauthUser$user?: OakSelection<"select", Omit<OauthUser["Projection"], "user">, Omit<OauthUser["Filter"], "user">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
oauthUser$user$$aggr?: DeduceAggregation<Omit<OauthUser["Projection"], "user">, Omit<OauthUser["Filter"], "user">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
oauthUserAuthorization$user?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "user">, Omit<OauthUserAuthorization["Filter"], "user">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
oauthUserAuthorization$user$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "user">, Omit<OauthUserAuthorization["Filter"], "user">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
parasite$user?: OakSelection<"select", Omit<Parasite["Projection"], "user">, Omit<Parasite["Filter"], "user">, Parasite["Sorter"]> & {
$entity: "parasite";
};
@ -831,6 +894,11 @@ export type User = {
loginName$user: MakeFilter<Omit<LoginName["FilterUnit"], "user">> & SubQueryPredicateMetadata;
message$user: MakeFilter<Omit<Message["FilterUnit"], "user">> & SubQueryPredicateMetadata;
mobile$user: MakeFilter<Omit<Mobile["FilterUnit"], "user">> & SubQueryPredicateMetadata;
oauthAuthorizationCode$user: MakeFilter<Omit<OauthAuthorizationCode["FilterUnit"], "user">> & SubQueryPredicateMetadata;
oauthState$user: MakeFilter<Omit<OauthState["FilterUnit"], "user">> & SubQueryPredicateMetadata;
oauthToken$user: MakeFilter<Omit<OauthToken["FilterUnit"], "user">> & SubQueryPredicateMetadata;
oauthUser$user: MakeFilter<Omit<OauthUser["FilterUnit"], "user">> & SubQueryPredicateMetadata;
oauthUserAuthorization$user: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "user">> & SubQueryPredicateMetadata;
parasite$user: MakeFilter<Omit<Parasite["FilterUnit"], "user">> & SubQueryPredicateMetadata;
readRemark$user: MakeFilter<Omit<ReadRemark["FilterUnit"], "user">> & SubQueryPredicateMetadata;
session$user: MakeFilter<Omit<Session["FilterUnit"], "user">> & SubQueryPredicateMetadata;
@ -877,6 +945,11 @@ export type User = {
loginName$user?: (OakOperation<"create", Omit<LoginName["CreateOperationData"], "user"> | Omit<LoginName["CreateOperationData"], "user">[]> | OakOperation<BaseLoginName.OpUpdateAction, Omit<LoginName["UpdateOperationData"], "user">, LoginName["Filter"]>)[];
message$user?: (OakOperation<"create", Omit<Message["CreateOperationData"], "user"> | Omit<Message["CreateOperationData"], "user">[]> | OakOperation<BaseMessage.OpUpdateAction, Omit<Message["UpdateOperationData"], "user">, Message["Filter"]>)[];
mobile$user?: (OakOperation<"create", Omit<Mobile["CreateOperationData"], "user"> | Omit<Mobile["CreateOperationData"], "user">[]> | OakOperation<BaseMobile.OpUpdateAction, Omit<Mobile["UpdateOperationData"], "user">, Mobile["Filter"]>)[];
oauthAuthorizationCode$user?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "user"> | Omit<OauthAuthorizationCode["CreateOperationData"], "user">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "user">, OauthAuthorizationCode["Filter"]>)[];
oauthState$user?: (OakOperation<"create", Omit<OauthState["CreateOperationData"], "user"> | Omit<OauthState["CreateOperationData"], "user">[]> | OakOperation<BaseOauthState.OpUpdateAction, Omit<OauthState["UpdateOperationData"], "user">, OauthState["Filter"]>)[];
oauthToken$user?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "user"> | Omit<OauthToken["CreateOperationData"], "user">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "user">, OauthToken["Filter"]>)[];
oauthUser$user?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "user"> | Omit<OauthUser["CreateOperationData"], "user">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "user">, OauthUser["Filter"]>)[];
oauthUserAuthorization$user?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "user"> | Omit<OauthUserAuthorization["CreateOperationData"], "user">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "user">, OauthUserAuthorization["Filter"]>)[];
parasite$user?: (OakOperation<"create", Omit<Parasite["CreateOperationData"], "user"> | Omit<Parasite["CreateOperationData"], "user">[]> | OakOperation<BaseParasite.OpUpdateAction, Omit<Parasite["UpdateOperationData"], "user">, Parasite["Filter"]>)[];
readRemark$user?: (OakOperation<"create", Omit<ReadRemark["CreateOperationData"], "user"> | Omit<ReadRemark["CreateOperationData"], "user">[]> | OakOperation<BaseReadRemark.OpUpdateAction, Omit<ReadRemark["UpdateOperationData"], "user">, ReadRemark["Filter"]>)[];
session$user?: (OakOperation<"create", Omit<Session["CreateOperationData"], "user"> | Omit<Session["CreateOperationData"], "user">[]> | OakOperation<BaseSession.OpUpdateAction, Omit<Session["UpdateOperationData"], "user">, Session["Filter"]>)[];
@ -915,6 +988,11 @@ export type User = {
loginName$user?: (OakOperation<"create", Omit<LoginName["CreateOperationData"], "user"> | Omit<LoginName["CreateOperationData"], "user">[]> | OakOperation<BaseLoginName.OpUpdateAction, Omit<LoginName["UpdateOperationData"], "user">, LoginName["Filter"]> | OakOperation<"remove", LoginName["RemoveOperationData"], LoginName["Filter"]>)[];
message$user?: (OakOperation<"create", Omit<Message["CreateOperationData"], "user"> | Omit<Message["CreateOperationData"], "user">[]> | OakOperation<BaseMessage.OpUpdateAction, Omit<Message["UpdateOperationData"], "user">, Message["Filter"]> | OakOperation<"remove", Message["RemoveOperationData"], Message["Filter"]>)[];
mobile$user?: (OakOperation<"create", Omit<Mobile["CreateOperationData"], "user"> | Omit<Mobile["CreateOperationData"], "user">[]> | OakOperation<BaseMobile.OpUpdateAction, Omit<Mobile["UpdateOperationData"], "user">, Mobile["Filter"]> | OakOperation<"remove", Mobile["RemoveOperationData"], Mobile["Filter"]>)[];
oauthAuthorizationCode$user?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "user"> | Omit<OauthAuthorizationCode["CreateOperationData"], "user">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "user">, OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>)[];
oauthState$user?: (OakOperation<"create", Omit<OauthState["CreateOperationData"], "user"> | Omit<OauthState["CreateOperationData"], "user">[]> | OakOperation<BaseOauthState.OpUpdateAction, Omit<OauthState["UpdateOperationData"], "user">, OauthState["Filter"]> | OakOperation<"remove", OauthState["RemoveOperationData"], OauthState["Filter"]>)[];
oauthToken$user?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "user"> | Omit<OauthToken["CreateOperationData"], "user">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "user">, OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>)[];
oauthUser$user?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "user"> | Omit<OauthUser["CreateOperationData"], "user">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "user">, OauthUser["Filter"]> | OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"]>)[];
oauthUserAuthorization$user?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "user"> | Omit<OauthUserAuthorization["CreateOperationData"], "user">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "user">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
parasite$user?: (OakOperation<"create", Omit<Parasite["CreateOperationData"], "user"> | Omit<Parasite["CreateOperationData"], "user">[]> | OakOperation<BaseParasite.OpUpdateAction, Omit<Parasite["UpdateOperationData"], "user">, Parasite["Filter"]> | OakOperation<"remove", Parasite["RemoveOperationData"], Parasite["Filter"]>)[];
readRemark$user?: (OakOperation<"create", Omit<ReadRemark["CreateOperationData"], "user"> | Omit<ReadRemark["CreateOperationData"], "user">[]> | OakOperation<BaseReadRemark.OpUpdateAction, Omit<ReadRemark["UpdateOperationData"], "user">, ReadRemark["Filter"]> | OakOperation<"remove", ReadRemark["RemoveOperationData"], ReadRemark["Filter"]>)[];
session$user?: (OakOperation<"create", Omit<Session["CreateOperationData"], "user"> | Omit<Session["CreateOperationData"], "user">[]> | OakOperation<BaseSession.OpUpdateAction, Omit<Session["UpdateOperationData"], "user">, Session["Filter"]> | OakOperation<"remove", Session["RemoveOperationData"], Session["Filter"]>)[];
@ -1211,8 +1289,11 @@ export type Application = {
system: System["Schema"];
domain?: Domain["Schema"];
applicationPassport$application?: Array<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application?: Array<Omit<Captcha["Schema"], "application">>;
extraFile$application?: Array<Omit<ExtraFile["Schema"], "application">>;
notification$application?: Array<Omit<Notification["Schema"], "application">>;
oauthAuthorizationCode$application?: Array<Omit<OauthAuthorizationCode["Schema"], "application">>;
oauthUser$application?: Array<Omit<OauthUser["Schema"], "application">>;
sessionMessage$application?: Array<Omit<SessionMessage["Schema"], "application">>;
token$application?: Array<Omit<Token["Schema"], "application">>;
wechatMenu$application?: Array<Omit<WechatMenu["Schema"], "application">>;
@ -1228,8 +1309,11 @@ export type Application = {
wpProduct$application?: Array<Omit<WpProduct["Schema"], "application">>;
session$entity?: Array<Omit<Session["Schema"], "entity">>;
applicationPassport$application$$aggr?: AggregationResult<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application$$aggr?: AggregationResult<Omit<Captcha["Schema"], "application">>;
extraFile$application$$aggr?: AggregationResult<Omit<ExtraFile["Schema"], "application">>;
notification$application$$aggr?: AggregationResult<Omit<Notification["Schema"], "application">>;
oauthAuthorizationCode$application$$aggr?: AggregationResult<Omit<OauthAuthorizationCode["Schema"], "application">>;
oauthUser$application$$aggr?: AggregationResult<Omit<OauthUser["Schema"], "application">>;
sessionMessage$application$$aggr?: AggregationResult<Omit<SessionMessage["Schema"], "application">>;
token$application$$aggr?: AggregationResult<Omit<Token["Schema"], "application">>;
wechatMenu$application$$aggr?: AggregationResult<Omit<WechatMenu["Schema"], "application">>;
@ -1254,6 +1338,12 @@ export type Application = {
applicationPassport$application$$aggr?: DeduceAggregation<Omit<ApplicationPassport["Projection"], "application">, Omit<ApplicationPassport["Filter"], "application">, ApplicationPassport["Sorter"]> & {
$entity: "applicationPassport";
};
captcha$application?: OakSelection<"select", Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
captcha$application$$aggr?: DeduceAggregation<Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
extraFile$application?: OakSelection<"select", Omit<ExtraFile["Projection"], "application">, Omit<ExtraFile["Filter"], "application">, ExtraFile["Sorter"]> & {
$entity: "extraFile";
};
@ -1266,6 +1356,18 @@ export type Application = {
notification$application$$aggr?: DeduceAggregation<Omit<Notification["Projection"], "application">, Omit<Notification["Filter"], "application">, Notification["Sorter"]> & {
$entity: "notification";
};
oauthAuthorizationCode$application?: OakSelection<"select", Omit<OauthAuthorizationCode["Projection"], "application">, Omit<OauthAuthorizationCode["Filter"], "application">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthAuthorizationCode$application$$aggr?: DeduceAggregation<Omit<OauthAuthorizationCode["Projection"], "application">, Omit<OauthAuthorizationCode["Filter"], "application">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthUser$application?: OakSelection<"select", Omit<OauthUser["Projection"], "application">, Omit<OauthUser["Filter"], "application">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
oauthUser$application$$aggr?: DeduceAggregation<Omit<OauthUser["Projection"], "application">, Omit<OauthUser["Filter"], "application">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
sessionMessage$application?: OakSelection<"select", Omit<SessionMessage["Projection"], "application">, Omit<SessionMessage["Filter"], "application">, SessionMessage["Sorter"]> & {
$entity: "sessionMessage";
};
@ -1355,8 +1457,11 @@ export type Application = {
system: MakeFilter<System["FilterUnit"]>;
domain: MakeFilter<Domain["FilterUnit"]>;
applicationPassport$application: MakeFilter<Omit<ApplicationPassport["FilterUnit"], "application">> & SubQueryPredicateMetadata;
captcha$application: MakeFilter<Omit<Captcha["FilterUnit"], "application">> & SubQueryPredicateMetadata;
extraFile$application: MakeFilter<Omit<ExtraFile["FilterUnit"], "application">> & SubQueryPredicateMetadata;
notification$application: MakeFilter<Omit<Notification["FilterUnit"], "application">> & SubQueryPredicateMetadata;
oauthAuthorizationCode$application: MakeFilter<Omit<OauthAuthorizationCode["FilterUnit"], "application">> & SubQueryPredicateMetadata;
oauthUser$application: MakeFilter<Omit<OauthUser["FilterUnit"], "application">> & SubQueryPredicateMetadata;
sessionMessage$application: MakeFilter<Omit<SessionMessage["FilterUnit"], "application">> & SubQueryPredicateMetadata;
token$application: MakeFilter<Omit<Token["FilterUnit"], "application">> & SubQueryPredicateMetadata;
wechatMenu$application: MakeFilter<Omit<WechatMenu["FilterUnit"], "application">> & SubQueryPredicateMetadata;
@ -1388,8 +1493,11 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]>)[];
oauthAuthorizationCode$application?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "application"> | Omit<OauthAuthorizationCode["CreateOperationData"], "application">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "application">, OauthAuthorizationCode["Filter"]>)[];
oauthUser$application?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "application"> | Omit<OauthUser["CreateOperationData"], "application">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "application">, OauthUser["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]>)[];
token$application?: (OakOperation<"create", Omit<Token["CreateOperationData"], "application"> | Omit<Token["CreateOperationData"], "application">[]> | OakOperation<BaseToken.OpUpdateAction, Omit<Token["UpdateOperationData"], "application">, Token["Filter"]>)[];
wechatMenu$application?: (OakOperation<"create", Omit<WechatMenu["CreateOperationData"], "application"> | Omit<WechatMenu["CreateOperationData"], "application">[]> | OakOperation<BaseWechatMenu.OpUpdateAction, Omit<WechatMenu["UpdateOperationData"], "application">, WechatMenu["Filter"]>)[];
@ -1412,8 +1520,11 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]> | OakOperation<"remove", System["RemoveOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]> | OakOperation<"remove", Domain["RemoveOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]> | OakOperation<"remove", ApplicationPassport["RemoveOperationData"], ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]> | OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]> | OakOperation<"remove", ExtraFile["RemoveOperationData"], ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]> | OakOperation<"remove", Notification["RemoveOperationData"], Notification["Filter"]>)[];
oauthAuthorizationCode$application?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "application"> | Omit<OauthAuthorizationCode["CreateOperationData"], "application">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "application">, OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>)[];
oauthUser$application?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "application"> | Omit<OauthUser["CreateOperationData"], "application">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "application">, OauthUser["Filter"]> | OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]> | OakOperation<"remove", SessionMessage["RemoveOperationData"], SessionMessage["Filter"]>)[];
token$application?: (OakOperation<"create", Omit<Token["CreateOperationData"], "application"> | Omit<Token["CreateOperationData"], "application">[]> | OakOperation<BaseToken.OpUpdateAction, Omit<Token["UpdateOperationData"], "application">, Token["Filter"]> | OakOperation<"remove", Token["RemoveOperationData"], Token["Filter"]>)[];
wechatMenu$application?: (OakOperation<"create", Omit<WechatMenu["CreateOperationData"], "application"> | Omit<WechatMenu["CreateOperationData"], "application">[]> | OakOperation<BaseWechatMenu.OpUpdateAction, Omit<WechatMenu["UpdateOperationData"], "application">, WechatMenu["Filter"]> | OakOperation<"remove", WechatMenu["RemoveOperationData"], WechatMenu["Filter"]>)[];
@ -1675,11 +1786,19 @@ export type ArticleMenu = {
export type Captcha = {
OpSchema: BaseCaptcha.OpSchema;
Action: BaseCaptcha.OpAction;
Schema: BaseCaptcha.OpSchema & {};
Projection: BaseCaptcha.OpProjection & {};
FilterUnit: BaseCaptcha.OpFilter & {};
Schema: BaseCaptcha.OpSchema & {
application?: Application["Schema"];
};
Projection: BaseCaptcha.OpProjection & {
application?: Application["Projection"];
};
FilterUnit: BaseCaptcha.OpFilter & {
application: MakeFilter<Application["FilterUnit"]>;
};
Filter: MakeFilter<Captcha["FilterUnit"]>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {}>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {
application: Application["SortAttr"];
}>;
SortNode: {
$attr: Captcha["SortAttr"];
$direction?: "asc" | "desc";
@ -1687,11 +1806,15 @@ export type Captcha = {
Sorter: Captcha["SortNode"][];
Selection: OakSelection<"select", Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
Aggregation: DeduceAggregation<Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]>;
}>;
CreateSingle: OakOperation<"create", Captcha["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<Captcha["CreateOperationData"]>>;
Create: Captcha["CreateSingle"] | Captcha["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema>;
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>;
}>;
Update: OakOperation<BaseCaptcha.OpUpdateAction, Captcha["UpdateOperationData"], Captcha["Filter"], Captcha["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"], Captcha["Sorter"]>;
@ -2273,6 +2396,424 @@ export type Notification = {
Remove: OakOperation<"remove", Notification["RemoveOperationData"], Notification["Filter"], Notification["Sorter"]>;
Operation: Notification["Create"] | Notification["Update"] | Notification["Remove"];
};
export type OauthApplication = {
OpSchema: BaseOauthApplication.OpSchema;
Action: BaseOauthApplication.OpAction;
Schema: BaseOauthApplication.OpSchema & {
system: System["Schema"];
oauthAuthorizationCode$oauthApp?: Array<Omit<OauthAuthorizationCode["Schema"], "oauthApp">>;
oauthUserAuthorization$application?: Array<Omit<OauthUserAuthorization["Schema"], "application">>;
oauthAuthorizationCode$oauthApp$$aggr?: AggregationResult<Omit<OauthAuthorizationCode["Schema"], "oauthApp">>;
oauthUserAuthorization$application$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "application">>;
};
Projection: BaseOauthApplication.OpProjection & {
system?: System["Projection"];
oauthAuthorizationCode$oauthApp?: OakSelection<"select", Omit<OauthAuthorizationCode["Projection"], "oauthApplication">, Omit<OauthAuthorizationCode["Filter"], "oauthApplication">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthAuthorizationCode$oauthApp$$aggr?: DeduceAggregation<Omit<OauthAuthorizationCode["Projection"], "oauthApplication">, Omit<OauthAuthorizationCode["Filter"], "oauthApplication">, OauthAuthorizationCode["Sorter"]> & {
$entity: "oauthAuthorizationCode";
};
oauthUserAuthorization$application?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "oauthApplication">, Omit<OauthUserAuthorization["Filter"], "oauthApplication">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
oauthUserAuthorization$application$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "oauthApplication">, Omit<OauthUserAuthorization["Filter"], "oauthApplication">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
};
FilterUnit: BaseOauthApplication.OpFilter & {
system: MakeFilter<System["FilterUnit"]>;
oauthAuthorizationCode$oauthApp: MakeFilter<Omit<OauthAuthorizationCode["FilterUnit"], "oauthApp">> & SubQueryPredicateMetadata;
oauthUserAuthorization$application: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "application">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthApplication["FilterUnit"]>;
SortAttr: Partial<BaseOauthApplication.OpSortAttr | {
system: System["SortAttr"];
}>;
SortNode: {
$attr: OauthApplication["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthApplication["SortNode"][];
Selection: OakSelection<"select", OauthApplication["Projection"], OauthApplication["Filter"], OauthApplication["Sorter"]>;
Aggregation: DeduceAggregation<OauthApplication["Projection"], OauthApplication["Filter"], OauthApplication["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthApplication.OpSchema & {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]>;
oauthAuthorizationCode$oauthApp?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "oauthApp"> | Omit<OauthAuthorizationCode["CreateOperationData"], "oauthApp">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "oauthApp">, OauthAuthorizationCode["Filter"]>)[];
oauthUserAuthorization$application?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "application"> | Omit<OauthUserAuthorization["CreateOperationData"], "application">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "application">, OauthUserAuthorization["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthApplication["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthApplication["CreateOperationData"]>>;
Create: OauthApplication["CreateSingle"] | OauthApplication["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthApplication.OpSchema & {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]> | OakOperation<"remove", System["RemoveOperationData"], System["Filter"]>;
oauthAuthorizationCode$oauthApp?: (OakOperation<"create", Omit<OauthAuthorizationCode["CreateOperationData"], "oauthApp"> | Omit<OauthAuthorizationCode["CreateOperationData"], "oauthApp">[]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, Omit<OauthAuthorizationCode["UpdateOperationData"], "oauthApp">, OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>)[];
oauthUserAuthorization$application?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "application"> | Omit<OauthUserAuthorization["CreateOperationData"], "application">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "application">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"], OauthApplication["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"], OauthApplication["Sorter"]>;
Operation: OauthApplication["Create"] | OauthApplication["Update"] | OauthApplication["Remove"];
};
export type OauthAuthorizationCode = {
OpSchema: BaseOauthAuthorizationCode.OpSchema;
Action: BaseOauthAuthorizationCode.OpAction;
Schema: BaseOauthAuthorizationCode.OpSchema & {
application: Application["Schema"];
oauthApp: OauthApplication["Schema"];
user: User["Schema"];
oauthToken$code?: Array<Omit<OauthToken["Schema"], "code">>;
oauthUserAuthorization$code?: Array<Omit<OauthUserAuthorization["Schema"], "code">>;
oauthToken$code$$aggr?: AggregationResult<Omit<OauthToken["Schema"], "code">>;
oauthUserAuthorization$code$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "code">>;
};
Projection: BaseOauthAuthorizationCode.OpProjection & {
application?: Application["Projection"];
oauthApp?: OauthApplication["Projection"];
user?: User["Projection"];
oauthToken$code?: OakSelection<"select", Omit<OauthToken["Projection"], "oauthAuthorizationCode">, Omit<OauthToken["Filter"], "oauthAuthorizationCode">, OauthToken["Sorter"]> & {
$entity: "oauthToken";
};
oauthToken$code$$aggr?: DeduceAggregation<Omit<OauthToken["Projection"], "oauthAuthorizationCode">, Omit<OauthToken["Filter"], "oauthAuthorizationCode">, OauthToken["Sorter"]> & {
$entity: "oauthToken";
};
oauthUserAuthorization$code?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
oauthUserAuthorization$code$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
};
FilterUnit: BaseOauthAuthorizationCode.OpFilter & {
application: MakeFilter<Application["FilterUnit"]>;
oauthApp: MakeFilter<OauthApplication["FilterUnit"]>;
user: MakeFilter<User["FilterUnit"]>;
oauthToken$code: MakeFilter<Omit<OauthToken["FilterUnit"], "code">> & SubQueryPredicateMetadata;
oauthUserAuthorization$code: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "code">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
SortAttr: Partial<BaseOauthAuthorizationCode.OpSortAttr | {
application: Application["SortAttr"];
oauthApp: OauthApplication["SortAttr"];
user: User["SortAttr"];
}>;
SortNode: {
$attr: OauthAuthorizationCode["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthAuthorizationCode["SortNode"][];
Selection: OakSelection<"select", OauthAuthorizationCode["Projection"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
Aggregation: DeduceAggregation<OauthAuthorizationCode["Projection"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthAuthorizationCode.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]>;
oauthApp?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]>)[];
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthAuthorizationCode["CreateOperationData"]>>;
Create: OauthAuthorizationCode["CreateSingle"] | OauthAuthorizationCode["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthAuthorizationCode.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>;
oauthApp?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>)[];
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
Operation: OauthAuthorizationCode["Create"] | OauthAuthorizationCode["Update"] | OauthAuthorizationCode["Remove"];
};
export type OauthProvider = {
OpSchema: BaseOauthProvider.OpSchema;
Action: BaseOauthProvider.OpAction;
Schema: BaseOauthProvider.OpSchema & {
system: System["Schema"];
oauthState$provider?: Array<Omit<OauthState["Schema"], "provider">>;
oauthUser$providerConfig?: Array<Omit<OauthUser["Schema"], "providerConfig">>;
oauthState$provider$$aggr?: AggregationResult<Omit<OauthState["Schema"], "provider">>;
oauthUser$providerConfig$$aggr?: AggregationResult<Omit<OauthUser["Schema"], "providerConfig">>;
};
Projection: BaseOauthProvider.OpProjection & {
system?: System["Projection"];
oauthState$provider?: OakSelection<"select", Omit<OauthState["Projection"], "oauthProvider">, Omit<OauthState["Filter"], "oauthProvider">, OauthState["Sorter"]> & {
$entity: "oauthState";
};
oauthState$provider$$aggr?: DeduceAggregation<Omit<OauthState["Projection"], "oauthProvider">, Omit<OauthState["Filter"], "oauthProvider">, OauthState["Sorter"]> & {
$entity: "oauthState";
};
oauthUser$providerConfig?: OakSelection<"select", Omit<OauthUser["Projection"], "oauthProvider">, Omit<OauthUser["Filter"], "oauthProvider">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
oauthUser$providerConfig$$aggr?: DeduceAggregation<Omit<OauthUser["Projection"], "oauthProvider">, Omit<OauthUser["Filter"], "oauthProvider">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
};
FilterUnit: BaseOauthProvider.OpFilter & {
system: MakeFilter<System["FilterUnit"]>;
oauthState$provider: MakeFilter<Omit<OauthState["FilterUnit"], "provider">> & SubQueryPredicateMetadata;
oauthUser$providerConfig: MakeFilter<Omit<OauthUser["FilterUnit"], "providerConfig">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthProvider["FilterUnit"]>;
SortAttr: Partial<BaseOauthProvider.OpSortAttr | {
system: System["SortAttr"];
}>;
SortNode: {
$attr: OauthProvider["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthProvider["SortNode"][];
Selection: OakSelection<"select", OauthProvider["Projection"], OauthProvider["Filter"], OauthProvider["Sorter"]>;
Aggregation: DeduceAggregation<OauthProvider["Projection"], OauthProvider["Filter"], OauthProvider["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthProvider.OpSchema & {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]>;
oauthState$provider?: (OakOperation<"create", Omit<OauthState["CreateOperationData"], "provider"> | Omit<OauthState["CreateOperationData"], "provider">[]> | OakOperation<BaseOauthState.OpUpdateAction, Omit<OauthState["UpdateOperationData"], "provider">, OauthState["Filter"]>)[];
oauthUser$providerConfig?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "providerConfig"> | Omit<OauthUser["CreateOperationData"], "providerConfig">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "providerConfig">, OauthUser["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthProvider["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthProvider["CreateOperationData"]>>;
Create: OauthProvider["CreateSingle"] | OauthProvider["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthProvider.OpSchema & {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]> | OakOperation<"remove", System["RemoveOperationData"], System["Filter"]>;
oauthState$provider?: (OakOperation<"create", Omit<OauthState["CreateOperationData"], "provider"> | Omit<OauthState["CreateOperationData"], "provider">[]> | OakOperation<BaseOauthState.OpUpdateAction, Omit<OauthState["UpdateOperationData"], "provider">, OauthState["Filter"]> | OakOperation<"remove", OauthState["RemoveOperationData"], OauthState["Filter"]>)[];
oauthUser$providerConfig?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "providerConfig"> | Omit<OauthUser["CreateOperationData"], "providerConfig">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "providerConfig">, OauthUser["Filter"]> | OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthProvider.OpUpdateAction, OauthProvider["UpdateOperationData"], OauthProvider["Filter"], OauthProvider["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthProvider["RemoveOperationData"], OauthProvider["Filter"], OauthProvider["Sorter"]>;
Operation: OauthProvider["Create"] | OauthProvider["Update"] | OauthProvider["Remove"];
};
export type OauthState = {
OpSchema: BaseOauthState.OpSchema;
Action: BaseOauthState.OpAction;
Schema: BaseOauthState.OpSchema & {
provider: OauthProvider["Schema"];
user?: User["Schema"];
oauthUser$state?: Array<Omit<OauthUser["Schema"], "state">>;
oauthUser$state$$aggr?: AggregationResult<Omit<OauthUser["Schema"], "state">>;
};
Projection: BaseOauthState.OpProjection & {
provider?: OauthProvider["Projection"];
user?: User["Projection"];
oauthUser$state?: OakSelection<"select", Omit<OauthUser["Projection"], "oauthState">, Omit<OauthUser["Filter"], "oauthState">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
oauthUser$state$$aggr?: DeduceAggregation<Omit<OauthUser["Projection"], "oauthState">, Omit<OauthUser["Filter"], "oauthState">, OauthUser["Sorter"]> & {
$entity: "oauthUser";
};
};
FilterUnit: BaseOauthState.OpFilter & {
provider: MakeFilter<OauthProvider["FilterUnit"]>;
user: MakeFilter<User["FilterUnit"]>;
oauthUser$state: MakeFilter<Omit<OauthUser["FilterUnit"], "state">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthState["FilterUnit"]>;
SortAttr: Partial<BaseOauthState.OpSortAttr | {
provider: OauthProvider["SortAttr"];
user: User["SortAttr"];
}>;
SortNode: {
$attr: OauthState["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthState["SortNode"][];
Selection: OakSelection<"select", OauthState["Projection"], OauthState["Filter"], OauthState["Sorter"]>;
Aggregation: DeduceAggregation<OauthState["Projection"], OauthState["Filter"], OauthState["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthState.OpSchema & {
provider?: OakOperation<"create", OauthProvider["CreateOperationData"]> | OakOperation<BaseOauthProvider.OpUpdateAction, OauthProvider["UpdateOperationData"], OauthProvider["Filter"]>;
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
oauthUser$state?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "state"> | Omit<OauthUser["CreateOperationData"], "state">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "state">, OauthUser["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthState["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthState["CreateOperationData"]>>;
Create: OauthState["CreateSingle"] | OauthState["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthState.OpSchema & {
provider?: OakOperation<"create", OauthProvider["CreateOperationData"]> | OakOperation<BaseOauthProvider.OpUpdateAction, OauthProvider["UpdateOperationData"], OauthProvider["Filter"]> | OakOperation<"remove", OauthProvider["RemoveOperationData"], OauthProvider["Filter"]>;
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
oauthUser$state?: (OakOperation<"create", Omit<OauthUser["CreateOperationData"], "state"> | Omit<OauthUser["CreateOperationData"], "state">[]> | OakOperation<BaseOauthUser.OpUpdateAction, Omit<OauthUser["UpdateOperationData"], "state">, OauthUser["Filter"]> | OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthState.OpUpdateAction, OauthState["UpdateOperationData"], OauthState["Filter"], OauthState["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthState["RemoveOperationData"], OauthState["Filter"], OauthState["Sorter"]>;
Operation: OauthState["Create"] | OauthState["Update"] | OauthState["Remove"];
};
export type OauthToken = {
OpSchema: BaseOauthToken.OpSchema;
Action: BaseOauthToken.OpAction;
Schema: BaseOauthToken.OpSchema & {
user: User["Schema"];
code: OauthAuthorizationCode["Schema"];
oauthUserAuthorization$token?: Array<Omit<OauthUserAuthorization["Schema"], "token">>;
oauthUserAuthorization$token$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "token">>;
};
Projection: BaseOauthToken.OpProjection & {
user?: User["Projection"];
code?: OauthAuthorizationCode["Projection"];
oauthUserAuthorization$token?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "oauthToken">, Omit<OauthUserAuthorization["Filter"], "oauthToken">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
oauthUserAuthorization$token$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "oauthToken">, Omit<OauthUserAuthorization["Filter"], "oauthToken">, OauthUserAuthorization["Sorter"]> & {
$entity: "oauthUserAuthorization";
};
};
FilterUnit: BaseOauthToken.OpFilter & {
user: MakeFilter<User["FilterUnit"]>;
code: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
oauthUserAuthorization$token: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "token">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthToken["FilterUnit"]>;
SortAttr: Partial<BaseOauthToken.OpSortAttr | {
user: User["SortAttr"];
code: OauthAuthorizationCode["SortAttr"];
}>;
SortNode: {
$attr: OauthToken["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthToken["SortNode"][];
Selection: OakSelection<"select", OauthToken["Projection"], OauthToken["Filter"], OauthToken["Sorter"]>;
Aggregation: DeduceAggregation<OauthToken["Projection"], OauthToken["Filter"], OauthToken["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthToken.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]>;
oauthUserAuthorization$token?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "token"> | Omit<OauthUserAuthorization["CreateOperationData"], "token">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "token">, OauthUserAuthorization["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthToken["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthToken["CreateOperationData"]>>;
Create: OauthToken["CreateSingle"] | OauthToken["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthToken.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>;
oauthUserAuthorization$token?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "token"> | Omit<OauthUserAuthorization["CreateOperationData"], "token">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "token">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"], OauthToken["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"], OauthToken["Sorter"]>;
Operation: OauthToken["Create"] | OauthToken["Update"] | OauthToken["Remove"];
};
export type OauthUser = {
OpSchema: BaseOauthUser.OpSchema;
Action: BaseOauthUser.OpAction;
Schema: BaseOauthUser.OpSchema & {
user?: User["Schema"];
application: Application["Schema"];
providerConfig: OauthProvider["Schema"];
state: OauthState["Schema"];
token$entity?: Array<Omit<Token["Schema"], "entity">>;
token$entity$$aggr?: AggregationResult<Omit<Token["Schema"], "entity">>;
};
Projection: BaseOauthUser.OpProjection & {
user?: User["Projection"];
application?: Application["Projection"];
providerConfig?: OauthProvider["Projection"];
state?: OauthState["Projection"];
token$entity?: OakSelection<"select", Omit<Token["Projection"], "oauthUser">, Omit<Token["Filter"], "oauthUser">, Token["Sorter"]> & {
$entity: "token";
};
token$entity$$aggr?: DeduceAggregation<Omit<Token["Projection"], "oauthUser">, Omit<Token["Filter"], "oauthUser">, Token["Sorter"]> & {
$entity: "token";
};
};
FilterUnit: BaseOauthUser.OpFilter & {
user: MakeFilter<User["FilterUnit"]>;
application: MakeFilter<Application["FilterUnit"]>;
providerConfig: MakeFilter<OauthProvider["FilterUnit"]>;
state: MakeFilter<OauthState["FilterUnit"]>;
token$entity: MakeFilter<Omit<Token["FilterUnit"], "entity">> & SubQueryPredicateMetadata;
};
Filter: MakeFilter<OauthUser["FilterUnit"]>;
SortAttr: Partial<BaseOauthUser.OpSortAttr | {
user: User["SortAttr"];
application: Application["SortAttr"];
providerConfig: OauthProvider["SortAttr"];
state: OauthState["SortAttr"];
}>;
SortNode: {
$attr: OauthUser["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthUser["SortNode"][];
Selection: OakSelection<"select", OauthUser["Projection"], OauthUser["Filter"], OauthUser["Sorter"]>;
Aggregation: DeduceAggregation<OauthUser["Projection"], OauthUser["Filter"], OauthUser["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthUser.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]>;
providerConfig?: OakOperation<"create", OauthProvider["CreateOperationData"]> | OakOperation<BaseOauthProvider.OpUpdateAction, OauthProvider["UpdateOperationData"], OauthProvider["Filter"]>;
state?: OakOperation<"create", OauthState["CreateOperationData"]> | OakOperation<BaseOauthState.OpUpdateAction, OauthState["UpdateOperationData"], OauthState["Filter"]>;
token$entity?: (OakOperation<"create", Omit<Token["CreateOperationData"], "oauthUser"> | Omit<Token["CreateOperationData"], "oauthUser">[]> | OakOperation<BaseToken.OpUpdateAction, Omit<Token["UpdateOperationData"], "oauthUser">, Token["Filter"]>)[];
}>;
CreateSingle: OakOperation<"create", OauthUser["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthUser["CreateOperationData"]>>;
Create: OauthUser["CreateSingle"] | OauthUser["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthUser.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>;
providerConfig?: OakOperation<"create", OauthProvider["CreateOperationData"]> | OakOperation<BaseOauthProvider.OpUpdateAction, OauthProvider["UpdateOperationData"], OauthProvider["Filter"]> | OakOperation<"remove", OauthProvider["RemoveOperationData"], OauthProvider["Filter"]>;
state?: OakOperation<"create", OauthState["CreateOperationData"]> | OakOperation<BaseOauthState.OpUpdateAction, OauthState["UpdateOperationData"], OauthState["Filter"]> | OakOperation<"remove", OauthState["RemoveOperationData"], OauthState["Filter"]>;
token$entity?: (OakOperation<"create", Omit<Token["CreateOperationData"], "oauthUser"> | Omit<Token["CreateOperationData"], "oauthUser">[]> | OakOperation<BaseToken.OpUpdateAction, Omit<Token["UpdateOperationData"], "oauthUser">, Token["Filter"]> | OakOperation<"remove", Token["RemoveOperationData"], Token["Filter"]>)[];
}>;
Update: OakOperation<BaseOauthUser.OpUpdateAction, OauthUser["UpdateOperationData"], OauthUser["Filter"], OauthUser["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"], OauthUser["Sorter"]>;
Operation: OauthUser["Create"] | OauthUser["Update"] | OauthUser["Remove"];
};
export type OauthUserAuthorization = {
OpSchema: BaseOauthUserAuthorization.OpSchema;
Action: BaseOauthUserAuthorization.OpAction;
Schema: BaseOauthUserAuthorization.OpSchema & {
user: User["Schema"];
application: OauthApplication["Schema"];
code?: OauthAuthorizationCode["Schema"];
token?: OauthToken["Schema"];
};
Projection: BaseOauthUserAuthorization.OpProjection & {
user?: User["Projection"];
application?: OauthApplication["Projection"];
code?: OauthAuthorizationCode["Projection"];
token?: OauthToken["Projection"];
};
FilterUnit: BaseOauthUserAuthorization.OpFilter & {
user: MakeFilter<User["FilterUnit"]>;
application: MakeFilter<OauthApplication["FilterUnit"]>;
code: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
token: MakeFilter<OauthToken["FilterUnit"]>;
};
Filter: MakeFilter<OauthUserAuthorization["FilterUnit"]>;
SortAttr: Partial<BaseOauthUserAuthorization.OpSortAttr | {
user: User["SortAttr"];
application: OauthApplication["SortAttr"];
code: OauthAuthorizationCode["SortAttr"];
token: OauthToken["SortAttr"];
}>;
SortNode: {
$attr: OauthUserAuthorization["SortAttr"];
$direction?: "asc" | "desc";
};
Sorter: OauthUserAuthorization["SortNode"][];
Selection: OakSelection<"select", OauthUserAuthorization["Projection"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
Aggregation: DeduceAggregation<OauthUserAuthorization["Projection"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
CreateOperationData: FormCreateData<BaseOauthUserAuthorization.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]>;
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]>;
}>;
CreateSingle: OakOperation<"create", OauthUserAuthorization["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<OauthUserAuthorization["CreateOperationData"]>>;
Create: OauthUserAuthorization["CreateSingle"] | OauthUserAuthorization["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseOauthUserAuthorization.OpSchema & {
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>;
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>;
}>;
Update: OakOperation<BaseOauthUserAuthorization.OpUpdateAction, OauthUserAuthorization["UpdateOperationData"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
Operation: OauthUserAuthorization["Create"] | OauthUserAuthorization["Update"] | OauthUserAuthorization["Remove"];
};
export type Parasite = {
OpSchema: BaseParasite.OpSchema;
Action: BaseParasite.OpAction;
@ -2855,6 +3396,8 @@ export type System = {
application$system?: Array<Omit<Application["Schema"], "system">>;
domain$system?: Array<Omit<Domain["Schema"], "system">>;
messageSystem$system?: Array<Omit<MessageSystem["Schema"], "system">>;
oauthApplication$system?: Array<Omit<OauthApplication["Schema"], "system">>;
oauthProvider$system?: Array<Omit<OauthProvider["Schema"], "system">>;
passport$system?: Array<Omit<Passport["Schema"], "system">>;
smsTemplate$system?: Array<Omit<SmsTemplate["Schema"], "system">>;
userSystem$system?: Array<Omit<UserSystem["Schema"], "system">>;
@ -2877,6 +3420,8 @@ export type System = {
application$system$$aggr?: AggregationResult<Omit<Application["Schema"], "system">>;
domain$system$$aggr?: AggregationResult<Omit<Domain["Schema"], "system">>;
messageSystem$system$$aggr?: AggregationResult<Omit<MessageSystem["Schema"], "system">>;
oauthApplication$system$$aggr?: AggregationResult<Omit<OauthApplication["Schema"], "system">>;
oauthProvider$system$$aggr?: AggregationResult<Omit<OauthProvider["Schema"], "system">>;
passport$system$$aggr?: AggregationResult<Omit<Passport["Schema"], "system">>;
smsTemplate$system$$aggr?: AggregationResult<Omit<SmsTemplate["Schema"], "system">>;
userSystem$system$$aggr?: AggregationResult<Omit<UserSystem["Schema"], "system">>;
@ -2917,6 +3462,18 @@ export type System = {
messageSystem$system$$aggr?: DeduceAggregation<Omit<MessageSystem["Projection"], "system">, Omit<MessageSystem["Filter"], "system">, MessageSystem["Sorter"]> & {
$entity: "messageSystem";
};
oauthApplication$system?: OakSelection<"select", Omit<OauthApplication["Projection"], "system">, Omit<OauthApplication["Filter"], "system">, OauthApplication["Sorter"]> & {
$entity: "oauthApplication";
};
oauthApplication$system$$aggr?: DeduceAggregation<Omit<OauthApplication["Projection"], "system">, Omit<OauthApplication["Filter"], "system">, OauthApplication["Sorter"]> & {
$entity: "oauthApplication";
};
oauthProvider$system?: OakSelection<"select", Omit<OauthProvider["Projection"], "system">, Omit<OauthProvider["Filter"], "system">, OauthProvider["Sorter"]> & {
$entity: "oauthProvider";
};
oauthProvider$system$$aggr?: DeduceAggregation<Omit<OauthProvider["Projection"], "system">, Omit<OauthProvider["Filter"], "system">, OauthProvider["Sorter"]> & {
$entity: "oauthProvider";
};
passport$system?: OakSelection<"select", Omit<Passport["Projection"], "system">, Omit<Passport["Filter"], "system">, Passport["Sorter"]> & {
$entity: "passport";
};
@ -3037,6 +3594,8 @@ export type System = {
application$system: MakeFilter<Omit<Application["FilterUnit"], "system">> & SubQueryPredicateMetadata;
domain$system: MakeFilter<Omit<Domain["FilterUnit"], "system">> & SubQueryPredicateMetadata;
messageSystem$system: MakeFilter<Omit<MessageSystem["FilterUnit"], "system">> & SubQueryPredicateMetadata;
oauthApplication$system: MakeFilter<Omit<OauthApplication["FilterUnit"], "system">> & SubQueryPredicateMetadata;
oauthProvider$system: MakeFilter<Omit<OauthProvider["FilterUnit"], "system">> & SubQueryPredicateMetadata;
passport$system: MakeFilter<Omit<Passport["FilterUnit"], "system">> & SubQueryPredicateMetadata;
smsTemplate$system: MakeFilter<Omit<SmsTemplate["FilterUnit"], "system">> & SubQueryPredicateMetadata;
userSystem$system: MakeFilter<Omit<UserSystem["FilterUnit"], "system">> & SubQueryPredicateMetadata;
@ -3073,6 +3632,8 @@ export type System = {
application$system?: (OakOperation<"create", Omit<Application["CreateOperationData"], "system"> | Omit<Application["CreateOperationData"], "system">[]> | OakOperation<BaseApplication.OpUpdateAction, Omit<Application["UpdateOperationData"], "system">, Application["Filter"]>)[];
domain$system?: (OakOperation<"create", Omit<Domain["CreateOperationData"], "system"> | Omit<Domain["CreateOperationData"], "system">[]> | OakOperation<BaseDomain.OpUpdateAction, Omit<Domain["UpdateOperationData"], "system">, Domain["Filter"]>)[];
messageSystem$system?: (OakOperation<"create", Omit<MessageSystem["CreateOperationData"], "system"> | Omit<MessageSystem["CreateOperationData"], "system">[]> | OakOperation<BaseMessageSystem.OpUpdateAction, Omit<MessageSystem["UpdateOperationData"], "system">, MessageSystem["Filter"]>)[];
oauthApplication$system?: (OakOperation<"create", Omit<OauthApplication["CreateOperationData"], "system"> | Omit<OauthApplication["CreateOperationData"], "system">[]> | OakOperation<BaseOauthApplication.OpUpdateAction, Omit<OauthApplication["UpdateOperationData"], "system">, OauthApplication["Filter"]>)[];
oauthProvider$system?: (OakOperation<"create", Omit<OauthProvider["CreateOperationData"], "system"> | Omit<OauthProvider["CreateOperationData"], "system">[]> | OakOperation<BaseOauthProvider.OpUpdateAction, Omit<OauthProvider["UpdateOperationData"], "system">, OauthProvider["Filter"]>)[];
passport$system?: (OakOperation<"create", Omit<Passport["CreateOperationData"], "system"> | Omit<Passport["CreateOperationData"], "system">[]> | OakOperation<BasePassport.OpUpdateAction, Omit<Passport["UpdateOperationData"], "system">, Passport["Filter"]>)[];
smsTemplate$system?: (OakOperation<"create", Omit<SmsTemplate["CreateOperationData"], "system"> | Omit<SmsTemplate["CreateOperationData"], "system">[]> | OakOperation<BaseSmsTemplate.OpUpdateAction, Omit<SmsTemplate["UpdateOperationData"], "system">, SmsTemplate["Filter"]>)[];
userSystem$system?: (OakOperation<"create", Omit<UserSystem["CreateOperationData"], "system"> | Omit<UserSystem["CreateOperationData"], "system">[]> | OakOperation<BaseUserSystem.OpUpdateAction, Omit<UserSystem["UpdateOperationData"], "system">, UserSystem["Filter"]>)[];
@ -3101,6 +3662,8 @@ export type System = {
application$system?: (OakOperation<"create", Omit<Application["CreateOperationData"], "system"> | Omit<Application["CreateOperationData"], "system">[]> | OakOperation<BaseApplication.OpUpdateAction, Omit<Application["UpdateOperationData"], "system">, Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>)[];
domain$system?: (OakOperation<"create", Omit<Domain["CreateOperationData"], "system"> | Omit<Domain["CreateOperationData"], "system">[]> | OakOperation<BaseDomain.OpUpdateAction, Omit<Domain["UpdateOperationData"], "system">, Domain["Filter"]> | OakOperation<"remove", Domain["RemoveOperationData"], Domain["Filter"]>)[];
messageSystem$system?: (OakOperation<"create", Omit<MessageSystem["CreateOperationData"], "system"> | Omit<MessageSystem["CreateOperationData"], "system">[]> | OakOperation<BaseMessageSystem.OpUpdateAction, Omit<MessageSystem["UpdateOperationData"], "system">, MessageSystem["Filter"]> | OakOperation<"remove", MessageSystem["RemoveOperationData"], MessageSystem["Filter"]>)[];
oauthApplication$system?: (OakOperation<"create", Omit<OauthApplication["CreateOperationData"], "system"> | Omit<OauthApplication["CreateOperationData"], "system">[]> | OakOperation<BaseOauthApplication.OpUpdateAction, Omit<OauthApplication["UpdateOperationData"], "system">, OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>)[];
oauthProvider$system?: (OakOperation<"create", Omit<OauthProvider["CreateOperationData"], "system"> | Omit<OauthProvider["CreateOperationData"], "system">[]> | OakOperation<BaseOauthProvider.OpUpdateAction, Omit<OauthProvider["UpdateOperationData"], "system">, OauthProvider["Filter"]> | OakOperation<"remove", OauthProvider["RemoveOperationData"], OauthProvider["Filter"]>)[];
passport$system?: (OakOperation<"create", Omit<Passport["CreateOperationData"], "system"> | Omit<Passport["CreateOperationData"], "system">[]> | OakOperation<BasePassport.OpUpdateAction, Omit<Passport["UpdateOperationData"], "system">, Passport["Filter"]> | OakOperation<"remove", Passport["RemoveOperationData"], Passport["Filter"]>)[];
smsTemplate$system?: (OakOperation<"create", Omit<SmsTemplate["CreateOperationData"], "system"> | Omit<SmsTemplate["CreateOperationData"], "system">[]> | OakOperation<BaseSmsTemplate.OpUpdateAction, Omit<SmsTemplate["UpdateOperationData"], "system">, SmsTemplate["Filter"]> | OakOperation<"remove", SmsTemplate["RemoveOperationData"], SmsTemplate["Filter"]>)[];
userSystem$system?: (OakOperation<"create", Omit<UserSystem["CreateOperationData"], "system"> | Omit<UserSystem["CreateOperationData"], "system">[]> | OakOperation<BaseUserSystem.OpUpdateAction, Omit<UserSystem["UpdateOperationData"], "system">, UserSystem["Filter"]> | OakOperation<"remove", UserSystem["RemoveOperationData"], UserSystem["Filter"]>)[];
@ -3188,6 +3751,7 @@ export type Token = {
email?: Email["Schema"];
loginName?: LoginName["Schema"];
mobile?: Mobile["Schema"];
oauthUser?: OauthUser["Schema"];
parasite?: Parasite["Schema"];
wechatLogin?: WechatLogin["Schema"];
wechatUser?: WechatUser["Schema"];
@ -3199,6 +3763,7 @@ export type Token = {
email?: Email["Projection"];
loginName?: LoginName["Projection"];
mobile?: Mobile["Projection"];
oauthUser?: OauthUser["Projection"];
parasite?: Parasite["Projection"];
wechatLogin?: WechatLogin["Projection"];
wechatUser?: WechatUser["Projection"];
@ -3210,6 +3775,7 @@ export type Token = {
email: MakeFilter<Email["FilterUnit"]>;
loginName: MakeFilter<LoginName["FilterUnit"]>;
mobile: MakeFilter<Mobile["FilterUnit"]>;
oauthUser: MakeFilter<OauthUser["FilterUnit"]>;
parasite: MakeFilter<Parasite["FilterUnit"]>;
wechatLogin: MakeFilter<WechatLogin["FilterUnit"]>;
wechatUser: MakeFilter<WechatUser["FilterUnit"]>;
@ -3222,6 +3788,7 @@ export type Token = {
email: Email["SortAttr"];
loginName: LoginName["SortAttr"];
mobile: Mobile["SortAttr"];
oauthUser: OauthUser["SortAttr"];
parasite: Parasite["SortAttr"];
wechatLogin: WechatLogin["SortAttr"];
wechatUser: WechatUser["SortAttr"];
@ -3240,6 +3807,7 @@ export type Token = {
email?: OakOperation<"create", Email["CreateOperationData"]> | OakOperation<BaseEmail.OpUpdateAction, Email["UpdateOperationData"], Email["Filter"]>;
loginName?: OakOperation<"create", LoginName["CreateOperationData"]> | OakOperation<BaseLoginName.OpUpdateAction, LoginName["UpdateOperationData"], LoginName["Filter"]>;
mobile?: OakOperation<"create", Mobile["CreateOperationData"]> | OakOperation<BaseMobile.OpUpdateAction, Mobile["UpdateOperationData"], Mobile["Filter"]>;
oauthUser?: OakOperation<"create", OauthUser["CreateOperationData"]> | OakOperation<BaseOauthUser.OpUpdateAction, OauthUser["UpdateOperationData"], OauthUser["Filter"]>;
parasite?: OakOperation<"create", Parasite["CreateOperationData"]> | OakOperation<BaseParasite.OpUpdateAction, Parasite["UpdateOperationData"], Parasite["Filter"]>;
wechatLogin?: OakOperation<"create", WechatLogin["CreateOperationData"]> | OakOperation<BaseWechatLogin.OpUpdateAction, WechatLogin["UpdateOperationData"], WechatLogin["Filter"]>;
wechatUser?: OakOperation<"create", WechatUser["CreateOperationData"]> | OakOperation<BaseWechatUser.OpUpdateAction, WechatUser["UpdateOperationData"], WechatUser["Filter"]>;
@ -3254,6 +3822,7 @@ export type Token = {
email?: OakOperation<"create", Email["CreateOperationData"]> | OakOperation<BaseEmail.OpUpdateAction, Email["UpdateOperationData"], Email["Filter"]> | OakOperation<"remove", Email["RemoveOperationData"], Email["Filter"]>;
loginName?: OakOperation<"create", LoginName["CreateOperationData"]> | OakOperation<BaseLoginName.OpUpdateAction, LoginName["UpdateOperationData"], LoginName["Filter"]> | OakOperation<"remove", LoginName["RemoveOperationData"], LoginName["Filter"]>;
mobile?: OakOperation<"create", Mobile["CreateOperationData"]> | OakOperation<BaseMobile.OpUpdateAction, Mobile["UpdateOperationData"], Mobile["Filter"]> | OakOperation<"remove", Mobile["RemoveOperationData"], Mobile["Filter"]>;
oauthUser?: OakOperation<"create", OauthUser["CreateOperationData"]> | OakOperation<BaseOauthUser.OpUpdateAction, OauthUser["UpdateOperationData"], OauthUser["Filter"]> | OakOperation<"remove", OauthUser["RemoveOperationData"], OauthUser["Filter"]>;
parasite?: OakOperation<"create", Parasite["CreateOperationData"]> | OakOperation<BaseParasite.OpUpdateAction, Parasite["UpdateOperationData"], Parasite["Filter"]> | OakOperation<"remove", Parasite["RemoveOperationData"], Parasite["Filter"]>;
wechatLogin?: OakOperation<"create", WechatLogin["CreateOperationData"]> | OakOperation<BaseWechatLogin.OpUpdateAction, WechatLogin["UpdateOperationData"], WechatLogin["Filter"]> | OakOperation<"remove", WechatLogin["RemoveOperationData"], WechatLogin["Filter"]>;
wechatUser?: OakOperation<"create", WechatUser["CreateOperationData"]> | OakOperation<BaseWechatUser.OpUpdateAction, WechatUser["UpdateOperationData"], WechatUser["Filter"]> | OakOperation<"remove", WechatUser["RemoveOperationData"], WechatUser["Filter"]>;
@ -5730,6 +6299,13 @@ export type EntityDict = {
messageTypeTemplate: MessageTypeTemplate;
mobile: Mobile;
notification: Notification;
oauthApplication: OauthApplication;
oauthAuthorizationCode: OauthAuthorizationCode;
oauthProvider: OauthProvider;
oauthState: OauthState;
oauthToken: OauthToken;
oauthUser: OauthUser;
oauthUserAuthorization: OauthUserAuthorization;
parasite: Parasite;
passport: Passport;
platform: Platform;

View File

@ -4,7 +4,7 @@ export const desc = {
origin: {
notNull: true,
type: "enum",
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown"]
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown", "s3"]
},
type: {
notNull: true,
@ -107,6 +107,13 @@ export const desc = {
notNull: true,
type: "ref",
ref: "application"
},
// 分片续传配置
enableChunkedUpload: {
type: "boolean"
},
chunkInfo: {
type: "object"
}
},
actionType: "crud",

View File

@ -1,6 +1,7 @@
export const style = {
color: {
origin: {
s3: '#FFA500',
qiniu: '#37caff',
wechat: '#2aae67',
ctyun: '#ff0000',

View File

@ -1,10 +1,18 @@
import { ForeignKey } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { GenericAction } from "oak-domain/lib/actions/action";
import { CosOrigin } from "oak-general-business/lib/types/Config";
import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType";
type ChunkInfo = {
chunkSize: number;
partCount: number;
uploadId: string;
merged: boolean;
parts: Array<string>;
};
export type OpSchema = EntityShape & {
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown";
origin: CosOrigin;
type: "image" | "video" | "audio" | "file";
bucket?: String<32> | null;
objectId?: String<64> | null;
@ -24,6 +32,8 @@ export type OpSchema = EntityShape & {
uploadState: "success" | "failed" | "uploading";
uploadMeta?: Object | null;
applicationId: ForeignKey<"application">;
enableChunkedUpload?: Boolean | null;
chunkInfo?: ChunkInfo | null;
} & {
[A in ExpressionKey]?: any;
};
@ -33,7 +43,7 @@ export type OpFilter = {
$$createAt$$: Q_DateValue;
$$seq$$: Q_NumberValue;
$$updateAt$$: Q_DateValue;
origin: Q_EnumValue<"qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown">;
origin: Q_EnumValue<CosOrigin>;
type: Q_EnumValue<"image" | "video" | "audio" | "file">;
bucket: Q_StringValue;
objectId: Q_StringValue;
@ -53,6 +63,8 @@ export type OpFilter = {
uploadState: Q_EnumValue<"success" | "failed" | "uploading">;
uploadMeta: Object;
applicationId: Q_StringValue;
enableChunkedUpload: Q_BooleanValue;
chunkInfo: JsonFilter<ChunkInfo>;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
"#id"?: NodeId;
@ -81,6 +93,8 @@ export type OpProjection = {
uploadState?: number;
uploadMeta?: number | Object;
applicationId?: number;
enableChunkedUpload?: number;
chunkInfo?: number | JsonProjection<ChunkInfo>;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
id: number;
@ -105,7 +119,10 @@ export type OpSortAttr = Partial<{
isBridge: number;
uploadState: number;
applicationId: number;
enableChunkedUpload: number;
chunkInfo: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;
export type OpAction = OakMakeAction<GenericAction | string>;
export type OpUpdateAction = "update" | string;
export {};

View File

@ -20,7 +20,9 @@
"isBridge": "是否桥接访问",
"uploadState": "上传状态",
"uploadMeta": "上传需要的metadata",
"application": "来源应用"
"application": "来源应用",
"enableChunkedUpload": "是否启用分片续传",
"chunkInfo": "分片续传信息"
},
"v": {
"origin": {
@ -30,7 +32,8 @@
"aliyun": "阿里云",
"tencent": "腾讯云",
"local": "本地",
"unknown": "未知"
"unknown": "未知",
"s3": "S3"
},
"type": {
"image": "图像",

View File

@ -34,7 +34,6 @@ export const desc = {
type: "object"
}
},
static: true,
actionType: "crud",
actions,
indexes: [

View File

@ -64,6 +64,7 @@ export const desc = {
enumeration: ["sending", "success", "failure"]
},
visitState: {
notNull: true,
type: "enum",
enumeration: ["unvisited", "visited"]
}

View File

@ -13,6 +13,9 @@ export type Router = {
type MessageRestriction = {
systemIds?: string[];
channels?: Array<Channel>;
disableRouter?: {
[key: Channel]: boolean;
};
};
type Channels = Channel[];
export type OpSchema = EntityShape & {
@ -29,7 +32,7 @@ export type OpSchema = EntityShape & {
platformId?: ForeignKey<"platform"> | null;
channels?: Channels | null;
iState?: IState | null;
visitState?: VisitState | null;
visitState: VisitState;
} & {
[A in ExpressionKey]?: any;
};

View File

@ -40,6 +40,7 @@ export const desc = {
type: "object"
},
iState: {
notNull: true,
type: "enum",
enumeration: ["active", "applied", "abandoned"]
}

View File

@ -10,7 +10,7 @@ export type OpSchema = EntityShape & {
data: Object;
filter?: Object | null;
extra?: Object | null;
iState?: IState | null;
iState: IState;
} & {
[A in ExpressionKey]?: any;
};

View File

@ -3,8 +3,10 @@ export const desc = {
attributes: {
channel: {
notNull: true,
type: "enum",
enumeration: ["wechatPublic", "jPush", "jim", "wechatMp", "sms", "email"]
type: "varchar",
params: {
length: 32
}
},
applicationId: {
type: "ref",
@ -31,6 +33,7 @@ export const desc = {
}
},
iState: {
notNull: true,
type: "enum",
enumeration: ["sending", "success", "failure"]
}

View File

@ -9,13 +9,13 @@ export const style = {
success: '#008000',
failure: '#9A9A9A',
},
channel: {
wechatMp: '#008000',
jPush: '#0000FF',
jim: '#0000FF',
wechatPublic: '#008000',
sms: '#000000',
email: '#000000',
},
// channel: {
// wechatMp: '#008000',
// jPush: '#0000FF',
// jim: '#0000FF',
// wechatPublic: '#008000',
// sms: '#000000',
// email: '#000000',
// },
}
};

View File

@ -2,17 +2,16 @@ import { ForeignKey } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { Action, ParticularAction, IState } from "./Action";
import { Channel } from "oak-general-business/lib/types/Message";
import { String } from "oak-domain/lib/types/DataType";
export type OpSchema = EntityShape & {
channel: Channel;
channel: String<32>;
applicationId?: ForeignKey<"application"> | null;
data?: Object | null;
messageSystemId: ForeignKey<"messageSystem">;
data1?: Object | null;
data2?: Object | null;
templateId?: String<128> | null;
iState?: IState | null;
iState: IState;
} & {
[A in ExpressionKey]?: any;
};
@ -22,7 +21,7 @@ export type OpFilter = {
$$createAt$$: Q_DateValue;
$$seq$$: Q_NumberValue;
$$updateAt$$: Q_DateValue;
channel: Q_EnumValue<Channel>;
channel: Q_StringValue;
applicationId: Q_StringValue;
data: Object;
messageSystemId: Q_StringValue;

View File

@ -19,14 +19,6 @@
"sending": "发送中",
"success": "发送成功",
"failure": "发送失败"
},
"channel": {
"wechatPublic": "公众号",
"jPush": "极光推送",
"jim": "极光消息",
"wechatMp": "小程序",
"sms": "短信",
"email": "邮箱"
}
}
}

View File

@ -0,0 +1,11 @@
import { AbleState, AbleAction } from "oak-domain/lib/actions/action";
import { ActionDef } from "oak-domain/lib/types/Action";
import { GenericAction } from "oak-domain/lib/actions/action";
export type SecretAction = 'resetSecret' | string;
export type ParticularAction = AbleAction | SecretAction;
export declare const actions: string[];
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
export type Action = GenericAction | ParticularAction | string;
export declare const actionDefDict: {
ableState: ActionDef<AbleAction, AbleState>;
};

View File

@ -0,0 +1,6 @@
import { makeAbleActionDef } from "oak-domain/lib/actions/action";
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable", "resetSecret"];
export const AbleActionDef = makeAbleActionDef('enabled');
export const actionDefDict = {
ableState: AbleActionDef
};

View File

@ -0,0 +1,19 @@
export * from "./_baseSchema";
import { OauthApplication } from "../EntityDict";
export type Schema = OauthApplication["Schema"];
export type Action = OauthApplication["Action"];
export type Projection = OauthApplication["Projection"];
export type Filter = OauthApplication["Filter"];
export type SortNode = OauthApplication["SortNode"];
export type Sorter = OauthApplication["Sorter"];
export type Selection = OauthApplication["Selection"];
export type Aggregation = OauthApplication["Aggregation"];
export type CreateOperationData = OauthApplication["CreateOperationData"];
export type CreateSingle = OauthApplication["CreateSingle"];
export type CreateMulti = OauthApplication["CreateMulti"];
export type Create = OauthApplication["Create"];
export type UpdateOperationData = OauthApplication["UpdateOperationData"];
export type Update = OauthApplication["Update"];
export type RemoveOperationData = OauthApplication["RemoveOperationData"];
export type Remove = OauthApplication["Remove"];
export type Operation = OauthApplication["Operation"];

View File

@ -0,0 +1 @@
export * from "./_baseSchema";

View File

@ -0,0 +1,3 @@
import { StorageDesc } from "oak-domain/lib/types/Storage";
import { OpSchema } from "./Schema";
export declare const desc: StorageDesc<OpSchema>;

View File

@ -0,0 +1,54 @@
import { actions } from "./Action";
export const desc = {
attributes: {
// clientId直接复用entity的id属性
clientSecret: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
systemId: {
notNull: true,
type: "ref",
ref: "system"
},
name: {
notNull: true,
type: "varchar",
params: {
length: 64
}
},
description: {
type: "text"
},
redirectUris: {
type: "object"
},
logo: {
type: "varchar",
params: {
length: 512
}
},
isConfidential: {
notNull: true,
type: "boolean"
},
scopes: {
type: "object"
},
requirePKCE: {
notNull: true,
type: "boolean"
},
ableState: {
type: "enum",
enumeration: ["enabled", "disabled"]
}
},
actionType: "crud",
actions
};

View File

@ -0,0 +1,3 @@
import { Action, OpSchema } from "./Schema";
import { StyleDef } from "oak-domain/lib/types/Style";
export declare const style: StyleDef<OpSchema, Action>;

View File

@ -0,0 +1,12 @@
export const style = {
icon: {
enable: '',
disable: '',
},
color: {
ableState: {
enabled: '#008000',
disabled: '#A9A9A9'
}
}
};

View File

@ -0,0 +1,75 @@
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { Action, ParticularAction } from "./Action";
import { AbleState } from "oak-domain/lib/actions/action";
import { String, Text } from "oak-domain/lib/types/DataType";
import { StringListJson } from "oak-general-business/lib/types/datatype";
export type OpSchema = EntityShape & {
clientSecret: String<512>;
systemId: ForeignKey<"system">;
name: String<64>;
description?: Text | null;
redirectUris?: StringListJson | null;
logo?: String<512> | null;
isConfidential: Boolean;
scopes?: StringListJson | null;
requirePKCE: Boolean;
ableState?: AbleState | null;
} & {
[A in ExpressionKey]?: any;
};
export type OpAttr = keyof OpSchema;
export type OpFilter = {
id: Q_StringValue;
$$createAt$$: Q_DateValue;
$$seq$$: Q_NumberValue;
$$updateAt$$: Q_DateValue;
clientSecret: Q_StringValue;
systemId: Q_StringValue;
name: Q_StringValue;
description: Q_StringValue;
redirectUris: JsonFilter<StringListJson>;
logo: Q_StringValue;
isConfidential: Q_BooleanValue;
scopes: JsonFilter<StringListJson>;
requirePKCE: Q_BooleanValue;
ableState: Q_EnumValue<AbleState>;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
"#id"?: NodeId;
[k: string]: any;
id?: number;
$$createAt$$?: number;
$$updateAt$$?: number;
$$seq$$?: number;
clientSecret?: number;
systemId?: number;
name?: number;
description?: number;
redirectUris?: number | JsonProjection<StringListJson>;
logo?: number;
isConfidential?: number;
scopes?: number | JsonProjection<StringListJson>;
requirePKCE?: number;
ableState?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
id: number;
$$createAt$$: number;
$$seq$$: number;
$$updateAt$$: number;
clientSecret: number;
systemId: number;
name: number;
description: number;
redirectUris: number;
logo: number;
isConfidential: number;
scopes: number;
requirePKCE: number;
ableState: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;
export type OpAction = OakMakeAction<Action | string>;
export type OpUpdateAction = "update" | ParticularAction | string;

View File

@ -0,0 +1 @@
export {};

View File

@ -0,0 +1,26 @@
{
"name": "Oauth应用",
"attr": {
"ableState": "是否可用",
"clientSecret": "客户端密钥",
"system": "所属系统",
"name": "应用名称",
"description": "应用描述",
"redirectUris": "重定向 URI",
"logo": "应用 Logo",
"isConfidential": "是否保密",
"scopes": "应用权限范围",
"requirePKCE": "强制 PKCE"
},
"action": {
"enable": "启用",
"disable": "禁用",
"resetSecret": "重置密钥"
},
"v": {
"ableState": {
"enabled": "可用的",
"disabled": "禁用的"
}
}
}

View File

@ -0,0 +1,19 @@
export * from "./_baseSchema";
import { OauthAuthorizationCode } from "../EntityDict";
export type Schema = OauthAuthorizationCode["Schema"];
export type Action = OauthAuthorizationCode["Action"];
export type Projection = OauthAuthorizationCode["Projection"];
export type Filter = OauthAuthorizationCode["Filter"];
export type SortNode = OauthAuthorizationCode["SortNode"];
export type Sorter = OauthAuthorizationCode["Sorter"];
export type Selection = OauthAuthorizationCode["Selection"];
export type Aggregation = OauthAuthorizationCode["Aggregation"];
export type CreateOperationData = OauthAuthorizationCode["CreateOperationData"];
export type CreateSingle = OauthAuthorizationCode["CreateSingle"];
export type CreateMulti = OauthAuthorizationCode["CreateMulti"];
export type Create = OauthAuthorizationCode["Create"];
export type UpdateOperationData = OauthAuthorizationCode["UpdateOperationData"];
export type Update = OauthAuthorizationCode["Update"];
export type RemoveOperationData = OauthAuthorizationCode["RemoveOperationData"];
export type Remove = OauthAuthorizationCode["Remove"];
export type Operation = OauthAuthorizationCode["Operation"];

View File

@ -0,0 +1 @@
export * from "./_baseSchema";

View File

@ -0,0 +1,3 @@
import { StorageDesc } from "oak-domain/lib/types/Storage";
import { OpSchema } from "./Schema";
export declare const desc: StorageDesc<OpSchema>;

View File

@ -0,0 +1,62 @@
import { genericActions as actions } from "oak-domain/lib/actions/action";
export const desc = {
attributes: {
code: {
notNull: true,
type: "varchar",
params: {
length: 128
}
},
applicationId: {
notNull: true,
type: "ref",
ref: "application"
},
oauthAppId: {
notNull: true,
type: "ref",
ref: "oauthApplication"
},
userId: {
notNull: true,
type: "ref",
ref: "user"
},
redirectUri: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
scope: {
notNull: true,
type: "object"
},
// PKCE 扩展 (RFC 7636) 暂时用不到
codeChallenge: {
type: "varchar",
params: {
length: 128
}
},
codeChallengeMethod: {
type: "varchar",
params: {
length: 10
}
},
// 生命周期管理
expiresAt: {
notNull: true,
type: "datetime"
},
// 使用时间
usedAt: {
type: "datetime"
}
},
actionType: "crud",
actions
};

View File

@ -0,0 +1,74 @@
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_NumberValue, Q_StringValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand";
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
import { GenericAction } from "oak-domain/lib/actions/action";
import { String, Datetime } from "oak-domain/lib/types/DataType";
import { StringListJson } from "oak-general-business/lib/types/datatype";
export type OpSchema = EntityShape & {
code: String<128>;
applicationId: ForeignKey<"application">;
oauthAppId: ForeignKey<"oauthApplication">;
userId: ForeignKey<"user">;
redirectUri: String<512>;
scope: StringListJson;
codeChallenge?: String<128> | null;
codeChallengeMethod?: String<10> | null;
expiresAt: Datetime;
usedAt?: Datetime | null;
} & {
[A in ExpressionKey]?: any;
};
export type OpAttr = keyof OpSchema;
export type OpFilter = {
id: Q_StringValue;
$$createAt$$: Q_DateValue;
$$seq$$: Q_NumberValue;
$$updateAt$$: Q_DateValue;
code: Q_StringValue;
applicationId: Q_StringValue;
oauthAppId: Q_StringValue;
userId: Q_StringValue;
redirectUri: Q_StringValue;
scope: JsonFilter<StringListJson>;
codeChallenge: Q_StringValue;
codeChallengeMethod: Q_StringValue;
expiresAt: Q_DateValue;
usedAt: Q_DateValue;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
"#id"?: NodeId;
[k: string]: any;
id?: number;
$$createAt$$?: number;
$$updateAt$$?: number;
$$seq$$?: number;
code?: number;
applicationId?: number;
oauthAppId?: number;
userId?: number;
redirectUri?: number;
scope?: number | JsonProjection<StringListJson>;
codeChallenge?: number;
codeChallengeMethod?: number;
expiresAt?: number;
usedAt?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
id: number;
$$createAt$$: number;
$$seq$$: number;
$$updateAt$$: number;
code: number;
applicationId: number;
oauthAppId: number;
userId: number;
redirectUri: number;
scope: number;
codeChallenge: number;
codeChallengeMethod: number;
expiresAt: number;
usedAt: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;
export type OpAction = OakMakeAction<GenericAction | string>;
export type OpUpdateAction = "update" | string;

View File

@ -0,0 +1 @@
export {};

View File

@ -0,0 +1,15 @@
{
"name": "授权码",
"attr": {
"code": "授权码",
"application": "应用",
"oauthApp": "Oauth应用",
"user": "用户",
"redirectUri": "重定向 URI",
"scope": "权限范围",
"codeChallenge": "代码挑战",
"codeChallengeMethod": "代码挑战方法",
"expiresAt": "过期时间",
"usedAt": "使用时间"
}
}

View File

@ -0,0 +1,10 @@
import { AbleState, AbleAction } from "oak-domain/lib/actions/action";
import { ActionDef } from "oak-domain/lib/types/Action";
import { GenericAction } from "oak-domain/lib/actions/action";
export type ParticularAction = AbleAction;
export declare const actions: string[];
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
export type Action = GenericAction | ParticularAction | string;
export declare const actionDefDict: {
ableState: ActionDef<AbleAction, AbleState>;
};

View File

@ -0,0 +1,6 @@
import { makeAbleActionDef } from "oak-domain/lib/actions/action";
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable"];
export const AbleActionDef = makeAbleActionDef('enabled');
export const actionDefDict = {
ableState: AbleActionDef
};

View File

@ -0,0 +1,19 @@
export * from "./_baseSchema";
import { OauthProvider } from "../EntityDict";
export type Schema = OauthProvider["Schema"];
export type Action = OauthProvider["Action"];
export type Projection = OauthProvider["Projection"];
export type Filter = OauthProvider["Filter"];
export type SortNode = OauthProvider["SortNode"];
export type Sorter = OauthProvider["Sorter"];
export type Selection = OauthProvider["Selection"];
export type Aggregation = OauthProvider["Aggregation"];
export type CreateOperationData = OauthProvider["CreateOperationData"];
export type CreateSingle = OauthProvider["CreateSingle"];
export type CreateMulti = OauthProvider["CreateMulti"];
export type Create = OauthProvider["Create"];
export type UpdateOperationData = OauthProvider["UpdateOperationData"];
export type Update = OauthProvider["Update"];
export type RemoveOperationData = OauthProvider["RemoveOperationData"];
export type Remove = OauthProvider["Remove"];
export type Operation = OauthProvider["Operation"];

View File

@ -0,0 +1 @@
export * from "./_baseSchema";

View File

@ -0,0 +1,3 @@
import { StorageDesc } from "oak-domain/lib/types/Storage";
import { OpSchema } from "./Schema";
export declare const desc: StorageDesc<OpSchema>;

View File

@ -0,0 +1,99 @@
import { actions } from "./Action";
export const desc = {
attributes: {
systemId: {
notNull: true,
type: "ref",
ref: "system"
},
name: {
notNull: true,
type: "varchar",
params: {
length: 64
}
},
type: {
notNull: true,
type: "varchar",
params: {
length: 64
}
},
logo: {
type: "varchar",
params: {
length: 512
}
},
// OAuth 端点 (RFC 6749 Section 3)
authorizationEndpoint: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
tokenEndpoint: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
userInfoEndpoint: {
type: "varchar",
params: {
length: 512
}
},
revokeEndpoint: {
type: "varchar",
params: {
length: 512
}
},
refreshEndpoint: {
type: "varchar",
params: {
length: 512
}
},
// 客户端凭证 (RFC 6749 Section 2.3)
clientId: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
clientSecret: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
redirectUri: {
notNull: true,
type: "varchar",
params: {
length: 512
}
},
scopes: {
type: "object"
},
// 配置选项
autoRegister: {
notNull: true,
type: "boolean"
},
ableState: {
type: "enum",
enumeration: ["enabled", "disabled"]
}
},
actionType: "crud",
actions
};

View File

@ -0,0 +1,3 @@
import { Action, OpSchema } from "./Schema";
import { StyleDef } from "oak-domain/lib/types/Style";
export declare const style: StyleDef<OpSchema, Action>;

Some files were not shown because too many files have changed in this diff Show More