sfdx-hardis 5.45.1-beta202508100154.0 → 6.0.2-beta202508110129.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 +7 -1
- package/lib/commands/hardis/doc/fieldusage.js +4 -2
- package/lib/commands/hardis/doc/fieldusage.js.map +1 -1
- package/lib/commands/hardis/doc/project2markdown.js +1 -1
- package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
- package/lib/commands/hardis/lint/access.js +3 -3
- package/lib/commands/hardis/lint/access.js.map +1 -1
- package/lib/commands/hardis/org/diagnose/licenses.js +2 -2
- package/lib/commands/hardis/org/diagnose/licenses.js.map +1 -1
- package/lib/commands/hardis/org/diagnose/releaseupdates.js +3 -3
- package/lib/commands/hardis/org/diagnose/releaseupdates.js.map +1 -1
- package/lib/commands/hardis/org/diagnose/unused-apex-classes.js +3 -4
- package/lib/commands/hardis/org/diagnose/unused-apex-classes.js.map +1 -1
- package/lib/commands/hardis/org/diagnose/unused-connected-apps.js +3 -4
- package/lib/commands/hardis/org/diagnose/unused-connected-apps.js.map +1 -1
- package/lib/commands/hardis/org/generate/packagexmlfull.js +1 -1
- package/lib/commands/hardis/org/generate/packagexmlfull.js.map +1 -1
- package/lib/commands/hardis/org/monitor/all.js +3 -3
- package/lib/commands/hardis/org/monitor/all.js.map +1 -1
- package/lib/commands/hardis/org/monitor/limits.js +2 -2
- package/lib/commands/hardis/org/monitor/limits.js.map +1 -1
- package/lib/commands/hardis/org/purge/flow.js +7 -5
- package/lib/commands/hardis/org/purge/flow.js.map +1 -1
- package/lib/commands/hardis/org/select.js +4 -0
- package/lib/commands/hardis/org/select.js.map +1 -1
- package/lib/commands/hardis/org/user/activateinvalid.js +6 -4
- package/lib/commands/hardis/org/user/activateinvalid.js.map +1 -1
- package/lib/commands/hardis/org/user/freeze.js +4 -6
- package/lib/commands/hardis/org/user/freeze.js.map +1 -1
- package/lib/commands/hardis/org/user/unfreeze.js +4 -6
- package/lib/commands/hardis/org/user/unfreeze.js.map +1 -1
- package/lib/commands/hardis/project/audit/apiversion.js +3 -3
- package/lib/commands/hardis/project/audit/apiversion.js.map +1 -1
- package/lib/commands/hardis/project/audit/callincallout.js +4 -2
- package/lib/commands/hardis/project/audit/callincallout.js.map +1 -1
- package/lib/commands/hardis/project/audit/remotesites.js +4 -2
- package/lib/commands/hardis/project/audit/remotesites.js.map +1 -1
- package/lib/commands/hardis/project/generate/bypass.js +5 -3
- package/lib/commands/hardis/project/generate/bypass.js.map +1 -1
- package/lib/commands/hardis/project/generate/gitdelta.js +2 -2
- package/lib/commands/hardis/project/generate/gitdelta.js.map +1 -1
- package/lib/commands/hardis/scratch/pull.js +2 -0
- package/lib/commands/hardis/scratch/pull.js.map +1 -1
- package/lib/commands/hardis/work/save.js +13 -7
- package/lib/commands/hardis/work/save.js.map +1 -1
- package/lib/common/gitProvider/index.d.ts +2 -0
- package/lib/common/gitProvider/index.js +55 -0
- package/lib/common/gitProvider/index.js.map +1 -1
- package/lib/common/utils/deployUtils.js +1 -1
- package/lib/common/utils/deployUtils.js.map +1 -1
- package/lib/common/utils/filesUtils.js +2 -2
- package/lib/common/utils/filesUtils.js.map +1 -1
- package/lib/common/utils/index.d.ts +1 -0
- package/lib/common/utils/index.js +46 -4
- package/lib/common/utils/index.js.map +1 -1
- package/lib/common/utils/orgUtils.js +5 -5
- package/lib/common/utils/orgUtils.js.map +1 -1
- package/lib/common/utils/prompts.js +1 -1
- package/lib/common/utils/prompts.js.map +1 -1
- package/lib/common/websocketClient.d.ts +4 -2
- package/lib/common/websocketClient.js +4 -1
- package/lib/common/websocketClient.js.map +1 -1
- package/lib/hooks/prerun/check-dependencies.js +143 -0
- package/lib/hooks/prerun/check-dependencies.js.map +1 -1
- package/oclif.lock +1 -9
- package/oclif.manifest.json +703 -703
- package/package.json +1 -3
- package/lib/hooks/init/check-local-sfdx-hardis-files.d.ts +0 -3
- package/lib/hooks/init/check-local-sfdx-hardis-files.js +0 -151
- package/lib/hooks/init/check-local-sfdx-hardis-files.js.map +0 -1
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Swiss-army-knife Toolbox for Salesforce.\n Allows you to define a complete CD/CD Pipeline.\n Orchestrate base commands and assist users with interactive wizards",
|
|
4
4
|
"author": "NicolasVuillamy @nvuillam",
|
|
5
5
|
"bugs": "https://github.com/hardisgroupcom/sfdx-hardis/issues",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "6.0.2-beta202508110129.0",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@actions/github": "^6.0.1",
|
|
9
9
|
"@cparra/apexdocs": "^3.14.0",
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"chalk": "^5.4.1",
|
|
27
27
|
"chrome-launcher": "^1.2.0",
|
|
28
28
|
"cloudflare": "^4.4.1",
|
|
29
|
-
"columnify": "^1.6.0",
|
|
30
29
|
"cosmiconfig": "^9.0.0",
|
|
31
30
|
"cross-spawn": "^7.0.6",
|
|
32
31
|
"csv-stringify": "^6.6.0",
|
|
@@ -169,7 +168,6 @@
|
|
|
169
168
|
"init": [
|
|
170
169
|
"./lib/hooks/init/log",
|
|
171
170
|
"./lib/hooks/init/check-upgrade",
|
|
172
|
-
"./lib/hooks/init/check-local-sfdx-hardis-files",
|
|
173
171
|
"./lib/hooks/init/start-ws-client"
|
|
174
172
|
],
|
|
175
173
|
"prerun": [
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
const hook = async (options) => {
|
|
2
|
-
// Skip hooks from other commands than hardis:scratch commands
|
|
3
|
-
const commandId = options?.id || '';
|
|
4
|
-
if (!commandId.startsWith('hardis')) {
|
|
5
|
-
return;
|
|
6
|
-
}
|
|
7
|
-
if (!options.argv.includes('--json')) {
|
|
8
|
-
await manageGitIgnoreForceIgnore(commandId);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
async function manageGitIgnoreForceIgnore(commandId) {
|
|
12
|
-
// Dynamic imports to improve performances when other CLI commands are called
|
|
13
|
-
const { isCI, isMonitoringJob, uxLog } = await import('../../common/utils/index.js');
|
|
14
|
-
// Run this command only during a monitoring job, or a Release Manager local operation
|
|
15
|
-
const isMon = await isMonitoringJob();
|
|
16
|
-
if (!((isMon && commandId.includes('backup')) || commandId.startsWith("hardis:project:configure:auth") || commandId.startsWith("hardis:doc:mkdocs-to-salesforce") || commandId.startsWith("hardis:doc:project2markdown"))) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
// Dynamic imports to improve performances when other CLI commands are called
|
|
20
|
-
const c = (await import('chalk')).default;
|
|
21
|
-
const fs = (await import('fs-extra')).default;
|
|
22
|
-
const { getConfig, setConfig } = await import('../../config/index.js');
|
|
23
|
-
const { prompts } = await import('../../common/utils/prompts.js');
|
|
24
|
-
const config = await getConfig('user');
|
|
25
|
-
// Manage .gitignore
|
|
26
|
-
if (!config.skipUpdateGitIgnore === true) {
|
|
27
|
-
const gitIgnoreFile = './.gitignore';
|
|
28
|
-
if (fs.existsSync(gitIgnoreFile)) {
|
|
29
|
-
const gitIgnore = await fs.readFile(gitIgnoreFile, 'utf-8');
|
|
30
|
-
const gitIgnoreLines = gitIgnore
|
|
31
|
-
.replace('\r\n', '\n')
|
|
32
|
-
.split('\n')
|
|
33
|
-
.map((line) => line.trim())
|
|
34
|
-
.filter((line) => line !== '');
|
|
35
|
-
let updated = false;
|
|
36
|
-
for (const gitIgnoreMandatoryLine of await getHardisGitRepoIgnoreContent()) {
|
|
37
|
-
if (!gitIgnoreLines.includes(gitIgnoreMandatoryLine)) {
|
|
38
|
-
gitIgnoreLines.push(gitIgnoreMandatoryLine);
|
|
39
|
-
updated = true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Remove duplicates
|
|
43
|
-
const gitIgnoreLinesUnique = Array.from(new Set(gitIgnoreLines));
|
|
44
|
-
// Propose user to apply updates
|
|
45
|
-
if ((updated || gitIgnoreLines.length !== gitIgnoreLinesUnique.length) && !isCI) {
|
|
46
|
-
const confirm = await prompts({
|
|
47
|
-
type: 'select',
|
|
48
|
-
name: 'value',
|
|
49
|
-
initial: true,
|
|
50
|
-
message: c.cyanBright('Your .gitignore is deprecated, do you agree to upgrade it ?'),
|
|
51
|
-
description: 'Updates your .gitignore file with latest sfdx-hardis best practices and removes duplicate entries',
|
|
52
|
-
choices: [
|
|
53
|
-
{ title: 'Yes', value: 'true' },
|
|
54
|
-
{ title: 'No ', value: 'false' },
|
|
55
|
-
{ title: 'Never ask again ', value: 'never' },
|
|
56
|
-
],
|
|
57
|
-
});
|
|
58
|
-
if (confirm.value === 'true' || isCI) {
|
|
59
|
-
await fs.writeFile(gitIgnoreFile, gitIgnoreLinesUnique.join('\n') + '\n', 'utf-8');
|
|
60
|
-
uxLog(this, c.cyan('[sfdx-hardis] Updated .gitignore'));
|
|
61
|
-
}
|
|
62
|
-
if (confirm.value === 'never') {
|
|
63
|
-
await setConfig('project', { skipUpdateGitIgnore: true });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// Manage .forceignore
|
|
69
|
-
if (!config.skipUpdateForceIgnore === true) {
|
|
70
|
-
const forceIgnoreFile = './.forceignore';
|
|
71
|
-
if (fs.existsSync(forceIgnoreFile)) {
|
|
72
|
-
const forceIgnore = await fs.readFile(forceIgnoreFile, 'utf-8');
|
|
73
|
-
const forceIgnoreLines = forceIgnore
|
|
74
|
-
.replace('\r\n', '\n')
|
|
75
|
-
.split('\n')
|
|
76
|
-
.map((line) => line.trim())
|
|
77
|
-
.filter((line) => line !== '');
|
|
78
|
-
let updated = false;
|
|
79
|
-
for (const forceIgnoreMandatoryLine of await getHardisForceIgnoreContent()) {
|
|
80
|
-
if (!forceIgnoreLines.includes(forceIgnoreMandatoryLine)) {
|
|
81
|
-
forceIgnoreLines.push(forceIgnoreMandatoryLine);
|
|
82
|
-
updated = true;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// Remove duplicates
|
|
86
|
-
const forceIgnoreLinesUnique = Array.from(new Set(forceIgnoreLines));
|
|
87
|
-
// Propose user to apply updates
|
|
88
|
-
/* jscpd:ignore-start */
|
|
89
|
-
if ((updated || forceIgnoreLines.length !== forceIgnoreLinesUnique.length) && !isCI) {
|
|
90
|
-
const confirm = await prompts({
|
|
91
|
-
type: 'select',
|
|
92
|
-
name: 'value',
|
|
93
|
-
initial: true,
|
|
94
|
-
message: c.cyanBright('Your .forceignore is deprecated, do you agree to upgrade it ?'),
|
|
95
|
-
description: 'Updates your .forceignore file with latest sfdx-hardis best practices and removes duplicate entries',
|
|
96
|
-
choices: [
|
|
97
|
-
{ title: 'Yes', value: 'true' },
|
|
98
|
-
{ title: 'No ', value: 'false' },
|
|
99
|
-
{ title: 'Never ask again ', value: 'never' },
|
|
100
|
-
],
|
|
101
|
-
});
|
|
102
|
-
/* jscpd:ignore-end */
|
|
103
|
-
if (confirm.value === 'true' || isCI) {
|
|
104
|
-
await fs.writeFile(forceIgnoreFile, forceIgnoreLinesUnique.join('\n') + '\n', 'utf-8');
|
|
105
|
-
uxLog(this, c.cyan('[sfdx-hardis] Updated .forceignore'));
|
|
106
|
-
}
|
|
107
|
-
if (confirm.value === 'never') {
|
|
108
|
-
await setConfig('project', { skipUpdateForceIgnore: true });
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async function getHardisGitRepoIgnoreContent() {
|
|
115
|
-
const gitIgnoreContent = [
|
|
116
|
-
'.cache/',
|
|
117
|
-
'config/user/',
|
|
118
|
-
'hardis-report/',
|
|
119
|
-
'site/',
|
|
120
|
-
'tmp/',
|
|
121
|
-
'**/__tests__/**',
|
|
122
|
-
// Metadatas to be ignored
|
|
123
|
-
'**/cleanDataServices/',
|
|
124
|
-
'**/siteDotComSites/*.site',
|
|
125
|
-
// SFDX Items to be ignored
|
|
126
|
-
'**/data/**/source/**',
|
|
127
|
-
'**/data/**/target/**',
|
|
128
|
-
'force-app/main/default/appMenus/AppSwitcher.appMenu-meta.xml',
|
|
129
|
-
];
|
|
130
|
-
return gitIgnoreContent;
|
|
131
|
-
}
|
|
132
|
-
async function getHardisForceIgnoreContent() {
|
|
133
|
-
const forceIgnoreContent = [
|
|
134
|
-
'**/appMenu/**',
|
|
135
|
-
'**/appSwitcher/**',
|
|
136
|
-
'**/appMenus/AppSwitcher.appMenu-meta.xml',
|
|
137
|
-
'**/connectedApps/**',
|
|
138
|
-
'**/certs/**',
|
|
139
|
-
'**/profilePasswordPolicies/**',
|
|
140
|
-
//"**/objectTranslations/**",
|
|
141
|
-
// "**/profiles/**",
|
|
142
|
-
// "**/settings/**",
|
|
143
|
-
'**/jsconfig.json',
|
|
144
|
-
'**/.eslintrc.json',
|
|
145
|
-
'**/__tests__/**',
|
|
146
|
-
'**SfdxHardisDeferSharingRecalc**',
|
|
147
|
-
];
|
|
148
|
-
return forceIgnoreContent;
|
|
149
|
-
}
|
|
150
|
-
export default hook;
|
|
151
|
-
//# sourceMappingURL=check-local-sfdx-hardis-files.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-local-sfdx-hardis-files.js","sourceRoot":"","sources":["../../../src/hooks/init/check-local-sfdx-hardis-files.ts"],"names":[],"mappings":"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"}
|