@terafina/tffa-sfdx-plugin 14.0.0 → 14.1.1
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 +42 -12
- package/bin/pmd/apex_ruleset.xml +104 -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.d.ts +1 -0
- package/lib/commands/tffa/apexdoc.js +12 -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/apexdoc/common/models/apex-model.js +7 -2
- package/lib/services/apexdoc/common/models/apex-model.js.map +1 -1
- package/lib/services/apexdoc/common/models/class-model.d.ts +3 -0
- package/lib/services/apexdoc/common/models/class-model.js +7 -0
- package/lib/services/apexdoc/common/models/class-model.js.map +1 -1
- package/lib/services/apexdoc/common/models/engine-config.d.ts +1 -1
- package/lib/services/apexdoc/common/models/engine-config.js +8 -3
- package/lib/services/apexdoc/common/models/engine-config.js.map +1 -1
- package/lib/services/apexdoc/common/settings.d.ts +2 -1
- package/lib/services/apexdoc/common/settings.js +16 -3
- package/lib/services/apexdoc/common/settings.js.map +1 -1
- 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 +18 -17
|
@@ -8,6 +8,7 @@ class ClassModel extends top_level_model_1.TopLevelModel {
|
|
|
8
8
|
constructor(cModelParent, comments, nameLine, lineNum, sourceUrl) {
|
|
9
9
|
super(comments, top_level_model_1.ModelType.CLASS, sourceUrl);
|
|
10
10
|
this._isInterface = false;
|
|
11
|
+
this._hasGlobalMethods = false;
|
|
11
12
|
super.setNameLine(nameLine, lineNum);
|
|
12
13
|
this.setIsInterface(nameLine);
|
|
13
14
|
this._childClassMap = new Map();
|
|
@@ -208,6 +209,12 @@ class ClassModel extends top_level_model_1.TopLevelModel {
|
|
|
208
209
|
this._isInterface = true;
|
|
209
210
|
}
|
|
210
211
|
}
|
|
212
|
+
setHasGlobalMethods(_hasGlobalMethods) {
|
|
213
|
+
this._hasGlobalMethods = _hasGlobalMethods;
|
|
214
|
+
}
|
|
215
|
+
get hasGlobalMethods() {
|
|
216
|
+
return this._hasGlobalMethods;
|
|
217
|
+
}
|
|
211
218
|
get isInnerClass() {
|
|
212
219
|
return !!this._cModelParent;
|
|
213
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-model.js","sourceRoot":"","sources":["../../../../../src/services/apexdoc/common/models/class-model.ts"],"names":[],"mappings":";;;;AAKA,uDAA6D;AAG7D,mEAAmC;AAEnC,MAAM,UAAW,SAAQ,+BAAa;
|
|
1
|
+
{"version":3,"file":"class-model.js","sourceRoot":"","sources":["../../../../../src/services/apexdoc/common/models/class-model.ts"],"names":[],"mappings":";;;;AAKA,uDAA6D;AAG7D,mEAAmC;AAEnC,MAAM,UAAW,SAAQ,+BAAa;IASpC,YAAmB,YAAgC,EAAE,QAAkB,EAAE,QAAgB,EAAE,OAAe,EAAE,SAAyB;QACnI,KAAK,CAAC,QAAQ,EAAE,2BAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QANtC,iBAAY,GAAG,KAAK,CAAC;QAGrB,sBAAiB,GAAG,KAAK,CAAC;QAIhC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEM,aAAa,CAAC,KAAiB;QACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,WAAW;QACpB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAW,SAAS;QAClB,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;SACtC;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;SACzB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,IAAI;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB;QACD,MAAM,IAAI,GAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,CACL,CAAC,IAAI,CAAC,YAAY;YAClB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,IAAW,OAAO;QAChB,kDAAkD;QAClD,oDAAoD;QACpD,mDAAmD;QACnD,sCAAsC;QACtC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;aAC5B;SACF;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,cAAc;QACvB,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE;oBACtC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAE5D,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC5B,OAAO,CAAC,CAAC,SAAS,CAAC;oBACrB,CAAC,CAAC,CAAC;oBAEH,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC7B,OAAO,CAAC,CAAC,SAAS,CAAC;oBACrB,CAAC,CAAC,CAAC;oBACH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;wBAC3D,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;qBACzC;oBACD,MAAM,UAAU,GAAc;wBAC5B,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;wBACnC,WAAW,EAAE,MAAM,CAAC,IAAI;wBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,MAAM,EAAE,MAAM,CAAC,SAAS;wBACxB,UAAU,EAAE,MAAM,CAAC,SAAS;wBAC5B,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,WAAW;wBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;wBACvC,SAAS,EAAE,MAAM,CAAC,OAAO;wBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB,CAAC;oBACF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC9B;aACF;SACF;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAW,aAAa;QACtB,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1C,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC3B,MAAM,KAAK,GAAY,EAAE,CAAC;YAC1B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;gBACvC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBACvC,SAAS;iBACV;gBACD,MAAM,IAAI,GAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aAC7B;YACD,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;SAC/B;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAW,aAAa;QACtB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAE5B,IAAI,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE;gBAChC,OAAO,CAAC,CAAC,CAAC;aACX;iBAAM,IAAI,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvC,OAAO,CAAC,CAAC;aACV;YAED,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,iEAAiE;QACjE,gEAAgE;QAChE,8BAA8B;QAC9B,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;YAChC,MAAM,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7E,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACxC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAW,IAAI;QACb,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAExE,IAAI,QAAQ,EAAE;YACZ,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC5B;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YACrE,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;gBACrE,MAAM,GAAG,EAAE,CAAC;aACb;YAED,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;gBAClB,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;aAC1D;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE;gBAClB,OAAO,MAAM,GAAG,QAAQ,CAAC;aAC1B;YAED,IAAI;gBACF,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/B;YAAC,OAAO,EAAE,EAAE;gBACX,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5E;SACF;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,gBAAgB;QACzB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAW,gBAAgB;QACzB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAChC;aAAM;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;IAEO,cAAc,CAAC,QAAgB;QACrC,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;IACH,CAAC;IACM,mBAAmB,CAAC,iBAA0B;QACnD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;CACF;AAEQ,gCAAU"}
|
|
@@ -7,7 +7,7 @@ const tslib_1 = require("tslib");
|
|
|
7
7
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
8
|
const utils_1 = tslib_1.__importDefault(require("../utils"));
|
|
9
9
|
class EngineConfig {
|
|
10
|
-
constructor(workspaceFolder) {
|
|
10
|
+
constructor(workspaceFolder, destfolder) {
|
|
11
11
|
this.workspaceFolder = './';
|
|
12
12
|
this.source = [
|
|
13
13
|
{
|
|
@@ -56,8 +56,13 @@ class EngineConfig {
|
|
|
56
56
|
path: utils_1.default.resolveWorkspaceFolder2(src.path, this.workspaceFolder),
|
|
57
57
|
sourceUrl: src.sourceUrl
|
|
58
58
|
}));
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
if (destfolder) {
|
|
60
|
+
this.targetDirectory = path_1.default.resolve(this.workspaceFolder, destfolder);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.targetDirectory = utils_1.default.resolveWorkspaceFolder2(this.targetDirectory, this.workspaceFolder);
|
|
64
|
+
}
|
|
65
|
+
this.homePagePath = path_1.default.join(__dirname, '../../../../../', 'assets', 'homepage.html');
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-config.js","sourceRoot":"","sources":["../../../../../src/services/apexdoc/common/models/engine-config.ts"],"names":[],"mappings":";;;AAAA;;IAEI;AACJ,wDAAwB;AAExB,6DAA6B;AAE7B,MAAM,YAAY;IA6ChB,YAAmB,eAAwB;
|
|
1
|
+
{"version":3,"file":"engine-config.js","sourceRoot":"","sources":["../../../../../src/services/apexdoc/common/models/engine-config.ts"],"names":[],"mappings":";;;AAAA;;IAEI;AACJ,wDAAwB;AAExB,6DAA6B;AAE7B,MAAM,YAAY;IA6ChB,YAAmB,eAAwB,EAAE,UAAmB;QA5ChE,oBAAe,GAAG,IAAI,CAAC;QAEhB,WAAM,GAAG;YACd;gBACE,IAAI,EAAE,6CAA6C;gBACnD,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,2CAA2C;gBACjD,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,gDAAgD;gBACtD,SAAS,EAAE,EAAE;aACd;SACF,CAAC;QACK,oBAAe,GAAG,+CAA+C,CAAC;QAClE,aAAQ,GAAG;YAChB,OAAO;YACP,gBAAgB;YAChB,yBAAyB;YACzB,0BAA0B;YAC1B,kBAAkB;YAClB,kBAAkB;YAClB,uBAAuB;YACvB,uBAAuB;SACxB,CAAC;QACK,aAAQ,GAAG;YAChB,WAAW;YACX,qCAAqC;YACrC,wCAAwC;YACxC,uBAAuB;YACvB,0BAA0B;SAC3B,CAAC;QACK,iBAAY,GAAG,8CAA8C,CAAC;QAC9D,UAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,UAAK,GAAG,gCAAgC,CAAC;QACzC,aAAQ,GAAG,uBAAuB,CAAC;QACnC,oBAAe,GAAG,KAAK,CAAC;QACxB,cAAS,GAAG,SAAS,CAAC;QACtB,aAAQ,GAAG,IAAI,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QACZ,UAAK,GAAG,EAAE,CAAC;QAGhB,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,eAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC;gBACnE,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC,CAAC;YACJ,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;aACvE;iBAAM;gBACL,IAAI,CAAC,eAAe,GAAG,eAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aAClG;YACD,IAAI,CAAC,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;SACxF;IACH,CAAC;CACF;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -7,6 +7,7 @@ declare class Settings {
|
|
|
7
7
|
private static projectRoot;
|
|
8
8
|
static config: IEngineConfig;
|
|
9
9
|
static readonly SCOPES: string[];
|
|
10
|
+
static readonly GROUPS: string[];
|
|
10
11
|
static readonly ORDER_ALPHA: string;
|
|
11
12
|
static readonly ORDER_LOGICAL: string;
|
|
12
13
|
static readonly CLASS: string;
|
|
@@ -31,7 +32,7 @@ declare class Settings {
|
|
|
31
32
|
* 3. .apexdoxrc
|
|
32
33
|
*
|
|
33
34
|
*/
|
|
34
|
-
static getConfig<T extends IEngineConfig | IDocblockConfig>(type: Feature, sourceFolder: string): T;
|
|
35
|
+
static getConfig<T extends IEngineConfig | IDocblockConfig>(type: Feature, sourceFolder: string, destfolder: string): T;
|
|
35
36
|
/**
|
|
36
37
|
* Source and Target Dir default settings are dynamic and determined at runtime. If user
|
|
37
38
|
* omits these settings or provides invalid values, overwrite with default settings.
|
|
@@ -47,20 +47,20 @@ class Settings {
|
|
|
47
47
|
* 3. .apexdoxrc
|
|
48
48
|
*
|
|
49
49
|
*/
|
|
50
|
-
static getConfig(type, sourceFolder) {
|
|
50
|
+
static getConfig(type, sourceFolder, destfolder) {
|
|
51
51
|
const rcConfig = this.getRcFile();
|
|
52
52
|
// getting engine config
|
|
53
53
|
if (type === Feature.ENGINE) {
|
|
54
54
|
let config;
|
|
55
55
|
if (rcConfig) {
|
|
56
56
|
config = {
|
|
57
|
-
...new engine_config_1.default(sourceFolder),
|
|
57
|
+
...new engine_config_1.default(sourceFolder, destfolder),
|
|
58
58
|
...(rcConfig.engine || {})
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
62
|
config = {
|
|
63
|
-
...new engine_config_1.default(sourceFolder)
|
|
63
|
+
...new engine_config_1.default(sourceFolder, destfolder)
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
// pass result of either to directory defaulter and validate
|
|
@@ -112,6 +112,19 @@ class Settings {
|
|
|
112
112
|
Settings.projectRoot = '.';
|
|
113
113
|
// constants
|
|
114
114
|
Settings.SCOPES = ['global', 'public', 'private', 'protected', 'webservice', 'testmethod'];
|
|
115
|
+
Settings.GROUPS = [
|
|
116
|
+
'Common',
|
|
117
|
+
'Controller',
|
|
118
|
+
'Data Transfer Object',
|
|
119
|
+
'Enumeration',
|
|
120
|
+
'Extension',
|
|
121
|
+
'Provider',
|
|
122
|
+
'Job',
|
|
123
|
+
'REST Service',
|
|
124
|
+
'Service',
|
|
125
|
+
'Miscellaneous',
|
|
126
|
+
'Pages'
|
|
127
|
+
];
|
|
115
128
|
Settings.ORDER_ALPHA = 'alpha';
|
|
116
129
|
Settings.ORDER_LOGICAL = 'logical';
|
|
117
130
|
Settings.CLASS = 'class';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/services/apexdoc/common/settings.ts"],"names":[],"mappings":";;;;AAAA;;IAEI;AACJ,gFAA6C;AAC7C,mFAAkD;AAClD,kFAAiD;AACjD,wEAAuC;AACvC,2BAAgC;AAGhC,+BAA+B;AAE/B,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,yCAAM,CAAA;IACN,+CAAS,CAAA;AACX,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAED,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/services/apexdoc/common/settings.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
|
|
@@ -8,75 +8,12 @@ const core_1 = require("@salesforce/core");
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
10
10
|
const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
|
|
11
|
+
const rules_1 = require("./rules");
|
|
11
12
|
class ApexClassScan {
|
|
12
13
|
constructor() {
|
|
13
14
|
this.dir = '';
|
|
14
|
-
this.allowedListEnd = [
|
|
15
|
-
'Repository',
|
|
16
|
-
'DTO',
|
|
17
|
-
'Request',
|
|
18
|
-
'Response',
|
|
19
|
-
'Result',
|
|
20
|
-
'Provider',
|
|
21
|
-
'Service',
|
|
22
|
-
'Controller',
|
|
23
|
-
'Constants',
|
|
24
|
-
'Job',
|
|
25
|
-
'Executor',
|
|
26
|
-
'Processor',
|
|
27
|
-
'Ext',
|
|
28
|
-
'Utlity',
|
|
29
|
-
'Utils',
|
|
30
|
-
'Util',
|
|
31
|
-
'Resolver',
|
|
32
|
-
'Factory',
|
|
33
|
-
'EventExtension',
|
|
34
|
-
'EventFactory',
|
|
35
|
-
'Exception',
|
|
36
|
-
'Calculator',
|
|
37
|
-
'Builder',
|
|
38
|
-
'Type',
|
|
39
|
-
'Logger',
|
|
40
|
-
'Context',
|
|
41
|
-
'Exporter',
|
|
42
|
-
'Status',
|
|
43
|
-
'Handler',
|
|
44
|
-
'Client',
|
|
45
|
-
'Serializer',
|
|
46
|
-
'Parser',
|
|
47
|
-
'Adapter',
|
|
48
|
-
'Configuration',
|
|
49
|
-
'Configurations',
|
|
50
|
-
'Mapper',
|
|
51
|
-
'Helper',
|
|
52
|
-
'Extension',
|
|
53
|
-
'Dom',
|
|
54
|
-
'Render',
|
|
55
|
-
'Record',
|
|
56
|
-
'Records',
|
|
57
|
-
'Generator',
|
|
58
|
-
'Formatter',
|
|
59
|
-
'Notifier',
|
|
60
|
-
'Enricher',
|
|
61
|
-
'Signer',
|
|
62
|
-
'Batch',
|
|
63
|
-
'Assigner',
|
|
64
|
-
'Dispatcher',
|
|
65
|
-
'Namespace',
|
|
66
|
-
'Interaction',
|
|
67
|
-
'Cipher',
|
|
68
|
-
'APICall',
|
|
69
|
-
'Cache',
|
|
70
|
-
'Validator',
|
|
71
|
-
'Evaluator',
|
|
72
|
-
'Matcher',
|
|
73
|
-
'Credential',
|
|
74
|
-
'Comparator'
|
|
75
|
-
];
|
|
76
|
-
this.allowedISVTEViolations = ['Translations', 'SECURITY_ENFORCED', 'Multiple Change Processes per Object'];
|
|
77
15
|
this.classFiles = [];
|
|
78
16
|
this.violations = [];
|
|
79
|
-
this.allowedListStart = ['Migration', 'SObject'];
|
|
80
17
|
this.ignoreFiles = [];
|
|
81
18
|
}
|
|
82
19
|
async scan(sourceFolder) {
|
|
@@ -93,23 +30,9 @@ class ApexClassScan {
|
|
|
93
30
|
this.logger.debug(this.ignoreFiles);
|
|
94
31
|
await Promise.all([
|
|
95
32
|
this.checkFileNameConvention(),
|
|
96
|
-
|
|
97
|
-
this.
|
|
98
|
-
this.
|
|
99
|
-
this.checkClassesForKeywords('\\.isUpdateable', 'CRUD/FLS Checks are checked by tffa.AbstractRepository', 'INTERNAL', 'FATAL'),
|
|
100
|
-
this.checkClassesForKeywords('tffa\\.AbstractRepository\\.', 'Do not call methods directly of an abstract class . Call methods from Repository classes extending tffa.AbstractRepository', 'INTERNAL', 'FATAL'),
|
|
101
|
-
this.checkClassesForKeywords('tffa\\.AbstractController\\.', 'Do not call methods directly of an abstract class . Call methods from Controllers classes extending tffa.AbstractController', 'INTERNAL', 'FATAL'),
|
|
102
|
-
this.checkClassesForKeywords('tffa\\.AbstractRESTService\\.', 'Do not call methods directly of an abstract class . Call methods from RESTService classes extending tffa.AbstractRESTService', 'INTERNAL', 'FATAL'),
|
|
103
|
-
this.checkClassesForKeywords('select ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
104
|
-
this.checkClassesForKeywords('update ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doUpdate method ', 'INTERNAL', 'FATAL'),
|
|
105
|
-
this.checkClassesForKeywords('upsert ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doUpsert method ', 'INTERNAL', 'FATAL'),
|
|
106
|
-
this.checkClassesForKeywords('delete ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doDelete method ', 'INTERNAL', 'FATAL'),
|
|
107
|
-
this.checkClassesForKeywords('Database\\.query', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
108
|
-
this.checkClassesForKeywords('Database\\.update', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
109
|
-
this.checkClassesForKeywords('Database\\.insert', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
110
|
-
this.checkClassesForKeywords('Database\\.upsert', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
111
|
-
this.checkClassesForKeywords('Database\\.delete', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ', 'INTERNAL', 'FATAL'),
|
|
112
|
-
this.checkClassesForKeywords('SuppressWarnings', 'Do not supress PMD warnings , instead fix them ', 'PMD', 'WARN')
|
|
33
|
+
this.checkClassesForKeywords2('(tffa\\.AbstractRepository\\.|tffa\\.AbstractController\\.|tffa\\.AbstractRESTService\\.)', 'DIRECT_ABSTRACT_CLASS'),
|
|
34
|
+
this.checkClassesForKeywords2('(\\[select |\\[update |\\[upsert |\\[delete |\\bDatabase\\.query\\b|\\bDatabase\\.update\\b|\\bDatabase\\.insert\\b|\\bDatabase\\.upsert\\b|\\bDatabase\\.delete\\b)', 'SOQL_REPOSITORY'),
|
|
35
|
+
this.checkClassesForKeywords2('SuppressWarnings', 'NO_SUPPRESSWARNINGS')
|
|
113
36
|
]);
|
|
114
37
|
return this.violations;
|
|
115
38
|
}
|
|
@@ -120,11 +43,8 @@ class ApexClassScan {
|
|
|
120
43
|
this.ignoreFiles.push(...ignored_files_1.default.files);
|
|
121
44
|
this.logger.debug(this.ignoreFiles);
|
|
122
45
|
await Promise.all([
|
|
123
|
-
this.
|
|
124
|
-
this.
|
|
125
|
-
this.checkClassesForKeywords('System\\.assertNotEquals\\(true\\, false\\)', 'Apex unit tests should include at least one assertion . Do not hard code values. Use proper variables', 'PMD', 'FATAL', 'System\\.assertNotEquals\\(true\\, false\\)\\;'),
|
|
126
|
-
this.checkClassesForKeywords('System\\.assertNotEquals\\(false\\, true\\)', 'Apex unit tests should include at least one assertion . Do not hard code values. Use proper variables', 'PMD', 'FATAL', 'System\\.assertNotEquals\\(false\\, true\\)\\;'),
|
|
127
|
-
this.checkClassesForKeywords('System\\.assert\\(true\\)', 'Apex unit tests should include at least one assertion . Do not hard code values. Use proper variables', 'PMD', 'FATAL', 'System\\.assert\\(true\\)\\;')
|
|
46
|
+
this.checkClassesForKeywords2('SuppressWarnings', 'NO_SUPPRESSWARNINGS'),
|
|
47
|
+
this.checkClassesForKeywords2('(System\\.assertEquals\\(true\\, true\\)|System\\.assertNotEquals\\(true\\, false\\)|System\\.assertNotEquals\\(false\\, true\\)|System\\.assert\\(true\\))', 'NO_SYSTEM_ASSERT_HARDCODING')
|
|
128
48
|
]);
|
|
129
49
|
return this.violations;
|
|
130
50
|
}
|
|
@@ -138,8 +58,8 @@ class ApexClassScan {
|
|
|
138
58
|
const filepath = path_1.default.join(this.dir, file);
|
|
139
59
|
if (path_1.default.extname(filepath) == '.cls') {
|
|
140
60
|
const filename = path_1.default.basename(filepath, '.cls');
|
|
141
|
-
if (!
|
|
142
|
-
!
|
|
61
|
+
if (!ignored_files_1.default.allowedClassNameListEnd.some(substring => filename.endsWith(substring)) &&
|
|
62
|
+
!ignored_files_1.default.allowedClassNameListStart.some(substring => filename.startsWith(substring))) {
|
|
143
63
|
if (this.ignoreFiles.indexOf(filename) < 0 && this.ignoreFiles.indexOf(file) < 0) {
|
|
144
64
|
violatingFiles.push(filename);
|
|
145
65
|
}
|
|
@@ -151,35 +71,26 @@ class ApexClassScan {
|
|
|
151
71
|
}
|
|
152
72
|
}
|
|
153
73
|
if (violatingFiles.length > 0) {
|
|
154
|
-
const o = {
|
|
155
|
-
label: 'Files violating naming conventions',
|
|
156
|
-
message: 'Classes should' + '\nend with [' + this.allowedListEnd.join(', ') + ']',
|
|
157
|
-
exceptions: violatingFiles,
|
|
158
|
-
category: 'INTERNAL',
|
|
159
|
-
level: 'FATAL'
|
|
160
|
-
};
|
|
74
|
+
const o = { ...rules_1.Rules.customrules['APEX_NAME_CONVENTION'], exceptions: violatingFiles };
|
|
161
75
|
this.violations.push(o);
|
|
162
76
|
}
|
|
163
77
|
resolve(null);
|
|
164
78
|
});
|
|
165
79
|
}
|
|
80
|
+
checkClassesForKeywords2(keywords, errorkey) {
|
|
81
|
+
const o = rules_1.Rules.customrules[errorkey];
|
|
82
|
+
this.checkClassesForKeywords(keywords, o.label, o.message, o.category, o.level);
|
|
83
|
+
}
|
|
166
84
|
/**
|
|
167
85
|
* test class files for filter
|
|
168
86
|
* @param {*} keywords
|
|
169
87
|
* @param {*} hint
|
|
170
88
|
*/
|
|
171
|
-
checkClassesForKeywords(keywords, hint, category, level
|
|
89
|
+
checkClassesForKeywords(keywords, label, hint, category, level) {
|
|
172
90
|
return new Promise(resolve => {
|
|
173
91
|
const violatingFiles = [];
|
|
174
92
|
// We want full words, so we use full word boundary in regex.
|
|
175
|
-
|
|
176
|
-
if (regexInput) {
|
|
177
|
-
regex = new RegExp(regexInput);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
regex = new RegExp("^(?!\\s*(\\'|\\//|\\*)\\s*).*(\\b" + keywords + '\\b).*$', 'gim');
|
|
181
|
-
}
|
|
182
|
-
// this.logger.debug(regex);
|
|
93
|
+
const regex = new RegExp("^(?!\\s*(\\'|\\//|\\*)\\s*).*(" + keywords + ').*$', 'gim');
|
|
183
94
|
this.classFiles.forEach(file => {
|
|
184
95
|
const fileContent = (0, fs_1.readFileSync)(file);
|
|
185
96
|
const filec = fileContent.toString();
|
|
@@ -189,10 +100,6 @@ class ApexClassScan {
|
|
|
189
100
|
const output = filec.match(regex);
|
|
190
101
|
for (let i = 0; i < output.length; ++i) {
|
|
191
102
|
if (output[i].indexOf("'") < 0 || output[i].toLowerCase().indexOf(keywords.toLowerCase()) < output[i].indexOf("'")) {
|
|
192
|
-
// this.logger.debug(path.basename(file, '.cls'));
|
|
193
|
-
// this.logger.debug(output[i]);
|
|
194
|
-
// this.logger.debug(output[i].indexOf(keywords));
|
|
195
|
-
// this.logger.debug(filec.indexOf("'"));
|
|
196
103
|
found = true;
|
|
197
104
|
break;
|
|
198
105
|
}
|
|
@@ -210,7 +117,7 @@ class ApexClassScan {
|
|
|
210
117
|
});
|
|
211
118
|
if (violatingFiles.length > 0) {
|
|
212
119
|
const o = {
|
|
213
|
-
label:
|
|
120
|
+
label: label,
|
|
214
121
|
message: hint,
|
|
215
122
|
exceptions: violatingFiles,
|
|
216
123
|
category: category,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apex-class-scan.js","sourceRoot":"","sources":["../../../src/services/lint/apex-class-scan.ts"],"names":[],"mappings":";AAAA;;IAEI;;;AAEJ,2CAA0C;AAC1C,2BAAsE;AACtE,wDAAwB;AACxB,sFAAqD;
|
|
1
|
+
{"version":3,"file":"apex-class-scan.js","sourceRoot":"","sources":["../../../src/services/lint/apex-class-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Logger } from '@salesforce/core';
|
|
|
2
2
|
export default class ApexPMD {
|
|
3
3
|
ignoreFiles: any[];
|
|
4
4
|
logger: Logger;
|
|
5
|
+
rules: string[];
|
|
5
6
|
eject(sourceFolder: string): Promise<unknown[]>;
|
|
6
7
|
scan(sourceFolder: string, rulesetpath: string): Promise<any[]>;
|
|
7
8
|
private executeCmd;
|
|
@@ -16,11 +16,13 @@ const CLASSPATH_DELM = os.platform() === 'win32' ? ';' : ':';
|
|
|
16
16
|
class ApexPMD {
|
|
17
17
|
constructor() {
|
|
18
18
|
this.ignoreFiles = [];
|
|
19
|
+
this.rules = ['apex_ruleset.xml', 'apex_test_ruleset.xml', 'apex_vf_ruleset.xml'];
|
|
19
20
|
}
|
|
20
21
|
async eject(sourceFolder) {
|
|
21
22
|
const pmdBinPath = path.join(__dirname, '../../../', 'bin', 'pmd');
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
for (const rulefile of this.rules) {
|
|
24
|
+
fs_1.default.copyFileSync(path.resolve(pmdBinPath, rulefile), path.resolve(sourceFolder, 'scripts', 'pmd', rulefile));
|
|
25
|
+
}
|
|
24
26
|
return;
|
|
25
27
|
}
|
|
26
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -47,7 +49,11 @@ class ApexPMD {
|
|
|
47
49
|
const javaExc = path.join(javaHome, 'bin', 'java');
|
|
48
50
|
const commandBufferSize = 64;
|
|
49
51
|
const pmdBinPath = path.join(__dirname, '../../../', 'bin', 'pmd');
|
|
50
|
-
|
|
52
|
+
const rulepaths = [];
|
|
53
|
+
for (const rulefile of this.rules) {
|
|
54
|
+
rulepaths.push(path.join(pmdBinPath, rulefile));
|
|
55
|
+
}
|
|
56
|
+
let rulesetsArg = rulepaths.join(',');
|
|
51
57
|
if (rulesetpath) {
|
|
52
58
|
rulesetsArg = rulesetpath;
|
|
53
59
|
}
|
|
@@ -106,7 +112,7 @@ class ApexPMD {
|
|
|
106
112
|
this.logger.warn('Ignore file ' + filename);
|
|
107
113
|
continue;
|
|
108
114
|
}
|
|
109
|
-
const key = v.ruleset + '-' + v.rule;
|
|
115
|
+
const key = v.ruleset + '-' + v.rule + '-' + v.priority;
|
|
110
116
|
let o = violationMap.get(key);
|
|
111
117
|
if (!o) {
|
|
112
118
|
o = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apex-pmd.js","sourceRoot":"","sources":["../../../src/services/lint/apex-pmd.ts"],"names":[],"mappings":";;;AAAA;;IAEI;AACJ,oEAA8C;AAC9C,mDAA6B;AAC7B,+CAAyB;AACzB,2CAA0C;AAC1C,qFAA+D;AAC/D,sFAAqD;AACrD,oDAAoB;AAEpB,oBAAoB;AACpB,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAE7D,MAAqB,OAAO;IAA5B;QACE,gBAAW,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"apex-pmd.js","sourceRoot":"","sources":["../../../src/services/lint/apex-pmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,23 @@ export default class MetadataScan {
|
|
|
8
8
|
ignoreFiles: any[];
|
|
9
9
|
violations: unknown[];
|
|
10
10
|
logger: Logger;
|
|
11
|
+
apiViolations: any[];
|
|
11
12
|
scan(sourceFolder: string, minapi: number): Promise<unknown[]>;
|
|
12
|
-
/**
|
|
13
|
-
* scan json files
|
|
14
|
-
*/
|
|
15
|
-
private scanJSONFiles;
|
|
16
13
|
/**
|
|
17
14
|
* parse objects
|
|
18
15
|
* @param {*} objpath
|
|
19
16
|
* @param {*} clientname
|
|
20
17
|
*/
|
|
21
18
|
private scanObjects;
|
|
19
|
+
/**
|
|
20
|
+
* scan api
|
|
21
|
+
* @param sourceFolder
|
|
22
|
+
* @param minapi
|
|
23
|
+
*/
|
|
22
24
|
private scanAPIVersion;
|
|
23
25
|
private scanAPIVersionByType;
|
|
26
|
+
/**
|
|
27
|
+
* scan json files
|
|
28
|
+
*/
|
|
29
|
+
private scanJSONFiles;
|
|
24
30
|
}
|