@terafina/tffa-sfdx-plugin 14.0.1 → 14.1.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/README.md +38 -9
- package/bin/pmd/apex_ruleset.xml +52 -0
- package/bin/pmd/apex_test_ruleset.xml +1 -1
- package/bin/pmd/apex_vf_ruleset.xml +17 -0
- package/bin/pmd/lib/pmd-visualforce-6.47.0.jar +0 -0
- package/bin/update.sh +0 -1
- package/lib/commands/tffa/apexdoc.js +5 -3
- package/lib/commands/tffa/apexdoc.js.map +1 -1
- package/lib/commands/tffa/lint.js +10 -7
- package/lib/commands/tffa/lint.js.map +1 -1
- package/lib/commands/tffa/source/apiset.d.ts +11 -0
- package/lib/commands/tffa/source/apiset.js +89 -0
- package/lib/commands/tffa/source/apiset.js.map +1 -0
- package/lib/services/lint/apex-class-scan.d.ts +1 -3
- package/lib/services/lint/apex-class-scan.js +16 -109
- package/lib/services/lint/apex-class-scan.js.map +1 -1
- package/lib/services/lint/apex-pmd.d.ts +1 -0
- package/lib/services/lint/apex-pmd.js +10 -4
- package/lib/services/lint/apex-pmd.js.map +1 -1
- package/lib/services/lint/metadata-scan.d.ts +10 -4
- package/lib/services/lint/metadata-scan.js +44 -65
- package/lib/services/lint/metadata-scan.js.map +1 -1
- package/lib/services/lint/rules.d.ts +10 -0
- package/lib/services/lint/rules.js +86 -0
- package/lib/services/lint/rules.js.map +1 -0
- package/lib/utils/constants.d.ts +9 -0
- package/lib/utils/constants.js +14 -0
- package/lib/utils/constants.js.map +1 -0
- package/lib/utils/ignored-files.d.ts +2 -0
- package/lib/utils/ignored-files.js +66 -1
- package/lib/utils/ignored-files.js.map +1 -1
- package/messages/apexdoc.json +5 -0
- package/messages/lint.json +5 -0
- package/messages/ping.json +1 -1
- package/messages/sourceApiSet.json +8 -0
- package/oclif.manifest.json +1 -1
- package/package.json +14 -12
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ $ npm install -g @terafina/tffa-sfdx-plugin
|
|
|
41
41
|
$ sfdx COMMAND
|
|
42
42
|
running command...
|
|
43
43
|
$ sfdx (--version|-v)
|
|
44
|
-
@terafina/tffa-sfdx-plugin/14.0
|
|
44
|
+
@terafina/tffa-sfdx-plugin/14.1.0 linux-x64 node-v16.13.1
|
|
45
45
|
$ sfdx --help [COMMAND]
|
|
46
46
|
USAGE
|
|
47
47
|
$ sfdx COMMAND
|
|
@@ -57,6 +57,7 @@ USAGE
|
|
|
57
57
|
* [`sfdx tffa:lint [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffalint--s-directory--m-integer--r-filepath--e--f--j---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
58
58
|
* [`sfdx tffa:meta [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffameta--s-directory--d-directory--c-directory--o-jsoncsvhuman--f---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
59
59
|
* [`sfdx tffa:ping [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffaping---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
60
|
+
* [`sfdx tffa:source:apiset [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffasourceapiset--h-help--s-directory--a-integer---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
|
|
60
61
|
* [`sfdx version`](#sfdx-version)
|
|
61
62
|
|
|
62
63
|
## `sfdx help [COMMAND]`
|
|
@@ -91,7 +92,7 @@ USAGE
|
|
|
91
92
|
FLAGS
|
|
92
93
|
-d, --destfolder=<value> directory to generate the api docs
|
|
93
94
|
-s, --sourcefolder=<value> [default: .] directory containing
|
|
94
|
-
|
|
95
|
+
sfdx project
|
|
95
96
|
--json format output as json
|
|
96
97
|
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
|
97
98
|
this command invocation
|
|
@@ -103,7 +104,7 @@ EXAMPLES
|
|
|
103
104
|
Generate Apex API Documentation : $sfdx tffa:apexdoc
|
|
104
105
|
```
|
|
105
106
|
|
|
106
|
-
_See code: [src/commands/tffa/apexdoc.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.0
|
|
107
|
+
_See code: [src/commands/tffa/apexdoc.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.1.0/src/commands/tffa/apexdoc.ts)_
|
|
107
108
|
|
|
108
109
|
## `sfdx tffa:lint [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
109
110
|
|
|
@@ -130,10 +131,10 @@ DESCRIPTION
|
|
|
130
131
|
scan a sfdx project and provide a violations report based on defined standards
|
|
131
132
|
|
|
132
133
|
EXAMPLES
|
|
133
|
-
|
|
134
|
+
$sfdx tffa:lint
|
|
134
135
|
```
|
|
135
136
|
|
|
136
|
-
_See code: [src/commands/tffa/lint.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.0
|
|
137
|
+
_See code: [src/commands/tffa/lint.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.1.0/src/commands/tffa/lint.ts)_
|
|
137
138
|
|
|
138
139
|
## `sfdx tffa:meta [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
139
140
|
|
|
@@ -162,11 +163,11 @@ EXAMPLES
|
|
|
162
163
|
scan a sfdx project for metadata : $sfdx tffa:meta
|
|
163
164
|
```
|
|
164
165
|
|
|
165
|
-
_See code: [src/commands/tffa/meta.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.0
|
|
166
|
+
_See code: [src/commands/tffa/meta.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.1.0/src/commands/tffa/meta.ts)_
|
|
166
167
|
|
|
167
168
|
## `sfdx tffa:ping [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
168
169
|
|
|
169
|
-
ping
|
|
170
|
+
ping and test the plugin
|
|
170
171
|
|
|
171
172
|
```
|
|
172
173
|
USAGE
|
|
@@ -178,13 +179,41 @@ FLAGS
|
|
|
178
179
|
this command invocation
|
|
179
180
|
|
|
180
181
|
DESCRIPTION
|
|
181
|
-
ping
|
|
182
|
+
ping and test the plugin
|
|
182
183
|
|
|
183
184
|
EXAMPLES
|
|
184
185
|
$ sfdx tffa:ping
|
|
185
186
|
```
|
|
186
187
|
|
|
187
|
-
_See code: [src/commands/tffa/ping.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.0
|
|
188
|
+
_See code: [src/commands/tffa/ping.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.1.0/src/commands/tffa/ping.ts)_
|
|
189
|
+
|
|
190
|
+
## `sfdx tffa:source:apiset [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
|
|
191
|
+
|
|
192
|
+
Upgrades the current project and all metadata to the latest API version
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
USAGE
|
|
196
|
+
$ sfdx tffa:source:apiset [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel
|
|
197
|
+
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
|
|
198
|
+
|
|
199
|
+
FLAGS
|
|
200
|
+
-a, --api=<value> [default: 55] specify the API
|
|
201
|
+
version
|
|
202
|
+
-h, --help Show CLI help.
|
|
203
|
+
-s, --sourcefolder=<value> [default: .] directory containing
|
|
204
|
+
sfdx project
|
|
205
|
+
--json format output as json
|
|
206
|
+
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
|
|
207
|
+
this command invocation
|
|
208
|
+
|
|
209
|
+
DESCRIPTION
|
|
210
|
+
Upgrades the current project and all metadata to the latest API version
|
|
211
|
+
|
|
212
|
+
EXAMPLES
|
|
213
|
+
$ sfdx tffa:source:apiset
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
_See code: [src/commands/tffa/source/apiset.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v14.1.0/src/commands/tffa/source/apiset.ts)_
|
|
188
217
|
|
|
189
218
|
## `sfdx version`
|
|
190
219
|
|
package/bin/pmd/apex_ruleset.xml
CHANGED
|
@@ -115,4 +115,56 @@
|
|
|
115
115
|
</properties>
|
|
116
116
|
</rule>
|
|
117
117
|
<!-- END ERROR PRONE -->
|
|
118
|
+
<!-- CUSTOM RULES -->
|
|
119
|
+
<rule
|
|
120
|
+
name="ValidateSessionRequiredInControllerRemoteMethods"
|
|
121
|
+
language="apex"
|
|
122
|
+
message="All Custom controllers should have validateSession"
|
|
123
|
+
class="net.sourceforge.pmd.lang.apex.rule.ApexXPathRule"
|
|
124
|
+
>
|
|
125
|
+
<description>All Custom controllers should have validateSession();</description>
|
|
126
|
+
<priority>3</priority>
|
|
127
|
+
<properties>
|
|
128
|
+
<property name="xpath">
|
|
129
|
+
<value>
|
|
130
|
+
<![CDATA[
|
|
131
|
+
//UserClass[(ends-with(@Image, 'Controller')) and (@SuperClassName ='tffa.AbstractController')]
|
|
132
|
+
//Method[
|
|
133
|
+
./ModifierNode/Annotation[@Image = 'RemoteAction']
|
|
134
|
+
and
|
|
135
|
+
(
|
|
136
|
+
not(.//MethodCallExpression[@MethodName='validateSession'])
|
|
137
|
+
)
|
|
138
|
+
]
|
|
139
|
+
]]>
|
|
140
|
+
</value>
|
|
141
|
+
</property>
|
|
142
|
+
</properties>
|
|
143
|
+
</rule>
|
|
144
|
+
<rule
|
|
145
|
+
name="ValidateRecordAccessRequiredInControllerRemoteMethods"
|
|
146
|
+
language="apex"
|
|
147
|
+
message="All Custom controllers should have validateRecordAccess"
|
|
148
|
+
class="net.sourceforge.pmd.lang.apex.rule.ApexXPathRule"
|
|
149
|
+
>
|
|
150
|
+
<description>All Custom controllers should have validateRecordAccess();</description>
|
|
151
|
+
<priority>3</priority>
|
|
152
|
+
<properties>
|
|
153
|
+
<property name="xpath">
|
|
154
|
+
<value>
|
|
155
|
+
<![CDATA[
|
|
156
|
+
//UserClass[(ends-with(@Image, 'Controller')) and (@SuperClassName ='tffa.AbstractController')]
|
|
157
|
+
//Method[
|
|
158
|
+
./ModifierNode/Annotation[@Image = 'RemoteAction']
|
|
159
|
+
and
|
|
160
|
+
(
|
|
161
|
+
not(.//MethodCallExpression[@MethodName='validateRecordAccess'])
|
|
162
|
+
)
|
|
163
|
+
]
|
|
164
|
+
]]>
|
|
165
|
+
</value>
|
|
166
|
+
</property>
|
|
167
|
+
</properties>
|
|
168
|
+
</rule>
|
|
169
|
+
<!--END CUSTOM RULES -->
|
|
118
170
|
</ruleset>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<exclude name="AvoidHardcodingId" />
|
|
25
25
|
</rule>
|
|
26
26
|
<rule ref="category/apex/errorprone.xml/EmptyCatchBlock" message="Avoid empty catch blocks">
|
|
27
|
-
<priority>
|
|
27
|
+
<priority>3</priority>
|
|
28
28
|
<properties>
|
|
29
29
|
<property name="allowCommentedBlocks" value="true" />
|
|
30
30
|
<property name="allowExceptionNameRegex" value="^(ignored|expected)$" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
|
2
|
+
<ruleset
|
|
3
|
+
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
5
|
+
name="TFFA ruleset for Salesforce.com Visualforce pages"
|
|
6
|
+
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd"
|
|
7
|
+
>
|
|
8
|
+
<description>TFFA ruleset for Salesforce.com Visualforce pages</description>
|
|
9
|
+
<exclude-pattern>.*</exclude-pattern>
|
|
10
|
+
<include-pattern>.*/app/main/default/pages/.*</include-pattern>
|
|
11
|
+
<!-- SECURITY -->
|
|
12
|
+
<rule ref="category/vf/security.xml">
|
|
13
|
+
<exclude name="VfCsrf" />
|
|
14
|
+
</rule>
|
|
15
|
+
<!-- SECURITY -->
|
|
16
|
+
|
|
17
|
+
</ruleset>
|
|
Binary file
|
package/bin/update.sh
CHANGED
|
@@ -14,6 +14,8 @@ const perf_hooks_1 = require("perf_hooks");
|
|
|
14
14
|
const line_reader_1 = tslib_1.__importDefault(require("../../services/apexdoc/common/line-reader"));
|
|
15
15
|
const utils_1 = tslib_1.__importDefault(require("../../services/apexdoc/common/utils"));
|
|
16
16
|
const array_utils_1 = require("../../services/apexdoc/common/array-utils");
|
|
17
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
18
|
+
const messages = core_1.Messages.loadMessages('@terafina/tffa-sfdx-plugin', 'apexdoc');
|
|
17
19
|
class ApexDoc extends command_1.SfdxCommand {
|
|
18
20
|
async run() {
|
|
19
21
|
await core_1.SfdxProject.resolve(this.flags.sourcefolder);
|
|
@@ -263,17 +265,17 @@ class ApexDoc extends command_1.SfdxCommand {
|
|
|
263
265
|
}
|
|
264
266
|
}
|
|
265
267
|
exports.default = ApexDoc;
|
|
266
|
-
ApexDoc.description = '
|
|
268
|
+
ApexDoc.description = messages.getMessage('commandDescription');
|
|
267
269
|
ApexDoc.examples = [`Generate Apex API Documentation :\t$sfdx tffa:apexdoc `];
|
|
268
270
|
ApexDoc.flagsConfig = {
|
|
269
271
|
sourcefolder: command_1.flags.directory({
|
|
270
272
|
char: 's',
|
|
271
|
-
description: '
|
|
273
|
+
description: messages.getMessage('sourceFolderDescription'),
|
|
272
274
|
default: '.'
|
|
273
275
|
}),
|
|
274
276
|
destfolder: command_1.flags.directory({
|
|
275
277
|
char: 'd',
|
|
276
|
-
description: '
|
|
278
|
+
description: messages.getMessage('destFolderDescription')
|
|
277
279
|
})
|
|
278
280
|
};
|
|
279
281
|
//# sourceMappingURL=apexdoc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apexdoc.js","sourceRoot":"","sources":["../../../src/commands/tffa/apexdoc.ts"],"names":[],"mappings":";AAAA;;IAEI;;;AAEJ,iDAAyD;AACzD,qFAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"apexdoc.js","sourceRoot":"","sources":["../../../src/commands/tffa/apexdoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,10 @@ const apex_class_scan_1 = tslib_1.__importDefault(require("../../services/lint/a
|
|
|
10
10
|
const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
|
|
11
11
|
const metadata_scan_1 = tslib_1.__importDefault(require("../../services/lint/metadata-scan"));
|
|
12
12
|
const apex_pmd_1 = tslib_1.__importDefault(require("../../services/lint/apex-pmd"));
|
|
13
|
+
const constants_1 = require("../../utils/constants");
|
|
14
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
15
|
+
const messages = core_1.Messages.loadMessages('@terafina/tffa-sfdx-plugin', 'lint');
|
|
13
16
|
class Lint extends command_1.SfdxCommand {
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
17
|
async run() {
|
|
16
18
|
const project = await core_1.SfdxProject.resolve(this.flags.sourcefolder);
|
|
17
19
|
const projectJson = await project.resolveProjectConfig();
|
|
@@ -24,7 +26,8 @@ class Lint extends command_1.SfdxCommand {
|
|
|
24
26
|
let violations = [];
|
|
25
27
|
await ignored_files_1.default.init(this.flags.sourcefolder);
|
|
26
28
|
violations = await new apex_class_scan_1.default().scan(this.flags.sourcefolder);
|
|
27
|
-
let mViolations =
|
|
29
|
+
let mViolations = [];
|
|
30
|
+
mViolations = await new metadata_scan_1.default(namespace).scan(this.flags.sourcefolder, this.flags.minapi);
|
|
28
31
|
violations.push(...mViolations);
|
|
29
32
|
mViolations = await new apex_pmd_1.default().scan(this.flags.sourcefolder, this.flags.rulesetpath);
|
|
30
33
|
violations.push(...mViolations);
|
|
@@ -50,18 +53,18 @@ class Lint extends command_1.SfdxCommand {
|
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
exports.default = Lint;
|
|
53
|
-
Lint.description = '
|
|
54
|
-
Lint.examples = [
|
|
56
|
+
Lint.description = messages.getMessage('commandDescription');
|
|
57
|
+
Lint.examples = [`$sfdx tffa:lint`];
|
|
55
58
|
Lint.flagsConfig = {
|
|
56
59
|
sourcefolder: command_1.flags.directory({
|
|
57
60
|
char: 's',
|
|
58
|
-
description: '
|
|
61
|
+
description: messages.getMessage('sourceFolderDescription'),
|
|
59
62
|
default: '.'
|
|
60
63
|
}),
|
|
61
64
|
minapi: command_1.flags.integer({
|
|
62
65
|
char: 'm',
|
|
63
|
-
description: '
|
|
64
|
-
default:
|
|
66
|
+
description: messages.getMessage('flagApiversionDescription'),
|
|
67
|
+
default: constants_1.Constants.API_VERSION
|
|
65
68
|
}),
|
|
66
69
|
json: command_1.flags.boolean({
|
|
67
70
|
char: 'j',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/commands/tffa/lint.ts"],"names":[],"mappings":";AAAA;;IAEI;;;AAEJ,iDAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/commands/tffa/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SfdxCommand, flags } from '@salesforce/command';
|
|
2
|
+
export default class SourceApiSet extends SfdxCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
protected static flagsConfig: {
|
|
6
|
+
help: flags.Discriminated<flags.Boolean<void>>;
|
|
7
|
+
sourcefolder: flags.Discriminated<flags.String>;
|
|
8
|
+
api: flags.Discriminated<flags.Number>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<any>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* Copyright (c) NCR Terafina
|
|
6
|
+
**/
|
|
7
|
+
const recursiveReaddir = require("recursive-readdir");
|
|
8
|
+
const fs_extra_1 = require("fs-extra");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const command_1 = require("@salesforce/command");
|
|
11
|
+
const core_1 = require("@salesforce/core");
|
|
12
|
+
const fs = tslib_1.__importStar(require("fs-extra"));
|
|
13
|
+
const path = tslib_1.__importStar(require("path"));
|
|
14
|
+
const constants_1 = require("../../../utils/constants");
|
|
15
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
16
|
+
const messages = core_1.Messages.loadMessages('@terafina/tffa-sfdx-plugin', 'sourceApiSet');
|
|
17
|
+
class SourceApiSet extends command_1.SfdxCommand {
|
|
18
|
+
async run() {
|
|
19
|
+
const resp = {};
|
|
20
|
+
const project = await core_1.SfdxProject.resolve(this.flags.sourcefolder);
|
|
21
|
+
const apiversion = this.flags.api + '.0';
|
|
22
|
+
const apiRegex = /<apiVersion>[0-9][0-9]\.0<\/apiVersion>/g;
|
|
23
|
+
const apiCurrent = `<apiVersion>${apiversion}</apiVersion>`;
|
|
24
|
+
const basePath = project.getPath();
|
|
25
|
+
const projectJson = await fs.readJson(path.resolve(basePath, 'sfdx-project.json'));
|
|
26
|
+
projectJson.sourceApiVersion = apiversion;
|
|
27
|
+
const packageDirectories = projectJson.packageDirectories;
|
|
28
|
+
projectJson.sourceApiVersion = apiversion;
|
|
29
|
+
this.ux.log(messages.getMessage('msgReadingPackageDirectories'));
|
|
30
|
+
fs.writeJSONSync(path.resolve(basePath, 'sfdx-project.json'), projectJson, { spaces: 2 });
|
|
31
|
+
this.ux.log(messages.getMessage('successMessage', [1, apiversion, 'sfdx-project.json']));
|
|
32
|
+
packageDirectories.push({ path: 'scripts' });
|
|
33
|
+
for (const packageConfig of packageDirectories) {
|
|
34
|
+
let noChangedFiles = 0;
|
|
35
|
+
const sourcePath = (0, path_1.join)(basePath, packageConfig.path);
|
|
36
|
+
const files = recursiveReaddir(sourcePath);
|
|
37
|
+
files
|
|
38
|
+
.then((result) => {
|
|
39
|
+
const filesFiltered = [];
|
|
40
|
+
for (const file of result) {
|
|
41
|
+
if (file.endsWith('meta.xml') || file.endsWith('js')) {
|
|
42
|
+
filesFiltered.push(file);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (filesFiltered.length === 0) {
|
|
46
|
+
this.ux.log(messages.getMessage('msgNoMetadataInPackageDirectories'));
|
|
47
|
+
resp.message = messages.getMessage('msgNoMetadataInPackageDirectories');
|
|
48
|
+
return resp;
|
|
49
|
+
}
|
|
50
|
+
resp.files = [];
|
|
51
|
+
for (const file of filesFiltered) {
|
|
52
|
+
let data = (0, fs_extra_1.readFileSync)(file, 'utf8');
|
|
53
|
+
data = data.toString();
|
|
54
|
+
if (data.search(apiRegex) > 0 && data.search(apiCurrent) === -1) {
|
|
55
|
+
data = data.replace(apiRegex, apiCurrent);
|
|
56
|
+
(0, fs_extra_1.writeFileSync)(file, data);
|
|
57
|
+
resp.files.push(file);
|
|
58
|
+
noChangedFiles++;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
.then(() => {
|
|
63
|
+
this.ux.log(messages.getMessage('successMessage', [noChangedFiles, apiversion, packageConfig.path]));
|
|
64
|
+
resp.message = messages.getMessage('successMessage', [noChangedFiles, apiversion, packageConfig.path]);
|
|
65
|
+
return resp;
|
|
66
|
+
})
|
|
67
|
+
.catch(function (error) {
|
|
68
|
+
throw new core_1.SfdxError(error);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.default = SourceApiSet;
|
|
74
|
+
SourceApiSet.description = messages.getMessage('commandDescription');
|
|
75
|
+
SourceApiSet.examples = ['$ sfdx tffa:source:apiset '];
|
|
76
|
+
SourceApiSet.flagsConfig = {
|
|
77
|
+
help: command_1.flags.help({ char: 'h' }),
|
|
78
|
+
sourcefolder: command_1.flags.directory({
|
|
79
|
+
char: 's',
|
|
80
|
+
description: messages.getMessage('sourceFolderDescription'),
|
|
81
|
+
default: '.'
|
|
82
|
+
}),
|
|
83
|
+
api: command_1.flags.integer({
|
|
84
|
+
char: 'a',
|
|
85
|
+
description: messages.getMessage('flagApiversionDescription'),
|
|
86
|
+
default: constants_1.Constants.API_VERSION
|
|
87
|
+
})
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=apiset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiset.js","sourceRoot":"","sources":["../../../../src/commands/tffa/source/apiset.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,8 @@
|
|
|
4
4
|
import { Logger } from '@salesforce/core';
|
|
5
5
|
export default class ApexClassScan {
|
|
6
6
|
dir: string;
|
|
7
|
-
allowedListEnd: string[];
|
|
8
|
-
allowedISVTEViolations: string[];
|
|
9
7
|
classFiles: any[];
|
|
10
8
|
violations: any[];
|
|
11
|
-
allowedListStart: string[];
|
|
12
9
|
ignoreFiles: any[];
|
|
13
10
|
logger: Logger;
|
|
14
11
|
scan(sourceFolder: string): Promise<unknown[]>;
|
|
@@ -18,6 +15,7 @@ export default class ApexClassScan {
|
|
|
18
15
|
* test file names as per conventions
|
|
19
16
|
*/
|
|
20
17
|
private checkFileNameConvention;
|
|
18
|
+
private checkClassesForKeywords2;
|
|
21
19
|
/**
|
|
22
20
|
* test class files for filter
|
|
23
21
|
* @param {*} keywords
|