UNPKG

powerplatform-review-tool

Version:

Evaluate Power Platform solution zip files based on best practice patterns

149 lines 3.8 kB
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