@terafina/tffa-sfdx-plugin 14.0.0-rc.2 → 14.0.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.
Files changed (154) hide show
  1. package/README.md +15 -13
  2. package/assets/homepage.html +49 -0
  3. package/bin/pmd/apex_ruleset.xml +5 -30
  4. package/bin/pmd/apex_test_ruleset.xml +1 -1
  5. package/lib/commands/tffa/apexdoc.js +9 -9
  6. package/lib/commands/tffa/apexdoc.js.map +1 -1
  7. package/lib/commands/tffa/lint.d.ts +2 -0
  8. package/lib/commands/tffa/lint.js +31 -14
  9. package/lib/commands/tffa/lint.js.map +1 -1
  10. package/lib/commands/tffa/meta.js +1 -1
  11. package/lib/commands/tffa/meta.js.map +1 -1
  12. package/lib/{shared → services}/apexdoc/common/apex-docs-error.d.ts +0 -0
  13. package/lib/{shared → services}/apexdoc/common/apex-docs-error.js +1 -2
  14. package/lib/services/apexdoc/common/apex-docs-error.js.map +1 -0
  15. package/lib/{shared → services}/apexdoc/common/array-utils.d.ts +0 -0
  16. package/lib/{shared → services}/apexdoc/common/array-utils.js +0 -0
  17. package/lib/services/apexdoc/common/array-utils.js.map +1 -0
  18. package/lib/{shared → services}/apexdoc/common/line-reader.d.ts +0 -0
  19. package/lib/{shared → services}/apexdoc/common/line-reader.js +0 -0
  20. package/lib/services/apexdoc/common/line-reader.js.map +1 -0
  21. package/lib/{shared → services}/apexdoc/common/models/apex-model.d.ts +0 -0
  22. package/lib/{shared → services}/apexdoc/common/models/apex-model.js +0 -0
  23. package/lib/services/apexdoc/common/models/apex-model.js.map +1 -0
  24. package/lib/{shared → services}/apexdoc/common/models/class-group.d.ts +0 -0
  25. package/lib/{shared → services}/apexdoc/common/models/class-group.js +0 -0
  26. package/lib/services/apexdoc/common/models/class-group.js.map +1 -0
  27. package/lib/{shared → services}/apexdoc/common/models/class-model.d.ts +0 -0
  28. package/lib/{shared → services}/apexdoc/common/models/class-model.js +0 -0
  29. package/lib/services/apexdoc/common/models/class-model.js.map +1 -0
  30. package/lib/{shared → services}/apexdoc/common/models/engine-config.d.ts +2 -3
  31. package/lib/{shared → services}/apexdoc/common/models/engine-config.js +17 -1
  32. package/lib/services/apexdoc/common/models/engine-config.js.map +1 -0
  33. package/lib/{shared → services}/apexdoc/common/models/enum-model.d.ts +0 -0
  34. package/lib/{shared → services}/apexdoc/common/models/enum-model.js +0 -0
  35. package/lib/services/apexdoc/common/models/enum-model.js.map +1 -0
  36. package/lib/{shared → services}/apexdoc/common/models/index.d.ts +0 -0
  37. package/lib/{shared → services}/apexdoc/common/models/index.js +0 -0
  38. package/lib/services/apexdoc/common/models/index.js.map +1 -0
  39. package/lib/{shared → services}/apexdoc/common/models/method-model.d.ts +0 -0
  40. package/lib/{shared → services}/apexdoc/common/models/method-model.js +0 -0
  41. package/lib/services/apexdoc/common/models/method-model.js.map +1 -0
  42. package/lib/{shared → services}/apexdoc/common/models/property-model.d.ts +0 -0
  43. package/lib/{shared → services}/apexdoc/common/models/property-model.js +0 -0
  44. package/lib/services/apexdoc/common/models/property-model.js.map +1 -0
  45. package/lib/{shared → services}/apexdoc/common/models/top-level-model.d.ts +0 -0
  46. package/lib/{shared → services}/apexdoc/common/models/top-level-model.js +0 -0
  47. package/lib/services/apexdoc/common/models/top-level-model.js.map +1 -0
  48. package/lib/{shared → services}/apexdoc/common/settings.d.ts +1 -1
  49. package/lib/{shared → services}/apexdoc/common/settings.js +5 -7
  50. package/lib/services/apexdoc/common/settings.js.map +1 -0
  51. package/lib/{shared → services}/apexdoc/common/tags.d.ts +0 -0
  52. package/lib/{shared → services}/apexdoc/common/tags.js +0 -0
  53. package/lib/services/apexdoc/common/tags.js.map +1 -0
  54. package/lib/{shared → services}/apexdoc/common/utils.d.ts +1 -0
  55. package/lib/{shared → services}/apexdoc/common/utils.js +20 -0
  56. package/lib/services/apexdoc/common/utils.js.map +1 -0
  57. package/lib/{shared → services}/apexdoc/common/validator-engine.d.ts +0 -1
  58. package/lib/{shared → services}/apexdoc/common/validator-engine.js +6 -6
  59. package/lib/services/apexdoc/common/validator-engine.js.map +1 -0
  60. package/lib/{shared → services}/apexdoc/common/validator.d.ts +0 -0
  61. package/lib/{shared → services}/apexdoc/common/validator.js +0 -0
  62. package/lib/services/apexdoc/common/validator.js.map +1 -0
  63. package/lib/{shared → services}/apexdoc/engine/file-manager.d.ts +1 -1
  64. package/lib/{shared → services}/apexdoc/engine/file-manager.js +4 -1
  65. package/lib/services/apexdoc/engine/file-manager.js.map +1 -0
  66. package/lib/{shared → services}/apexdoc/engine/generators/generator-utils.d.ts +0 -0
  67. package/lib/{shared → services}/apexdoc/engine/generators/generator-utils.js +0 -0
  68. package/lib/services/apexdoc/engine/generators/generator-utils.js.map +1 -0
  69. package/lib/{shared → services}/apexdoc/engine/generators/menu-generator.d.ts +0 -0
  70. package/lib/{shared → services}/apexdoc/engine/generators/menu-generator.js +0 -0
  71. package/lib/services/apexdoc/engine/generators/menu-generator.js.map +1 -0
  72. package/lib/{shared → services}/apexdoc/engine/generators/models/child-enum-markup-generator.d.ts +0 -0
  73. package/lib/{shared → services}/apexdoc/engine/generators/models/child-enum-markup-generator.js +0 -0
  74. package/lib/services/apexdoc/engine/generators/models/child-enum-markup-generator.js.map +1 -0
  75. package/lib/{shared → services}/apexdoc/engine/generators/models/class-markup-generator.d.ts +0 -0
  76. package/lib/{shared → services}/apexdoc/engine/generators/models/class-markup-generator.js +0 -0
  77. package/lib/services/apexdoc/engine/generators/models/class-markup-generator.js.map +1 -0
  78. package/lib/{shared → services}/apexdoc/engine/generators/models/enum-markup-generator.d.ts +0 -0
  79. package/lib/{shared → services}/apexdoc/engine/generators/models/enum-markup-generator.js +0 -0
  80. package/lib/services/apexdoc/engine/generators/models/enum-markup-generator.js.map +1 -0
  81. package/lib/{shared → services}/apexdoc/engine/generators/models/markup-generator.d.ts +0 -0
  82. package/lib/{shared → services}/apexdoc/engine/generators/models/markup-generator.js +0 -0
  83. package/lib/services/apexdoc/engine/generators/models/markup-generator.js.map +1 -0
  84. package/lib/{shared → services}/apexdoc/engine/generators/models/method-markup-generator.d.ts +0 -0
  85. package/lib/{shared → services}/apexdoc/engine/generators/models/method-markup-generator.js +0 -0
  86. package/lib/services/apexdoc/engine/generators/models/method-markup-generator.js.map +1 -0
  87. package/lib/{shared → services}/apexdoc/engine/generators/models/property-markup-generator.d.ts +0 -0
  88. package/lib/{shared → services}/apexdoc/engine/generators/models/property-markup-generator.js +0 -0
  89. package/lib/services/apexdoc/engine/generators/models/property-markup-generator.js.map +1 -0
  90. package/lib/{shared → services}/apexdoc/engine/generators/models/source-markup-generator.d.ts +0 -0
  91. package/lib/{shared → services}/apexdoc/engine/generators/models/source-markup-generator.js +0 -0
  92. package/lib/services/apexdoc/engine/generators/models/source-markup-generator.js.map +1 -0
  93. package/lib/{shared → services}/apexdoc/engine/generators/models/top-level-markup-generator.d.ts +0 -0
  94. package/lib/{shared → services}/apexdoc/engine/generators/models/top-level-markup-generator.js +0 -0
  95. package/lib/services/apexdoc/engine/generators/models/top-level-markup-generator.js.map +1 -0
  96. package/lib/{shared → services}/apexdoc/engine/generators/see-link-generator.d.ts +0 -0
  97. package/lib/{shared → services}/apexdoc/engine/generators/see-link-generator.js +0 -0
  98. package/lib/services/apexdoc/engine/generators/see-link-generator.js.map +1 -0
  99. package/lib/{shared/lint/apex-class-lint.d.ts → services/lint/apex-class-scan.d.ts} +4 -3
  100. package/lib/{shared/lint/apex-class-lint.js → services/lint/apex-class-scan.js} +52 -63
  101. package/lib/services/lint/apex-class-scan.js.map +1 -0
  102. package/lib/{shared → services}/lint/apex-pmd.d.ts +1 -0
  103. package/lib/{shared → services}/lint/apex-pmd.js +9 -2
  104. package/lib/services/lint/apex-pmd.js.map +1 -0
  105. package/lib/{shared/lint/metadata-lint.d.ts → services/lint/metadata-scan.d.ts} +2 -0
  106. package/lib/{shared/lint/metadata-lint.js → services/lint/metadata-scan.js} +62 -4
  107. package/lib/services/lint/metadata-scan.js.map +1 -0
  108. package/lib/{shared → services}/meta/field-scan.d.ts +0 -4
  109. package/lib/{shared → services}/meta/field-scan.js +5 -7
  110. package/lib/services/meta/field-scan.js.map +1 -0
  111. package/lib/{shared/lint → utils}/ignored-files.d.ts +6 -0
  112. package/lib/utils/ignored-files.js +89 -0
  113. package/lib/utils/ignored-files.js.map +1 -0
  114. package/lib/{shared/utils → utils}/jreSetupManager.d.ts +0 -0
  115. package/lib/{shared/utils → utils}/jreSetupManager.js +3 -3
  116. package/lib/utils/jreSetupManager.js.map +1 -0
  117. package/oclif.manifest.json +1 -1
  118. package/package.json +3 -3
  119. package/lib/shared/apexdoc/common/apex-docs-error.js.map +0 -1
  120. package/lib/shared/apexdoc/common/array-utils.js.map +0 -1
  121. package/lib/shared/apexdoc/common/line-reader.js.map +0 -1
  122. package/lib/shared/apexdoc/common/models/apex-model.js.map +0 -1
  123. package/lib/shared/apexdoc/common/models/class-group.js.map +0 -1
  124. package/lib/shared/apexdoc/common/models/class-model.js.map +0 -1
  125. package/lib/shared/apexdoc/common/models/engine-config.js.map +0 -1
  126. package/lib/shared/apexdoc/common/models/enum-model.js.map +0 -1
  127. package/lib/shared/apexdoc/common/models/index.js.map +0 -1
  128. package/lib/shared/apexdoc/common/models/method-model.js.map +0 -1
  129. package/lib/shared/apexdoc/common/models/property-model.js.map +0 -1
  130. package/lib/shared/apexdoc/common/models/top-level-model.js.map +0 -1
  131. package/lib/shared/apexdoc/common/settings.js.map +0 -1
  132. package/lib/shared/apexdoc/common/tags.js.map +0 -1
  133. package/lib/shared/apexdoc/common/utils.js.map +0 -1
  134. package/lib/shared/apexdoc/common/validator-engine.js.map +0 -1
  135. package/lib/shared/apexdoc/common/validator.js.map +0 -1
  136. package/lib/shared/apexdoc/engine/file-manager.js.map +0 -1
  137. package/lib/shared/apexdoc/engine/generators/generator-utils.js.map +0 -1
  138. package/lib/shared/apexdoc/engine/generators/menu-generator.js.map +0 -1
  139. package/lib/shared/apexdoc/engine/generators/models/child-enum-markup-generator.js.map +0 -1
  140. package/lib/shared/apexdoc/engine/generators/models/class-markup-generator.js.map +0 -1
  141. package/lib/shared/apexdoc/engine/generators/models/enum-markup-generator.js.map +0 -1
  142. package/lib/shared/apexdoc/engine/generators/models/markup-generator.js.map +0 -1
  143. package/lib/shared/apexdoc/engine/generators/models/method-markup-generator.js.map +0 -1
  144. package/lib/shared/apexdoc/engine/generators/models/property-markup-generator.js.map +0 -1
  145. package/lib/shared/apexdoc/engine/generators/models/source-markup-generator.js.map +0 -1
  146. package/lib/shared/apexdoc/engine/generators/models/top-level-markup-generator.js.map +0 -1
  147. package/lib/shared/apexdoc/engine/generators/see-link-generator.js.map +0 -1
  148. package/lib/shared/lint/apex-class-lint.js.map +0 -1
  149. package/lib/shared/lint/apex-pmd.js.map +0 -1
  150. package/lib/shared/lint/ignored-files.js +0 -38
  151. package/lib/shared/lint/ignored-files.js.map +0 -1
  152. package/lib/shared/lint/metadata-lint.js.map +0 -1
  153. package/lib/shared/meta/field-scan.js.map +0 -1
  154. package/lib/shared/utils/jreSetupManager.js.map +0 -1
@@ -7,10 +7,9 @@ const tslib_1 = require("tslib");
7
7
  const core_1 = require("@salesforce/core");
8
8
  const fs_1 = require("fs");
9
9
  const path_1 = tslib_1.__importDefault(require("path"));
10
- const ignored_files_1 = tslib_1.__importDefault(require("./ignored-files"));
10
+ const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
11
11
  class ApexClassScan {
12
12
  constructor() {
13
- this.minapi = 53.0;
14
13
  this.dir = '';
15
14
  this.allowedListEnd = [
16
15
  'Repository',
@@ -32,6 +31,7 @@ class ApexClassScan {
32
31
  'Resolver',
33
32
  'Factory',
34
33
  'EventExtension',
34
+ 'EventFactory',
35
35
  'Exception',
36
36
  'Calculator',
37
37
  'Builder',
@@ -77,47 +77,15 @@ class ApexClassScan {
77
77
  this.classFiles = [];
78
78
  this.violations = [];
79
79
  this.allowedListStart = ['Migration', 'SObject'];
80
- this.ignoreFiles = [
81
- 'Logger',
82
- 'AbstractRepository',
83
- 'SObjectMapper',
84
- 'ContentRepository',
85
- 'DocumentRepository',
86
- 'JobRepository',
87
- 'QueryBuilder',
88
- 'Migration_V4_3_0_3',
89
- 'Migration_V5_1_0',
90
- 'DisclosureTemplateConfigurationFactory',
91
- 'EmailTemplateRepository',
92
- 'EnvironmentConfigurationRepository',
93
- 'MigrationExecutor',
94
- 'Migration_V4_0_0_1',
95
- 'Migration_V4_3_0_1',
96
- 'Migration_V4_3_0_2',
97
- 'Namespace',
98
- 'OrganizationRepository',
99
- 'PermissionRepository',
100
- 'QueueRepository',
101
- 'ServiceFactory',
102
- 'StaticResourceRepository',
103
- 'Migration_V4_3_0',
104
- 'InstallationService',
105
- 'RepositoryUtils',
106
- 'SObjectSchema',
107
- 'Migration_V4_3_0_4',
108
- 'WellKnownResourceController',
109
- 'MigrationScriptProvider',
110
- 'Migration_V7_0_0_1',
111
- 'Migration_V7_0_0',
112
- 'UserRepository',
113
- 'CustomNotificationTypeRepository',
114
- 'DecisionStrategyConfigurationCache',
115
- 'Migration_V4_0_0',
116
- 'Migration_V13_0_0'
117
- ];
80
+ this.ignoreFiles = [];
118
81
  }
119
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
82
  async scan(sourceFolder) {
83
+ this.scanApexClasses(sourceFolder);
84
+ this.scanApexTests(sourceFolder);
85
+ return this.violations;
86
+ }
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ async scanApexClasses(sourceFolder) {
121
89
  this.logger = await core_1.Logger.root();
122
90
  this.dir = sourceFolder + '/app/main/default/classes';
123
91
  this.classFiles = this.getFilesInDirectory(this.dir, '.cls');
@@ -126,21 +94,37 @@ class ApexClassScan {
126
94
  await Promise.all([
127
95
  this.checkFileNameConvention(),
128
96
  // this.checkClassesForKeywords('System\\.debug', 'Use tffa.Logger instead'),
129
- this.checkClassesForKeywords('\\.isCreateable', 'CRUD/FLS Checks are checked by tffa.AbstractRepository'),
130
- this.checkClassesForKeywords('\\.isAccessible', 'CRUD/FLS Checks are checked by tffa.AbstractRepository'),
131
- this.checkClassesForKeywords('\\.isUpdateable', 'CRUD/FLS Checks are checked by tffa.AbstractRepository'),
132
- this.checkClassesForKeywords('tffa\\.AbstractRepository\\.', 'Do not call methods directly of an abstract class . Call methods from Repository classes extending tffa.AbstractRepository'),
133
- this.checkClassesForKeywords('tffa\\.AbstractController\\.', 'Do not call methods directly of an abstract class . Call methods from Controllers classes extending tffa.AbstractController'),
134
- this.checkClassesForKeywords('tffa\\.AbstractRESTService\\.', 'Do not call methods directly of an abstract class . Call methods from RESTService classes extending tffa.AbstractRESTService'),
135
- this.checkClassesForKeywords('select ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method '),
136
- this.checkClassesForKeywords('update ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doUpdate method '),
137
- this.checkClassesForKeywords('upsert ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doUpsert method '),
138
- this.checkClassesForKeywords('delete ', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doDelete method '),
139
- this.checkClassesForKeywords('Database\\.query', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method '),
140
- this.checkClassesForKeywords('Database\\.update', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method '),
141
- this.checkClassesForKeywords('Database\\.insert', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method '),
142
- this.checkClassesForKeywords('Database\\.upsert', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method '),
143
- this.checkClassesForKeywords('Database\\.delete', 'Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method ')
97
+ this.checkClassesForKeywords('\\.isCreateable', 'CRUD/FLS Checks are checked by tffa.AbstractRepository', 'INTERNAL', 'FATAL'),
98
+ this.checkClassesForKeywords('\\.isAccessible', 'CRUD/FLS Checks are checked by tffa.AbstractRepository', 'INTERNAL', 'FATAL'),
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')
113
+ ]);
114
+ return this.violations;
115
+ }
116
+ async scanApexTests(sourceFolder) {
117
+ this.logger = await core_1.Logger.root();
118
+ this.dir = sourceFolder + '/app/test/default/classes';
119
+ this.classFiles = this.getFilesInDirectory(this.dir, '.cls');
120
+ this.ignoreFiles.push(...ignored_files_1.default.files);
121
+ this.logger.debug(this.ignoreFiles);
122
+ await Promise.all([
123
+ this.checkClassesForKeywords('SuppressWarnings', 'Do not supress PMD warnings , instead fix them ', 'PMD', 'WARN'),
124
+ this.checkClassesForKeywords('System\\.assertEquals\\(true\\, true\\)', 'Apex unit tests should include at least one assertion . Do not hard code values. Use proper variables', 'PMD', 'FATAL', 'System\\.assertEquals\\(true\\, true\\)\\;'),
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\\)\\;')
144
128
  ]);
145
129
  return this.violations;
146
130
  }
@@ -184,17 +168,23 @@ class ApexClassScan {
184
168
  * @param {*} keywords
185
169
  * @param {*} hint
186
170
  */
187
- checkClassesForKeywords(keywords, hint) {
171
+ checkClassesForKeywords(keywords, hint, category, level, regexInput) {
188
172
  return new Promise(resolve => {
189
173
  const violatingFiles = [];
190
174
  // We want full words, so we use full word boundary in regex.
191
- // const regex = new RegExp('^(?!.*(\\//|\\*)).*\\b' + keywords + '\\b', 'gim');
192
- const regex = new RegExp("^(?!\\s*(\\'|\\//|\\*)\\s*).*(\\b" + keywords + '\\b).*$', 'gim');
175
+ let regex = keywords;
176
+ if (regexInput) {
177
+ regex = new RegExp(regexInput);
178
+ }
179
+ else {
180
+ regex = new RegExp("^(?!\\s*(\\'|\\//|\\*)\\s*).*(\\b" + keywords + '\\b).*$', 'gim');
181
+ }
193
182
  // this.logger.debug(regex);
194
183
  this.classFiles.forEach(file => {
195
184
  const fileContent = (0, fs_1.readFileSync)(file);
196
185
  const filec = fileContent.toString();
197
186
  let found = false;
187
+ const filename = path_1.default.basename(file, '.cls');
198
188
  if (regex.test(filec)) {
199
189
  const output = filec.match(regex);
200
190
  for (let i = 0; i < output.length; ++i) {
@@ -208,7 +198,6 @@ class ApexClassScan {
208
198
  }
209
199
  }
210
200
  if (found) {
211
- const filename = path_1.default.basename(file, '.cls');
212
201
  if (this.ignoreFiles.indexOf(filename) < 0 && this.ignoreFiles.indexOf(file) < 0) {
213
202
  violatingFiles.push(filename);
214
203
  }
@@ -224,8 +213,8 @@ class ApexClassScan {
224
213
  label: 'Instances of ' + keywords + ' keyword',
225
214
  message: hint,
226
215
  exceptions: violatingFiles,
227
- category: 'INTERNAL',
228
- level: 'FATAL'
216
+ category: category,
217
+ level: level
229
218
  };
230
219
  this.violations.push(o);
231
220
  }
@@ -260,4 +249,4 @@ class ApexClassScan {
260
249
  }
261
250
  }
262
251
  exports.default = ApexClassScan;
263
- //# sourceMappingURL=apex-class-lint.js.map
252
+ //# sourceMappingURL=apex-class-scan.js.map
@@ -0,0 +1 @@
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
+ eject(sourceFolder: string): Promise<unknown[]>;
5
6
  scan(sourceFolder: string, rulesetpath: string): Promise<any[]>;
6
7
  private executeCmd;
7
8
  private parseProblems;
@@ -8,14 +8,21 @@ const ChildProcess = tslib_1.__importStar(require("child_process"));
8
8
  const path = tslib_1.__importStar(require("path"));
9
9
  const os = tslib_1.__importStar(require("os"));
10
10
  const core_1 = require("@salesforce/core");
11
- const JreSetupManager = tslib_1.__importStar(require("../utils/jreSetupManager"));
12
- const ignored_files_1 = tslib_1.__importDefault(require("./ignored-files"));
11
+ const JreSetupManager = tslib_1.__importStar(require("../../utils/jreSetupManager"));
12
+ const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
13
+ const fs_1 = tslib_1.__importDefault(require("fs"));
13
14
  //setup OS constants
14
15
  const CLASSPATH_DELM = os.platform() === 'win32' ? ';' : ':';
15
16
  class ApexPMD {
16
17
  constructor() {
17
18
  this.ignoreFiles = [];
18
19
  }
20
+ async eject(sourceFolder) {
21
+ const pmdBinPath = path.join(__dirname, '../../../', 'bin', 'pmd');
22
+ fs_1.default.copyFileSync(path.resolve(pmdBinPath, 'apex_ruleset.xml'), path.resolve(sourceFolder, 'scripts', 'pmd', 'apex_ruleset.xml'));
23
+ fs_1.default.copyFileSync(path.resolve(pmdBinPath, 'apex_test_ruleset.xml'), path.resolve(sourceFolder, 'scripts', 'pmd', 'apex_test_ruleset.xml'));
24
+ return;
25
+ }
19
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
27
  async scan(sourceFolder, rulesetpath) {
21
28
  this.logger = await core_1.Logger.root();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apex-pmd.js","sourceRoot":"","sources":["../../../src/services/lint/apex-pmd.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  **/
4
4
  import { Logger } from '@salesforce/core';
5
5
  export default class MetadataScan {
6
+ namespace: any;
7
+ constructor(namespace?: string);
6
8
  ignoreFiles: any[];
7
9
  violations: unknown[];
8
10
  logger: Logger;
@@ -8,11 +8,13 @@ const core_1 = require("@salesforce/core");
8
8
  const fs_1 = require("fs");
9
9
  const path = require("path");
10
10
  const xml2js = require("xml2js");
11
- const ignored_files_1 = tslib_1.__importDefault(require("./ignored-files"));
11
+ const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
12
12
  class MetadataScan {
13
- constructor() {
13
+ constructor(namespace) {
14
+ this.namespace = undefined;
14
15
  this.ignoreFiles = [];
15
16
  this.violations = [];
17
+ this.namespace = namespace;
16
18
  }
17
19
  async scan(sourceFolder, minapi) {
18
20
  this.logger = await core_1.Logger.child('MetadataScan');
@@ -51,6 +53,9 @@ class MetadataScan {
51
53
  let tables = [];
52
54
  const tabViolations = [];
53
55
  const fieldViolations = [];
56
+ const fieldUnderScoreViolations = [];
57
+ const fieldCZNameViolations = [];
58
+ const tableCZNameViolations = [];
54
59
  try {
55
60
  tables = (0, fs_1.readdirSync)(srcPath);
56
61
  }
@@ -78,6 +83,14 @@ class MetadataScan {
78
83
  tabViolations.push(tabname);
79
84
  }
80
85
  });
86
+ if (!(ignored_files_1.default.skipObjects.includes(tabname) ||
87
+ ignored_files_1.default.skipStandardObjects.includes(tabname) ||
88
+ tabname.match(ignored_files_1.default.skipObjectPrefixes) ||
89
+ tabname.match(ignored_files_1.default.integrationPrefixes))) {
90
+ if (!tabname.startsWith('tffa__') && !tabname.startsWith('CZ') && !tabname.startsWith('cz') && !this.namespace) {
91
+ tableCZNameViolations.push(tabname);
92
+ }
93
+ }
81
94
  }
82
95
  }
83
96
  catch (err) {
@@ -89,6 +102,7 @@ class MetadataScan {
89
102
  const fields = (0, fs_1.readdirSync)(fieldPath);
90
103
  for (const f of fields) {
91
104
  const fieldFile = path.join(fieldPath, f);
105
+ const fieldname = f.split('.')[0];
92
106
  if (f.startsWith('tffa__')) {
93
107
  continue;
94
108
  }
@@ -96,7 +110,21 @@ class MetadataScan {
96
110
  this.logger.debug(fieldFile);
97
111
  continue;
98
112
  }
99
- const fieldname = f.split('.')[0];
113
+ let found = false;
114
+ const regex = new RegExp('.*_.*__c', 'gim');
115
+ if (regex.test(fieldname)) {
116
+ const output = fieldname.match(regex);
117
+ for (let i = 0; i < output.length; ++i) {
118
+ found = true;
119
+ break;
120
+ }
121
+ }
122
+ if (found) {
123
+ fieldUnderScoreViolations.push(tabname + '.' + fieldname);
124
+ }
125
+ if (tabname.startsWith('tffa__') && !fieldname.startsWith('CZ') && !fieldname.startsWith('cz')) {
126
+ fieldCZNameViolations.push(tabname + '.' + fieldname);
127
+ }
100
128
  const xml = (0, fs_1.readFileSync)(fieldFile);
101
129
  try {
102
130
  xml2js.parseString(xml, { async: false, explicitArray: false }, (_err, result) => {
@@ -137,6 +165,36 @@ class MetadataScan {
137
165
  };
138
166
  this.violations.push(o);
139
167
  }
168
+ if (fieldUnderScoreViolations.length > 0) {
169
+ const o = {
170
+ label: 'Custom fields should not contain underscores.',
171
+ message: `It is a best practice that Custom fields should not contain underscores.`,
172
+ exceptions: fieldUnderScoreViolations,
173
+ category: 'INTERNAL',
174
+ level: 'WARN'
175
+ };
176
+ this.violations.push(o);
177
+ }
178
+ if (fieldCZNameViolations.length > 0) {
179
+ const o = {
180
+ label: 'Custom fields in managed object should start with CZ.',
181
+ message: `It is a best practice that Custom fields should start with CZ in a managed object.`,
182
+ exceptions: fieldCZNameViolations,
183
+ category: 'INTERNAL',
184
+ level: 'WARN'
185
+ };
186
+ this.violations.push(o);
187
+ }
188
+ if (tableCZNameViolations.length > 0) {
189
+ const o = {
190
+ label: 'Custom objects should start with CZ.',
191
+ message: `It is a best practice that Custom objects should start with CZ to avoid clash with managed package`,
192
+ exceptions: tableCZNameViolations,
193
+ category: 'INTERNAL',
194
+ level: 'WARN'
195
+ };
196
+ this.violations.push(o);
197
+ }
140
198
  }
141
199
  // label: 'Using old Metadata API Version',
142
200
  // message: `You appear to be using a version of Metadata API less than the minimum specified. Use the --minapi flag to adjust the minimum API version.`,
@@ -187,4 +245,4 @@ class MetadataScan {
187
245
  }
188
246
  }
189
247
  exports.default = MetadataScan;
190
- //# sourceMappingURL=metadata-lint.js.map
248
+ //# sourceMappingURL=metadata-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-scan.js","sourceRoot":"","sources":["../../../src/services/lint/metadata-scan.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,6 @@
3
3
  **/
4
4
  import { Logger } from '@salesforce/core';
5
5
  export default class FieldScan {
6
- skipObjects: string[];
7
- skipObjectPrefixes: string;
8
- integrationPrefixes: string;
9
- skipProjects: string[];
10
6
  headers: string[];
11
7
  records: any[];
12
8
  logger: Logger;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  /**
4
5
  * Copyright (c) NCR Terafina
5
6
  **/
@@ -8,12 +9,9 @@ const csv_stringify_1 = require("csv-stringify");
8
9
  const fs_1 = require("fs");
9
10
  const path = require("path");
10
11
  const xml2js = require("xml2js");
12
+ const ignored_files_1 = tslib_1.__importDefault(require("../../utils/ignored-files"));
11
13
  class FieldScan {
12
14
  constructor() {
13
- this.skipObjects = ['IntegrationLogItem__c', 'IntegrationLog__c', 'TFEntries__c', 'TIPSettings__c', 'UploadFileHistory__c'];
14
- this.skipObjectPrefixes = '(CAAM|TF4SF__|Service|TF_).*';
15
- this.integrationPrefixes = '^.*(ACH|Alloy|Adapter|Adobe|Alkami|Apiture|BDI|Integration|FIS|FiServ|Fiserv|Verafin|Deluxe|Docusign|DocuSign|CZTFCommon|API|HarlandClarke|Jx|HCC|IMM|InfoImage|LexisNexis|NADA|NACHA|MX|Nacha|MindVolt|OKTA|Payeezy|Precise|Q2|RepayAPI|Schumer|SWB|SymX|Synergy|USAEpay|Converge|Equifax|MBPass|Paymentjs|TU|Nautilus|GlobalScape|LoansPQ|MoveIt|WhoIs|TabaPay|NetTeller).*';
16
- this.skipProjects = ['caam', 'finesse', 'pcb'];
17
15
  this.headers = ['client', 'object', 'objecttype', 'category', 'field', 'description', 'label', 'fieldtype', 'violating'];
18
16
  this.records = [];
19
17
  }
@@ -25,7 +23,7 @@ class FieldScan {
25
23
  else {
26
24
  const clients = (0, fs_1.readdirSync)(sourceFolder);
27
25
  for (const c of clients) {
28
- if (this.skipProjects.includes(c)) {
26
+ if (ignored_files_1.default.skipProjects.includes(c)) {
29
27
  continue;
30
28
  }
31
29
  console.info('Parsing for client:' + c);
@@ -58,7 +56,7 @@ class FieldScan {
58
56
  }
59
57
  for (const t of tables) {
60
58
  const tabname = t;
61
- if (this.skipObjects.includes(tabname) || tabname.match(this.skipObjectPrefixes)) {
59
+ if (ignored_files_1.default.skipObjects.includes(tabname) || tabname.match(ignored_files_1.default.skipObjectPrefixes)) {
62
60
  continue;
63
61
  }
64
62
  let category = 'EXTENSION';
@@ -77,7 +75,7 @@ class FieldScan {
77
75
  }
78
76
  const xml = (0, fs_1.readFileSync)(objFile);
79
77
  let json;
80
- category = tabname.match(this.integrationPrefixes) ? 'INTEGRATION' : 'EXTENSION';
78
+ category = tabname.match(ignored_files_1.default.integrationPrefixes) ? 'INTEGRATION' : 'EXTENSION';
81
79
  xml2js.parseString(xml, { async: false, explicitArray: false }, (_err, result) => {
82
80
  json = result;
83
81
  const e = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-scan.js","sourceRoot":"","sources":["../../../src/services/meta/field-scan.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@
3
3
  **/
4
4
  import { Logger } from '@salesforce/core';
5
5
  export default class IgnoredFiles {
6
+ static skipObjects: string[];
7
+ static skipObjectPrefixes: string;
8
+ static integrationPrefixes: string;
9
+ static skipProjects: string[];
10
+ static skipStandardObjects: string[];
11
+ static ignoreFiles: string[];
6
12
  static files: any[];
7
13
  static logger: Logger;
8
14
  static init(sourceFolder: string): Promise<void>;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) NCR Terafina
4
+ **/
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ const core_1 = require("@salesforce/core");
8
+ const fs_1 = require("fs");
9
+ const path_1 = tslib_1.__importDefault(require("path"));
10
+ class IgnoredFiles {
11
+ static async init(sourceFolder) {
12
+ this.logger = await core_1.Logger.root();
13
+ const currentWorkingFolder = process.cwd();
14
+ const fileContent = (0, fs_1.readFileSync)(sourceFolder + '/.forceignore');
15
+ const lfiles = fileContent
16
+ .toString()
17
+ .split(/\r?\n/)
18
+ .filter(l => l.trim() !== '' && l.charAt(0) !== '#');
19
+ for (const f of lfiles) {
20
+ let filepath = '';
21
+ if (sourceFolder && sourceFolder != '.') {
22
+ filepath = path_1.default.join(sourceFolder, f);
23
+ this.files.push(filepath);
24
+ }
25
+ if (currentWorkingFolder != sourceFolder) {
26
+ filepath = path_1.default.join(currentWorkingFolder, f);
27
+ this.files.push(filepath);
28
+ }
29
+ this.files.push(f);
30
+ }
31
+ this.files.push(...this.ignoreFiles);
32
+ }
33
+ getCurrentWorkingDirectory() {
34
+ return process.cwd();
35
+ }
36
+ }
37
+ exports.default = IgnoredFiles;
38
+ IgnoredFiles.skipObjects = ['IntegrationLogItem__c', 'IntegrationLog__c', 'TFEntries__c', 'TIPSettings__c', 'UploadFileHistory__c'];
39
+ IgnoredFiles.skipObjectPrefixes = '(CAAM|TF4SF__|Service|TF_|TF).*';
40
+ IgnoredFiles.integrationPrefixes = '^.*(ACH|Alloy|Adapter|Adobe|Alkami|Apiture|BDI|Integration|FIS|FiServ|Fiserv|Verafin|Deluxe|Docusign|DocuSign|CZTFCommon|API|HarlandClarke|Jx|HCC|IMM|InfoImage|LexisNexis|NADA|NACHA|MX|Nacha|MindVolt|OKTA|Payeezy|Precise|Q2|RepayAPI|Schumer|SWB|SymX|Synergy|USAEpay|Converge|Equifax|MBPass|Paymentjs|TU|Nautilus|GlobalScape|LoansPQ|MoveIt|WhoIs|TabaPay|NetTeller).*';
41
+ IgnoredFiles.skipProjects = ['caam', 'finesse', 'pcb'];
42
+ IgnoredFiles.skipStandardObjects = ['ContentVersion', 'Activity', 'User', 'Task'];
43
+ IgnoredFiles.ignoreFiles = [
44
+ 'Logger',
45
+ 'AbstractRepository',
46
+ 'SObjectMapper',
47
+ 'ContentRepository',
48
+ 'DocumentRepository',
49
+ 'JobRepository',
50
+ 'QueryBuilder',
51
+ 'Migration_V4_3_0_3',
52
+ 'Migration_V5_1_0',
53
+ 'DisclosureTemplateConfigurationFactory',
54
+ 'EmailTemplateRepository',
55
+ 'EnvironmentConfigurationRepository',
56
+ 'MigrationExecutor',
57
+ 'Migration_V4_0_0_1',
58
+ 'Migration_V4_3_0_1',
59
+ 'Migration_V4_3_0_2',
60
+ 'Namespace',
61
+ 'OrganizationRepository',
62
+ 'PermissionRepository',
63
+ 'QueueRepository',
64
+ 'ServiceFactory',
65
+ 'StaticResourceRepository',
66
+ 'Migration_V4_3_0',
67
+ 'InstallationService',
68
+ 'RepositoryUtils',
69
+ 'SObjectSchema',
70
+ 'Migration_V4_3_0_4',
71
+ 'WellKnownResourceController',
72
+ 'MigrationScriptProvider',
73
+ 'Migration_V7_0_0_1',
74
+ 'Migration_V7_0_0',
75
+ 'UserRepository',
76
+ 'CustomNotificationTypeRepository',
77
+ 'DecisionStrategyConfigurationCache',
78
+ 'Migration_V4_0_0',
79
+ 'Migration_V13_0_0',
80
+ 'TestDataRepository',
81
+ 'ApexPageUtils',
82
+ 'EventFactory',
83
+ 'ExpressionEvaluator',
84
+ 'Migration_V14_0_0',
85
+ 'Migration_V14_0_0_1',
86
+ 'Migration_V14_0_0_2'
87
+ ];
88
+ IgnoredFiles.files = [];
89
+ //# sourceMappingURL=ignored-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignored-files.js","sourceRoot":"","sources":["../../src/utils/ignored-files.ts"],"names":[],"mappings":";AAAA;;IAEI;;;AAEJ,2CAA0C;AAC1C,2BAAkC;AAClC,wDAAwB;AAExB,MAAqB,YAAY;IAwDxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAoB;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,aAAM,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,YAAY,GAAG,eAAe,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,WAAW;aACvB,QAAQ,EAAE;aACV,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,YAAY,IAAI,YAAY,IAAI,GAAG,EAAE;gBACvC,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3B;YACD,IAAI,oBAAoB,IAAI,YAAY,EAAE;gBACxC,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,0BAA0B;QACxB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;;AAjFH,+BAkFC;AAjFe,wBAAW,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AACvH,+BAAkB,GAAG,iCAAiC,CAAC;AACvD,gCAAmB,GAC/B,+WAA+W,CAAC;AACpW,yBAAY,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1C,gCAAmB,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E,wBAAW,GAAG;IACnB,QAAQ;IACR,oBAAoB;IACpB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,wCAAwC;IACxC,yBAAyB;IACzB,oCAAoC;IACpC,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,WAAW;IACX,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,gBAAgB;IAChB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,6BAA6B;IAC7B,yBAAyB;IACzB,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,kCAAkC;IAClC,oCAAoC;IACpC,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,cAAc;IACd,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEY,kBAAK,GAAG,EAAE,CAAC"}
File without changes
@@ -55,7 +55,7 @@ class JreSetupManager extends kit_1.AsyncCreatable {
55
55
  // If we reach this point and we somehow still haven't found a javaHome, then we're pretty thoroughly hosed.
56
56
  // So we'll just throw an error telling the user to set it themselves.
57
57
  if (!javaHome) {
58
- throw core_1.SfdxError.create('@terafina/tffa-sfdx-plugin', 'jreSetupManager', 'NoJavaHomeFound', []);
58
+ throw new core_1.SfdxError('NoJavaHomeFound', 'NoJavaHomeFound');
59
59
  }
60
60
  return javaHome;
61
61
  }
@@ -86,7 +86,7 @@ class JreSetupManager extends kit_1.AsyncCreatable {
86
86
  this.logger.trace(`Version output match for pattern ${regex} is ${matchedParts}`);
87
87
  // matchedParts should have four groups: "11.0", "11", ".0", "0" or "14", "14", undefined, undefined
88
88
  if (!matchedParts || matchedParts.length < 4) {
89
- throw core_1.SfdxError.create('@terafina/tffa-sfdx-plugin', 'jreSetupManager', 'VersionNotFound', []);
89
+ throw new core_1.SfdxError('VersionNotFound', 'VersionNotFound');
90
90
  }
91
91
  const majorVersion = parseInt(matchedParts[1]);
92
92
  const minorVersion = matchedParts[3] ? parseInt(matchedParts[3]) : '';
@@ -105,7 +105,7 @@ class JreSetupManager extends kit_1.AsyncCreatable {
105
105
  }
106
106
  else {
107
107
  // Not matching what we are looking for
108
- throw core_1.SfdxError.create('@terafina/tffa-sfdx-plugin', 'jreSetupManager', 'InvalidVersion', [version]);
108
+ throw new core_1.SfdxError('InvalidVersion' + version, 'InvalidVersion');
109
109
  }
110
110
  this.logger.trace(`Java version found as ${version}`);
111
111
  return;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jreSetupManager.js","sourceRoot":"","sources":["../../src/utils/jreSetupManager.ts"],"names":[],"mappings":"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"}