import { MakeFilter, SubQueryPredicateMetadata } from "../types/Demand"; import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, AggregationResult } from "../types/Entity"; import * as BaseActionAuth from "./ActionAuth/_baseSchema"; import * as BaseI18n from "./I18n/_baseSchema"; import * as BaseLog from "./Log/_baseSchema"; import * as BaseModi from "./Modi/_baseSchema"; import * as BaseModiEntity from "./ModiEntity/_baseSchema"; import * as BaseOper from "./Oper/_baseSchema"; import * as BaseOperEntity from "./OperEntity/_baseSchema"; import * as BasePath from "./Path/_baseSchema"; import * as BaseRelation from "./Relation/_baseSchema"; import * as BaseRelationAuth from "./RelationAuth/_baseSchema"; import * as BaseUser from "./User/_baseSchema"; import * as BaseUserEntityClaim from "./UserEntityClaim/_baseSchema"; import * as BaseUserEntityGrant from "./UserEntityGrant/_baseSchema"; import * as BaseUserRelation from "./UserRelation/_baseSchema"; export type ActionAuth = { OpSchema: BaseActionAuth.OpSchema; Action: BaseActionAuth.OpAction; Schema: BaseActionAuth.OpSchema & { relation?: Relation["Schema"]; path: Path["Schema"]; }; Projection: BaseActionAuth.OpProjection & { relation?: Relation["Projection"]; path?: Path["Projection"]; }; FilterUnit: BaseActionAuth.OpFilter & { relation: MakeFilter; path: MakeFilter; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: ActionAuth["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: ActionAuth["SortNode"][]; Selection: OakSelection<"select", ActionAuth["Projection"], ActionAuth["Filter"], ActionAuth["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", ActionAuth["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: ActionAuth["CreateSingle"] | ActionAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"], ActionAuth["Sorter"]>; Operation: ActionAuth["Create"] | ActionAuth["Update"] | ActionAuth["Remove"]; }; export type I18n = { OpSchema: BaseI18n.OpSchema; Action: BaseI18n.OpAction; Schema: BaseI18n.OpSchema & {}; Projection: BaseI18n.OpProjection & {}; FilterUnit: BaseI18n.OpFilter & {}; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: I18n["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: I18n["SortNode"][]; Selection: OakSelection<"select", I18n["Projection"], I18n["Filter"], I18n["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData; CreateSingle: OakOperation<"create", I18n["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: I18n["CreateSingle"] | I18n["CreateMulti"]; UpdateOperationData: FormUpdateData; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", I18n["RemoveOperationData"], I18n["Filter"], I18n["Sorter"]>; Operation: I18n["Create"] | I18n["Update"] | I18n["Remove"]; }; export type Log = { OpSchema: BaseLog.OpSchema; Action: BaseLog.OpAction; Schema: BaseLog.OpSchema & { oper$log?: Array>; oper$log$$aggr?: AggregationResult>; }; Projection: BaseLog.OpProjection & { oper$log?: OakSelection<"select", Omit, Omit, Oper["Sorter"]> & { $entity: "oper"; }; oper$log$$aggr?: DeduceAggregation, Omit, Oper["Sorter"]> & { $entity: "oper"; }; }; FilterUnit: BaseLog.OpFilter & { oper$log: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: Log["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: Log["SortNode"][]; Selection: OakSelection<"select", Log["Projection"], Log["Filter"], Log["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | Omit[]> | OakOperation, Oper["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", Log["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Log["CreateSingle"] | Log["CreateMulti"]; UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, Oper["Filter"]> | OakOperation<"remove", Oper["RemoveOperationData"], Oper["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Log["RemoveOperationData"], Log["Filter"], Log["Sorter"]>; Operation: Log["Create"] | Log["Update"] | Log["Remove"]; }; export type Modi = { OpSchema: BaseModi.OpSchema; Action: BaseModi.OpAction; Schema: BaseModi.OpSchema & { modiEntity$modi?: Array>; modiEntity$modi$$aggr?: AggregationResult>; }; Projection: BaseModi.OpProjection & { modiEntity$modi?: OakSelection<"select", Omit, Omit, ModiEntity["Sorter"]> & { $entity: "modiEntity"; }; modiEntity$modi$$aggr?: DeduceAggregation, Omit, ModiEntity["Sorter"]> & { $entity: "modiEntity"; }; }; FilterUnit: BaseModi.OpFilter & { modiEntity$modi: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: Modi["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: Modi["SortNode"][]; Selection: OakSelection<"select", Modi["Projection"], Modi["Filter"], Modi["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | Omit[]>[]; }>; CreateSingle: OakOperation<"create", Modi["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Modi["CreateSingle"] | Modi["CreateMulti"]; UpdateOperationData: FormUpdateData | Omit[]>[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Modi["RemoveOperationData"], Modi["Filter"], Modi["Sorter"]>; Operation: Modi["Create"] | Modi["Update"] | Modi["Remove"]; }; export type ModiEntity = { OpSchema: BaseModiEntity.OpSchema; Action: BaseModiEntity.OpAction; Schema: BaseModiEntity.OpSchema & { modi: Modi["Schema"]; }; Projection: BaseModiEntity.OpProjection & { modi?: Modi["Projection"]; }; FilterUnit: BaseModiEntity.OpFilter & { modi: MakeFilter; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: ModiEntity["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: ModiEntity["SortNode"][]; Selection: OakSelection<"select", ModiEntity["Projection"], ModiEntity["Filter"], ModiEntity["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; }>; CreateSingle: OakOperation<"create", ModiEntity["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: ModiEntity["CreateSingle"] | ModiEntity["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Modi["RemoveOperationData"], Modi["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", ModiEntity["RemoveOperationData"], ModiEntity["Filter"], ModiEntity["Sorter"]>; Operation: ModiEntity["Create"] | ModiEntity["Update"] | ModiEntity["Remove"]; }; export type Oper = { OpSchema: BaseOper.OpSchema; Action: BaseOper.OpAction; Schema: BaseOper.OpSchema & { operator?: User["Schema"]; log?: Log["Schema"]; operEntity$oper?: Array>; operEntity$oper$$aggr?: AggregationResult>; }; Projection: BaseOper.OpProjection & { operator?: User["Projection"]; log?: Log["Projection"]; operEntity$oper?: OakSelection<"select", Omit, Omit, OperEntity["Sorter"]> & { $entity: "operEntity"; }; operEntity$oper$$aggr?: DeduceAggregation, Omit, OperEntity["Sorter"]> & { $entity: "operEntity"; }; }; FilterUnit: BaseOper.OpFilter & { operator: MakeFilter; log: MakeFilter; operEntity$oper: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: Oper["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: Oper["SortNode"][]; Selection: OakSelection<"select", Oper["Projection"], Oper["Filter"], Oper["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; log?: OakOperation<"create", Log["CreateOperationData"]> | OakOperation; operEntity$oper?: OakOperation<"create", Omit | Omit[]>[]; }>; CreateSingle: OakOperation<"create", Oper["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Oper["CreateSingle"] | Oper["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>; log?: OakOperation<"create", Log["CreateOperationData"]> | OakOperation | OakOperation<"remove", Log["RemoveOperationData"], Log["Filter"]>; operEntity$oper?: OakOperation<"create", Omit | Omit[]>[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Oper["RemoveOperationData"], Oper["Filter"], Oper["Sorter"]>; Operation: Oper["Create"] | Oper["Update"] | Oper["Remove"]; }; export type OperEntity = { OpSchema: BaseOperEntity.OpSchema; Action: BaseOperEntity.OpAction; Schema: BaseOperEntity.OpSchema & { oper: Oper["Schema"]; }; Projection: BaseOperEntity.OpProjection & { oper?: Oper["Projection"]; }; FilterUnit: BaseOperEntity.OpFilter & { oper: MakeFilter; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: OperEntity["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: OperEntity["SortNode"][]; Selection: OakSelection<"select", OperEntity["Projection"], OperEntity["Filter"], OperEntity["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; }>; CreateSingle: OakOperation<"create", OperEntity["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: OperEntity["CreateSingle"] | OperEntity["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Oper["RemoveOperationData"], Oper["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", OperEntity["RemoveOperationData"], OperEntity["Filter"], OperEntity["Sorter"]>; Operation: OperEntity["Create"] | OperEntity["Update"] | OperEntity["Remove"]; }; export type Path = { OpSchema: BasePath.OpSchema; Action: BasePath.OpAction; Schema: BasePath.OpSchema & { actionAuth$path?: Array>; relationAuth$path?: Array>; actionAuth$path$$aggr?: AggregationResult>; relationAuth$path$$aggr?: AggregationResult>; }; Projection: BasePath.OpProjection & { actionAuth$path?: OakSelection<"select", Omit, Omit, ActionAuth["Sorter"]> & { $entity: "actionAuth"; }; actionAuth$path$$aggr?: DeduceAggregation, Omit, ActionAuth["Sorter"]> & { $entity: "actionAuth"; }; relationAuth$path?: OakSelection<"select", Omit, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; relationAuth$path$$aggr?: DeduceAggregation, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; }; FilterUnit: BasePath.OpFilter & { actionAuth$path: MakeFilter> & SubQueryPredicateMetadata; relationAuth$path: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: Path["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: Path["SortNode"][]; Selection: OakSelection<"select", Path["Projection"], Path["Filter"], Path["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", Path["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Path["CreateSingle"] | Path["CreateMulti"]; UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"], Path["Sorter"]>; Operation: Path["Create"] | Path["Update"] | Path["Remove"]; }; export type Relation = { OpSchema: BaseRelation.OpSchema; Action: BaseRelation.OpAction; Schema: BaseRelation.OpSchema & { actionAuth$relation?: Array>; relationAuth$sourceRelation?: Array>; relationAuth$destRelation?: Array>; userEntityClaim$relation?: Array>; userRelation$relation?: Array>; actionAuth$relation$$aggr?: AggregationResult>; relationAuth$sourceRelation$$aggr?: AggregationResult>; relationAuth$destRelation$$aggr?: AggregationResult>; userEntityClaim$relation$$aggr?: AggregationResult>; userRelation$relation$$aggr?: AggregationResult>; }; Projection: BaseRelation.OpProjection & { actionAuth$relation?: OakSelection<"select", Omit, Omit, ActionAuth["Sorter"]> & { $entity: "actionAuth"; }; actionAuth$relation$$aggr?: DeduceAggregation, Omit, ActionAuth["Sorter"]> & { $entity: "actionAuth"; }; relationAuth$sourceRelation?: OakSelection<"select", Omit, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; relationAuth$sourceRelation$$aggr?: DeduceAggregation, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; relationAuth$destRelation?: OakSelection<"select", Omit, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; relationAuth$destRelation$$aggr?: DeduceAggregation, Omit, RelationAuth["Sorter"]> & { $entity: "relationAuth"; }; userEntityClaim$relation?: OakSelection<"select", Omit, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userEntityClaim$relation$$aggr?: DeduceAggregation, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userRelation$relation?: OakSelection<"select", Omit, Omit, UserRelation["Sorter"]> & { $entity: "userRelation"; }; userRelation$relation$$aggr?: DeduceAggregation, Omit, UserRelation["Sorter"]> & { $entity: "userRelation"; }; }; FilterUnit: BaseRelation.OpFilter & { actionAuth$relation: MakeFilter> & SubQueryPredicateMetadata; relationAuth$sourceRelation: MakeFilter> & SubQueryPredicateMetadata; relationAuth$destRelation: MakeFilter> & SubQueryPredicateMetadata; userEntityClaim$relation: MakeFilter> & SubQueryPredicateMetadata; userRelation$relation: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: Relation["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: Relation["SortNode"][]; Selection: OakSelection<"select", Relation["Projection"], Relation["Filter"], Relation["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", Relation["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Relation["CreateSingle"] | Relation["CreateMulti"]; UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"], Relation["Sorter"]>; Operation: Relation["Create"] | Relation["Update"] | Relation["Remove"]; }; export type RelationAuth = { OpSchema: BaseRelationAuth.OpSchema; Action: BaseRelationAuth.OpAction; Schema: BaseRelationAuth.OpSchema & { sourceRelation: Relation["Schema"]; path: Path["Schema"]; destRelation: Relation["Schema"]; }; Projection: BaseRelationAuth.OpProjection & { sourceRelation?: Relation["Projection"]; path?: Path["Projection"]; destRelation?: Relation["Projection"]; }; FilterUnit: BaseRelationAuth.OpFilter & { sourceRelation: MakeFilter; path: MakeFilter; destRelation: MakeFilter; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: RelationAuth["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: RelationAuth["SortNode"][]; Selection: OakSelection<"select", RelationAuth["Projection"], RelationAuth["Filter"], RelationAuth["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", RelationAuth["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: RelationAuth["CreateSingle"] | RelationAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"], RelationAuth["Sorter"]>; Operation: RelationAuth["Create"] | RelationAuth["Update"] | RelationAuth["Remove"]; }; export type User = { OpSchema: BaseUser.OpSchema; Action: BaseUser.OpAction; Schema: BaseUser.OpSchema & { ref?: User["Schema"]; oper$operator?: Array>; user$ref?: Array>; userEntityClaim$user?: Array>; userRelation$user?: Array>; oper$operator$$aggr?: AggregationResult>; user$ref$$aggr?: AggregationResult>; userEntityClaim$user$$aggr?: AggregationResult>; userRelation$user$$aggr?: AggregationResult>; }; Projection: BaseUser.OpProjection & { ref?: User["Projection"]; oper$operator?: OakSelection<"select", Omit, Omit, Oper["Sorter"]> & { $entity: "oper"; }; oper$operator$$aggr?: DeduceAggregation, Omit, Oper["Sorter"]> & { $entity: "oper"; }; user$ref?: OakSelection<"select", Omit, Omit, User["Sorter"]> & { $entity: "user"; }; user$ref$$aggr?: DeduceAggregation, Omit, User["Sorter"]> & { $entity: "user"; }; userEntityClaim$user?: OakSelection<"select", Omit, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userEntityClaim$user$$aggr?: DeduceAggregation, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userRelation$user?: OakSelection<"select", Omit, Omit, UserRelation["Sorter"]> & { $entity: "userRelation"; }; userRelation$user$$aggr?: DeduceAggregation, Omit, UserRelation["Sorter"]> & { $entity: "userRelation"; }; }; FilterUnit: BaseUser.OpFilter & { ref: MakeFilter; oper$operator: MakeFilter> & SubQueryPredicateMetadata; user$ref: MakeFilter> & SubQueryPredicateMetadata; userEntityClaim$user: MakeFilter> & SubQueryPredicateMetadata; userRelation$user: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: User["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: User["SortNode"][]; Selection: OakSelection<"select", User["Projection"], User["Filter"], User["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; oper$operator?: (OakOperation<"create", Omit | Omit[]> | OakOperation, Oper["Filter"]>)[]; user$ref?: (OakOperation<"create", Omit | Omit[]> | OakOperation, User["Filter"]>)[]; userEntityClaim$user?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; userRelation$user?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", User["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: User["CreateSingle"] | User["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>; oper$operator?: (OakOperation<"create", Omit | Omit[]> | OakOperation, Oper["Filter"]> | OakOperation<"remove", Oper["RemoveOperationData"], Oper["Filter"]>)[]; user$ref?: (OakOperation<"create", Omit | Omit[]> | OakOperation, User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>)[]; userEntityClaim$user?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; userRelation$user?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", User["RemoveOperationData"], User["Filter"], User["Sorter"]>; Operation: User["Create"] | User["Update"] | User["Remove"]; }; export type UserEntityClaim = { OpSchema: BaseUserEntityClaim.OpSchema; Action: BaseUserEntityClaim.OpAction; Schema: BaseUserEntityClaim.OpSchema & { ueg: UserEntityGrant["Schema"]; user: User["Schema"]; relation: Relation["Schema"]; userRelation: UserRelation["Schema"]; }; Projection: BaseUserEntityClaim.OpProjection & { ueg?: UserEntityGrant["Projection"]; user?: User["Projection"]; relation?: Relation["Projection"]; userRelation?: UserRelation["Projection"]; }; FilterUnit: BaseUserEntityClaim.OpFilter & { ueg: MakeFilter; user: MakeFilter; relation: MakeFilter; userRelation: MakeFilter; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: UserEntityClaim["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: UserEntityClaim["SortNode"][]; Selection: OakSelection<"select", UserEntityClaim["Projection"], UserEntityClaim["Filter"], UserEntityClaim["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation; relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation; userRelation?: OakOperation<"create", UserRelation["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", UserEntityClaim["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: UserEntityClaim["CreateSingle"] | UserEntityClaim["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", UserEntityGrant["RemoveOperationData"], UserEntityGrant["Filter"]>; user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>; relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; userRelation?: OakOperation<"create", UserRelation["CreateOperationData"]> | OakOperation | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"], UserEntityClaim["Sorter"]>; Operation: UserEntityClaim["Create"] | UserEntityClaim["Update"] | UserEntityClaim["Remove"]; }; export type UserEntityGrant = { OpSchema: BaseUserEntityGrant.OpSchema; Action: BaseUserEntityGrant.OpAction; Schema: BaseUserEntityGrant.OpSchema & { userEntityClaim$ueg?: Array>; userEntityClaim$ueg$$aggr?: AggregationResult>; }; Projection: BaseUserEntityGrant.OpProjection & { userEntityClaim$ueg?: OakSelection<"select", Omit, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userEntityClaim$ueg$$aggr?: DeduceAggregation, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; }; FilterUnit: BaseUserEntityGrant.OpFilter & { userEntityClaim$ueg: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: UserEntityGrant["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: UserEntityGrant["SortNode"][]; Selection: OakSelection<"select", UserEntityGrant["Projection"], UserEntityGrant["Filter"], UserEntityGrant["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", UserEntityGrant["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: UserEntityGrant["CreateSingle"] | UserEntityGrant["CreateMulti"]; UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", UserEntityGrant["RemoveOperationData"], UserEntityGrant["Filter"], UserEntityGrant["Sorter"]>; Operation: UserEntityGrant["Create"] | UserEntityGrant["Update"] | UserEntityGrant["Remove"]; }; export type UserRelation = { OpSchema: BaseUserRelation.OpSchema; Action: BaseUserRelation.OpAction; Schema: BaseUserRelation.OpSchema & { user: User["Schema"]; relation: Relation["Schema"]; userEntityClaim$userRelation?: Array>; userEntityClaim$userRelation$$aggr?: AggregationResult>; }; Projection: BaseUserRelation.OpProjection & { user?: User["Projection"]; relation?: Relation["Projection"]; userEntityClaim$userRelation?: OakSelection<"select", Omit, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; userEntityClaim$userRelation$$aggr?: DeduceAggregation, Omit, UserEntityClaim["Sorter"]> & { $entity: "userEntityClaim"; }; }; FilterUnit: BaseUserRelation.OpFilter & { user: MakeFilter; relation: MakeFilter; userEntityClaim$userRelation: MakeFilter> & SubQueryPredicateMetadata; }; Filter: MakeFilter; SortAttr: Partial; SortNode: { $attr: UserRelation["SortAttr"]; $direction?: "asc" | "desc"; }; Sorter: UserRelation["SortNode"][]; Selection: OakSelection<"select", UserRelation["Projection"], UserRelation["Filter"], UserRelation["Sorter"]>; Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation; userEntityClaim$userRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; }>; CreateSingle: OakOperation<"create", UserRelation["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: UserRelation["CreateSingle"] | UserRelation["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>; relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; userEntityClaim$userRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"], UserRelation["Sorter"]>; Operation: UserRelation["Create"] | UserRelation["Update"] | UserRelation["Remove"]; }; export type EntityDict = { actionAuth: ActionAuth; i18n: I18n; log: Log; modi: Modi; modiEntity: ModiEntity; oper: Oper; operEntity: OperEntity; path: Path; relation: Relation; relationAuth: RelationAuth; user: User; userEntityClaim: UserEntityClaim; userEntityGrant: UserEntityGrant; userRelation: UserRelation; };