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.
- package/CHANGELOG.md +6 -0
- package/defaults/mkdocs-project-doc/docs/javascripts/jstree-handler.js +111 -0
- package/defaults/mkdocs-project-doc/docs/json/index.md +1 -0
- package/defaults/mkdocs-project-doc/docs/stylesheets/jstree-custom.css +15 -0
- package/defaults/mkdocs-project-doc/mkdocs.yml +4 -0
- package/defaults/monitoring/manifest/package-skip-items.xml +7 -0
- package/lib/commands/hardis/doc/project2markdown.d.ts +5 -1
- package/lib/commands/hardis/doc/project2markdown.js +127 -8
- package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
- package/lib/common/aiProvider/promptTemplates.d.ts +13 -1
- package/lib/common/aiProvider/promptTemplates.js +58 -1
- package/lib/common/aiProvider/promptTemplates.js.map +1 -1
- package/lib/common/docBuilder/docBuilderObject.js +5 -1
- package/lib/common/docBuilder/docBuilderObject.js.map +1 -1
- package/lib/common/docBuilder/docBuilderPackageXml.d.ts +3 -0
- package/lib/common/docBuilder/docBuilderPackageXml.js +77 -0
- package/lib/common/docBuilder/docBuilderPackageXml.js.map +1 -1
- package/lib/common/docBuilder/docBuilderPermissionSet.d.ts +13 -0
- package/lib/common/docBuilder/docBuilderPermissionSet.js +92 -0
- package/lib/common/docBuilder/docBuilderPermissionSet.js.map +1 -0
- package/lib/common/docBuilder/docBuilderPermissionSetGroup.d.ts +11 -0
- package/lib/common/docBuilder/docBuilderPermissionSetGroup.js +60 -0
- package/lib/common/docBuilder/docBuilderPermissionSetGroup.js.map +1 -0
- package/lib/common/docBuilder/docBuilderProfile.d.ts +4 -0
- package/lib/common/docBuilder/docBuilderProfile.js +117 -2
- package/lib/common/docBuilder/docBuilderProfile.js.map +1 -1
- package/lib/common/docBuilder/docBuilderRoot.d.ts +2 -0
- package/lib/common/docBuilder/docBuilderRoot.js +12 -0
- package/lib/common/docBuilder/docBuilderRoot.js.map +1 -1
- package/lib/common/docBuilder/docUtils.js +1 -1
- package/lib/common/docBuilder/docUtils.js.map +1 -1
- package/oclif.manifest.json +318 -318
- 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 "{{
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAE3C,OAAO,GAAG,QAAQ,CAAC;IACnB,SAAS,GAAmB,wBAAwB,CAAC;IACrD,WAAW,GAAG,6BAA6B,CAAC;IAC5C,UAAU,GAAG,cAAc,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,kBAAyB;QACrE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,YAAY;YACZ,EAAE;YACF,qCAAqC;YACrC,sCAAsC;SACvC,CAAC,CAAC;QACH,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,IAAI,KAAK,MAAM,GAAG,iBAAiB,CAAC,IAAI,MAAM,CAAC;YAC5F,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,KAAK,cAAc,MAAM,iBAAiB,CAAC,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI;aAC3G,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,MAAa;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,WAAW;YACX,EAAE;YACF,4CAA4C;YAC5C,6CAA6C;SAC9C,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,KAAK,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;aACzG,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,eAAsB;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,eAAe,GAAG,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,qBAAqB;YACrB,EAAE;YACF,gDAAgD;YAChD,+CAA+C;SAChD,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,KAAK,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,WAAW,IAAI,EAAE,QAAQ,IAAI,CAAC,qBAAqB,MAAM;aAC1H,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,OAAO;YACL,EAAE;YACF,yBAAyB;YACzB,EAAE;YACF,6BAA6B;YAC7B,EAAE;YACF,4BAA4B;YAC5B,EAAE;YACF,sBAAsB;YACtB,EAAE;YACF,qBAAqB;YACrB,EAAE;YACF,sBAAsB;YACtB,EAAE;YACF,yBAAyB;YACzB,EAAE;YACF,+BAA+B;SAChC,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,sCAAsC;QACtC,IAAI,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,YAAY,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;gBACjE,OAAO,UAAU,CAAC,cAAc,CAAC;YACnC,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,IAAI,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACjI,CAAC;QACD,yBAAyB;QACzB,IAAI,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;QAC5C,CAAC;QACD,yBAAyB;QACzB,IAAI,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QACvC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,WAAW,CAAA;IACpB,CAAC;CAEF"}
|
|
@@ -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":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
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
|