@provartesting/provardx-cli 1.5.0-dev.2 → 1.5.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.
Files changed (147) hide show
  1. package/README.md +163 -12
  2. package/bin/mcp-start.js +74 -0
  3. package/lib/commands/provar/auth/clear.d.ts +7 -0
  4. package/lib/commands/provar/auth/clear.js +36 -0
  5. package/lib/commands/provar/auth/clear.js.map +1 -0
  6. package/lib/commands/provar/auth/login.d.ts +10 -0
  7. package/lib/commands/provar/auth/login.js +90 -0
  8. package/lib/commands/provar/auth/login.js.map +1 -0
  9. package/lib/commands/provar/auth/rotate.d.ts +7 -0
  10. package/lib/commands/provar/auth/rotate.js +42 -0
  11. package/lib/commands/provar/auth/rotate.js.map +1 -0
  12. package/lib/commands/provar/auth/status.d.ts +7 -0
  13. package/lib/commands/provar/auth/status.js +107 -0
  14. package/lib/commands/provar/auth/status.js.map +1 -0
  15. package/lib/commands/provar/mcp/start.d.ts +2 -0
  16. package/lib/commands/provar/mcp/start.js +14 -1
  17. package/lib/commands/provar/mcp/start.js.map +1 -1
  18. package/lib/mcp/docs/NITROX_CATALOG_SOURCE.json +6 -0
  19. package/lib/mcp/docs/NITROX_COMPONENT_CATALOG.md +2001 -0
  20. package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +1430 -0
  21. package/lib/mcp/docs/PROVAR_TOOL_GUIDE.md +187 -0
  22. package/lib/mcp/licensing/algasClient.js +14 -5
  23. package/lib/mcp/licensing/algasClient.js.map +1 -1
  24. package/lib/mcp/licensing/ideDetection.d.ts +0 -12
  25. package/lib/mcp/licensing/ideDetection.js +1 -73
  26. package/lib/mcp/licensing/ideDetection.js.map +1 -1
  27. package/lib/mcp/licensing/licenseCache.js +7 -1
  28. package/lib/mcp/licensing/licenseCache.js.map +1 -1
  29. package/lib/mcp/licensing/licenseValidator.d.ts +3 -3
  30. package/lib/mcp/licensing/licenseValidator.js +11 -4
  31. package/lib/mcp/licensing/licenseValidator.js.map +1 -1
  32. package/lib/mcp/prompts/guidePrompts.d.ts +4 -0
  33. package/lib/mcp/prompts/guidePrompts.js +334 -0
  34. package/lib/mcp/prompts/guidePrompts.js.map +1 -0
  35. package/lib/mcp/prompts/index.d.ts +2 -0
  36. package/lib/mcp/prompts/index.js +23 -0
  37. package/lib/mcp/prompts/index.js.map +1 -0
  38. package/lib/mcp/prompts/loopPrompts.d.ts +6 -0
  39. package/lib/mcp/prompts/loopPrompts.js +435 -0
  40. package/lib/mcp/prompts/loopPrompts.js.map +1 -0
  41. package/lib/mcp/prompts/migrationPrompts.d.ts +4 -0
  42. package/lib/mcp/prompts/migrationPrompts.js +207 -0
  43. package/lib/mcp/prompts/migrationPrompts.js.map +1 -0
  44. package/lib/mcp/rules/provar_best_practices_rules.json +256 -544
  45. package/lib/mcp/security/pathPolicy.d.ts +5 -0
  46. package/lib/mcp/security/pathPolicy.js +58 -3
  47. package/lib/mcp/security/pathPolicy.js.map +1 -1
  48. package/lib/mcp/server.d.ts +18 -0
  49. package/lib/mcp/server.js +232 -19
  50. package/lib/mcp/server.js.map +1 -1
  51. package/lib/mcp/tools/antTools.d.ts +15 -0
  52. package/lib/mcp/tools/antTools.js +369 -170
  53. package/lib/mcp/tools/antTools.js.map +1 -1
  54. package/lib/mcp/tools/automationTools.d.ts +18 -8
  55. package/lib/mcp/tools/automationTools.js +333 -176
  56. package/lib/mcp/tools/automationTools.js.map +1 -1
  57. package/lib/mcp/tools/bestPracticesEngine.js +161 -23
  58. package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
  59. package/lib/mcp/tools/connectionTools.d.ts +4 -0
  60. package/lib/mcp/tools/connectionTools.js +242 -0
  61. package/lib/mcp/tools/connectionTools.js.map +1 -0
  62. package/lib/mcp/tools/defectTools.d.ts +1 -1
  63. package/lib/mcp/tools/defectTools.js +61 -50
  64. package/lib/mcp/tools/defectTools.js.map +1 -1
  65. package/lib/mcp/tools/descHelper.d.ts +5 -0
  66. package/lib/mcp/tools/descHelper.js +14 -0
  67. package/lib/mcp/tools/descHelper.js.map +1 -0
  68. package/lib/mcp/tools/hierarchyValidate.d.ts +1 -1
  69. package/lib/mcp/tools/hierarchyValidate.js +127 -42
  70. package/lib/mcp/tools/hierarchyValidate.js.map +1 -1
  71. package/lib/mcp/tools/nitroXTools.d.ts +23 -0
  72. package/lib/mcp/tools/nitroXTools.js +863 -0
  73. package/lib/mcp/tools/nitroXTools.js.map +1 -0
  74. package/lib/mcp/tools/pageObjectGenerate.js +150 -57
  75. package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
  76. package/lib/mcp/tools/pageObjectValidate.js +143 -46
  77. package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
  78. package/lib/mcp/tools/projectInspect.js +79 -32
  79. package/lib/mcp/tools/projectInspect.js.map +1 -1
  80. package/lib/mcp/tools/projectValidateFromPath.js +185 -58
  81. package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
  82. package/lib/mcp/tools/propertiesTools.d.ts +2 -0
  83. package/lib/mcp/tools/propertiesTools.js +358 -78
  84. package/lib/mcp/tools/propertiesTools.js.map +1 -1
  85. package/lib/mcp/tools/qualityHubApiTools.d.ts +3 -0
  86. package/lib/mcp/tools/qualityHubApiTools.js +139 -0
  87. package/lib/mcp/tools/qualityHubApiTools.js.map +1 -0
  88. package/lib/mcp/tools/qualityHubTools.js +292 -72
  89. package/lib/mcp/tools/qualityHubTools.js.map +1 -1
  90. package/lib/mcp/tools/rcaTools.d.ts +3 -2
  91. package/lib/mcp/tools/rcaTools.js +194 -56
  92. package/lib/mcp/tools/rcaTools.js.map +1 -1
  93. package/lib/mcp/tools/sfSpawn.d.ts +25 -3
  94. package/lib/mcp/tools/sfSpawn.js +154 -6
  95. package/lib/mcp/tools/sfSpawn.js.map +1 -1
  96. package/lib/mcp/tools/testCaseGenerate.js +285 -78
  97. package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
  98. package/lib/mcp/tools/testCaseStepTools.d.ts +4 -0
  99. package/lib/mcp/tools/testCaseStepTools.js +244 -0
  100. package/lib/mcp/tools/testCaseStepTools.js.map +1 -0
  101. package/lib/mcp/tools/testCaseValidate.d.ts +11 -0
  102. package/lib/mcp/tools/testCaseValidate.js +381 -46
  103. package/lib/mcp/tools/testCaseValidate.js.map +1 -1
  104. package/lib/mcp/tools/testPlanTools.d.ts +1 -0
  105. package/lib/mcp/tools/testPlanTools.js +316 -59
  106. package/lib/mcp/tools/testPlanTools.js.map +1 -1
  107. package/lib/mcp/tools/testPlanValidate.js +114 -23
  108. package/lib/mcp/tools/testPlanValidate.js.map +1 -1
  109. package/lib/mcp/tools/testSuiteValidate.js +130 -15
  110. package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
  111. package/lib/mcp/update/updateChecker.d.ts +14 -0
  112. package/lib/mcp/update/updateChecker.js +228 -0
  113. package/lib/mcp/update/updateChecker.js.map +1 -0
  114. package/lib/mcp/utils/detailLevel.d.ts +9 -0
  115. package/lib/mcp/utils/detailLevel.js +20 -0
  116. package/lib/mcp/utils/detailLevel.js.map +1 -0
  117. package/lib/mcp/utils/fieldMask.d.ts +17 -0
  118. package/lib/mcp/utils/fieldMask.js +75 -0
  119. package/lib/mcp/utils/fieldMask.js.map +1 -0
  120. package/lib/mcp/utils/tokenMeta.d.ts +40 -0
  121. package/lib/mcp/utils/tokenMeta.js +90 -0
  122. package/lib/mcp/utils/tokenMeta.js.map +1 -0
  123. package/lib/mcp/utils/validationDiff.d.ts +57 -0
  124. package/lib/mcp/utils/validationDiff.js +191 -0
  125. package/lib/mcp/utils/validationDiff.js.map +1 -0
  126. package/lib/mcp/utils/validationScore.d.ts +15 -0
  127. package/lib/mcp/utils/validationScore.js +31 -0
  128. package/lib/mcp/utils/validationScore.js.map +1 -0
  129. package/lib/services/auth/credentials.d.ts +21 -0
  130. package/lib/services/auth/credentials.js +75 -0
  131. package/lib/services/auth/credentials.js.map +1 -0
  132. package/lib/services/auth/loginFlow.d.ts +68 -0
  133. package/lib/services/auth/loginFlow.js +216 -0
  134. package/lib/services/auth/loginFlow.js.map +1 -0
  135. package/lib/services/projectValidation.d.ts +5 -2
  136. package/lib/services/projectValidation.js +83 -31
  137. package/lib/services/projectValidation.js.map +1 -1
  138. package/lib/services/qualityHub/client.d.ts +161 -0
  139. package/lib/services/qualityHub/client.js +226 -0
  140. package/lib/services/qualityHub/client.js.map +1 -0
  141. package/messages/sf.provar.auth.clear.md +16 -0
  142. package/messages/sf.provar.auth.login.md +31 -0
  143. package/messages/sf.provar.auth.rotate.md +23 -0
  144. package/messages/sf.provar.auth.status.md +16 -0
  145. package/messages/sf.provar.mcp.start.md +83 -48
  146. package/oclif.manifest.json +325 -28
  147. package/package.json +35 -12
@@ -12,17 +12,28 @@ import { z } from 'zod';
12
12
  import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
13
13
  import { makeError, makeRequestId } from '../schemas/common.js';
14
14
  import { log } from '../logging/logger.js';
15
+ import { desc } from './descHelper.js';
15
16
  export function registerPageObjectValidate(server, config) {
16
- server.tool('provar.pageobject.validate', 'Validate a Provar Java Page Object against naming conventions, locator best practices, and structural requirements. Returns quality score (0–100) and list of issues.', {
17
- content: z.string().optional().describe('Java source code to validate directly'),
18
- file_path: z.string().optional().describe('Path to .java Page Object file'),
19
- expected_class_name: z
20
- .string()
21
- .optional()
22
- .describe('Expected class name for PO_006 check; inferred from file_path when omitted'),
17
+ server.registerTool('provar_pageobject_validate', {
18
+ title: 'Validate Page Object',
19
+ description: desc('Validate a Provar Java Page Object against naming conventions, locator best practices, and structural requirements. Returns quality score (0–100) and list of issues.', 'Validate a Provar Java Page Object for naming, locators, and structure.'),
20
+ inputSchema: {
21
+ content: z
22
+ .string()
23
+ .optional()
24
+ .describe(desc('Java source code to validate directly', 'string, optional; Java source to validate')),
25
+ file_path: z
26
+ .string()
27
+ .optional()
28
+ .describe(desc('Path to .java Page Object file', 'string, optional; path to .java file')),
29
+ expected_class_name: z
30
+ .string()
31
+ .optional()
32
+ .describe(desc('Expected class name for PO_006 check; inferred from file_path when omitted', 'string, optional; expected class name for PO_006 check')),
33
+ },
23
34
  }, ({ content, file_path, expected_class_name }) => {
24
35
  const requestId = makeRequestId();
25
- log('info', 'provar.pageobject.validate', { requestId, has_content: !!content, file_path });
36
+ log('info', 'provar_pageobject_validate', { requestId, has_content: !!content, file_path });
26
37
  try {
27
38
  let source = content;
28
39
  let inferredClassName = expected_class_name;
@@ -52,29 +63,88 @@ export function registerPageObjectValidate(server, config) {
52
63
  catch (err) {
53
64
  const error = err;
54
65
  const errResult = makeError(error instanceof PathPolicyError ? error.code : 'VALIDATE_ERROR', error.message, requestId, false);
55
- log('error', 'provar.pageobject.validate failed', { requestId, error: error.message });
66
+ log('error', 'provar_pageobject_validate failed', { requestId, error: error.message });
56
67
  return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
57
68
  }
58
69
  });
59
70
  }
60
71
  // ── Validator (ported from quality-hub-agents/lambda/src/validator/page_object_validator.py) ──
61
72
  const VALID_LOCATOR_STRATEGIES = new Set([
62
- 'xpath', 'id', 'css', 'name', 'className', 'tagName',
63
- 'linkText', 'partialLinkText', 'visualforce', 'label',
73
+ 'xpath',
74
+ 'id',
75
+ 'css',
76
+ 'name',
77
+ 'className',
78
+ 'tagName',
79
+ 'linkText',
80
+ 'partialLinkText',
81
+ 'visualforce',
82
+ 'label',
64
83
  ]);
65
84
  const VALID_ELEMENT_TYPES = new Set([
66
- 'TextType', 'ButtonType', 'LinkType', 'ChoiceListType',
67
- 'RadioType', 'FileType', 'DateType', 'RichTextType', 'BooleanType',
85
+ 'TextType',
86
+ 'ButtonType',
87
+ 'LinkType',
88
+ 'ChoiceListType',
89
+ 'RadioType',
90
+ 'FileType',
91
+ 'DateType',
92
+ 'RichTextType',
93
+ 'BooleanType',
68
94
  ]);
69
95
  const PASCAL_CASE_RE = /^[A-Z][A-Za-z0-9]*$/;
70
96
  const VALID_JAVA_IDENT_RE = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
71
97
  const JAVA_RESERVED = new Set([
72
- 'abstract', 'assert', 'boolean', 'break', 'byte', 'case', 'catch', 'char', 'class',
73
- 'const', 'continue', 'default', 'do', 'double', 'else', 'enum', 'extends', 'final',
74
- 'finally', 'float', 'for', 'goto', 'if', 'implements', 'import', 'instanceof', 'int',
75
- 'interface', 'long', 'native', 'new', 'package', 'private', 'protected', 'public',
76
- 'return', 'short', 'static', 'strictfp', 'super', 'switch', 'synchronized', 'this',
77
- 'throw', 'throws', 'transient', 'try', 'void', 'volatile', 'while',
98
+ 'abstract',
99
+ 'assert',
100
+ 'boolean',
101
+ 'break',
102
+ 'byte',
103
+ 'case',
104
+ 'catch',
105
+ 'char',
106
+ 'class',
107
+ 'const',
108
+ 'continue',
109
+ 'default',
110
+ 'do',
111
+ 'double',
112
+ 'else',
113
+ 'enum',
114
+ 'extends',
115
+ 'final',
116
+ 'finally',
117
+ 'float',
118
+ 'for',
119
+ 'goto',
120
+ 'if',
121
+ 'implements',
122
+ 'import',
123
+ 'instanceof',
124
+ 'int',
125
+ 'interface',
126
+ 'long',
127
+ 'native',
128
+ 'new',
129
+ 'package',
130
+ 'private',
131
+ 'protected',
132
+ 'public',
133
+ 'return',
134
+ 'short',
135
+ 'static',
136
+ 'strictfp',
137
+ 'super',
138
+ 'switch',
139
+ 'synchronized',
140
+ 'this',
141
+ 'throw',
142
+ 'throws',
143
+ 'transient',
144
+ 'try',
145
+ 'void',
146
+ 'volatile',
147
+ 'while',
78
148
  ]);
79
149
  const SF_DYNAMIC_ATTRS_RE = /data-aura-rendered-by|data-aura-class|aura-id|data-component-id/i;
80
150
  const INDEXED_XPATH_RE = /\[\d+\]/;
@@ -103,7 +173,8 @@ export function validatePageObject(source, expectedClassName) {
103
173
  const packageName = packageMatch ? packageMatch[1] : null;
104
174
  if (!packageMatch) {
105
175
  issues.push({
106
- rule_id: 'PO_001', severity: 'ERROR',
176
+ rule_id: 'PO_001',
177
+ severity: 'ERROR',
107
178
  message: 'Missing package declaration.',
108
179
  applies_to: 'class',
109
180
  suggestion: "Add 'package pageobjects;' at the top of the file.",
@@ -111,7 +182,8 @@ export function validatePageObject(source, expectedClassName) {
111
182
  }
112
183
  else if (!/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/.test(packageName)) {
113
184
  issues.push({
114
- rule_id: 'PO_002', severity: 'ERROR',
185
+ rule_id: 'PO_002',
186
+ severity: 'ERROR',
115
187
  message: `Invalid package name: "${packageName}".`,
116
188
  applies_to: 'class',
117
189
  suggestion: 'Package names should be valid lower-case Java identifiers separated by dots.',
@@ -124,7 +196,8 @@ export function validatePageObject(source, expectedClassName) {
124
196
  const closeBraces = (stripped.match(/\}/g) ?? []).length;
125
197
  if (openBraces !== closeBraces) {
126
198
  issues.push({
127
- rule_id: 'PO_060', severity: 'ERROR',
199
+ rule_id: 'PO_060',
200
+ severity: 'ERROR',
128
201
  message: `Mismatched braces: ${openBraces} opening vs ${closeBraces} closing.`,
129
202
  applies_to: 'class',
130
203
  suggestion: 'Check for missing or extra curly braces.',
@@ -133,7 +206,8 @@ export function validatePageObject(source, expectedClassName) {
133
206
  // ── Imports ──────────────────────────────────────────────────────────────────
134
207
  if (!stripped.includes('import com.provar.core.testapi.annotations')) {
135
208
  issues.push({
136
- rule_id: 'PO_012', severity: 'WARNING',
209
+ rule_id: 'PO_012',
210
+ severity: 'WARNING',
137
211
  message: 'Missing import for Provar annotations.',
138
212
  applies_to: 'class',
139
213
  suggestion: "Add 'import com.provar.core.testapi.annotations.*;'",
@@ -147,7 +221,8 @@ export function validatePageObject(source, expectedClassName) {
147
221
  const fields = extractFields(source);
148
222
  if (fields.length === 0 && !issues.some((i) => i.rule_id === 'PO_003')) {
149
223
  issues.push({
150
- rule_id: 'PO_030', severity: 'WARNING',
224
+ rule_id: 'PO_030',
225
+ severity: 'WARNING',
151
226
  message: 'No WebElement or WebComponent fields found.',
152
227
  applies_to: 'class',
153
228
  suggestion: 'Add at least one WebElement field with @FindBy locator and type annotation.',
@@ -159,7 +234,8 @@ export function validatePageObject(source, expectedClassName) {
159
234
  // ── Commented code ───────────────────────────────────────────────────────────
160
235
  if (/\/\/\s*(public|private|protected|@FindBy|WebElement|@\w+Type)/.test(source)) {
161
236
  issues.push({
162
- rule_id: 'PO_080', severity: 'INFO',
237
+ rule_id: 'PO_080',
238
+ severity: 'INFO',
163
239
  message: 'Commented-out code detected.',
164
240
  applies_to: 'class',
165
241
  suggestion: 'Remove commented code. Use version control to track history.',
@@ -189,7 +265,8 @@ function checkClassDeclaration(stripped, expectedClassName, issues) {
189
265
  const className = classMatch ? classMatch[1] : null;
190
266
  if (!classMatch) {
191
267
  issues.push({
192
- rule_id: 'PO_003', severity: 'ERROR',
268
+ rule_id: 'PO_003',
269
+ severity: 'ERROR',
193
270
  message: 'Missing public class declaration.',
194
271
  applies_to: 'class',
195
272
  suggestion: "Ensure the file has a 'public class ClassName' declaration.",
@@ -198,7 +275,8 @@ function checkClassDeclaration(stripped, expectedClassName, issues) {
198
275
  else {
199
276
  if (!PASCAL_CASE_RE.test(className)) {
200
277
  issues.push({
201
- rule_id: 'PO_004', severity: 'WARNING',
278
+ rule_id: 'PO_004',
279
+ severity: 'WARNING',
202
280
  message: `Class name "${className}" is not PascalCase.`,
203
281
  applies_to: 'class',
204
282
  suggestion: "Rename to PascalCase (e.g., 'MyPageObject').",
@@ -206,7 +284,8 @@ function checkClassDeclaration(stripped, expectedClassName, issues) {
206
284
  }
207
285
  if (!VALID_JAVA_IDENT_RE.test(className)) {
208
286
  issues.push({
209
- rule_id: 'PO_005', severity: 'ERROR',
287
+ rule_id: 'PO_005',
288
+ severity: 'ERROR',
210
289
  message: `Class name "${className}" is not a valid Java identifier.`,
211
290
  applies_to: 'class',
212
291
  suggestion: 'Class names must start with a letter, $, or _ and contain only letters, digits, $, or _.',
@@ -214,7 +293,8 @@ function checkClassDeclaration(stripped, expectedClassName, issues) {
214
293
  }
215
294
  if (expectedClassName && className !== expectedClassName) {
216
295
  issues.push({
217
- rule_id: 'PO_006', severity: 'ERROR',
296
+ rule_id: 'PO_006',
297
+ severity: 'ERROR',
218
298
  message: `Class name "${className}" does not match expected "${expectedClassName}".`,
219
299
  applies_to: 'class',
220
300
  suggestion: 'Class name must match the filename.',
@@ -228,7 +308,8 @@ function checkAnnotations(stripped, issues) {
228
308
  const hasSalesforceAnnotation = /@SalesforcePage\s*\(/.test(stripped);
229
309
  if (!hasPageAnnotation && !hasSalesforceAnnotation) {
230
310
  issues.push({
231
- rule_id: 'PO_020', severity: 'WARNING',
311
+ rule_id: 'PO_020',
312
+ severity: 'WARNING',
232
313
  message: 'Missing @Page or @SalesforcePage annotation.',
233
314
  applies_to: 'annotation',
234
315
  suggestion: 'Add @Page annotation before the class declaration.',
@@ -238,7 +319,8 @@ function checkAnnotations(stripped, issues) {
238
319
  const m = /@Page\s*\(([^)]*)\)/.exec(stripped);
239
320
  if (m && !m[1].includes('title')) {
240
321
  issues.push({
241
- rule_id: 'PO_021', severity: 'WARNING',
322
+ rule_id: 'PO_021',
323
+ severity: 'WARNING',
242
324
  message: '@Page annotation missing title attribute.',
243
325
  applies_to: 'annotation',
244
326
  suggestion: 'Add title attribute to @Page annotation.',
@@ -250,7 +332,8 @@ function checkAnnotations(stripped, issues) {
250
332
  if (m) {
251
333
  if (!m[1].includes('title') || !m[1].includes('connection')) {
252
334
  issues.push({
253
- rule_id: 'PO_022', severity: 'ERROR',
335
+ rule_id: 'PO_022',
336
+ severity: 'ERROR',
254
337
  message: '@SalesforcePage missing required title or connection attribute.',
255
338
  applies_to: 'annotation',
256
339
  suggestion: 'Add required attributes to @SalesforcePage annotation.',
@@ -259,7 +342,8 @@ function checkAnnotations(stripped, issues) {
259
342
  const pageTypes = ['page', 'auraComponent', 'object', 'lightningWebComponent'];
260
343
  if (!pageTypes.some((t) => m[1].includes(t))) {
261
344
  issues.push({
262
- rule_id: 'PO_023', severity: 'WARNING',
345
+ rule_id: 'PO_023',
346
+ severity: 'WARNING',
263
347
  message: '@SalesforcePage should specify page type attribute.',
264
348
  applies_to: 'annotation',
265
349
  suggestion: 'Add one of: page, auraComponent, object, or lightningWebComponent.',
@@ -274,7 +358,8 @@ function validateFields(fields, hasSalesforceAnnotation, issues) {
274
358
  for (const field of fields) {
275
359
  if (fieldNames.has(field.name)) {
276
360
  issues.push({
277
- rule_id: 'PO_031', severity: 'ERROR',
361
+ rule_id: 'PO_031',
362
+ severity: 'ERROR',
278
363
  message: `Duplicate field name: "${field.name}".`,
279
364
  applies_to: 'field',
280
365
  suggestion: 'Rename one of the duplicate fields.',
@@ -285,7 +370,8 @@ function validateFields(fields, hasSalesforceAnnotation, issues) {
285
370
  }
286
371
  if (!VALID_JAVA_IDENT_RE.test(field.name)) {
287
372
  issues.push({
288
- rule_id: 'PO_032', severity: 'ERROR',
373
+ rule_id: 'PO_032',
374
+ severity: 'ERROR',
289
375
  message: `Invalid field name: "${field.name}".`,
290
376
  applies_to: 'field',
291
377
  suggestion: 'Field names must be valid Java identifiers.',
@@ -293,7 +379,8 @@ function validateFields(fields, hasSalesforceAnnotation, issues) {
293
379
  }
294
380
  if (JAVA_RESERVED.has(field.name)) {
295
381
  issues.push({
296
- rule_id: 'PO_033', severity: 'ERROR',
382
+ rule_id: 'PO_033',
383
+ severity: 'ERROR',
297
384
  message: `Field name "${field.name}" is a Java reserved word.`,
298
385
  applies_to: 'field',
299
386
  suggestion: 'Rename field to avoid Java reserved words.',
@@ -301,7 +388,8 @@ function validateFields(fields, hasSalesforceAnnotation, issues) {
301
388
  }
302
389
  if (field.locatorStrategy && !VALID_LOCATOR_STRATEGIES.has(field.locatorStrategy)) {
303
390
  issues.push({
304
- rule_id: 'PO_034', severity: 'ERROR',
391
+ rule_id: 'PO_034',
392
+ severity: 'ERROR',
305
393
  message: `Invalid locator strategy: "${field.locatorStrategy}".`,
306
394
  applies_to: 'field',
307
395
  suggestion: 'Use one of: xpath, id, css, name, className, tagName, linkText, partialLinkText, visualforce, label.',
@@ -309,7 +397,8 @@ function validateFields(fields, hasSalesforceAnnotation, issues) {
309
397
  }
310
398
  if (field.elementType && !VALID_ELEMENT_TYPES.has(field.elementType)) {
311
399
  issues.push({
312
- rule_id: 'PO_036', severity: 'WARNING',
400
+ rule_id: 'PO_036',
401
+ severity: 'WARNING',
313
402
  message: `Invalid element type: "@${field.elementType}". (CheckboxType is not valid — use BooleanType.)`,
314
403
  applies_to: 'field',
315
404
  suggestion: 'Use a valid Provar element type: TextType, ButtonType, LinkType, ChoiceListType, RadioType, FileType, DateType, RichTextType, BooleanType.',
@@ -325,7 +414,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
325
414
  return;
326
415
  if ((strat === 'xpath' || strat === '') && /^\/html|^\/body/i.test(lv)) {
327
416
  issues.push({
328
- rule_id: 'PO_071', severity: 'ERROR',
417
+ rule_id: 'PO_071',
418
+ severity: 'ERROR',
329
419
  message: `Absolute XPath for field "${field.name}".`,
330
420
  applies_to: 'field',
331
421
  suggestion: 'Use relative XPath starting with // or .//',
@@ -333,7 +423,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
333
423
  }
334
424
  if (SF_DYNAMIC_ATTRS_RE.test(lv)) {
335
425
  issues.push({
336
- rule_id: 'PO_073', severity: 'ERROR',
426
+ rule_id: 'PO_073',
427
+ severity: 'ERROR',
337
428
  message: `Salesforce dynamic attribute in locator for "${field.name}".`,
338
429
  applies_to: 'field',
339
430
  suggestion: 'Use stable identifiers like labels, data-testid, or semantic selectors.',
@@ -341,7 +432,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
341
432
  }
342
433
  if (strat === 'id' && hasSalesforceAnnotation) {
343
434
  issues.push({
344
- rule_id: 'PO_070', severity: 'WARNING',
435
+ rule_id: 'PO_070',
436
+ severity: 'WARNING',
345
437
  message: `ID-based locator on Salesforce page for "${field.name}". IDs may be dynamic.`,
346
438
  applies_to: 'field',
347
439
  suggestion: 'Prefer xpath/css with stable attributes like data-testid, aria-label, name.',
@@ -349,7 +441,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
349
441
  }
350
442
  if (INDEXED_XPATH_RE.test(lv)) {
351
443
  issues.push({
352
- rule_id: 'PO_072', severity: 'WARNING',
444
+ rule_id: 'PO_072',
445
+ severity: 'WARNING',
353
446
  message: `Indexed XPath [n] for field "${field.name}".`,
354
447
  applies_to: 'field',
355
448
  suggestion: 'Prefer attribute-based selection over positional indexes.',
@@ -359,7 +452,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
359
452
  const segments = (lv.match(/\/{2}/g) ?? []).length;
360
453
  if (segments > 4) {
361
454
  issues.push({
362
- rule_id: 'PO_076', severity: 'WARNING',
455
+ rule_id: 'PO_076',
456
+ severity: 'WARNING',
363
457
  message: `Complex XPath (${segments} descent operators) for "${field.name}".`,
364
458
  applies_to: 'field',
365
459
  suggestion: 'Simplify with a more direct path or data-testid attributes.',
@@ -368,7 +462,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
368
462
  }
369
463
  if (POSITION_FN_RE.test(lv)) {
370
464
  issues.push({
371
- rule_id: 'PO_079', severity: 'WARNING',
465
+ rule_id: 'PO_079',
466
+ severity: 'WARNING',
372
467
  message: `Position function (last/first/position) in XPath for "${field.name}".`,
373
468
  applies_to: 'field',
374
469
  suggestion: 'Use unique identifiers instead of position-based selection.',
@@ -376,7 +471,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
376
471
  }
377
472
  if (strat === 'css' && /[a-z0-9]+-[a-z0-9]+-[a-z0-9]+/.test(lv)) {
378
473
  issues.push({
379
- rule_id: 'PO_075', severity: 'INFO',
474
+ rule_id: 'PO_075',
475
+ severity: 'INFO',
380
476
  message: `Possibly autogenerated CSS class pattern for "${field.name}".`,
381
477
  applies_to: 'field',
382
478
  suggestion: 'Prefer stable attributes over autogenerated CSS classes.',
@@ -384,7 +480,8 @@ function checkLocatorQuality(field, hasSalesforceAnnotation, issues) {
384
480
  }
385
481
  if (lv.length > 200) {
386
482
  issues.push({
387
- rule_id: 'PO_078', severity: 'INFO',
483
+ rule_id: 'PO_078',
484
+ severity: 'INFO',
388
485
  message: `Very long locator (${lv.length} chars) for "${field.name}".`,
389
486
  applies_to: 'field',
390
487
  suggestion: 'Consider a shorter, more maintainable locator.',
@@ -1 +1 @@
1
- {"version":3,"file":"pageObjectValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/pageObjectValidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pageObjectValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/pageObjectValidate.ts"],"names":[],"mappings":"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"}