sfdx-hardis 5.17.3 → 5.18.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 CHANGED
@@ -4,6 +4,15 @@
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.18.0] 2025-02-03
8
+
9
+ - New command [hardis:doc:fieldusage](https://sfdx-hardis.cloudity.com/hardis/doc/fieldusage/) : generate a report with custom field's usage from metadata dependencies.
10
+
11
+ ## [5.17.4] 2025-01-31
12
+
13
+ - [hardis:doc:project2markdown](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/): Fixes pages menu
14
+ - Stealth feature
15
+
7
16
  ## [5.17.3] 2025-01-29
8
17
 
9
18
  - [hardis:doc:project2markdown](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/): Improve Apex docs markdown
@@ -25,10 +34,10 @@ Note: Can be used with `sfdx plugins:install sfdx-hardis@beta` and docker image
25
34
  - [hardis:doc:project2markdown](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/) enhancements:
26
35
  - Generate Apex classes documentation using `@cparra/apexdocs`, and describe them using AI if available
27
36
  - Generate Lightning Pages documentation and describe them using AI if available
28
- - Display error message in case of XML parsing error
29
- - Do not raise issues when managed items fields don't have descriptions
30
- - Do not raise inactive validation rule issue when the VR is from a managed package
31
- - Fix New JSON coverage formatter is selecting wrong JSON from sf project deploy command
37
+ - Display error message in case of XML parsing error
38
+ - Do not raise issues when managed items fields don't have descriptions
39
+ - Do not raise inactive validation rule issue when the VR is from a managed package
40
+ - Fix New JSON coverage formatter is selecting wrong JSON from sf project deploy command
32
41
 
33
42
  ## [5.16.4] 2025-01-22
34
43
 
@@ -0,0 +1,16 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { Connection } from '@salesforce/core';
3
+ import { AnyJson } from '@salesforce/ts-types';
4
+ export default class HardisDocFieldusage extends SfCommand<any> {
5
+ static flags: any;
6
+ static description: string;
7
+ static examples: string[];
8
+ querySObjects(connection: Connection, sObjectsFilter?: string[]): Promise<any>;
9
+ getFilteredSObjects(connection: Connection, sObjectsFilter?: string[]): Promise<Record<string, {
10
+ publisherId: string;
11
+ fields: any[];
12
+ }>>;
13
+ queryCustomFields(connection: Connection, sObjectName: string): Promise<any>;
14
+ queryMetadataComponentDependency(connection: Connection, fieldIds: string[]): Promise<any>;
15
+ run(): Promise<AnyJson>;
16
+ }
@@ -0,0 +1,145 @@
1
+ import { requiredOrgFlagWithDeprecations, SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { Flags } from '@salesforce/sf-plugins-core';
3
+ import sortArray from 'sort-array';
4
+ import { generateReports, uxLog } from '../../../common/utils/index.js';
5
+ import { soqlQuery, soqlQueryTooling } from '../../../common/utils/apiUtils.js';
6
+ export default class HardisDocFieldusage extends SfCommand {
7
+ static flags = {
8
+ 'target-org': requiredOrgFlagWithDeprecations,
9
+ 'sObjects': Flags.string({
10
+ char: 's',
11
+ description: 'Comma-separated list of sObjects to filter',
12
+ required: false,
13
+ }),
14
+ };
15
+ static description = `
16
+ Retrieves custom field usage from metadata dependencies for specified sObjects.
17
+ !["Find custom fields usage"](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/doc-fieldusage.png)
18
+ `;
19
+ static examples = [
20
+ '$ sf hardis:doc:fieldusage',
21
+ '$ sf hardis:doc:fieldusage --sObjects Account,Contact,Opportunity',
22
+ '$ sf hardis:doc:fieldusage --target-org myOrgAlias --sObjects CustomObject__c'
23
+ ];
24
+ async querySObjects(connection, sObjectsFilter) {
25
+ let sObjectsQuery = `
26
+ SELECT Id, DeveloperName, PublisherId, IsCustomizable, IsCustomSetting
27
+ FROM EntityDefinition
28
+ WHERE IsCustomizable = true
29
+ `;
30
+ if (sObjectsFilter && sObjectsFilter.length > 0) {
31
+ const sObjectsList = sObjectsFilter
32
+ .map(sObject => sObject.trim().replace(/__c$/, ''))
33
+ .map(sObject => `'${sObject}'`)
34
+ .join(',');
35
+ sObjectsQuery += ` AND DeveloperName IN (${sObjectsList})`;
36
+ }
37
+ const sObjectResults = await soqlQuery(sObjectsQuery, connection);
38
+ uxLog(this, `Found ${sObjectResults.records.length} sObjects.`);
39
+ return sObjectResults;
40
+ }
41
+ async getFilteredSObjects(connection, sObjectsFilter) {
42
+ const sObjectResults = await this.querySObjects(connection, sObjectsFilter);
43
+ const sObjectsDict = {};
44
+ sObjectResults.records.forEach((record) => {
45
+ if (!record.DeveloperName.endsWith('__Share') && !record.DeveloperName.endsWith('__ChangeEvent')) {
46
+ sObjectsDict[record.DeveloperName] = {
47
+ publisherId: record.PublisherId,
48
+ fields: []
49
+ };
50
+ }
51
+ });
52
+ return sObjectsDict;
53
+ }
54
+ async queryCustomFields(connection, sObjectName) {
55
+ uxLog(this, `Extracting fields for sObject: ${sObjectName}`);
56
+ const queryTooling = `
57
+ SELECT Id, DeveloperName
58
+ FROM CustomField
59
+ WHERE EntityDefinition.DeveloperName = '${sObjectName}'
60
+ `;
61
+ const fieldResults = await soqlQueryTooling(queryTooling, connection);
62
+ return fieldResults;
63
+ }
64
+ async queryMetadataComponentDependency(connection, fieldIds) {
65
+ const metadataQuery = `
66
+ SELECT MetadataComponentId, MetadataComponentType, MetadataComponentName, RefMetadataComponentName, RefMetadataComponentId
67
+ FROM MetadataComponentDependency
68
+ WHERE RefMetadataComponentId IN (${fieldIds.join(',')})
69
+ `;
70
+ const dependencyResults = await soqlQueryTooling(metadataQuery, connection);
71
+ return dependencyResults;
72
+ }
73
+ async run() {
74
+ const { flags } = await this.parse(HardisDocFieldusage);
75
+ const connection = flags['target-org'].getConnection();
76
+ const sObjectsFilter = flags['sObjects'] ? flags['sObjects'].split(',').map(s => s.trim()) : undefined;
77
+ const sObjectsDict = await this.getFilteredSObjects(connection, sObjectsFilter);
78
+ const fieldQueries = Object.keys(sObjectsDict).map(async (sObjectName) => {
79
+ const fieldResults = await this.queryCustomFields(connection, sObjectName);
80
+ if (fieldResults.records.length > 0) {
81
+ fieldResults.records.forEach((field) => {
82
+ sObjectsDict[sObjectName].fields.push({
83
+ id: field.Id,
84
+ name: field.DeveloperName,
85
+ type: "custom",
86
+ usedIn: []
87
+ });
88
+ });
89
+ }
90
+ });
91
+ await Promise.all(fieldQueries);
92
+ const dependencyQueries = Object.entries(sObjectsDict).map(async ([sObjectName, { fields }]) => {
93
+ if (fields.length === 0) {
94
+ uxLog(this, `sObject ${sObjectName} does not have any custom fields, skipping dependencies.`);
95
+ return;
96
+ }
97
+ uxLog(this, `Retrieving dependencies for sObject: ${sObjectName}`);
98
+ const fieldIds = fields.map((field) => `'${field.id}'`);
99
+ const dependencyResults = await this.queryMetadataComponentDependency(connection, fieldIds);
100
+ dependencyResults.records.forEach((dep) => {
101
+ const field = fields.find(f => f.id === dep.RefMetadataComponentId);
102
+ if (field) {
103
+ field.usedIn.push({ id: dep.MetadataComponentId, type: dep.MetadataComponentType, name: dep.MetadataComponentName });
104
+ }
105
+ });
106
+ });
107
+ await Promise.all(dependencyQueries);
108
+ const columns = [
109
+ { key: 'sObjectName', header: 'sObject Name' },
110
+ { key: 'fieldName', header: 'Field Name' },
111
+ { key: 'fieldType', header: 'Field Type' },
112
+ { key: 'dependencyType', header: 'Dependency Type' },
113
+ { key: 'dependencyName', header: 'Dependency Name' }
114
+ ];
115
+ const rows = [];
116
+ for (const [sObjectName, { fields }] of Object.entries(sObjectsDict)) {
117
+ fields.forEach((field) => {
118
+ field.usedIn.forEach((dep) => {
119
+ const row = {};
120
+ row[columns[0].key] = sObjectName;
121
+ row[columns[1].key] = field.name;
122
+ row[columns[2].key] = field.type;
123
+ row[columns[3].key] = dep.type;
124
+ row[columns[4].key] = dep.name;
125
+ rows.push(row);
126
+ });
127
+ });
128
+ }
129
+ const resultSorted = sortArray(rows, {
130
+ by: [columns[0].key, columns[1].key, columns[3].key],
131
+ order: ['asc', 'asc', 'asc'],
132
+ });
133
+ console.table(rows);
134
+ const reportFiles = await generateReports(resultSorted, columns, this, {
135
+ logFileName: 'fields-usage',
136
+ logLabel: 'Find fields usage',
137
+ });
138
+ return {
139
+ outputString: 'Processed fieldusage doc',
140
+ result: resultSorted,
141
+ reportFiles,
142
+ };
143
+ }
144
+ }
145
+ //# sourceMappingURL=fieldusage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldusage.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/fieldusage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ import Cloudflare from 'cloudflare';
4
+ export default class MkDocsToCloudflare extends SfCommand<any> {
5
+ static title: string;
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: any;
9
+ static requiresProject: boolean;
10
+ protected debugMode: boolean;
11
+ protected apiEmail: string | undefined;
12
+ protected apiToken: string | undefined;
13
+ protected accountId: string | undefined;
14
+ protected client: Cloudflare;
15
+ protected projectName: string | null;
16
+ protected currentGitBranch: string | null;
17
+ protected defaultLoginMethodType: string;
18
+ protected defaultAccessEmailDomain: string;
19
+ protected pagesProjectName: string;
20
+ protected pagesProject: Cloudflare.Pages.Projects.Project;
21
+ protected accessPolicyName: string;
22
+ protected accessPolicy: Cloudflare.ZeroTrust.Access.Policies.PolicyGetResponse | null;
23
+ protected accessApp: Cloudflare.ZeroTrust.Access.Applications.ApplicationGetResponse.SelfHostedApplication | null;
24
+ run(): Promise<AnyJson>;
25
+ private setupCloudflareClient;
26
+ private ensureCloudflarePagesProject;
27
+ private ensureCloudflareAccessPolicy;
28
+ private ensureCloudflareAccessApplication;
29
+ private ensureCloudflareAccessApplicationPolicy;
30
+ private uploadHtmlPages;
31
+ }
@@ -0,0 +1,222 @@
1
+ /* jscpd:ignore-start */
2
+ import { SfCommand, Flags, requiredOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
3
+ import fs from 'fs-extra';
4
+ import c from "chalk";
5
+ import * as path from "path";
6
+ import { Messages, SfError } from '@salesforce/core';
7
+ import Cloudflare from 'cloudflare';
8
+ import { execCommand, getCurrentGitBranch, uxLog } from '../../../common/utils/index.js';
9
+ import { CONSTANTS } from '../../../config/index.js';
10
+ import which from 'which';
11
+ import { generateMkDocsHTML } from '../../../common/utils/docUtils.js';
12
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
13
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
14
+ export default class MkDocsToCloudflare extends SfCommand {
15
+ static title = 'MkDocs to Cloudflare';
16
+ static description = `Generates MkDocs HTML pages and upload them to Cloudflare as a static pages
17
+
18
+ This command performs the following operations:
19
+
20
+ - Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)
21
+ - Creates a Cloudflare pages app
22
+ - Assigns a policy restricting access to the application
23
+ - Opens the new WebSite in the default browser (only if not in CI context)
24
+
25
+ Note: the documentation must have been previously generated using "sf hardis:doc:project2markdown --with-history"
26
+
27
+ You can:
28
+
29
+ - Override default styles by customizing mkdocs.yml
30
+
31
+ More info on [Documentation section](${CONSTANTS.DOC_URL_ROOT}/salesforce-project-documentation/)
32
+
33
+
34
+ | Variable | Description | Default |
35
+ | :----------------------------------------- | :---------- | :-----: |
36
+ | \`CLOUDFLARE_EMAIL\` | Cloudflare account email | <!--- Required --> |
37
+ | \`CLOUDFLARE_API_KEY\` | Cloudflare API key | <!--- Required --> |
38
+ | \`CLOUDFLARE_ACCOUNT_ID\` | Cloudflare account | <!--- Required --> |
39
+ | \`CLOUDFLARE_PROJECT_NAME\` | Project name, that will also be used for site URL | Built from git branch name |
40
+ | \`CLOUDFLARE_DEFAULT_LOGIN_METHOD_TYPE\` | Cloudflare default login method type | \`onetimepin\` |
41
+ | \`CLOUDFLARE_DEFAULT_ACCESS_EMAIL_DOMAIN\` | Cloudflare default access email domain | \`@cloudity.com\` |
42
+
43
+ `;
44
+ static examples = [
45
+ '$ sf hardis:doc:mkdocs-to-cf',
46
+ '$ CLOUDFLARE_EMAIL=xxx@xxx.com CLOUDFLARE_API_TOKEN=zzzzzz CLOUDFLARE_ACCOUNT_ID=zzzzz sf hardis:doc:mkdocs-to-cf',
47
+ ];
48
+ static flags = {
49
+ debug: Flags.boolean({
50
+ char: 'd',
51
+ default: false,
52
+ description: messages.getMessage('debugMode'),
53
+ }),
54
+ websocket: Flags.string({
55
+ description: messages.getMessage('websocket'),
56
+ }),
57
+ skipauth: Flags.boolean({
58
+ description: 'Skip authentication check when a default username is required',
59
+ }),
60
+ 'target-org': requiredOrgFlagWithDeprecations,
61
+ };
62
+ // Set this to true if your command requires a project workspace; 'requiresProject' is false by default
63
+ static requiresProject = true;
64
+ debugMode = false;
65
+ apiEmail;
66
+ apiToken;
67
+ accountId;
68
+ client;
69
+ projectName;
70
+ currentGitBranch;
71
+ defaultLoginMethodType = process.env.CLOUDFLARE_DEFAULT_LOGIN_METHOD_TYPE || "onetimepin";
72
+ defaultAccessEmailDomain = process.env.CLOUDFLARE_DEFAULT_ACCESS_EMAIL_DOMAIN || "@cloudity.com";
73
+ pagesProjectName;
74
+ pagesProject;
75
+ accessPolicyName;
76
+ accessPolicy;
77
+ accessApp;
78
+ /* jscpd:ignore-end */
79
+ async run() {
80
+ const { flags } = await this.parse(MkDocsToCloudflare);
81
+ this.debugMode = flags.debug || false;
82
+ // Check if the project is a MkDocs project
83
+ const mkdocsYmlFile = path.join(process.cwd(), "mkdocs.yml");
84
+ if (!fs.existsSync(mkdocsYmlFile)) {
85
+ throw new SfError('This command needs a mkdocs.yml config file. Generate one using "sf hardis:doc:project2markdown --with-history"');
86
+ }
87
+ this.currentGitBranch = await getCurrentGitBranch() || "main";
88
+ this.projectName = (process.env.CLOUDFLARE_PROJECT_NAME || this.currentGitBranch).replace(/\//g, "-").toLowerCase();
89
+ this.pagesProjectName = `sfdoc-${this.projectName}`;
90
+ this.accessPolicyName = `access-policy-${this.projectName}`;
91
+ // Create connection to Cloudflare
92
+ this.setupCloudflareClient();
93
+ // Generate HTML pages
94
+ await generateMkDocsHTML();
95
+ // Get or Create Cloudflare Pages project
96
+ await this.ensureCloudflarePagesProject();
97
+ // Ensure there is a policy restricting access to the application
98
+ await this.ensureCloudflareAccessPolicy();
99
+ // Ensure there is an access application
100
+ await this.ensureCloudflareAccessApplication();
101
+ // Ensure the access application has the right policy
102
+ await this.ensureCloudflareAccessApplicationPolicy();
103
+ // Upload pages
104
+ await this.uploadHtmlPages();
105
+ return { success: true };
106
+ }
107
+ setupCloudflareClient() {
108
+ this.apiEmail = process.env.CLOUDFLARE_EMAIL;
109
+ this.apiToken = process.env.CLOUDFLARE_API_TOKEN;
110
+ this.accountId = process.env.CLOUDFLARE_ACCOUNT_ID;
111
+ if (!this.apiEmail || !this.accountId || !this.apiToken) {
112
+ throw new Error('Missing CLOUDFLARE_EMAIL or CLOUDFLARE_API_TOKEN or CLOUDFLARE_ACCOUNT_ID');
113
+ }
114
+ this.client = new Cloudflare({
115
+ apiEmail: this.apiEmail,
116
+ apiToken: this.apiToken,
117
+ });
118
+ uxLog(this, c.grey("Cloudflare client info found"));
119
+ }
120
+ async ensureCloudflarePagesProject() {
121
+ uxLog(this, c.cyan("Checking Cloudflare Pages project..."));
122
+ try {
123
+ this.pagesProject = await this.client.pages.projects.get(this.pagesProjectName, { account_id: this.accountId || "" });
124
+ uxLog(this, c.cyan("Cloudflare Pages project found: " + this.pagesProjectName));
125
+ }
126
+ catch (e) {
127
+ uxLog(this, c.grey(e.message));
128
+ this.pagesProject = await this.client.pages.projects.create({
129
+ name: this.pagesProjectName,
130
+ account_id: this.accountId || "",
131
+ production_branch: this.currentGitBranch || "main",
132
+ });
133
+ uxLog(this, c.green("Cloudflare Pages project created: " + this.pagesProjectName));
134
+ }
135
+ uxLog(this, c.grey(JSON.stringify(this.pagesProject, null, 2)));
136
+ }
137
+ async ensureCloudflareAccessPolicy() {
138
+ uxLog(this, c.cyan("Checking Cloudflare Access policy..."));
139
+ const accessPolicies = await this.client.zeroTrust.access.policies.list({ account_id: this.accountId || "" });
140
+ this.accessPolicy = accessPolicies.result.find((p) => p.name === this.accessPolicyName) || null;
141
+ if (this.accessPolicy) {
142
+ uxLog(this, c.cyan("Cloudflare policy found: " + this.accessPolicyName));
143
+ }
144
+ else {
145
+ const loginMethods = await this.client.zeroTrust.identityProviders.list({ account_id: this.accountId || "" });
146
+ const defaultLoginMethod = loginMethods.result.find((m) => m.type === this.defaultLoginMethodType);
147
+ if (!defaultLoginMethod) {
148
+ throw new SfError(`No login method of type ${this.defaultLoginMethodType} found in Cloudflare account. Please create one in Zero Trust/Settings before running this command`);
149
+ }
150
+ this.accessPolicy = await this.client.zeroTrust.access.policies.create({
151
+ name: this.accessPolicyName,
152
+ account_id: this.accountId || "",
153
+ decision: "allow",
154
+ include: [
155
+ { login_method: { id: defaultLoginMethod.id } }
156
+ ],
157
+ require: [
158
+ {
159
+ email_domain: { domain: this.defaultAccessEmailDomain },
160
+ }
161
+ ],
162
+ });
163
+ uxLog(this, c.green("Cloudflare policy created: " + this.accessPolicyName));
164
+ }
165
+ uxLog(this, c.grey(JSON.stringify(this.accessPolicy, null, 2)));
166
+ }
167
+ async ensureCloudflareAccessApplication() {
168
+ uxLog(this, c.cyan("Checking Cloudflare access application..."));
169
+ const accessApplications = await this.client.zeroTrust.access.applications.list({ account_id: this.accountId || "" });
170
+ this.accessApp = (accessApplications.result.find((a) => a.name === this.pagesProject?.domains?.[0]) || null);
171
+ if (this.accessApp) {
172
+ uxLog(this, c.cyan("Cloudflare access application found: " + this.pagesProject?.domains?.[0]));
173
+ }
174
+ else {
175
+ this.accessApp = await this.client.zeroTrust.access.applications.create({
176
+ name: this.pagesProject?.domains?.[0],
177
+ account_id: this.accountId || "",
178
+ type: "self_hosted",
179
+ domain: this.pagesProject?.domains?.[0],
180
+ destinations: [
181
+ {
182
+ "type": "public",
183
+ "uri": `${this.pagesProject?.domains?.[0]}`
184
+ },
185
+ {
186
+ "type": "public",
187
+ "uri": `*.${this.pagesProject?.domains?.[0]}`
188
+ }
189
+ ]
190
+ });
191
+ uxLog(this, c.green("Cloudflare access application created: " + this.pagesProject?.domains?.[0]));
192
+ }
193
+ uxLog(this, c.grey(JSON.stringify(this.accessApp, null, 2)));
194
+ }
195
+ async ensureCloudflareAccessApplicationPolicy() {
196
+ uxLog(this, c.cyan("Checking Cloudflare access application policy..."));
197
+ if (this.accessApp?.policies?.length && this.accessApp.policies.find(p => p.id === this.accessPolicy?.id)) {
198
+ uxLog(this, c.cyan(`Access Application ${this.accessApp.name} already has the policy ${this.accessPolicy?.name}`));
199
+ }
200
+ else {
201
+ this.accessApp = (await this.client.zeroTrust.access.applications.update(this.accessApp?.id || "", {
202
+ account_id: this.accountId,
203
+ domain: this.accessApp?.domain,
204
+ destinations: this.accessApp?.destinations,
205
+ type: this.accessApp?.type,
206
+ policies: [this.accessPolicy?.id || ""],
207
+ }));
208
+ uxLog(this, c.green(`Access Application ${this.accessApp?.name} updated with the policy ${this.accessPolicy?.name}`));
209
+ }
210
+ uxLog(this, c.grey(JSON.stringify(this.accessApp, null, 2)));
211
+ }
212
+ async uploadHtmlPages() {
213
+ uxLog(this, c.cyan("Uploading HTML pages to Cloudflare Pages..."));
214
+ let wranglerCommand = `wrangler pages publish ./site --project-name="${this.pagesProjectName}" --branch=${this.currentGitBranch}`;
215
+ const isWranglerAvailable = await which("wrangler", { nothrow: true });
216
+ if (!isWranglerAvailable) {
217
+ wranglerCommand = "npx --yes " + wranglerCommand;
218
+ }
219
+ await execCommand(wranglerCommand, this, { fail: true, output: true, debug: this.debugMode });
220
+ }
221
+ }
222
+ //# sourceMappingURL=mkdocs-to-cf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdocs-to-cf.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/mkdocs-to-cf.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,6 @@ export default class MkDocsToSalesforce extends SfCommand<any> {
8
8
  static requiresProject: boolean;
9
9
  protected debugMode: boolean;
10
10
  run(): Promise<AnyJson>;
11
- private installMkDocs;
12
- private generateMkDocsHTML;
13
11
  private createDocMetadatas;
14
12
  private uploadDocMetadatas;
15
13
  }
@@ -8,7 +8,7 @@ import { createTempDir, execCommand, isCI, uxLog } from '../../../common/utils/i
8
8
  import { createBlankSfdxProject } from '../../../common/utils/projectUtils.js';
9
9
  import { initPermissionSetAssignments, isProductionOrg } from '../../../common/utils/orgUtils.js';
10
10
  import { CONSTANTS } from '../../../config/index.js';
11
- import { readMkDocsFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
11
+ import { generateMkDocsHTML, readMkDocsFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
12
12
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
13
13
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
14
14
  export default class MkDocsToSalesforce extends SfCommand {
@@ -76,7 +76,7 @@ More info on [Documentation section](${CONSTANTS.DOC_URL_ROOT}/salesforce-projec
76
76
  await writeMkDocsFile(mkdocsYmlFile, mkdocsYmlCopy);
77
77
  try {
78
78
  // Generate HTML pages
79
- await this.generateMkDocsHTML();
79
+ await generateMkDocsHTML();
80
80
  // Create temp sfdx project
81
81
  const tmpDirForSfdxProject = await createTempDir();
82
82
  const tmpProjectPath = await createBlankSfdxProject(tmpDirForSfdxProject);
@@ -107,34 +107,6 @@ More info on [Documentation section](${CONSTANTS.DOC_URL_ROOT}/salesforce-projec
107
107
  throw e;
108
108
  }
109
109
  }
110
- async installMkDocs() {
111
- uxLog(this, c.cyan("Managing mkdocs-material local installation..."));
112
- let mkdocsLocalOk = false;
113
- const installMkDocsRes = await execCommand("pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists", this, { fail: false, output: true, debug: this.debugMode });
114
- if (installMkDocsRes.status === 0) {
115
- mkdocsLocalOk = true;
116
- }
117
- return mkdocsLocalOk;
118
- }
119
- async generateMkDocsHTML() {
120
- const mkdocsLocalOk = await this.installMkDocs();
121
- if (mkdocsLocalOk) {
122
- // Generate MkDocs HTML pages with local MkDocs
123
- uxLog(this, c.cyan("Generating HTML pages with mkdocs..."));
124
- const mkdocsBuildRes = await execCommand("mkdocs build || python -m mkdocs build || py -m mkdocs build", this, { fail: false, output: true, debug: this.debugMode });
125
- if (mkdocsBuildRes.status !== 0) {
126
- throw new SfError('MkDocs build failed:\n' + mkdocsBuildRes.stderr + "\n" + mkdocsBuildRes.stdout);
127
- }
128
- }
129
- else {
130
- // Generate MkDocs HTML pages with Docker
131
- uxLog(this, c.cyan("Generating HTML pages with Docker..."));
132
- const mkdocsBuildRes = await execCommand("docker run --rm -v $(pwd):/docs squidfunk/mkdocs-material build", this, { fail: false, output: true, debug: this.debugMode });
133
- if (mkdocsBuildRes.status !== 0) {
134
- throw new SfError('MkDocs build with docker failed:\n' + mkdocsBuildRes.stderr + "\n" + mkdocsBuildRes.stdout);
135
- }
136
- }
137
- }
138
110
  async createDocMetadatas(resName, defaultProjectPath, type) {
139
111
  uxLog(this, c.cyan(`Creating Static Resource ${resName} metadata...`));
140
112
  const staticResourcePath = path.join(defaultProjectPath, "staticresources");
@@ -1 +1 @@
1
- {"version":3,"file":"mkdocs-to-salesforce.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/mkdocs-to-salesforce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mkdocs-to-salesforce.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/mkdocs-to-salesforce.ts"],"names":[],"mappings":"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"}
@@ -287,7 +287,7 @@ ${Project2Markdown.htmlInstructions}
287
287
  const pageFiles = await listPageFiles(packageDirs);
288
288
  const pagesForMenu = { "All Lightning pages": "pages/index.md" };
289
289
  for (const pagefile of pageFiles) {
290
- const pageName = path.basename(pagefile, "flexipage-meta.xml");
290
+ const pageName = path.basename(pagefile, ".flexipage-meta.xml");
291
291
  const mdFile = path.join(this.outputMarkdownRoot, "pages", pageName + ".md");
292
292
  pagesForMenu[pageName] = "pages/" + pageName + ".md";
293
293
  // Add apex code in documentation