powerplatform-review-tool
Version:
Evaluate Power Platform solution zip files based on best practice patterns
149 lines • 3.8 kB
TypeScript
import JSZip from "jszip";
import { SarifLog } from "../interface/appInterface";
import { Agents } from "../interface/botInterface";
/** @public */
export interface ScreenDetails {
screenName: string;
screenYaml: string;
}
/** @public */
export interface CanvasApp {
appName: string;
appDescription: string;
screens: ScreenDetails[];
sarifLog?: SarifLog;
}
/** @public */
export interface SolutionOverview {
displayName: string;
uniqueName: string;
description: string;
version: string;
solutionType: string;
}
/** @public */
export interface WorkflowDetails {
name: string;
primaryEntity: string;
category: string;
json?: string;
}
/** @public */
export interface Role {
name: string;
}
/** @public */
export interface MissingDependency {
Required: {
Type: string;
SchemaName: string;
DisplayName: string;
Solution?: string;
};
Dependent: {
Type: string;
SchemaName: string;
DisplayName?: string;
};
}
/** @public */
export interface CodeComponentDetails {
displayName: string;
description: string;
type: string;
version: string;
}
/** @public */
export interface CustomApiDetails {
displayName: string;
description: string;
isPrivate: boolean;
isFunction: boolean;
}
/** @public */
export interface EnvironmentVariableDetails {
displayName: string;
description: string;
type: string;
}
/** @public */
export interface ConnectionReference {
LogicalName: string;
DisplayName: string;
ConnectorID: string;
}
/** @public */
export interface AIModel {
Name: string;
Model: string;
}
/** @public */
export interface Plugin {
Name: string;
}
/** @public */
export interface AppFlowTableMapping {
appName: string;
displayName: string;
flows: string[];
tables: string[];
}
/** @public */
export interface ExtractionResult {
mappings: AppFlowTableMapping[];
mermaidExpressions: string[];
}
/** @public */
export interface SolutionDetails {
solutionOverview: SolutionOverview;
canvasApps: CanvasApp[];
tables: TableDetails[];
agents: Agents[];
workflows: WorkflowDetails[];
codeComponents: CodeComponentDetails[];
customApis: CustomApiDetails[];
environmentVariables: EnvironmentVariableDetails[];
securityRoles: Role[];
plugins: Plugin[];
connectionReferences: ConnectionReference[];
aiModels: AIModel[];
missingDependencies: MissingDependency[];
mermaidSolutionOverviewExpression?: string;
mermaidERDiagramExpression?: string;
}
export declare function getAppDescription(appZip: JSZip): Promise<string>;
/** @public */
export declare function extractSolutionDetail(solutionZipFile?: File | Buffer | Uint8Array, solutionName?: string, webapi?: ComponentFramework.WebApi): Promise<SolutionDetails | undefined>;
/** @public */
export interface TableDetails {
DisplayName: string;
SchemaName: string;
Description: string;
Fields: Array<{
Name: string;
SchemaName: string;
DataType: string;
}>;
Relationships: {
OneToMany: Array<{
SchemaName: string;
ReferencingEntity: string;
ReferencingAttribute: string;
ReferencedEntity: string;
}>;
ManyToOne: Array<{
SchemaName: string;
ReferencedEntity: string;
ReferencingAttribute: string;
}>;
ManyToMany: Array<{
SchemaName: string;
Entity1LogicalName: string;
Entity2LogicalName: string;
}>;
};
}
export declare const generateTablesJSON: (zipContent: JSZip) => Promise<{
tables: TableDetails[];
}>;
//# sourceMappingURL=extractSolutionDetails.d.ts.map