sfdx-hardis 5.15.5 → 5.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/defaults/ci/.github/workflows/check-deploy.yml +1 -0
- package/defaults/ci/.gitlab-ci.yml +1 -0
- package/defaults/ci/Jenkinsfile +1 -0
- package/defaults/ci/azure-pipelines-checks.yml +1 -0
- package/defaults/ci/bitbucket-pipelines.yml +1 -0
- package/lib/commands/hardis/doc/extract/permsetgroups.js +2 -1
- package/lib/commands/hardis/doc/extract/permsetgroups.js.map +1 -1
- package/lib/commands/hardis/doc/flow2markdown.js +1 -1
- package/lib/commands/hardis/doc/flow2markdown.js.map +1 -1
- package/lib/commands/hardis/doc/project2markdown.d.ts +11 -0
- package/lib/commands/hardis/doc/project2markdown.js +176 -17
- package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
- package/lib/commands/hardis/lint/access.js +7 -6
- package/lib/commands/hardis/lint/access.js.map +1 -1
- package/lib/commands/hardis/package/mergexml.js +2 -1
- package/lib/commands/hardis/package/mergexml.js.map +1 -1
- package/lib/commands/hardis/project/audit/callincallout.js +2 -1
- package/lib/commands/hardis/project/audit/callincallout.js.map +1 -1
- package/lib/commands/hardis/project/audit/remotesites.js +2 -1
- package/lib/commands/hardis/project/audit/remotesites.js.map +1 -1
- package/lib/commands/hardis/project/clean/emptyitems.js +2 -1
- package/lib/commands/hardis/project/clean/emptyitems.js.map +1 -1
- package/lib/commands/hardis/project/clean/flowpositions.js +2 -1
- package/lib/commands/hardis/project/clean/flowpositions.js.map +1 -1
- package/lib/commands/hardis/project/clean/hiddenitems.js +2 -1
- package/lib/commands/hardis/project/clean/hiddenitems.js.map +1 -1
- package/lib/commands/hardis/project/clean/listviews.js +2 -1
- package/lib/commands/hardis/project/clean/listviews.js.map +1 -1
- package/lib/commands/hardis/project/clean/manageditems.js +3 -2
- package/lib/commands/hardis/project/clean/manageditems.js.map +1 -1
- package/lib/commands/hardis/project/clean/minimizeprofiles.js +2 -1
- package/lib/commands/hardis/project/clean/minimizeprofiles.js.map +1 -1
- package/lib/commands/hardis/project/clean/orgmissingitems.js +2 -0
- package/lib/commands/hardis/project/clean/orgmissingitems.js.map +1 -1
- package/lib/commands/hardis/project/clean/references.js +7 -4
- package/lib/commands/hardis/project/clean/references.js.map +1 -1
- package/lib/commands/hardis/project/clean/sensitive-metadatas.js +2 -1
- package/lib/commands/hardis/project/clean/sensitive-metadatas.js.map +1 -1
- package/lib/commands/hardis/project/clean/standarditems.js +3 -2
- package/lib/commands/hardis/project/clean/standarditems.js.map +1 -1
- package/lib/commands/hardis/project/clean/systemdebug.js +2 -1
- package/lib/commands/hardis/project/clean/systemdebug.js.map +1 -1
- package/lib/commands/hardis/project/clean/xml.js +2 -1
- package/lib/commands/hardis/project/clean/xml.js.map +1 -1
- package/lib/commands/hardis/project/fix/profiletabs.js +2 -1
- package/lib/commands/hardis/project/fix/profiletabs.js.map +1 -1
- package/lib/commands/hardis/project/fix/v53flexipages.js +2 -1
- package/lib/commands/hardis/project/fix/v53flexipages.js.map +1 -1
- package/lib/commands/hardis/project/metadata/findduplicates.js +2 -1
- package/lib/commands/hardis/project/metadata/findduplicates.js.map +1 -1
- package/lib/common/aiProvider/agentforceProvider.d.ts +10 -0
- package/lib/common/aiProvider/agentforceProvider.js +66 -0
- package/lib/common/aiProvider/agentforceProvider.js.map +1 -0
- package/lib/common/aiProvider/index.d.ts +1 -1
- package/lib/common/aiProvider/index.js +17 -1
- package/lib/common/aiProvider/index.js.map +1 -1
- package/lib/common/aiProvider/promptTemplates.d.ts +13 -5
- package/lib/common/aiProvider/promptTemplates.js +86 -44
- package/lib/common/aiProvider/promptTemplates.js.map +1 -1
- package/lib/common/aiProvider/utils.d.ts +12 -0
- package/lib/common/aiProvider/utils.js +60 -0
- package/lib/common/aiProvider/utils.js.map +1 -1
- package/lib/common/gitProvider/utilsMarkdown.d.ts +1 -0
- package/lib/common/gitProvider/utilsMarkdown.js +6 -0
- package/lib/common/gitProvider/utilsMarkdown.js.map +1 -1
- package/lib/common/metadata-utils/index.js +3 -2
- package/lib/common/metadata-utils/index.js.map +1 -1
- package/lib/common/utils/branchStrategyMermaidBuilder.d.ts +4 -0
- package/lib/common/utils/branchStrategyMermaidBuilder.js +84 -70
- package/lib/common/utils/branchStrategyMermaidBuilder.js.map +1 -1
- package/lib/common/utils/deployTipJson.js +1 -1
- package/lib/common/utils/deployTipJson.js.map +1 -1
- package/lib/common/utils/deployTips.js +1 -1
- package/lib/common/utils/deployTips.js.map +1 -1
- package/lib/common/utils/deployUtils.js +3 -2
- package/lib/common/utils/deployUtils.js.map +1 -1
- package/lib/common/utils/docUtils.d.ts +3 -0
- package/lib/common/utils/docUtils.js +77 -1
- package/lib/common/utils/docUtils.js.map +1 -1
- package/lib/common/utils/mermaidUtils.js +21 -46
- package/lib/common/utils/mermaidUtils.js.map +1 -1
- package/lib/common/utils/orgConfigUtils.js +2 -1
- package/lib/common/utils/orgConfigUtils.js.map +1 -1
- package/lib/common/utils/projectUtils.js +1 -1
- package/lib/common/utils/projectUtils.js.map +1 -1
- package/lib/common/utils/workaroundUtils.js +2 -1
- package/lib/common/utils/workaroundUtils.js.map +1 -1
- package/oclif.lock +103 -72
- package/oclif.manifest.json +49 -49
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@
|
|
|
4
4
|
|
|
5
5
|
Note: Can be used with `sfdx plugins:install sfdx-hardis@beta` and docker image `hardisgroupcom/sfdx-hardis@beta`
|
|
6
6
|
|
|
7
|
+
## [5.16.1] 2025-01-19
|
|
8
|
+
|
|
9
|
+
- AI Cache results enhancements
|
|
10
|
+
- Normalize strings before creating fingerprint to handle multiple platforms
|
|
11
|
+
- Delete unused cache files
|
|
12
|
+
- Fix variables mismatch when calling `generateFlowMarkdownFile`
|
|
13
|
+
|
|
14
|
+
## [5.16.0] 2025-01-19
|
|
15
|
+
|
|
16
|
+
- New AI Provider: Agentforce
|
|
17
|
+
- Create Objects AI-powered documentation
|
|
18
|
+
- Summary
|
|
19
|
+
- Relationships with other objects
|
|
20
|
+
- Fields
|
|
21
|
+
- Validation rules
|
|
22
|
+
- Related flows
|
|
23
|
+
- Handle prompts multilingualism (ex: `PROMPTS_LANGUAGE=fr`)
|
|
24
|
+
- Handle prompts cache to save tokens
|
|
25
|
+
- Add `SFDX_DISABLE_FLOW_DIFF: false` in default CI/CD pipelines (must be set to true during CI/CD setup)
|
|
26
|
+
- Enhance branches & orgs CI/CD strategy mermaid diagram
|
|
27
|
+
- Improve performances by using `GLOB_IGNORE_PATTERNS` for all calls to glob
|
|
28
|
+
|
|
7
29
|
## [5.15.5] 2025-01-16
|
|
8
30
|
|
|
9
31
|
- Flow Visual Diff enhancements
|
|
@@ -76,6 +76,7 @@ jobs:
|
|
|
76
76
|
JIRA_TICKET_REGEX: ${{ secrets.JIRA_TICKET_REGEX }}
|
|
77
77
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
78
78
|
FORCE_COLOR: "1"
|
|
79
|
+
SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD
|
|
79
80
|
run: |
|
|
80
81
|
echo "Simulate SFDX deployment using Hardis against \"$CONFIG_BRANCH\""
|
|
81
82
|
sf hardis:auth:login
|
|
@@ -81,6 +81,7 @@ check_deploy_to_target_branch_org:
|
|
|
81
81
|
variables:
|
|
82
82
|
CONFIG_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
|
83
83
|
ORG_ALIAS: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
|
84
|
+
SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD setup
|
|
84
85
|
script:
|
|
85
86
|
- '[ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ] && exit 0;' # Skip this job if it is launched from web UI and we are not in merge request context
|
|
86
87
|
- sf hardis:auth:login
|
package/defaults/ci/Jenkinsfile
CHANGED
|
@@ -94,6 +94,7 @@ jobs:
|
|
|
94
94
|
BUILD_REPOSITORYNAME: $(Build.Repository.Name)
|
|
95
95
|
BUILD_SOURCEBRANCHNAME: $(Build.SourceBranchName)
|
|
96
96
|
BUILD_BUILD_ID: $(Build.BuildId)
|
|
97
|
+
SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD setup
|
|
97
98
|
displayName: "Simulate deploy to org"
|
|
98
99
|
|
|
99
100
|
# Run MegaLinter to detect linting and security issues
|
|
@@ -32,6 +32,7 @@ pipelines:
|
|
|
32
32
|
- export ORG_ALIAS=$BRANCH_NAME
|
|
33
33
|
- export CONFIG_BRANCH=$BRANCH_NAME
|
|
34
34
|
- export FORCE_COLOR=1
|
|
35
|
+
- export SFDX_DISABLE_FLOW_DIFF=false # Set to true to disable Flow doc during CI/CD setup
|
|
35
36
|
- sf hardis:auth:login
|
|
36
37
|
- sf hardis:project:deploy:smart --check
|
|
37
38
|
|
|
@@ -10,6 +10,7 @@ import { uxLog } from '../../../../common/utils/index.js';
|
|
|
10
10
|
import { parseXmlFile } from '../../../../common/utils/xmlUtils.js';
|
|
11
11
|
import { getReportDirectory } from '../../../../config/index.js';
|
|
12
12
|
import { WebSocketClient } from '../../../../common/websocketClient.js';
|
|
13
|
+
import { GLOB_IGNORE_PATTERNS } from '../../../../common/utils/projectUtils.js';
|
|
13
14
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
14
15
|
const messages = Messages.loadMessages('sfdx-hardis', 'org');
|
|
15
16
|
export default class ExtractPermSetGroups extends SfCommand {
|
|
@@ -46,7 +47,7 @@ export default class ExtractPermSetGroups extends SfCommand {
|
|
|
46
47
|
/* jscpd:ignore-end */
|
|
47
48
|
const psgList = [];
|
|
48
49
|
const globPatternPSG = process.cwd() + `/**/*.permissionsetgroup-meta.xml`;
|
|
49
|
-
const psgFiles = await glob(globPatternPSG);
|
|
50
|
+
const psgFiles = await glob(globPatternPSG, { ignore: GLOB_IGNORE_PATTERNS });
|
|
50
51
|
uxLog(this, c.grey(`Found ${psgFiles.length} permission set groups`));
|
|
51
52
|
for (const psgFile of psgFiles) {
|
|
52
53
|
const psgName = (psgFile.replace(/\\/g, '/').split('/').pop() || '').replace('.permissionsetgroup-meta.xml', '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permsetgroups.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/doc/extract/permsetgroups.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"permsetgroups.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/doc/extract/permsetgroups.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ If [AI integration](${CONSTANTS.DOC_URL_ROOT}/salesforce-ai-setup/) is configure
|
|
|
68
68
|
}
|
|
69
69
|
uxLog(this, c.grey(`Generating markdown for Flow ${this.inputFile}...`));
|
|
70
70
|
const flowXml = (await fs.readFile(this.inputFile, "utf8")).toString();
|
|
71
|
-
const genRes = await generateFlowMarkdownFile(this.inputFile, flowXml, this.outputFile, { collapsedDetails: false, describeWithAi: true });
|
|
71
|
+
const genRes = await generateFlowMarkdownFile(path.basename(this.inputFile, ".flow-meta.xml"), flowXml, this.outputFile, { collapsedDetails: false, describeWithAi: true });
|
|
72
72
|
if (!genRes) {
|
|
73
73
|
throw new Error("Error generating markdown file");
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/flow2markdown.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"flow2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/flow2markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,22 @@ export default class Project2Markdown extends SfCommand<any> {
|
|
|
18
18
|
protected withHistory: boolean;
|
|
19
19
|
protected debugMode: boolean;
|
|
20
20
|
protected footer: string;
|
|
21
|
+
protected flowDescriptions: any[];
|
|
22
|
+
protected objectDescriptions: any[];
|
|
23
|
+
protected objectFiles: string[];
|
|
24
|
+
protected allObjectsNames: string[];
|
|
25
|
+
protected tempDir: string;
|
|
21
26
|
run(): Promise<AnyJson>;
|
|
22
27
|
private buildMkDocsYml;
|
|
28
|
+
private generateObjectsDocumentation;
|
|
29
|
+
private buildAttributesTables;
|
|
30
|
+
private generateLinksInfo;
|
|
23
31
|
private generateFlowsDocumentation;
|
|
24
32
|
private humanDisplay;
|
|
25
33
|
private buildFlowsTable;
|
|
34
|
+
private buildObjectsTable;
|
|
35
|
+
private buildCustomFieldsTable;
|
|
36
|
+
private buildValidationRulesTable;
|
|
26
37
|
private buildInstalledPackages;
|
|
27
38
|
private buildSfdxHardisParams;
|
|
28
39
|
private buildMajorBranchesAndOrgs;
|
|
@@ -3,20 +3,23 @@ import { SfCommand, Flags, optionalOrgFlagWithDeprecations } from '@salesforce/s
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import c from "chalk";
|
|
5
5
|
import * as path from "path";
|
|
6
|
+
import { XMLBuilder, XMLParser } from "fast-xml-parser";
|
|
6
7
|
import sortArray from 'sort-array';
|
|
7
8
|
import { Messages } from '@salesforce/core';
|
|
8
9
|
import { WebSocketClient } from '../../../common/websocketClient.js';
|
|
9
|
-
import { generatePackageXmlMarkdown, readMkDocsFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
|
|
10
|
+
import { completeAttributesDescriptionWithAi, generateObjectMarkdown, generatePackageXmlMarkdown, readMkDocsFile, replaceInFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
|
|
10
11
|
import { countPackageXmlItems, parseXmlFile } from '../../../common/utils/xmlUtils.js';
|
|
11
|
-
import { bool2emoji, execSfdxJson, getCurrentGitBranch, getGitRepoName, uxLog } from '../../../common/utils/index.js';
|
|
12
|
+
import { bool2emoji, createTempDir, execCommand, execSfdxJson, getCurrentGitBranch, getGitRepoName, uxLog } from '../../../common/utils/index.js';
|
|
12
13
|
import { CONSTANTS, getConfig } from '../../../config/index.js';
|
|
13
14
|
import { listMajorOrgs } from '../../../common/utils/orgConfigUtils.js';
|
|
14
15
|
import { glob } from 'glob';
|
|
15
|
-
import { listFlowFiles } from '../../../common/utils/projectUtils.js';
|
|
16
|
+
import { GLOB_IGNORE_PATTERNS, listFlowFiles } from '../../../common/utils/projectUtils.js';
|
|
16
17
|
import { generateFlowMarkdownFile, generateHistoryDiffMarkdown, generateMarkdownFileWithMermaid } from '../../../common/utils/mermaidUtils.js';
|
|
17
18
|
import { MetadataUtils } from '../../../common/metadata-utils/index.js';
|
|
18
19
|
import { PACKAGE_ROOT_DIR } from '../../../settings.js';
|
|
19
20
|
import { BranchStrategyMermaidBuilder } from '../../../common/utils/branchStrategyMermaidBuilder.js';
|
|
21
|
+
import { mdTableCell } from '../../../common/gitProvider/utilsMarkdown.js';
|
|
22
|
+
import { prettifyFieldName } from '../../../common/utils/flowVisualiser/nodeFormatUtils.js';
|
|
20
23
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
21
24
|
const messages = Messages.loadMessages('sfdx-hardis', 'org');
|
|
22
25
|
export default class Project2Markdown extends SfCommand {
|
|
@@ -114,12 +117,18 @@ ${this.htmlInstructions}
|
|
|
114
117
|
withHistory = false;
|
|
115
118
|
debugMode = false;
|
|
116
119
|
footer;
|
|
120
|
+
flowDescriptions = [];
|
|
121
|
+
objectDescriptions = [];
|
|
122
|
+
objectFiles;
|
|
123
|
+
allObjectsNames;
|
|
124
|
+
tempDir;
|
|
117
125
|
/* jscpd:ignore-end */
|
|
118
126
|
async run() {
|
|
119
127
|
const { flags } = await this.parse(Project2Markdown);
|
|
120
128
|
this.diffOnly = flags["diff-only"] === true ? true : false;
|
|
121
129
|
this.withHistory = flags["with-history"] === true ? true : false;
|
|
122
130
|
this.debugMode = flags.debug || false;
|
|
131
|
+
globalThis.jsForceConn = flags['target-org']?.getConnection(); // Required for some notifications providers like Email, or for Agentforce
|
|
123
132
|
await fs.ensureDir(this.outputMarkdownRoot);
|
|
124
133
|
const currentBranch = await getCurrentGitBranch();
|
|
125
134
|
this.footer = `_Documentation generated from branch ${currentBranch} with [sfdx-hardis](${CONSTANTS.DOC_URL_ROOT}) by [Cloudity](${CONSTANTS.WEBSITE_URL}) command [\`sf hardis:doc:project2markdown\`](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/)_`;
|
|
@@ -157,10 +166,19 @@ ${this.htmlInstructions}
|
|
|
157
166
|
this.mdLines.push(...installedPackages);
|
|
158
167
|
await fs.writeFile(path.join(this.outputMarkdownRoot, "installed-packages.md"), installedPackages.join("\n") + `\n${this.footer}\n`);
|
|
159
168
|
this.mkDocsNavNodes["Installed Packages"] = "installed-packages.md";
|
|
169
|
+
this.tempDir = await createTempDir();
|
|
170
|
+
// Convert source to metadata API format to build prompts
|
|
171
|
+
await execCommand(`sf project convert source --metadata CustomObject --output-dir ${this.tempDir}`, this, { fail: true, output: true, debug: this.debugMode });
|
|
172
|
+
this.objectFiles = (await glob("**/*.object", { cwd: this.tempDir, ignore: GLOB_IGNORE_PATTERNS })).sort();
|
|
173
|
+
this.allObjectsNames = this.objectFiles.map(object => path.basename(object, ".object"));
|
|
160
174
|
// List flows & generate doc
|
|
161
175
|
if (!(process?.env?.GENERATE_FLOW_DOC === 'false')) {
|
|
162
176
|
await this.generateFlowsDocumentation();
|
|
163
177
|
}
|
|
178
|
+
// List flows & generate doc
|
|
179
|
+
if (!(process?.env?.GENERATE_OBJECTS_DOC === 'false')) {
|
|
180
|
+
await this.generateObjectsDocumentation();
|
|
181
|
+
}
|
|
164
182
|
// Write output index file
|
|
165
183
|
await fs.ensureDir(path.dirname(this.outputMarkdownIndexFile));
|
|
166
184
|
await fs.writeFile(this.outputMarkdownIndexFile, this.mdLines.join("\n") + "\n\n" + Project2Markdown.htmlInstructions + `\n\n${this.footer}\n`);
|
|
@@ -219,6 +237,80 @@ ${Project2Markdown.htmlInstructions}
|
|
|
219
237
|
await writeMkDocsFile(mkdocsYmlFile, mkdocsYml);
|
|
220
238
|
uxLog(this, c.cyan(`To generate a HTML WebSite with this documentation with a single command, see instructions at ${CONSTANTS.DOC_URL_ROOT}/hardis/doc/project2markdown/`));
|
|
221
239
|
}
|
|
240
|
+
async generateObjectsDocumentation() {
|
|
241
|
+
uxLog(this, c.cyan("Generating Objects AI documentation... (if you don't want it, define GENERATE_OBJECTS_DOC=false in your environment variables)"));
|
|
242
|
+
const objectLinksInfo = await this.generateLinksInfo();
|
|
243
|
+
const objectsForMenu = { "All objects": "objects/index.md" };
|
|
244
|
+
await fs.ensureDir(path.join(this.outputMarkdownRoot, "objects"));
|
|
245
|
+
for (const objectFile of this.objectFiles) {
|
|
246
|
+
const objectName = path.basename(objectFile, ".object");
|
|
247
|
+
uxLog(this, c.grey(`Generating markdown for Object ${objectFile}...`));
|
|
248
|
+
const objectXml = (await fs.readFile(path.join(this.tempDir, objectFile), "utf8")).toString();
|
|
249
|
+
const objectMdFile = path.join(this.outputMarkdownRoot, "objects", objectName + ".md");
|
|
250
|
+
// Remove picklist values from Record Types to save tokens
|
|
251
|
+
const objectXmlParsed = new XMLParser().parse(objectXml);
|
|
252
|
+
if (objectXmlParsed?.CustomObject?.recordTypes) {
|
|
253
|
+
for (const recordType of objectXmlParsed.CustomObject.recordTypes || []) {
|
|
254
|
+
delete recordType.picklistValues;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Remove actionOverrides with formFactors to save tokens
|
|
258
|
+
if (objectXmlParsed?.CustomObject?.actionOverrides) {
|
|
259
|
+
objectXmlParsed.CustomObject.actionOverrides = objectXmlParsed.CustomObject.actionOverrides.filter(actionOverride => !actionOverride.formFactor);
|
|
260
|
+
}
|
|
261
|
+
// Remove compact layouts to save tokens
|
|
262
|
+
delete objectXmlParsed.CustomObject?.compactLayouts;
|
|
263
|
+
// Build filtered XML
|
|
264
|
+
const objectXmlStripped = new XMLBuilder().build(objectXmlParsed);
|
|
265
|
+
// Main AI markdown
|
|
266
|
+
await generateObjectMarkdown(objectName, objectXmlStripped, this.allObjectsNames.join(","), objectLinksInfo, objectMdFile);
|
|
267
|
+
// Fields table
|
|
268
|
+
await this.buildAttributesTables(objectName, objectXmlParsed, objectMdFile);
|
|
269
|
+
// Flows Tables
|
|
270
|
+
const relatedObjectFlowsTable = await this.buildFlowsTable('../flows/', objectName);
|
|
271
|
+
await replaceInFile(objectMdFile, '<!-- Flows table -->', relatedObjectFlowsTable.join("\n"));
|
|
272
|
+
this.objectDescriptions.push({
|
|
273
|
+
name: objectName,
|
|
274
|
+
label: objectXmlParsed?.CustomObject?.label || "",
|
|
275
|
+
description: objectXmlParsed?.CustomObject?.description || "",
|
|
276
|
+
});
|
|
277
|
+
objectsForMenu[objectName] = "objects/" + objectName + ".md";
|
|
278
|
+
}
|
|
279
|
+
this.mkDocsNavNodes["Objects"] = objectsForMenu;
|
|
280
|
+
// Write table on doc index
|
|
281
|
+
const objectsTableLines = await this.buildObjectsTable('objects/');
|
|
282
|
+
this.mdLines.push(...objectsTableLines);
|
|
283
|
+
this.mdLines.push(...["___", ""]);
|
|
284
|
+
// Write index file for objects folder
|
|
285
|
+
await fs.ensureDir(path.join(this.outputMarkdownRoot, "objects"));
|
|
286
|
+
const objectsTableLinesForIndex = await this.buildObjectsTable('');
|
|
287
|
+
const objectsIndexFile = path.join(this.outputMarkdownRoot, "objects", "index.md");
|
|
288
|
+
await fs.writeFile(objectsIndexFile, objectsTableLinesForIndex.join("\n") + `\n${this.footer}\n`);
|
|
289
|
+
}
|
|
290
|
+
async buildAttributesTables(objectName, objectXmlParsed, objectMdFile) {
|
|
291
|
+
const fieldsTable = await this.buildCustomFieldsTable(objectXmlParsed?.CustomObject?.fields || []);
|
|
292
|
+
const validationRulesTable = await this.buildValidationRulesTable(objectXmlParsed?.CustomObject?.validationRules || []);
|
|
293
|
+
const attributesLines = [...fieldsTable, ...validationRulesTable];
|
|
294
|
+
const attributesMarkdown = await completeAttributesDescriptionWithAi(attributesLines.join("\n"), objectName);
|
|
295
|
+
await replaceInFile(objectMdFile, '<!-- Attributes tables -->', attributesMarkdown);
|
|
296
|
+
}
|
|
297
|
+
async generateLinksInfo() {
|
|
298
|
+
uxLog(this, c.cyan("Generate MasterDetail and Lookup infos to provide context to AI prompt"));
|
|
299
|
+
const findFieldsPattern = `**/objects/**/fields/**.field-meta.xml`;
|
|
300
|
+
const matchingFieldFiles = (await glob(findFieldsPattern, { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS })).map(file => file.replace(/\\/g, '/'));
|
|
301
|
+
const customFieldsLinks = [];
|
|
302
|
+
for (const fieldFile of matchingFieldFiles) {
|
|
303
|
+
const fieldXml = fs.readFileSync(fieldFile, "utf8").toString();
|
|
304
|
+
const fieldDetail = new XMLParser().parse(fieldXml);
|
|
305
|
+
if (fieldDetail?.CustomField?.type === "MasterDetail" || fieldDetail?.CustomField?.type === "Lookup") {
|
|
306
|
+
const fieldName = path.basename(fieldFile, ".field-meta.xml");
|
|
307
|
+
const objectName = fieldFile.substring(fieldFile.indexOf('objects/')).split("/")[1];
|
|
308
|
+
const linkDescription = `- ${fieldDetail.CustomField.type} field "${fieldName}" defined on object ${objectName}, with target object reference to ${fieldDetail.CustomField.referenceTo} (relationship name: "${fieldDetail.CustomField.relationshipName}", label: "${fieldDetail.CustomField.label}", description: "${fieldDetail.CustomField?.description || ''}")`;
|
|
309
|
+
customFieldsLinks.push(linkDescription);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return customFieldsLinks.join("\n") + "\n";
|
|
313
|
+
}
|
|
222
314
|
async generateFlowsDocumentation() {
|
|
223
315
|
uxLog(this, c.cyan("Generating Flows Visual documentation... (if you don't want it, define GENERATE_FLOW_DOC=false in your environment variables)"));
|
|
224
316
|
const flowsForMenu = { "All flows": "flows/index.md" };
|
|
@@ -231,17 +323,18 @@ ${Project2Markdown.htmlInstructions}
|
|
|
231
323
|
const flowErrors = [];
|
|
232
324
|
const flowWarnings = [];
|
|
233
325
|
const flowSkips = [];
|
|
234
|
-
|
|
326
|
+
this.flowDescriptions = [];
|
|
235
327
|
for (const flowFile of flowFiles) {
|
|
236
328
|
const flowName = path.basename(flowFile, ".flow-meta.xml");
|
|
237
329
|
uxLog(this, c.grey(`Generating markdown for Flow ${flowFile}...`));
|
|
238
330
|
const flowXml = (await fs.readFile(flowFile, "utf8")).toString();
|
|
239
331
|
const flowContent = await parseXmlFile(flowFile);
|
|
240
|
-
flowDescriptions.push({
|
|
332
|
+
this.flowDescriptions.push({
|
|
241
333
|
name: flowName,
|
|
242
334
|
description: flowContent?.Flow?.description?.[0] || "",
|
|
243
335
|
type: flowContent?.Flow?.processType?.[0] === "Flow" ? "ScreenFlow" : flowContent?.Flow?.start?.[0]?.triggerType?.[0] ?? (flowContent?.Flow?.processType?.[0] || "ERROR (Unknown)"),
|
|
244
|
-
object: flowContent?.Flow?.start?.[0]?.object?.[0] || flowContent?.Flow?.processMetadataValues?.filter(pmv => pmv.name[0] === "ObjectType")?.[0]?.value?.[0]?.stringValue?.[0] || ""
|
|
336
|
+
object: flowContent?.Flow?.start?.[0]?.object?.[0] || flowContent?.Flow?.processMetadataValues?.filter(pmv => pmv.name[0] === "ObjectType")?.[0]?.value?.[0]?.stringValue?.[0] || "",
|
|
337
|
+
impactedObjects: this.allObjectsNames.filter(objectName => flowXml.includes(`>${objectName}<`)).join(", ")
|
|
245
338
|
});
|
|
246
339
|
flowsForMenu[flowName] = "flows/" + flowName + ".md";
|
|
247
340
|
const outputFlowMdFile = path.join(this.outputMarkdownRoot, "flows", flowName + ".md");
|
|
@@ -249,7 +342,7 @@ ${Project2Markdown.htmlInstructions}
|
|
|
249
342
|
flowSkips.push(flowFile);
|
|
250
343
|
continue;
|
|
251
344
|
}
|
|
252
|
-
const genRes = await generateFlowMarkdownFile(
|
|
345
|
+
const genRes = await generateFlowMarkdownFile(flowName, flowXml, outputFlowMdFile, { collapsedDetails: false, describeWithAi: true });
|
|
253
346
|
if (!genRes) {
|
|
254
347
|
flowErrors.push(flowFile);
|
|
255
348
|
continue;
|
|
@@ -263,6 +356,7 @@ ${Project2Markdown.htmlInstructions}
|
|
|
263
356
|
continue;
|
|
264
357
|
}
|
|
265
358
|
}
|
|
359
|
+
this.flowDescriptions = sortArray(this.flowDescriptions, { by: ['object', 'name'], order: ['asc', 'asc'] });
|
|
266
360
|
if (flowSkips.length > 0) {
|
|
267
361
|
uxLog(this, c.yellow(`Skipped generation for ${flowSkips.length} Flows that have not been updated: ${this.humanDisplay(flowSkips)}`));
|
|
268
362
|
}
|
|
@@ -286,12 +380,12 @@ ${Project2Markdown.htmlInstructions}
|
|
|
286
380
|
}
|
|
287
381
|
}
|
|
288
382
|
// Write table on doc index
|
|
289
|
-
const flowTableLines = await this.buildFlowsTable(
|
|
383
|
+
const flowTableLines = await this.buildFlowsTable('flows/');
|
|
290
384
|
this.mdLines.push(...flowTableLines);
|
|
291
385
|
this.mdLines.push(...["___", ""]);
|
|
292
386
|
// Write index file for flow folder
|
|
293
387
|
await fs.ensureDir(path.join(this.outputMarkdownRoot, "flows"));
|
|
294
|
-
const flowTableLinesForIndex = await this.buildFlowsTable(
|
|
388
|
+
const flowTableLinesForIndex = await this.buildFlowsTable('');
|
|
295
389
|
const flowIndexFile = path.join(this.outputMarkdownRoot, "flows", "index.md");
|
|
296
390
|
await fs.writeFile(flowIndexFile, flowTableLinesForIndex.join("\n") + `\n${this.footer}\n`);
|
|
297
391
|
this.mkDocsNavNodes["Flows"] = flowsForMenu;
|
|
@@ -300,21 +394,86 @@ ${Project2Markdown.htmlInstructions}
|
|
|
300
394
|
humanDisplay(flows) {
|
|
301
395
|
return flows.map(flow => path.basename(flow, ".flow-meta.xml")).join(", ");
|
|
302
396
|
}
|
|
303
|
-
async buildFlowsTable(
|
|
397
|
+
async buildFlowsTable(prefix, filterObject = null) {
|
|
398
|
+
const filteredFlows = filterObject ? this.flowDescriptions.filter(flow => flow.object === filterObject || flow.impactedObjects.includes(filterObject)) : this.flowDescriptions;
|
|
399
|
+
if (filteredFlows.length === 0) {
|
|
400
|
+
return [];
|
|
401
|
+
}
|
|
304
402
|
const lines = [];
|
|
305
403
|
lines.push(...[
|
|
306
|
-
"## Flows",
|
|
404
|
+
filterObject ? "## Related Flows" : "## Flows",
|
|
307
405
|
"",
|
|
308
406
|
"| Object | Name | Type | Description |",
|
|
309
407
|
"| :---- | :-------- | :--: | :---------- | "
|
|
310
408
|
]);
|
|
311
|
-
for (const flow of
|
|
409
|
+
for (const flow of filteredFlows) {
|
|
312
410
|
const outputFlowHistoryMdFile = path.join(this.outputMarkdownRoot, "flows", flow.name + "-history.md");
|
|
313
411
|
const flowNameCell = fs.existsSync(outputFlowHistoryMdFile) ?
|
|
314
412
|
`[${flow.name}](${prefix}${flow.name}.md) [🕒](${prefix}${flow.name}-history.md)` :
|
|
315
413
|
`[${flow.name}](${prefix}${flow.name}.md)`;
|
|
316
414
|
lines.push(...[
|
|
317
|
-
`| ${flow.object || "💻"} | ${flowNameCell} | ${flow.type} | ${flow.description
|
|
415
|
+
`| ${flow.object || "💻"} | ${flowNameCell} | ${prettifyFieldName(flow.type)} | ${mdTableCell(flow.description)} |`
|
|
416
|
+
]);
|
|
417
|
+
}
|
|
418
|
+
lines.push("");
|
|
419
|
+
return lines;
|
|
420
|
+
}
|
|
421
|
+
async buildObjectsTable(prefix) {
|
|
422
|
+
const lines = [];
|
|
423
|
+
lines.push(...[
|
|
424
|
+
"## Objects",
|
|
425
|
+
"",
|
|
426
|
+
"| Name | Label | Description |",
|
|
427
|
+
"| :-------- | :---- | :---------- | "
|
|
428
|
+
]);
|
|
429
|
+
for (const objectDescription of this.objectDescriptions) {
|
|
430
|
+
const objectNameCell = `[${objectDescription.name}](${prefix}${objectDescription.name}.md)`;
|
|
431
|
+
lines.push(...[
|
|
432
|
+
`| ${objectNameCell} | ${objectDescription.label || ""} | ${mdTableCell(objectDescription.description)} |`
|
|
433
|
+
]);
|
|
434
|
+
}
|
|
435
|
+
lines.push("");
|
|
436
|
+
return lines;
|
|
437
|
+
}
|
|
438
|
+
async buildCustomFieldsTable(fields) {
|
|
439
|
+
if (!Array.isArray(fields)) {
|
|
440
|
+
fields = [fields];
|
|
441
|
+
}
|
|
442
|
+
if (fields.length === 0) {
|
|
443
|
+
return [];
|
|
444
|
+
}
|
|
445
|
+
const lines = [];
|
|
446
|
+
lines.push(...[
|
|
447
|
+
"## Fields",
|
|
448
|
+
"",
|
|
449
|
+
"| Name | Label | Type | Description |",
|
|
450
|
+
"| :-------- | :---- | :--: | :---------- | "
|
|
451
|
+
]);
|
|
452
|
+
for (const field of fields) {
|
|
453
|
+
lines.push(...[
|
|
454
|
+
`| ${field.fullName} | ${field.label || ""} | ${field.type || ""} | ${mdTableCell(field.description)} |`
|
|
455
|
+
]);
|
|
456
|
+
}
|
|
457
|
+
lines.push("");
|
|
458
|
+
return lines;
|
|
459
|
+
}
|
|
460
|
+
async buildValidationRulesTable(validationRules) {
|
|
461
|
+
if (!Array.isArray(validationRules)) {
|
|
462
|
+
validationRules = [validationRules];
|
|
463
|
+
}
|
|
464
|
+
if (validationRules.length === 0) {
|
|
465
|
+
return [];
|
|
466
|
+
}
|
|
467
|
+
const lines = [];
|
|
468
|
+
lines.push(...[
|
|
469
|
+
"## Validation Rules",
|
|
470
|
+
"",
|
|
471
|
+
"| Rule | Active | Description | Formula |",
|
|
472
|
+
"| :-------- | :---- | :---------- | :------ |"
|
|
473
|
+
]);
|
|
474
|
+
for (const rule of validationRules) {
|
|
475
|
+
lines.push(...[
|
|
476
|
+
`| ${rule.fullName} | ${rule.active ? "Yes" : "No ⚠️"} | ${rule.description || ""} | \`${rule.errorConditionFormula}\` |`
|
|
318
477
|
]);
|
|
319
478
|
}
|
|
320
479
|
lines.push("");
|
|
@@ -328,7 +487,7 @@ ${Project2Markdown.htmlInstructions}
|
|
|
328
487
|
const packageFolder = path.join(process.cwd(), 'installedPackages');
|
|
329
488
|
if (packages.length === 0 && fs.existsSync(packageFolder)) {
|
|
330
489
|
const findManagedPattern = "**/*.json";
|
|
331
|
-
const matchingPackageFiles = await glob(findManagedPattern, { cwd: packageFolder });
|
|
490
|
+
const matchingPackageFiles = await glob(findManagedPattern, { cwd: packageFolder, ignore: GLOB_IGNORE_PATTERNS });
|
|
332
491
|
for (const packageFile of matchingPackageFiles) {
|
|
333
492
|
const packageFileFull = path.join(packageFolder, packageFile);
|
|
334
493
|
if (!fs.existsSync(packageFileFull)) {
|
|
@@ -368,11 +527,11 @@ ${Project2Markdown.htmlInstructions}
|
|
|
368
527
|
"| :--------- | :---- | :---------- |"
|
|
369
528
|
]);
|
|
370
529
|
const installPackagesDuringCheckDeploy = this.sfdxHardisConfig?.installPackagesDuringCheckDeploy ?? false;
|
|
371
|
-
sfdxParamsTableLines.push(`|
|
|
530
|
+
sfdxParamsTableLines.push(`| Install Packages During Check Deploy | ${bool2emoji(installPackagesDuringCheckDeploy)} | [Install 1GP & 2GP packages during deployment check CI/CD job](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#packages-installation) |`);
|
|
372
531
|
const useDeltaDeployment = this.sfdxHardisConfig?.useDeltaDeployment ?? false;
|
|
373
|
-
sfdxParamsTableLines.push(`|
|
|
532
|
+
sfdxParamsTableLines.push(`| Use Delta Deployment | ${bool2emoji(useDeltaDeployment)} | [Deploys only updated metadatas , only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-config-delta-deployment/#delta-mode) |`);
|
|
374
533
|
const useSmartDeploymentTests = this.sfdxHardisConfig?.useSmartDeploymentTests ?? false;
|
|
375
|
-
sfdxParamsTableLines.push(`|
|
|
534
|
+
sfdxParamsTableLines.push(`| Use Smart Deployment Tests | ${bool2emoji(useSmartDeploymentTests)} | [Skip Apex test cases if delta metadatas can not impact them, only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#smart-deployments-tests) |`);
|
|
376
535
|
sfdxParamsTableLines.push("");
|
|
377
536
|
sfdxParamsTableLines.push("___");
|
|
378
537
|
sfdxParamsTableLines.push("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/project2markdown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/project2markdown.ts"],"names":[],"mappings":"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"}
|