@servicestack/ui
Version:
TypeScript Definitions for ServiceStack built-in UI's
1,665 lines (1,663 loc) • 59.6 kB
TypeScript
import { ApiResult } from './client';
export interface IReturn<T> {
createResponse(): T;
}
export interface IReturnVoid {
createResponse(): void;
}
export interface IHasSessionId {
sessionId: string;
}
export interface IHasBearerToken {
bearerToken: string;
}
export interface IGet {
}
export interface IPost {
}
export interface IPut {
}
export interface IDelete {
}
export declare class ValidateRule {
validator: string;
condition: string;
errorCode: string;
message: string;
constructor(init?: Partial<ValidateRule>);
}
export declare class ValidationRule extends ValidateRule {
id: number;
type: string;
field: string;
createdBy: string;
createdDate?: string;
modifiedBy: string;
modifiedDate?: string;
suspendedBy: string;
suspendedDate?: string;
notes: string;
constructor(init?: Partial<ValidationRule>);
}
export declare class AdminUserBase {
userName: string;
firstName: string;
lastName: string;
displayName: string;
email: string;
password: string;
profileUrl: string;
userAuthProperties: {
[index: string]: string;
};
meta: {
[index: string]: string;
};
constructor(init?: Partial<AdminUserBase>);
}
export declare class QueryBase {
skip?: number;
take?: number;
orderBy: string;
orderByDesc: string;
include: string;
fields: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<QueryBase>);
}
export declare class QueryDb<T> extends QueryBase {
constructor(init?: Partial<QueryDb<T>>);
}
export declare class CrudEvent {
id: number;
eventType: string;
model: string;
modelId: string;
eventDate: string;
rowsUpdated?: number;
requestType: string;
requestBody: string;
userAuthId: string;
userAuthName: string;
remoteIp: string;
urn: string;
refId?: number;
refIdStr: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<CrudEvent>);
}
export declare class RedisEndpointInfo {
host: string;
port: number;
ssl?: boolean;
db: number;
username: string;
password: string;
constructor(init?: Partial<RedisEndpointInfo>);
}
export declare class AppInfo {
baseUrl: string;
serviceStackVersion: string;
serviceName: string;
serviceDescription: string;
serviceIconUrl: string;
brandUrl: string;
brandImageUrl: string;
textColor: string;
linkColor: string;
backgroundColor: string;
backgroundImageUrl: string;
iconUrl: string;
jsTextCase: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<AppInfo>);
}
export declare class ImageInfo {
svg: string;
uri: string;
alt: string;
cls: string;
constructor(init?: Partial<ImageInfo>);
}
export declare class LinkInfo {
id: string;
href: string;
label: string;
icon: ImageInfo;
show: string;
hide: string;
constructor(init?: Partial<LinkInfo>);
}
export declare class ThemeInfo {
form: string;
modelIcon: ImageInfo;
constructor(init?: Partial<ThemeInfo>);
}
export declare class ApiCss {
form: string;
fieldset: string;
field: string;
constructor(init?: Partial<ApiCss>);
}
export declare class AppTags {
default: string;
other: string;
constructor(init?: Partial<AppTags>);
}
export declare class LocodeUi {
css: ApiCss;
tags: AppTags;
maxFieldLength: number;
maxNestedFields: number;
maxNestedFieldLength: number;
constructor(init?: Partial<LocodeUi>);
}
export declare class ExplorerUi {
css: ApiCss;
tags: AppTags;
constructor(init?: Partial<ExplorerUi>);
}
export declare class AdminUi {
css: ApiCss;
constructor(init?: Partial<AdminUi>);
}
export declare class FormatInfo {
method: string;
options: string;
locale: string;
constructor(init?: Partial<FormatInfo>);
}
export declare class ApiFormat {
locale: string;
assumeUtc: boolean;
number: FormatInfo;
date: FormatInfo;
constructor(init?: Partial<ApiFormat>);
}
export declare class UiInfo {
brandIcon: ImageInfo;
hideTags: string[];
modules: string[];
alwaysHideTags: string[];
adminLinks: LinkInfo[];
theme: ThemeInfo;
locode: LocodeUi;
explorer: ExplorerUi;
admin: AdminUi;
defaultFormats: ApiFormat;
meta: {
[index: string]: string;
};
constructor(init?: Partial<UiInfo>);
}
export declare class ConfigInfo {
debugMode?: boolean;
meta: {
[index: string]: string;
};
constructor(init?: Partial<ConfigInfo>);
}
export declare class NavItem {
label: string;
href: string;
exact?: boolean;
id: string;
className: string;
iconClass: string;
iconSrc: string;
show: string;
hide: string;
children: NavItem[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<NavItem>);
}
export declare class FieldCss {
field: string;
input: string;
label: string;
constructor(init?: Partial<FieldCss>);
}
export declare class InputInfo {
id: string;
name: string;
type: string;
value: string;
placeholder: string;
help: string;
label: string;
title: string;
size: string;
pattern: string;
readOnly?: boolean;
required?: boolean;
disabled?: boolean;
autocomplete: string;
autofocus: string;
min: string;
max: string;
step?: number;
minLength?: number;
maxLength?: number;
accept: string;
capture: string;
multiple?: boolean;
allowableValues: string[];
allowableEntries: KeyValuePair<String, String>[];
options: string;
ignore?: boolean;
css: FieldCss;
meta: {
[index: string]: string;
};
constructor(init?: Partial<InputInfo>);
}
export declare class MetaAuthProvider {
name: string;
label: string;
type: string;
navItem: NavItem;
icon: ImageInfo;
formLayout: InputInfo[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<MetaAuthProvider>);
}
export declare class AuthInfo {
hasAuthSecret?: boolean;
hasAuthRepository?: boolean;
includesRoles?: boolean;
includesOAuthTokens?: boolean;
htmlRedirect: string;
authProviders: MetaAuthProvider[];
roleLinks: {
[index: string]: LinkInfo[];
};
serviceRoutes: {
[index: string]: string[];
};
meta: {
[index: string]: string;
};
constructor(init?: Partial<AuthInfo>);
}
export declare class AutoQueryConvention {
name: string;
value: string;
types: string;
valueType: string;
constructor(init?: Partial<AutoQueryConvention>);
}
export declare class AutoQueryInfo {
maxLimit?: number;
untypedQueries?: boolean;
rawSqlFilters?: boolean;
autoQueryViewer?: boolean;
async?: boolean;
orderByPrimaryKey?: boolean;
crudEvents?: boolean;
crudEventsServices?: boolean;
accessRole: string;
namedConnection: string;
viewerConventions: AutoQueryConvention[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<AutoQueryInfo>);
}
export declare class ScriptMethodType {
name: string;
paramNames: string[];
paramTypes: string[];
returnType: string;
constructor(init?: Partial<ScriptMethodType>);
}
export declare class ValidationInfo {
hasValidationSource?: boolean;
hasValidationSourceAdmin?: boolean;
serviceRoutes: {
[index: string]: string[];
};
typeValidators: ScriptMethodType[];
propertyValidators: ScriptMethodType[];
accessRole: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<ValidationInfo>);
}
export declare class SharpPagesInfo {
apiPath: string;
scriptAdminRole: string;
metadataDebugAdminRole: string;
metadataDebug?: boolean;
spaFallback?: boolean;
meta: {
[index: string]: string;
};
constructor(init?: Partial<SharpPagesInfo>);
}
export declare class RequestLogsInfo {
accessRole: string;
requiredRoles: string[];
requestLogger: string;
defaultLimit: number;
serviceRoutes: {
[index: string]: string[];
};
meta: {
[index: string]: string;
};
constructor(init?: Partial<RequestLogsInfo>);
}
export declare class ProfilingInfo {
accessRole: string;
defaultLimit: number;
summaryFields: string[];
tagLabel: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<ProfilingInfo>);
}
export declare class FilesUploadLocation {
name: string;
readAccessRole: string;
writeAccessRole: string;
allowExtensions: string[];
allowOperations: string;
maxFileCount?: number;
minFileBytes?: number;
maxFileBytes?: number;
constructor(init?: Partial<FilesUploadLocation>);
}
export declare class FilesUploadInfo {
basePath: string;
locations: FilesUploadLocation[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<FilesUploadInfo>);
}
export declare class MetadataTypeName {
name: string;
namespace: string;
genericArgs: string[];
constructor(init?: Partial<MetadataTypeName>);
}
export declare class MetadataDataContract {
name: string;
namespace: string;
constructor(init?: Partial<MetadataDataContract>);
}
export declare class MetadataDataMember {
name: string;
order?: number;
isRequired?: boolean;
emitDefaultValue?: boolean;
constructor(init?: Partial<MetadataDataMember>);
}
export declare class MetadataAttribute {
name: string;
constructorArgs: MetadataPropertyType[];
args: MetadataPropertyType[];
constructor(init?: Partial<MetadataAttribute>);
}
export declare class RefInfo {
model: string;
selfId: string;
refId: string;
refLabel: string;
constructor(init?: Partial<RefInfo>);
}
export declare class MetadataPropertyType {
name: string;
type: string;
namespace: string;
isValueType?: boolean;
isEnum?: boolean;
isPrimaryKey?: boolean;
genericArgs: string[];
value: string;
description: string;
dataMember: MetadataDataMember;
readOnly?: boolean;
paramType: string;
displayType: string;
isRequired?: boolean;
allowableValues: string[];
allowableMin?: number;
allowableMax?: number;
attributes: MetadataAttribute[];
input: InputInfo;
format: FormatInfo;
ref: RefInfo;
constructor(init?: Partial<MetadataPropertyType>);
}
export declare class MetadataType {
name: string;
namespace: string;
genericArgs: string[];
inherits: MetadataTypeName;
implements: MetadataTypeName[];
displayType: string;
description: string;
notes: string;
icon: ImageInfo;
isNested?: boolean;
isEnum?: boolean;
isEnumInt?: boolean;
isInterface?: boolean;
isAbstract?: boolean;
dataContract: MetadataDataContract;
properties: MetadataPropertyType[];
attributes: MetadataAttribute[];
innerTypes: MetadataTypeName[];
enumNames: string[];
enumValues: string[];
enumMemberValues: string[];
enumDescriptions: string[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<MetadataType>);
}
export declare class MediaRule {
size: string;
rule: string;
applyTo: string[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<MediaRule>);
}
export declare class AdminUsersInfo {
accessRole: string;
enabled: string[];
userAuth: MetadataType;
allRoles: string[];
allPermissions: string[];
queryUserAuthProperties: string[];
queryMediaRules: MediaRule[];
formLayout: InputInfo[];
css: ApiCss;
meta: {
[index: string]: string;
};
constructor(init?: Partial<AdminUsersInfo>);
}
export declare class AdminRedisInfo {
queryLimit: number;
databases: number[];
modifiableConnection?: boolean;
endpoint: RedisEndpointInfo;
meta: {
[index: string]: string;
};
constructor(init?: Partial<AdminRedisInfo>);
}
export declare class SchemaInfo {
alias: string;
name: string;
tables: string[];
constructor(init?: Partial<SchemaInfo>);
}
export declare class DatabaseInfo {
alias: string;
name: string;
schemas: SchemaInfo[];
constructor(init?: Partial<DatabaseInfo>);
}
export declare class AdminDatabaseInfo {
queryLimit: number;
databases: DatabaseInfo[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<AdminDatabaseInfo>);
}
export declare class PluginInfo {
loaded: string[];
auth: AuthInfo;
autoQuery: AutoQueryInfo;
validation: ValidationInfo;
sharpPages: SharpPagesInfo;
requestLogs: RequestLogsInfo;
profiling: ProfilingInfo;
filesUpload: FilesUploadInfo;
adminUsers: AdminUsersInfo;
adminRedis: AdminRedisInfo;
adminDatabase: AdminDatabaseInfo;
meta: {
[index: string]: string;
};
constructor(init?: Partial<PluginInfo>);
}
export declare class CustomPluginInfo {
accessRole: string;
serviceRoutes: {
[index: string]: string[];
};
enabled: string[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<CustomPluginInfo>);
}
export declare class MetadataTypesConfig {
baseUrl: string;
usePath: string;
makePartial: boolean;
makeVirtual: boolean;
makeInternal: boolean;
baseClass: string;
package: string;
addReturnMarker: boolean;
addDescriptionAsComments: boolean;
addDataContractAttributes: boolean;
addIndexesToDataMembers: boolean;
addGeneratedCodeAttributes: boolean;
addImplicitVersion?: number;
addResponseStatus: boolean;
addServiceStackTypes: boolean;
addModelExtensions: boolean;
addPropertyAccessors: boolean;
excludeGenericBaseTypes: boolean;
settersReturnThis: boolean;
makePropertiesOptional: boolean;
exportAsTypes: boolean;
excludeImplementedInterfaces: boolean;
addDefaultXmlNamespace: string;
makeDataContractsExtensible: boolean;
initializeCollections: boolean;
addNamespaces: string[];
defaultNamespaces: string[];
defaultImports: string[];
includeTypes: string[];
excludeTypes: string[];
exportTags: string[];
treatTypesAsStrings: string[];
exportValueTypes: boolean;
globalNamespace: string;
excludeNamespace: boolean;
dataClass: string;
dataClassJson: string;
ignoreTypes: string[];
exportTypes: string[];
exportAttributes: string[];
ignoreTypesInNamespaces: string[];
constructor(init?: Partial<MetadataTypesConfig>);
}
export declare class MetadataRoute {
path: string;
verbs: string;
notes: string;
summary: string;
constructor(init?: Partial<MetadataRoute>);
}
export declare class ApiUiInfo {
locodeCss: ApiCss;
explorerCss: ApiCss;
formLayout: InputInfo[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<ApiUiInfo>);
}
export declare class MetadataOperationType {
request: MetadataType;
response: MetadataType;
actions: string[];
returnsVoid?: boolean;
method: string;
returnType: MetadataTypeName;
routes: MetadataRoute[];
dataModel: MetadataTypeName;
viewModel: MetadataTypeName;
requiresAuth?: boolean;
requiredRoles: string[];
requiresAnyRole: string[];
requiredPermissions: string[];
requiresAnyPermission: string[];
tags: string[];
ui: ApiUiInfo;
constructor(init?: Partial<MetadataOperationType>);
}
export declare class MetadataTypes {
config: MetadataTypesConfig;
namespaces: string[];
types: MetadataType[];
operations: MetadataOperationType[];
constructor(init?: Partial<MetadataTypes>);
}
export declare class ServerStats {
redis: {
[index: string]: number;
};
serverEvents: {
[index: string]: string;
};
mqDescription: string;
mqWorkers: {
[index: string]: number;
};
constructor(init?: Partial<ServerStats>);
}
export declare class ResponseError {
errorCode: string;
fieldName: string;
message: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<ResponseError>);
}
export declare class ResponseStatus {
errorCode: string;
message: string;
stackTrace: string;
errors: ResponseError[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<ResponseStatus>);
}
export declare class RequestLogEntry {
id: number;
traceId: string;
operationName: string;
dateTime: string;
statusCode: number;
statusDescription: string;
httpMethod: string;
absoluteUri: string;
pathInfo: string;
requestBody: string;
requestDto: Object;
userAuthId: string;
sessionId: string;
ipAddress: string;
forwardedFor: string;
referer: string;
headers: {
[index: string]: string;
};
formData: {
[index: string]: string;
};
items: {
[index: string]: string;
};
responseHeaders: {
[index: string]: string;
};
session: Object;
responseDto: Object;
errorResponse: Object;
exceptionSource: string;
exceptionData: any;
requestDuration: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<RequestLogEntry>);
}
export declare class DiagnosticEntry {
id: number;
traceId: string;
source: string;
eventType: string;
message: string;
operation: string;
threadId: number;
error: ResponseStatus;
commandType: string;
command: string;
userAuthId: string;
sessionId: string;
arg: string;
args: string[];
argLengths: number[];
namedArgs: {
[index: string]: Object;
};
duration?: string;
timestamp: number;
date: string;
tag: string;
stackTrace: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<DiagnosticEntry>);
}
export declare class RedisSearchResult {
id: string;
type: string;
ttl: number;
size: number;
constructor(init?: Partial<RedisSearchResult>);
}
export declare class RedisText {
text: string;
children: RedisText[];
constructor(init?: Partial<RedisText>);
}
export declare class KeyValuePair<TKey, TValue> {
key: TKey;
value: TValue;
constructor(init?: Partial<KeyValuePair<TKey, TValue>>);
}
export declare class AppMetadata {
app: AppInfo;
ui: UiInfo;
config: ConfigInfo;
contentTypeFormats: {
[index: string]: string;
};
httpHandlers: {
[index: string]: string;
};
plugins: PluginInfo;
customPlugins: {
[index: string]: CustomPluginInfo;
};
api: MetadataTypes;
meta: {
[index: string]: string;
};
constructor(init?: Partial<AppMetadata>);
}
export declare class AdminDashboardResponse {
serverStats: ServerStats;
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminDashboardResponse>);
}
export declare class GetValidationRulesResponse {
results: ValidationRule[];
responseStatus: ResponseStatus;
constructor(init?: Partial<GetValidationRulesResponse>);
}
export declare class AuthenticateResponse implements IHasSessionId, IHasBearerToken {
userId: string;
sessionId: string;
userName: string;
displayName: string;
referrerUrl: string;
bearerToken: string;
refreshToken: string;
profileUrl: string;
roles: string[];
permissions: string[];
responseStatus: ResponseStatus;
meta: {
[index: string]: string;
};
constructor(init?: Partial<AuthenticateResponse>);
}
export declare class AssignRolesResponse {
allRoles: string[];
allPermissions: string[];
meta: {
[index: string]: string;
};
responseStatus: ResponseStatus;
constructor(init?: Partial<AssignRolesResponse>);
}
export declare class UnAssignRolesResponse {
allRoles: string[];
allPermissions: string[];
meta: {
[index: string]: string;
};
responseStatus: ResponseStatus;
constructor(init?: Partial<UnAssignRolesResponse>);
}
export declare class AdminUserResponse {
id: string;
result: {
[index: string]: Object;
};
details: {
[index: string]: Object;
}[];
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminUserResponse>);
}
export declare class AdminUsersResponse {
results: {
[index: string]: Object;
}[];
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminUsersResponse>);
}
export declare class AdminDeleteUserResponse {
id: string;
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminDeleteUserResponse>);
}
export declare class QueryResponse<CrudEvent> {
offset: number;
total: number;
results: CrudEvent[];
meta: {
[index: string]: string;
};
responseStatus: ResponseStatus;
constructor(init?: Partial<QueryResponse<CrudEvent>>);
}
export declare class RequestLogsResponse {
results: RequestLogEntry[];
usage: {
[index: string]: string;
};
total: number;
responseStatus: ResponseStatus;
constructor(init?: Partial<RequestLogsResponse>);
}
export declare class AdminProfilingResponse {
results: DiagnosticEntry[];
total: number;
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminProfilingResponse>);
}
export declare class AdminRedisResponse {
db: number;
searchResults: RedisSearchResult[];
info: {
[index: string]: string;
};
endpoint: RedisEndpointInfo;
result: RedisText;
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminRedisResponse>);
}
export declare class AdminDatabaseResponse {
results: {
[index: string]: Object;
}[];
total?: number;
columns: MetadataPropertyType[];
responseStatus: ResponseStatus;
constructor(init?: Partial<AdminDatabaseResponse>);
}
export declare class MetadataApp implements IReturn<AppMetadata>, IGet {
view: string;
includeTypes: string[];
constructor(init?: Partial<MetadataApp>);
getTypeName(): string;
getMethod(): string;
createResponse(): AppMetadata;
}
export declare class AdminDashboard implements IReturn<AdminDashboardResponse> {
constructor(init?: Partial<AdminDashboard>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminDashboardResponse;
}
export declare class GetValidationRules implements IReturn<GetValidationRulesResponse> {
authSecret: string;
type: string;
constructor(init?: Partial<GetValidationRules>);
getTypeName(): string;
getMethod(): string;
createResponse(): GetValidationRulesResponse;
}
export declare class ModifyValidationRules implements IReturnVoid {
authSecret: string;
saveRules: ValidationRule[];
deleteRuleIds: number[];
suspendRuleIds: number[];
unsuspendRuleIds: number[];
clearCache?: boolean;
constructor(init?: Partial<ModifyValidationRules>);
getTypeName(): string;
getMethod(): string;
createResponse(): void;
}
/**
* Sign In
*/
export declare class Authenticate implements IReturn<AuthenticateResponse>, IPost {
/**
* AuthProvider, e.g. credentials
*/
provider: string;
state: string;
oauth_token: string;
oauth_verifier: string;
userName: string;
password: string;
rememberMe?: boolean;
errorView: string;
nonce: string;
uri: string;
response: string;
qop: string;
nc: string;
cnonce: string;
accessToken: string;
accessTokenSecret: string;
scope: string;
meta: {
[index: string]: string;
};
constructor(init?: Partial<Authenticate>);
getTypeName(): string;
getMethod(): string;
createResponse(): AuthenticateResponse;
}
export declare class AssignRoles implements IReturn<AssignRolesResponse>, IPost {
userName: string;
permissions: string[];
roles: string[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<AssignRoles>);
getTypeName(): string;
getMethod(): string;
createResponse(): AssignRolesResponse;
}
export declare class UnAssignRoles implements IReturn<UnAssignRolesResponse>, IPost {
userName: string;
permissions: string[];
roles: string[];
meta: {
[index: string]: string;
};
constructor(init?: Partial<UnAssignRoles>);
getTypeName(): string;
getMethod(): string;
createResponse(): UnAssignRolesResponse;
}
export declare class AdminGetUser implements IReturn<AdminUserResponse>, IGet {
id: string;
constructor(init?: Partial<AdminGetUser>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminUserResponse;
}
export declare class AdminQueryUsers implements IReturn<AdminUsersResponse>, IGet {
query: string;
orderBy: string;
skip?: number;
take?: number;
constructor(init?: Partial<AdminQueryUsers>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminUsersResponse;
}
export declare class AdminCreateUser extends AdminUserBase implements IReturn<AdminUserResponse>, IPost {
roles: string[];
permissions: string[];
constructor(init?: Partial<AdminCreateUser>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminUserResponse;
}
export declare class AdminUpdateUser extends AdminUserBase implements IReturn<AdminUserResponse>, IPut {
id: string;
lockUser?: boolean;
unlockUser?: boolean;
addRoles: string[];
removeRoles: string[];
addPermissions: string[];
removePermissions: string[];
constructor(init?: Partial<AdminUpdateUser>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminUserResponse;
}
export declare class AdminDeleteUser implements IReturn<AdminDeleteUserResponse>, IDelete {
id: string;
constructor(init?: Partial<AdminDeleteUser>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminDeleteUserResponse;
}
export declare class GetCrudEvents extends QueryDb<CrudEvent> implements IReturn<QueryResponse<CrudEvent>> {
authSecret: string;
model: string;
modelId: string;
constructor(init?: Partial<GetCrudEvents>);
getTypeName(): string;
getMethod(): string;
createResponse(): QueryResponse<CrudEvent>;
}
export declare class RequestLogs implements IReturn<RequestLogsResponse> {
beforeSecs?: number;
afterSecs?: number;
operationName: string;
ipAddress: string;
forwardedFor: string;
userAuthId: string;
sessionId: string;
referer: string;
pathInfo: string;
ids: number[];
beforeId?: number;
afterId?: number;
hasResponse?: boolean;
withErrors?: boolean;
enableSessionTracking?: boolean;
enableResponseTracking?: boolean;
enableErrorTracking?: boolean;
durationLongerThan?: string;
durationLessThan?: string;
skip: number;
take?: number;
orderBy: string;
constructor(init?: Partial<RequestLogs>);
getTypeName(): string;
getMethod(): string;
createResponse(): RequestLogsResponse;
}
export declare class AdminProfiling implements IReturn<AdminProfilingResponse> {
source: string;
eventType: string;
threadId?: number;
traceId: string;
userAuthId: string;
sessionId: string;
tag: string;
skip: number;
take?: number;
orderBy: string;
withErrors?: boolean;
pending?: boolean;
constructor(init?: Partial<AdminProfiling>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminProfilingResponse;
}
export declare class AdminRedis implements IReturn<AdminRedisResponse>, IPost {
db?: number;
query: string;
reconnect: RedisEndpointInfo;
take?: number;
position?: number;
args: string[];
constructor(init?: Partial<AdminRedis>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminRedisResponse;
}
export declare class AdminDatabase implements IReturn<AdminDatabaseResponse>, IGet {
db: string;
schema: string;
table: string;
fields: string[];
take?: number;
skip?: number;
orderBy: string;
include: string;
constructor(init?: Partial<AdminDatabase>);
getTypeName(): string;
getMethod(): string;
createResponse(): AdminDatabaseResponse;
}
/**
* Server Metadata containing App capabilities and APIs used to dynamically render the UI
*/
export declare let Server: AppMetadata;
/** Tailwind Responsive Breakpoints
* { 2xl:1536, xl:1280, lg:1024, md:768, sm:640 } */
export declare type Breakpoints = Record<'2xl' | 'xl' | 'lg' | 'md' | 'sm', boolean>;
/** Return self or reactive proxy of self */
export declare type Identity = <T>(args: T) => T;
/** Invoke a Tailwind Definition Rule */
export declare type Transition = (prop: string, enter: boolean) => boolean;
/** Publish/Subscribe to App Events */
export declare type Bus = {
subscribe: (type: string, callback: Function) => {
unsubscribe: () => void;
};
publish: (eventType: string, arg: any) => void;
};
/** High-level API encapsulating client PetiteVue App */
export declare type App = {
/** Publish/Subscript to App events */
events: Bus;
/** PetiteVue App instance */
readonly petite: any;
/** Register map of PetiteVue components using key as Components Name */
components: (components: Record<string, Function | Object>) => void;
/** Register single component
* @param {string} name
* @param {string|Function} component Auto Component template HTML or Component Function */
component: (name: string, component: string | Function) => void;
/** Register Auto Component with $template contents
* @param {string} name
* @param {string} $template */
template: (name: string, $template: string) => void;
/** Register map of Auto Components using key as Components Name */
templates: (templates: Record<string, string>) => void;
/** Register PetiteVue directive */
directive: (name: string, fn: Function) => void;
/** Register (non-reactive) global App state property */
prop: (name: string, val: any) => void;
/** Register multiple (non-reactive) global App state props */
props: (props: Record<string, any>) => void;
/** Build PetiteVue App instance */
build: (args: Record<string, any>) => any;
/** Dynamically load external script src */
import: (arg0: string) => Promise<any>;
/** Register callback to invoke after App has started */
onStart: (f: Function) => void;
/** Start App instance */
start: () => void;
/** App function for unsubscribing 'sub' subscription in Component instance */
unsubscribe: () => void;
/** PetiteVue.createApp - create PetiteVue instance */
createApp: (args: any) => any;
/** PetiteVue.nextTick - register callback to be fired afterA next async loop */
nextTick: (f: Function) => void;
/** PetiteVue.reactive - create a reactive store */
reactive: Identity;
};
/** Utility class for managing Forms UI and behavior */
export declare type Forms = {
/** Server Metadata */
Server: AppMetadata;
/** Client Metadata APIs */
Meta: Meta;
getId: (type: MetadataType, row: any) => any;
getType: (typeRef: string | {
namespace: string;
name: string;
}) => MetadataType;
inputId: (input: {
id: string;
}) => string;
colClass: (fields: number) => string;
inputProp: (prop: MetadataPropertyType) => {
id: string;
type: string;
'data-type': string;
};
getPrimaryKey: (type: MetadataType) => MetadataPropertyType | null;
typeProperties: (type: MetadataType) => MetadataPropertyType[];
relativeTime: (val: string | number | Date, rtf?: Intl.RelativeTimeFormat) => string;
relativeTimeFromMs: (elapsedMs: number, rtf?: Intl.RelativeTimeFormat) => string;
relativeTimeFromDate: (d: Date, from?: Date) => string;
Lookup: {};
lookupLabel: (model: any, id: any, label: string) => any;
refInfo: (row: any, prop: MetadataPropertyType, props: MetadataPropertyType[]) => {
href: {
op: string;
skip: any;
edit: any;
new: any;
$qs: {
[x: string]: any;
};
};
icon: any;
html: any;
};
fetchLookupValues: (results: any[], props: MetadataPropertyType[], refreshFn: () => void) => void;
theme: ThemeInfo;
formClass: string;
gridClass: string;
opTitle(op: MetadataOperationType): string;
forAutoForm(type: MetadataType): (field: any) => void;
forCreate(type: MetadataType): (field: any) => void;
forEdit(type: MetadataType): (field: any) => void;
getFormProp(id: any, type: any): MetadataPropertyType;
getGridInputs(formLayout: InputInfo[], f?: (args: {
id: string;
input: InputInfo;
rowClass: string;
}) => void): {
id: string;
input: InputInfo;
rowClass: string;
}[];
getGridInput(input: InputInfo, f?: (args: {
id: string;
input: InputInfo;
rowClass: string;
}) => void): {
id: string;
input: InputInfo;
rowClass: string;
};
getFieldError(error: any, id: any): string | null;
kvpValues(input: any): {
key: any;
value: any;
}[];
useLabel(input: any): string | null;
usePlaceholder(input: any): string | null;
isRequired(input: any): boolean;
resolveFormLayout(op: MetadataOperationType): InputInfo[];
formValues(form: any): Record<string, any>;
groupTypes(allTypes: any): any[];
complexProp(prop: any): boolean;
supportsProp(prop: any): boolean;
populateModel(model: any, formLayout: any): Record<string, any>;
apiValue(o: any): any;
format(o: any, prop: MetadataPropertyType): any;
};
/** Generic functionality around AppMetadata */
export declare type Meta = {
/** Global Cache */
CACHE: {};
/** HTTP Errors specially handled by Locode */
HttpErrors: Record<number, string>;
/** Server Metadata */
Server: AppMetadata;
/** Map of Request DTO names to `MetadataOperationType` */
OpsMap: Record<string, MetadataOperationType>;
/** Map of DTO names to `MetadataType` */
TypesMap: Record<string, MetadataType>;
/** Map of DTO namespace + names to `MetadataType` */
FullTypesMap: Record<string, MetadataType>;
/** Get list of Request DTOs */
operations: MetadataOperationType[];
/** Get list of unique API tags */
tags: string[];
/** Find `MetadataOperationType` by API name */
getOp: (opName: string) => MetadataOperationType;
/** Find `MetadataType` by DTO name */
getType: (typeRef: ({
namespace?: string;
name: string;
} | string)) => null | MetadataType;
/** Check whether a Type is an Enum */
isEnum: (type: string) => boolean;
/** Get Enum Values of an Enum Type */
enumValues: (type: string) => {
key: string;
value: string;
}[];
/** Get API Icon */
getIcon: (args: ({
op?: MetadataOperationType;
type?: MetadataType;
})) => {
svg: string;
};
/** Get Locode URL */
locodeUrl: (op: string) => string;
/** Get URL with initial queryString state */
urlWithState: (url: string) => string;
};
/** Reactive store to manage page navigation state and sync with history.pushState */
export declare type Routes = {
/** The arg name that's used to identify the page name */
page: string;
/** Populate Route state */
set: (args: Record<string, any>) => void;
/** Snapshot of the current route state */
state: Record<string, any>;
/** Navigate to new route state */
to: (args: Record<string, any>) => void;
/** Return URL of current route state */
href: (args: Record<string, any>) => string;
};
/** APIs for resolving SVG icons and data URIs for different File Types */
interface Files {
/** Get Icon SVG for .ext */
extSvg(ext: string): string | null;
/** Get Icon src for .ext */
extSrc(ext: string): string | null;
/** Return file extension (without '.; prefix) of path or URI */
getExt(path: string): string | null;
/** Encode SVG for embedding in Data URI */
encodeSvg(s: string): string;
/** Return whether path is a URI to a previewable image */
canPreview(path: string): boolean;
/** Return file name part of URI or file path */
getFileName(path: string): string | null;
/** Format bytes into human-readable file size */
formatBytes(bytes: number, d?: number): string;
/** Get the Icon src for a file path or URI, previewable resources will return self, otherwise returns SVG URI of .ext */
filePathUri(path: string): string | null;
/** Convert SVG to Data URI */
svgToDataUri(svg: string): string;
/** Return Image URI of INPUT file attachments */
fileImageUri(file: File | MediaSource): string;
/** Clear all remaining Image URIs of INPUT file attachments */
flush(): void;
}
export declare let Files: Files;
/** APIs to inspect .NET Types */
interface Types {
/** Return well-known C# alias for its .NET Type name */
alias(type: string): any;
/** Return underlying Type if nullable */
unwrap(type: string): string;
/** Resolve well-known C# Type Name from Type Ref */
typeName(metaType: {
name: string;
genericArgs: string[];
}): string;
/** Resolve well-known C# Type Name from Name and Generic Args */
typeName2(name: string, genericArgs: string[]): string;
/** Return true if .NET Type is numeric */
isNumber(type: string): boolean;
/** Return true if .NET Type is a string */
isString(type: string): boolean;
/** Return true if .NET Type is a collection */
isArray(type: string): boolean;
/** Return true if typeof is a scalar value (string|number|symbol|boolean) */
isPrimitive(type: string): boolean;
/** Return value suitable for human display */
formatValue(type: string, value: any): any;
/** Create a unique key string from a Type Ref */
key(typeRef: {
namespace: string;
name: string;
}): string | null;
/** Return true if both Type Refs are equivalent */
equals(a: {
namespace: string;
name: string;
}, b: {
namespace: string;
name: string;
}): boolean;
/** Return true if Property has named Attribute */
propHasAttr(p: MetadataPropertyType, attr: string): boolean;
/** Return named property on Type (case-insensitive) */
getProp(type: MetadataType, name: string): MetadataPropertyType;
/** Return all properties of a Type, inc. base class properties */
typeProperties(TypesMap: any, type: any): MetadataPropertyType[];
}
export declare let Types: Types;
/** Custom route params used in API Explorer */
export declare type ExplorerRoutes = {
op?: string;
tab?: string;
lang?: string;
provider?: string;
preview?: string;
body?: string;
doc?: string;
detailSrc?: string;
form?: string;
response?: string;
};
/** Route methods used in API Explorer */
export declare type ExplorerRoutesExtend = {
queryHref(): string;
};
/** App's primary reactive store maintaining global functionality for Admin UI */
export declare type ExplorerStore = {
cachedFetch: (url: string) => Promise<string>;
copied: boolean;
readonly opTabs: {
[p: string]: string;
};
sideNav: {
expanded: boolean;
operations: MetadataOperationType[];
tag: string;
}[];
auth: AuthenticateResponse;
readonly displayName: string | null;
loadLang: () => void;
langCache: () => {
op: string;
lang: string;
url: string;
};
login: (args: any, $on?: Function) => void;
detailSrcResult: {};
logout: () => void;
readonly isServiceStackType: boolean;
api: ApiResult<AuthenticateResponse>;
init: () => void;
readonly op: MetadataOperationType | null;
debug: boolean;
readonly filteredSideNav: {
tag: string;
operations: MetadataOperationType[];
expanded: boolean;
}[];
readonly authProfileUrl: string | null;
previewResult: string | null;
readonly activeLangSrc: string | null;
readonly previewCache: {
preview: string;
url: string;
lang: string;
} | null;
toggle: (tag: string) => void;
getTypeUrl: (types: string) => string;
readonly authRoles: string[];
filter: string;
loadDetailSrc: () => void;
baseUrl: string;
readonly activeDetailSrc: string;
readonly authLinks: LinkInfo[];
readonly opName: string;
readonly previewSrc: string;
SignIn: (opt: any) => Function;
hasRole: (role: string) => boolean;
loadPreview: () => void;
readonly authPermissions: string[];
readonly useLang: string;
invalidAccess: () => string | null;
};
/** Method arguments of custom Doc Components */
export interface DocComponentArgs {
store: ExplorerStore;
routes: ExplorerRoutes & Routes;
breakpoints: Breakpoints;
op: () => MetadataOperationType;
}
/** Method Signature of custom Doc Components */
export declare type DocComponent = (args: DocComponentArgs) => Record<string, any>;
/** Custom route params used in Locode */
export declare type LocodeRoutes = {
op?: string;
tab?: string;
provider?: string;
preview?: string;
body?: string;
doc?: string;
skip?: string;
new?: string;
edit?: string;
};
/** Route methods used in Locode */
export declare type LocodeRoutesExtend = {
onEditChange(any: any): void;
update(): void;
uiHref(any: any): string;
};
export declare type LocodeStore = {
cachedFetch: (url: string) => Promise<string>;
copied: boolean;
sideNav: {
expanded: boolean;
operations: MetadataOperationType[];
tag: string;
}[];
auth: AuthenticateResponse;
readonly displayName: string | null;
login: (args: any, $on?: Function) => void;
detailSrcResult: any;
logout: () => void;
readonly isServiceStackType: boolean;
readonly opViewModel: string;
api: ApiResult<AuthenticateResponse>;
modalLookup: any | null;
init: () => void;
readonly op: MetadataOperationType;
debug: boolean;
readonly filteredSideNav: {
tag: string;
operations: MetadataOperationType[];
expanded: boolean;
}[];
readonly authProfileUrl: string | null;
previewResult: string | null;
readonly opDesc: string;
toggle: (tag: string) => void;
readonly opDataModel: string;
readonly authRoles: string[];
filter: string;
baseUrl: string;
readonly authLinks: LinkInfo[];
readonly opName: string;
SignIn: (opt: any) => Function;
hasRole: (role: string) => boolean;
readonly authPermissions: string[];
readonly useLang: string;
invalidAccess: () => string | null;
};
/** Manage users query & filter preferences in the Users browsers localStorage */
export declare type LocodeSettings = {
op: (op: string) => any;
lookup: (op: string) => any;
saveOp: (op: string, fn: Function) => void;
hasPrefs: (op: string) => boolean;
saveOpProp: (op: string, name: string, fn: Function) => void;
saveLookup: (op: string, fn: Function) => void;
events: {
op: (op: string) => string;
lookup: (op: string) => string;
opProp: (op: string, name: string) => string;
};
opProp: (op: string, name: string) => any;
clearPrefs: (op: string) => void;
};
/** Create a new state for an API that encapsulates its invocation and execution */
export declare type ApiState = {
op: MetadataOperationType;
client: any;
apiState: ApiState;
formLayout: any;
createModel: (args: any) => any;
apiLoading: boolean;
apiResult: any;
readonly api: any;
createRequest: (args: any) => any;
model: any;
title: string | null;
readonly error: ResponseStatus;
readonly errorSummary: string | null;
fieldError(id: string): string | null;
field(propName: string, f?: (args: {
id: string;
input: InputInfo;
rowClass: string;
}) => void): any;
apiSend(dtoArgs: Record<string, any>, queryArgs?: Record<string, any>): any;
apiForm(formData: FormData, queryArgs?: Record<string, any>): any;
};
/** All CRUD API States available for this operation */
export declare type CrudApisState = {
opQuery: MetadataOperationType | null;
opCreate: MetadataOperationType | null;
opPatch: MetadataOperationType | null;
opUpdate: MetadataOperationType | null;
opDelete: MetadataOperationType | null;
apiQuery: ApiState | null;
apiCreate: ApiState | null;
apiPatch: ApiState | null;
apiUpdate: ApiState | null;
apiDelete: ApiState | null;
};
export declare type CrudApisStateProp = CrudApisState & {
prop: MetadataPropertyType;
opName: string;
dataModel: MetadataType;
viewModel: MetadataType;
viewModelColumns: MetadataPropertyType[];
callback: Function;
createPrefs: () => any;
selectedColumns: (prefs: any) => MetadataPropertyType[];
};
/** Method arguments of custom Create Form Components */
export interface CreateComponentArgs {
store: LocodeStore;
routes: LocodeRoutes & LocodeRoutesExtend & Routes;
settings: LocodeSettings;
state: () => CrudApisState;
save: () => void;
done: () => void;
}
/** Method Signature of custom Create Form Components */
export declare type CreateComponent = (args: CreateComponentArgs) => Record<string, any>;
/** Method arguments of custom Edit Form Components */
export interface EditComponentArgs {
store: LocodeStore;
routes: LocodeRoutes & LocodeRoutesExtend & Routes;
settings: LocodeSettings;
state: () => CrudApisState;
save: () => void;
done: () => void;
}
/** Method signature of custom Edit Form Components */
export declare type EditComponent = (args: EditComponentArgs) => Record<string, any>;
/** Route methods used in Admin UI */
export declare type AdminRoutes = {
tab?: string;
provider?: string;
q?: string;
page?: string;
sort?: string;
new?: string;
edit?: string;
};
/** App's primary reactive store maintaining global functionality for Admin UI */
export declare type AdminStore = {
adminLink(string: any): LinkInfo;
init(): void;
cachedFetch(string: any): Promise<unknown>;
debug: boolean;
copied: boolean;
auth: AuthenticateResponse | null;
readonly authProfileUrl: string | null;
readonly displayName: null;
readonly link: LinkInfo;
readonly isAdmin: boolean;
login(any: any): void;
readonly adminUsers: AdminUsersInfo;
readonly authRoles: string[];
filter: string;
baseUrl: string;
logout(): void;
readonly authLinks: LinkInfo[];
SignIn(): Function;
readonly adminLinks: LinkInfo[];
api: ApiResult<AuthenticateResponse> | null;
readonly authPermissions: any;
};
/**
* Alt solution to optional chaining by only executing fn accessor if object is not null
* @example
* let a = b()?.c // equivalent to:
* let a = map(b(), x => x.c)
* @template T,V
* @param {T} o
* @param {(T) => V} f
* @return {V|null}
*/
export function map<T, V>(o: T, f: (T: any) => V): V;
/** Set class on document.body if truthy otherwise set `no{class}`
* @param {{[key:string]:string|any}} obj */
export function setBodyClass(obj: {
[key: string]: any;
}): void;
/** Get CSS style property value
* @param {string} name */
export function styleProperty(name: string): string;
export function setStyleProperty(props: any): void;
/** Tailwind CSS classes for standard Input controls
* @param {boolean} [invalid=false]
* @param {string} [cls] */
export