powerplatform-review-tool
Version:
Evaluate Power Platform solution zip files based on best practice patterns
181 lines • 4.74 kB
TypeScript
import { PowerAppsPatternInfo } from "../ManifestConstant";
import { PatternResult } from "./pattern";
/** @public */
export interface SarifLog {
runs: SarifRun[];
}
/** @public */
export interface SarifRun {
tool: {
driver: {
name: string;
rules: SarifRule[];
};
};
results: SarifResult[];
}
/** @public */
export interface SarifRule {
id: string;
properties?: {
howToFix?: string;
whyFix?: string;
primaryCategory?: string;
[key: string]: unknown;
};
messageStrings?: {
issue?: {
text: string;
};
};
}
/** @public */
export interface SarifResult {
ruleId: string;
messageStrings?: {
issue?: {
text?: string;
};
};
locations?: {
physicalLocation?: {
address?: {
fullyQualifiedName?: string;
};
};
}[];
properties?: {
level?: string;
[key: string]: unknown;
};
}
export interface FailureInfo {
ScreenName: string;
ControlName: string;
PropertyName: string;
Code: string;
PatternName: PowerAppsPatternInfo;
FailureReason?: string;
ControlType?: string;
FailedPowerFxCode?: string;
}
export interface MsApp {
appSettings: AppSettings;
totalCodeComponents: number;
dataSources: DataSource[];
appCheckerIssues: AppCheckerIssue[];
assets: Asset[];
yaml: PowerAppsYAML;
totalCanvasComponents: number;
totalScreens: number;
}
export interface AppSettings {
Name: string;
AppPreviewFlagsMap: Record<string, boolean>;
AppDescription: string;
DocumentType: string;
}
export interface DataSource {
Name: string;
Type: string;
}
export interface DataSourcesJson {
DataSources: DataSource[];
}
export interface AppCheckerIssue {
RuleId: string;
HowToFix: string;
WhyFix: string;
Message: string;
Location: string;
Severity: string;
Category: string;
}
export interface Asset {
mediaName: string;
mediaSize: number;
exceedsThreshold: boolean;
}
/** @public */
export interface PowerAppsReviewResult {
items: PowerAppAnalysis[];
totalApps: number;
totalScore: string;
}
/** @public */
export interface PowerAppAnalysis {
name: string;
result: PatternResult[];
totalScreens: number;
totalCanvasComponents: number;
totalCodeComponents: number;
score: string;
}
export interface PowerAppsYAML {
App?: AppInstance;
Screens?: Record<string, ScreenInstance>;
ComponentDefinitions?: Record<string, ComponentDefinitionInstance>;
DataSources?: Record<string, DataSourceInstance>;
}
export interface AppInstance {
Properties?: PropertiesFormulaMap;
}
export interface ScreenInstance {
Properties?: PropertiesFormulaMap;
Children?: NamedControlInstance[];
Control?: ControlTypeId;
}
export interface ComponentDefinitionInstance {
Description?: string;
AccessAppScope?: boolean;
CustomProperties?: Record<string, ComponentCustomProperty>;
Properties?: PropertiesFormulaMap;
Children?: NamedControlInstance[];
}
export interface DataSourceInstance {
Type: "Table" | "Actions";
ConnectorId?: string;
Parameters?: {
[key: string]: string;
};
}
export interface ComponentCustomProperty {
PropertyKind: "Input" | "Output" | "InputFunction" | "OutputFunction" | "Event" | "Action";
Description?: string;
DataType?: string;
RaiseOnReset?: boolean;
Default?: string;
}
export interface PropertiesFormulaMap {
[propertyName: string]: string;
}
export type ControlTypeId = "Component" | "CodeComponent" | "AppInfo" | "HostControl" | "Screen" | "AppTest" | "TestCase" | "TestSuite" | "CommandComponent" | "DataComponent" | "FunctionComponent" | "GroupContainer" | string;
export interface ControlInstance {
Control: ControlTypeId;
Group?: string;
Properties?: PropertiesFormulaMap;
Children?: NamedControlInstance[];
ComponentName?: string;
ComponentLibraryUniqueName?: string;
}
export type NamedControlInstance = Record<string, ControlInstance>;
export interface PfxFunctionParameters {
[parameterName: string]: {
Description: string;
IsRequired: boolean;
DataType: string;
};
}
export interface PfxFunctionReturnType {
DataType?: "Text" | "Number" | "Boolean" | "DateAndTime" | "Screen" | "Record" | "Table" | "Image" | "VideoOrAudio" | "Color" | "Currency";
}
export interface PfxFormula {
[key: string]: string;
}
export interface EntityName {
name: string;
}
export interface EntityPropertyName {
propertyName: string;
}
//# sourceMappingURL=appInterface.d.ts.map