sfdx-hardis 5.26.1 → 5.27.0

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.
Files changed (33) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/defaults/mkdocs-project-doc/docs/javascripts/jstree-handler.js +111 -0
  3. package/defaults/mkdocs-project-doc/docs/json/index.md +1 -0
  4. package/defaults/mkdocs-project-doc/docs/stylesheets/jstree-custom.css +15 -0
  5. package/defaults/mkdocs-project-doc/mkdocs.yml +4 -0
  6. package/defaults/monitoring/manifest/package-skip-items.xml +7 -0
  7. package/lib/commands/hardis/doc/project2markdown.d.ts +5 -1
  8. package/lib/commands/hardis/doc/project2markdown.js +127 -8
  9. package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
  10. package/lib/common/aiProvider/promptTemplates.d.ts +13 -1
  11. package/lib/common/aiProvider/promptTemplates.js +58 -1
  12. package/lib/common/aiProvider/promptTemplates.js.map +1 -1
  13. package/lib/common/docBuilder/docBuilderObject.js +5 -1
  14. package/lib/common/docBuilder/docBuilderObject.js.map +1 -1
  15. package/lib/common/docBuilder/docBuilderPackageXml.d.ts +3 -0
  16. package/lib/common/docBuilder/docBuilderPackageXml.js +77 -0
  17. package/lib/common/docBuilder/docBuilderPackageXml.js.map +1 -1
  18. package/lib/common/docBuilder/docBuilderPermissionSet.d.ts +13 -0
  19. package/lib/common/docBuilder/docBuilderPermissionSet.js +92 -0
  20. package/lib/common/docBuilder/docBuilderPermissionSet.js.map +1 -0
  21. package/lib/common/docBuilder/docBuilderPermissionSetGroup.d.ts +11 -0
  22. package/lib/common/docBuilder/docBuilderPermissionSetGroup.js +60 -0
  23. package/lib/common/docBuilder/docBuilderPermissionSetGroup.js.map +1 -0
  24. package/lib/common/docBuilder/docBuilderProfile.d.ts +4 -0
  25. package/lib/common/docBuilder/docBuilderProfile.js +117 -2
  26. package/lib/common/docBuilder/docBuilderProfile.js.map +1 -1
  27. package/lib/common/docBuilder/docBuilderRoot.d.ts +2 -0
  28. package/lib/common/docBuilder/docBuilderRoot.js +12 -0
  29. package/lib/common/docBuilder/docBuilderRoot.js.map +1 -1
  30. package/lib/common/docBuilder/docUtils.js +1 -1
  31. package/lib/common/docBuilder/docUtils.js.map +1 -1
  32. package/oclif.manifest.json +318 -318
  33. package/package.json +1 -1
@@ -207,7 +207,7 @@ Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as
207
207
  "PROMPT_DESCRIBE_PROFILE": {
208
208
  variables: ["PROFILE_NAME", "PROFILE_XML"],
209
209
  text: {
210
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Profile "{{PAGE_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
210
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Profile "{{PROFILE_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
211
211
 
212
212
  ### Instructions:
213
213
 
@@ -230,6 +230,63 @@ Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as
230
230
  - The metadata XML for Salesforce Profile "{{PROFILE_NAME}}" is:
231
231
  {{PROFILE_XML}}
232
232
 
233
+ Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
234
+ `
235
+ }
236
+ },
237
+ "PROMPT_DESCRIBE_PERMISSION_SET": {
238
+ variables: ["PERMISSIONSET_NAME", "PERMISSIONSET_XML"],
239
+ text: {
240
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSet "{{PERMISSIONSET_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
241
+
242
+ ### Instructions:
243
+
244
+ 1. **Contextual Overview**:
245
+ - Begin by summarizing the role of the Salesforce PermissionSet that you can guess according to the content of the XML. Try to guess the role of users assigned to this permission set according to applicationVisibilities, objectVisibilities and userPermissions.
246
+ - List the key features of the Permission Set.
247
+ - The most important features are License, Applications, User Permissions ,features with default values ,Custom Objects and Record Types
248
+ - Ignore Apex classes and Custom Fields
249
+ - Ignore blocks who has access or visibility set to "false"
250
+
251
+ 2. **Formatting Requirements**:
252
+ - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
253
+ - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
254
+ - Add new lines after a header title so mkdocs-material can display the content correctly.
255
+ - Never truncate any information in the response.
256
+ - Provide a concise summary before detailed sections for quick understanding.
257
+
258
+ ### Reference Data:
259
+
260
+ - The metadata XML for Salesforce Permission Set "{{PERMISSIONSET_NAME}}" is:
261
+ {{PERMISSIONSET_XML}}
262
+
263
+ Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
264
+ `
265
+ }
266
+ },
267
+ "PROMPT_DESCRIBE_PERMISSION_SET_GROUP": {
268
+ variables: ["PERMISSIONSETGROUP_NAME", "PERMISSIONSETGROUP_XML"],
269
+ text: {
270
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSetGroup "{{PERMISSIONSETGROUP_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
271
+
272
+ ### Instructions:
273
+
274
+ 1. **Contextual Overview**:
275
+ - Begin by summarizing the role of the Salesforce PermissionSetGroup that you can guess according to the content of the XML. Try to guess the role of users assigned to this permission set group according to the name, description and related Permission Sets
276
+ - List the key features of the Permission Set.
277
+
278
+ 2. **Formatting Requirements**:
279
+ - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
280
+ - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
281
+ - Add new lines after a header title so mkdocs-material can display the content correctly.
282
+ - Never truncate any information in the response.
283
+ - Provide a concise summary before detailed sections for quick understanding.
284
+
285
+ ### Reference Data:
286
+
287
+ - The metadata XML for Salesforce Permission Set Group "{{PERMISSIONSETGROUP_NAME}}" is:
288
+ {{PERMISSIONSETGROUP_XML}}
289
+
233
290
  Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
234
291
  `
235
292
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promptTemplates.js","sourceRoot":"","sources":["../../../src/common/aiProvider/promptTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptTemplates.js","sourceRoot":"","sources":["../../../src/common/aiProvider/promptTemplates.ts"],"names":[],"mappings":"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"}
@@ -80,7 +80,11 @@ export class DocBuilderObject extends DocBuilderRoot {
80
80
  '',
81
81
  '<!-- Apex table -->',
82
82
  '',
83
- '<!-- Pages table -->'
83
+ '<!-- Pages table -->',
84
+ '',
85
+ '<!-- Profiles table -->',
86
+ '',
87
+ '<!-- PermissionSets table -->',
84
88
  ];
85
89
  }
86
90
  stripXmlForAi() {
@@ -1 +1 @@
1
- {"version":3,"file":"docBuilderObject.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docBuilderObject.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderObject.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,7 @@ export declare class DocBuilderPackageXML {
5
5
  }>;
6
6
  static generatePackageXmlMarkdown(inputFile: string | null, outputFile?: string | null, packageXmlDefinition?: any, rootSalesforceUrl?: string): Promise<string>;
7
7
  static listPackageXmlCandidates(): any[];
8
+ static generateJsonTree(metadataTypes: any, packageXmlContent: any): Promise<any>;
9
+ private static createCustomFieldsTree;
10
+ private static createMembersTree;
8
11
  }
@@ -6,6 +6,7 @@ import { uxLog } from '../utils/index.js';
6
6
  import { countPackageXmlItems, parsePackageXmlFile } from '../utils/xmlUtils.js';
7
7
  import { SalesforceSetupUrlBuilder } from './docUtils.js';
8
8
  import { CONSTANTS } from '../../config/index.js';
9
+ import { prettifyFieldName } from '../utils/flowVisualiser/nodeFormatUtils.js';
9
10
  export class DocBuilderPackageXML {
10
11
  static async buildIndexTable(outputPackageXmlMarkdownFiles) {
11
12
  const packageLines = [];
@@ -57,6 +58,8 @@ export class DocBuilderPackageXML {
57
58
  '',
58
59
  packageXmlDefinition.description,
59
60
  '',
61
+ '<div id="jstree-container"></div>',
62
+ '',
60
63
  `Metadatas: ${nbItems}`,
61
64
  ''
62
65
  ]);
@@ -66,6 +69,8 @@ export class DocBuilderPackageXML {
66
69
  mdLines.push(...[
67
70
  `## Content of ${path.basename(inputFile)}`,
68
71
  '',
72
+ '<div id="jstree-container"></div>',
73
+ '',
69
74
  `Metadatas: ${nbItems}`,
70
75
  ''
71
76
  ]);
@@ -96,6 +101,14 @@ export class DocBuilderPackageXML {
96
101
  // Write output file
97
102
  await fs.writeFile(outputFile, mdLines.join("\n") + "\n");
98
103
  uxLog(this, c.green(`Successfully generated ${path.basename(inputFile)} documentation into ${outputFile}`));
104
+ const jsonTree = await this.generateJsonTree(metadataTypes, packageXmlContent);
105
+ if (jsonTree) {
106
+ const packageXmlFileName = path.basename(outputFile, ".md");
107
+ const jsonFile = `./docs/json/root-${packageXmlFileName}.json`;
108
+ await fs.ensureDir(path.dirname(jsonFile));
109
+ await fs.writeFile(jsonFile, JSON.stringify(jsonTree, null, 2));
110
+ uxLog(this, c.green(`Successfully generated ${packageXmlFileName} JSON into ${jsonFile}`));
111
+ }
99
112
  return outputFile;
100
113
  }
101
114
  static listPackageXmlCandidates() {
@@ -132,5 +145,69 @@ export class DocBuilderPackageXML {
132
145
  },
133
146
  ];
134
147
  }
148
+ // Generate json for display with jsTree npm library
149
+ static async generateJsonTree(metadataTypes, packageXmlContent) {
150
+ const treeElements = [];
151
+ for (const metadataType of metadataTypes) {
152
+ const members = packageXmlContent[metadataType] || [];
153
+ members.sort();
154
+ const memberLengthLabel = members.length === 1 && members[0] === "*" ? "all" : members.length;
155
+ const typeRoot = {
156
+ text: prettifyFieldName(metadataType) + " (" + memberLengthLabel + ")",
157
+ icon: memberLengthLabel !== "all" ? "fa-solid fa-folder icon-blue" : "fa-solid fa-folder icon-warning",
158
+ a_attr: { href: null },
159
+ children: [],
160
+ };
161
+ if (memberLengthLabel !== "all") {
162
+ if (metadataType === "CustomField") {
163
+ // Sort custom fields by object name
164
+ DocBuilderPackageXML.createCustomFieldsTree(members, typeRoot);
165
+ }
166
+ else {
167
+ DocBuilderPackageXML.createMembersTree(members, typeRoot);
168
+ }
169
+ }
170
+ treeElements.push(typeRoot);
171
+ }
172
+ return treeElements;
173
+ }
174
+ static createCustomFieldsTree(members, typeRoot) {
175
+ const elementsByObject = [];
176
+ for (const element of members) {
177
+ const objectName = element.split('.')[0];
178
+ if (!elementsByObject[objectName]) {
179
+ elementsByObject[objectName] = [];
180
+ }
181
+ elementsByObject[objectName].push(element);
182
+ }
183
+ // Create object nodes and fields as children
184
+ for (const objectName of Object.keys(elementsByObject)) {
185
+ const objectNode = {
186
+ text: objectName + " (" + elementsByObject[objectName].length + ")",
187
+ icon: "fa-solid fa-folder icon-blue",
188
+ a_attr: { href: null },
189
+ children: [],
190
+ };
191
+ for (const element of elementsByObject[objectName]) {
192
+ const subElement = {
193
+ text: element,
194
+ icon: "fa-solid fa-circle-check icon-success",
195
+ a_attr: { href: null },
196
+ };
197
+ objectNode.children.push(subElement);
198
+ }
199
+ typeRoot.children.push(objectNode);
200
+ }
201
+ }
202
+ static createMembersTree(members, typeRoot) {
203
+ for (const member of members) {
204
+ const subElement = {
205
+ text: member,
206
+ icon: "fa-solid fa-circle-check icon-success",
207
+ a_attr: { href: null },
208
+ };
209
+ typeRoot.children.push(subElement);
210
+ }
211
+ }
135
212
  }
136
213
  //# sourceMappingURL=docBuilderPackageXml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docBuilderPackageXml.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderPackageXml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docBuilderPackageXml.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderPackageXml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { PromptTemplate } from "../aiProvider/promptTemplates.js";
2
+ import { DocBuilderProfile } from "./docBuilderProfile.js";
3
+ export declare class DocBuilderPermissionSet extends DocBuilderProfile {
4
+ docType: string;
5
+ promptKey: PromptTemplate;
6
+ placeholder: string;
7
+ xmlRootKey: string;
8
+ docsSection: string;
9
+ static buildIndexTable(prefix: string, permissionSetDescriptions: any[], filterObject?: string | null): string[];
10
+ buildInitialMarkdownLines(): Promise<string[]>;
11
+ stripXmlForAi(): Promise<string>;
12
+ generateJsonTree(): Promise<any>;
13
+ }
@@ -0,0 +1,92 @@
1
+ import { XMLBuilder, XMLParser } from "fast-xml-parser";
2
+ import { buildGenericMarkdownTable, prettifyFieldName } from "../utils/flowVisualiser/nodeFormatUtils.js";
3
+ import { DocBuilderProfile } from "./docBuilderProfile.js";
4
+ export class DocBuilderPermissionSet extends DocBuilderProfile {
5
+ docType = "PermissionSet";
6
+ promptKey = "PROMPT_DESCRIBE_PERMISSION_SET";
7
+ placeholder = "<!-- PermissionSet description -->";
8
+ xmlRootKey = "PermissionSet";
9
+ docsSection = "permissionsets";
10
+ static buildIndexTable(prefix, permissionSetDescriptions, filterObject = null) {
11
+ const filteredPsets = filterObject ? permissionSetDescriptions.filter(pSet => pSet.impactedObjects.includes(filterObject)) : permissionSetDescriptions;
12
+ if (filteredPsets.length === 0) {
13
+ return [];
14
+ }
15
+ const lines = [];
16
+ lines.push(...[
17
+ filterObject ? "## Related Permission Sets" : "## Permission Sets",
18
+ "",
19
+ "| Permission Set | User License |",
20
+ "| :---- | :--: | "
21
+ ]);
22
+ for (const pSet of filteredPsets) {
23
+ const pSetNameCell = `[${pSet.name}](${prefix}${encodeURIComponent(pSet.name)}.md)`;
24
+ lines.push(...[
25
+ `| ${pSetNameCell} | ${pSet.license || "None"} |`
26
+ ]);
27
+ }
28
+ lines.push("");
29
+ return lines;
30
+ }
31
+ async buildInitialMarkdownLines() {
32
+ return [
33
+ `## ${this.metadataName}`,
34
+ '',
35
+ '<div id="jstree-container"></div>',
36
+ '',
37
+ buildGenericMarkdownTable(this.parsedXmlObject, ["label", "description", "license", "hasActivationRequired"], "## Permission Set attributes", []),
38
+ '',
39
+ '<!-- Permission Set Groups table -->',
40
+ '',
41
+ '<!-- PermissionSet description -->',
42
+ '',
43
+ ];
44
+ }
45
+ stripXmlForAi() {
46
+ const xmlObj = new XMLParser().parse(this.metadataXml);
47
+ // Remove class access: not relevant for prompt
48
+ if (xmlObj?.PermissionSet?.classAccesses) {
49
+ delete xmlObj.PermissionSet.classAccesses;
50
+ }
51
+ // Remove flowAccesses: not relevant for prompt
52
+ if (xmlObj?.PermissionSet?.flowAccesses) {
53
+ delete xmlObj.PermissionSet.flowAccesses;
54
+ }
55
+ const xmlStripped = new XMLBuilder().build(xmlObj);
56
+ return xmlStripped;
57
+ }
58
+ // Generate json for display with jsTree npm library
59
+ async generateJsonTree() {
60
+ const xmlObj = new XMLParser().parse(this.metadataXml);
61
+ const treeElements = [];
62
+ for (const psRootAttribute of Object.keys(xmlObj?.PermissionSet || {})) {
63
+ if (["label", "license", "hasActivationRequired", "description"].includes(psRootAttribute)) {
64
+ continue;
65
+ }
66
+ let attributeValue = xmlObj.PermissionSet[psRootAttribute];
67
+ if (!Array.isArray(attributeValue)) {
68
+ attributeValue = [attributeValue];
69
+ }
70
+ const attributeTreeRoot = {
71
+ text: prettifyFieldName(psRootAttribute),
72
+ icon: "fa-solid fa-folder icon-blue",
73
+ a_attr: { href: null },
74
+ children: [],
75
+ };
76
+ if (psRootAttribute === "fieldPermissions") {
77
+ // Sort custom fields by object name
78
+ this.buildObjectFieldsTree(attributeValue, attributeTreeRoot);
79
+ }
80
+ else {
81
+ for (const element of attributeValue) {
82
+ const subElement = this.getSubElement(element);
83
+ attributeTreeRoot.children.push(subElement);
84
+ }
85
+ attributeTreeRoot.text = attributeTreeRoot.text + " (" + attributeTreeRoot.children.length + ")";
86
+ }
87
+ treeElements.push(attributeTreeRoot);
88
+ }
89
+ return treeElements;
90
+ }
91
+ }
92
+ //# sourceMappingURL=docBuilderPermissionSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docBuilderPermissionSet.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderPermissionSet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { PromptTemplate } from "../aiProvider/promptTemplates.js";
2
+ import { DocBuilderRoot } from "./docBuilderRoot.js";
3
+ export declare class DocBuilderPermissionSetGroup extends DocBuilderRoot {
4
+ docType: string;
5
+ promptKey: PromptTemplate;
6
+ placeholder: string;
7
+ xmlRootKey: string;
8
+ docsSection: string;
9
+ static buildIndexTable(prefix: string, permissionSetGroupDescriptions: any[], filterObject?: string | null): string[];
10
+ buildInitialMarkdownLines(): Promise<string[]>;
11
+ }
@@ -0,0 +1,60 @@
1
+ import { buildGenericMarkdownTable } from "../utils/flowVisualiser/nodeFormatUtils.js";
2
+ import { DocBuilderRoot } from "./docBuilderRoot.js";
3
+ export class DocBuilderPermissionSetGroup extends DocBuilderRoot {
4
+ docType = "PermissionSetGroup";
5
+ promptKey = "PROMPT_DESCRIBE_PERMISSION_SET_GROUP";
6
+ placeholder = "<!-- PermissionSetGroup description -->";
7
+ xmlRootKey = "PermissionSetGroup";
8
+ docsSection = "permissionsetgroups";
9
+ static buildIndexTable(prefix, permissionSetGroupDescriptions, filterObject = null) {
10
+ const filteredPsetGroups = filterObject ? permissionSetGroupDescriptions.filter(pSetGroup => pSetGroup.relatedPermissionSets.includes(filterObject)) : permissionSetGroupDescriptions;
11
+ if (filteredPsetGroups.length === 0) {
12
+ return [];
13
+ }
14
+ const lines = [];
15
+ lines.push(...[
16
+ filterObject ? "## Related Permission Set Groups" : "## Permission Set Groups",
17
+ "",
18
+ "| Permission Set Group | Description |",
19
+ "| :---- | :---------- |"
20
+ ]);
21
+ for (const pSetGroup of filteredPsetGroups) {
22
+ const pSetGroupNameCell = `[${pSetGroup.name}](${prefix}${encodeURIComponent(pSetGroup.name)}.md)`;
23
+ lines.push(...[
24
+ `| ${pSetGroupNameCell} | ${pSetGroup.description || "None"} |`
25
+ ]);
26
+ }
27
+ lines.push("");
28
+ return lines;
29
+ }
30
+ async buildInitialMarkdownLines() {
31
+ const permissionSetTableLines = [
32
+ "| Permission Set |",
33
+ "| :------------- |"
34
+ ];
35
+ if (this.parsedXmlObject.permissionSets) {
36
+ if (!Array.isArray(this.parsedXmlObject.permissionSets)) {
37
+ this.parsedXmlObject.permissionSets = [this.parsedXmlObject.permissionSets];
38
+ }
39
+ for (const permissionSet of this.parsedXmlObject.permissionSets) {
40
+ const permissionSetNameCell = `[${permissionSet}](../permissionsets/${encodeURIComponent(permissionSet)}.md)`;
41
+ permissionSetTableLines.push(`| ${permissionSetNameCell} |`);
42
+ }
43
+ }
44
+ else {
45
+ permissionSetTableLines.push("| None |");
46
+ }
47
+ return [
48
+ `## ${this.metadataName}`,
49
+ '',
50
+ buildGenericMarkdownTable(this.parsedXmlObject, ["label", "description", "status"], "## Permission Set Group attributes", []),
51
+ '',
52
+ '## Permission Sets',
53
+ ...permissionSetTableLines,
54
+ '',
55
+ '<!-- PermissionSetGroup description -->',
56
+ '',
57
+ ];
58
+ }
59
+ }
60
+ //# sourceMappingURL=docBuilderPermissionSetGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docBuilderPermissionSetGroup.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderPermissionSetGroup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,4BAA6B,SAAQ,cAAc;IAEvD,OAAO,GAAG,oBAAoB,CAAC;IAC/B,SAAS,GAAmB,sCAAsC,CAAC;IACnE,WAAW,GAAG,yCAAyC,CAAC;IACxD,UAAU,GAAG,oBAAoB,CAAC;IAClC,WAAW,GAAG,qBAAqB,CAAC;IAEpC,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,8BAAqC,EAAE,eAA8B,IAAI;QACrH,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,8BAA8B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC;QACtL,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,YAAY,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,0BAA0B;YAC9E,EAAE;YACF,wCAAwC;YACxC,wCAAwC;SACzC,CAAC,CAAC;QACH,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YACnG,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,KAAK,iBAAiB,MAAM,SAAS,CAAC,WAAW,IAAI,MAAM,IAAI;aAChE,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,uBAAuB,GAAG;YAC9B,oBAAoB;YACpB,oBAAoB;SACrB,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC9E,CAAC;YACD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;gBAChE,MAAM,qBAAqB,GAAG,IAAI,aAAa,uBAAuB,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC9G,uBAAuB,CAAC,IAAI,CAAC,KAAK,qBAAqB,IAAI,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO;YACL,MAAM,IAAI,CAAC,YAAY,EAAE;YACzB,EAAE;YACF,yBAAyB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,oCAAoC,EAAE,EAAE,CAAC;YAC7H,EAAE;YACF,oBAAoB;YACpB,GAAG,uBAAuB;YAC1B,EAAE;YACF,yCAAyC;YACzC,EAAE;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -5,7 +5,11 @@ export declare class DocBuilderProfile extends DocBuilderRoot {
5
5
  promptKey: PromptTemplate;
6
6
  placeholder: string;
7
7
  xmlRootKey: string;
8
+ docsSection: string;
8
9
  static buildIndexTable(prefix: string, profileDescriptions: any[], filterObject?: string | null): string[];
9
10
  buildInitialMarkdownLines(): Promise<string[]>;
10
11
  stripXmlForAi(): Promise<string>;
12
+ generateJsonTree(): Promise<any>;
13
+ buildObjectFieldsTree(attributeValue: any, attributeTreeRoot: any): void;
14
+ getSubElement(element: any): any;
11
15
  }
@@ -1,11 +1,13 @@
1
1
  import { XMLBuilder, XMLParser } from "fast-xml-parser";
2
- import { buildGenericMarkdownTable } from "../utils/flowVisualiser/nodeFormatUtils.js";
2
+ import { buildGenericMarkdownTable, prettifyFieldName } from "../utils/flowVisualiser/nodeFormatUtils.js";
3
3
  import { DocBuilderRoot } from "./docBuilderRoot.js";
4
+ /* jscpd:ignore-start */
4
5
  export class DocBuilderProfile extends DocBuilderRoot {
5
6
  docType = "Profile";
6
7
  promptKey = "PROMPT_DESCRIBE_PROFILE";
7
8
  placeholder = "<!-- Profile description -->";
8
9
  xmlRootKey = "Profile";
10
+ docsSection = "profiles";
9
11
  static buildIndexTable(prefix, profileDescriptions, filterObject = null) {
10
12
  const filteredProfiles = filterObject ? profileDescriptions.filter(profile => profile.impactedObjects.includes(filterObject)) : profileDescriptions;
11
13
  if (filteredProfiles.length === 0) {
@@ -31,9 +33,12 @@ export class DocBuilderProfile extends DocBuilderRoot {
31
33
  return [
32
34
  `## ${this.metadataName}`,
33
35
  '',
36
+ '<div id="jstree-container"></div>',
37
+ '',
38
+ buildGenericMarkdownTable(this.parsedXmlObject, ["userLicense", "custom"], "## Profile attributes", []),
39
+ '',
34
40
  '<!-- Profile description -->',
35
41
  '',
36
- buildGenericMarkdownTable(this.parsedXmlObject, ["allFields"], "## Profile attributes", []),
37
42
  ];
38
43
  }
39
44
  stripXmlForAi() {
@@ -82,5 +87,115 @@ export class DocBuilderProfile extends DocBuilderRoot {
82
87
  const xmlStripped = new XMLBuilder().build(xmlObj);
83
88
  return xmlStripped;
84
89
  }
90
+ // Generate json for display with jsTree npm library
91
+ async generateJsonTree() {
92
+ const xmlObj = new XMLParser().parse(this.metadataXml);
93
+ const treeElements = [];
94
+ for (const profileRootAttribute of Object.keys(xmlObj?.Profile || {})) {
95
+ if (["custom", "userLicense"].includes(profileRootAttribute)) {
96
+ continue;
97
+ }
98
+ let attributeValue = xmlObj.Profile[profileRootAttribute];
99
+ if (!Array.isArray(attributeValue)) {
100
+ attributeValue = [attributeValue];
101
+ }
102
+ const attributeTreeRoot = {
103
+ text: prettifyFieldName(profileRootAttribute),
104
+ icon: "fa-solid fa-folder icon-blue",
105
+ a_attr: { href: null },
106
+ children: [],
107
+ };
108
+ if (profileRootAttribute === "fieldPermissions") {
109
+ // Sort custom fields by object name
110
+ this.buildObjectFieldsTree(attributeValue, attributeTreeRoot);
111
+ }
112
+ else {
113
+ for (const element of attributeValue) {
114
+ const subElement = this.getSubElement(element);
115
+ attributeTreeRoot.children.push(subElement);
116
+ }
117
+ attributeTreeRoot.text = attributeTreeRoot.text + " (" + attributeTreeRoot.children.length + ")";
118
+ }
119
+ treeElements.push(attributeTreeRoot);
120
+ }
121
+ return treeElements;
122
+ }
123
+ buildObjectFieldsTree(attributeValue, attributeTreeRoot) {
124
+ const elementsByObject = [];
125
+ for (const element of attributeValue) {
126
+ const objectName = element.field.split('.')[0];
127
+ if (!elementsByObject[objectName]) {
128
+ elementsByObject[objectName] = [];
129
+ }
130
+ elementsByObject[objectName].push(element);
131
+ }
132
+ // Create object nodes and fields as children
133
+ let totalFields = 0;
134
+ for (const objectName of Object.keys(elementsByObject)) {
135
+ const objectNode = {
136
+ text: objectName + " (" + elementsByObject[objectName].length + ")",
137
+ icon: "fa-solid fa-folder icon-blue",
138
+ a_attr: { href: null },
139
+ children: [],
140
+ };
141
+ totalFields += elementsByObject[objectName].length;
142
+ for (const element of elementsByObject[objectName]) {
143
+ const subElement = this.getSubElement(element);
144
+ objectNode.children.push(subElement);
145
+ }
146
+ attributeTreeRoot.children.push(objectNode);
147
+ }
148
+ attributeTreeRoot.text = attributeTreeRoot.text + " (" + totalFields + ")";
149
+ }
150
+ getSubElement(element) {
151
+ const subElement = {
152
+ text: element.name || element.apexClass || element.flow || element.apexPage || element.object || element.tab || element.application || element.field || element.layout || element.recordType || element.externalDataSource || element.startAddress || "ERROR: " + JSON.stringify(element),
153
+ icon:
154
+ // Common properties
155
+ element.default === true ? "fa-solid fa-star icon-success" :
156
+ element.visible === true ? "fa-solid fa-eye icon-success" :
157
+ element.visible === false ? "fa-solid fa-eye-slash icon-error" :
158
+ element.enabled === true ? "fa-solid fa-circle-check icon-success" :
159
+ element.enabled === false ? "fa-solid fa-circle-xmark icon-error" :
160
+ // Custom fields
161
+ element.editable === true ? "fa-solid fa-square-pen icon-success" :
162
+ element.readable === true ? "fa-solid fa-eye icon-success" :
163
+ element.readable === false ? "fa-solid fa-eye-slash icon-error" :
164
+ // Custom objects
165
+ element.allowEdit === true ? "fa-solid fa-square-pen icon-success" :
166
+ element.allowRead === true ? "fa-solid fa-eye icon-success" :
167
+ element.allowRead === false ? "fa-solid fa-eye-slash icon-error" :
168
+ // Tabs
169
+ ["DefaultOn", "Visible"].includes(element.visibility) ? "fa-solid fa-eye icon-success" :
170
+ element.visibility === "DefaultOff" ? "fa-solid fa-circle-notch icon-warning" :
171
+ element.visibility === "Hidden" ? "fa-solid fa-eye-slash icon-error" :
172
+ "fa-solid fa-file",
173
+ a_attr: { href: null },
174
+ children: [],
175
+ };
176
+ subElement.children = Object.keys(element).map((key) => {
177
+ const icon = (element[key] === true) ? "fa-solid fa-circle-check icon-success" :
178
+ (element[key] === false) ? "fa-solid fa-circle-xmark icon-error" :
179
+ (["DefaultOn", "Visible"].includes(element[key])) ? "fa-solid fa-eye icon-success" :
180
+ (element[key] === "Hidden") ? "fa-solid fa-eye-slash icon-error" :
181
+ (element[key] === "DefaultOff") ? "fa-solid fa-circle-notch icon-warning" :
182
+ "";
183
+ return {
184
+ text: prettifyFieldName(key) + ": " + element[key],
185
+ icon: icon,
186
+ a_attr: { href: null },
187
+ };
188
+ });
189
+ // Sort subElement.children to put text as first element
190
+ subElement.children.sort((a, b) => {
191
+ if (a.text.endsWith(subElement.text))
192
+ return -1;
193
+ if (b.text.endsWith(subElement.text))
194
+ return 1;
195
+ return 0;
196
+ });
197
+ return subElement;
198
+ }
85
199
  }
200
+ /* jscpd:ignore-end */
86
201
  //# sourceMappingURL=docBuilderProfile.js.map