sfdx-hardis
Version:
Swiss-army-knife Toolbox for Salesforce. Allows you to define a complete CD/CD Pipeline. Orchestrate base commands and assist users with interactive wizards
62 lines (61 loc) • 2.69 kB
TypeScript
import { SfCommand } from "@salesforce/sf-plugins-core";
import { Connection } from "@salesforce/core";
import { AnyJson } from "@salesforce/ts-types";
declare const IMPLEMENTATION_OUTCOME: {
readonly ADDED: "added";
readonly SKIPPED: "skipped";
readonly IGNORED: "ignored";
readonly FAILED: "failed";
};
type ImplementationOutcome = typeof IMPLEMENTATION_OUTCOME[keyof typeof IMPLEMENTATION_OUTCOME];
type BypassImplementationReportItem = {
sObject?: string | null;
name?: string | null;
automation?: "ValidationRule" | "Trigger" | "Flow";
outcome: ImplementationOutcome;
comment?: string;
};
export default class HardisProjectGenerateBypass extends SfCommand<any> {
private skipCredits;
private retrieveFromOrg;
private outputFile;
private reports;
static flags: any;
static description: string;
static examples: string[];
run(): Promise<AnyJson>;
generateReports(): Promise<void>;
queryTriggers(connection: Connection): Promise<any>;
filterTriggerResults(triggerResults: any, sObjects: any): any;
queryValidationRules(connection: Connection, sObjects: {
[key: string]: string;
}): Promise<any>;
queryFlows(connection: Connection): Promise<any>;
filterFlowResults(flowResults: any, sObjects: any): any;
generateXML(type: "customPermission" | "permissionSet", sObject: string, automation: string): string;
private generateXMLFiles;
generateFiles(targetSObjects: {
[key: string]: string;
}, targetAutomations: string[]): void;
retrieveMetadataFiles(records: any[], metadataType: "ValidationRule" | "ApexTrigger" | "Flow"): Promise<any[]>;
chunkArray<T>(array: T[], chunkSize?: number): T[][];
handleValidationRuleFile(filePath: string, sObject: string, name: string): Promise<BypassImplementationReportItem>;
applyBypassToValidationRules(connection: Connection, sObjects: {
[key: string]: string;
}): Promise<void>;
handleTriggerFile(filePath: string, name: string): Promise<BypassImplementationReportItem>;
applyBypassToTriggers(connection: Connection, sObjects: {
[key: string]: string;
}): Promise<void>;
handleFlowFile(filePath: string, name: string): Promise<BypassImplementationReportItem>;
applyBypassToFlows(connection: Connection, sObjects: {
[key: string]: string;
}): Promise<void>;
}
export {};
/**
* Command TODO:
* - Add option to determine sobjects directly from current project instead of calling API
* - While generating, check if the metadata file already exists, if yes, warning
* - Before implementing, check if the permission set file exists, if not, warning
*/