npm-groovy-lint 15.0.2 → 15.0.3-beta202502221045.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 (38) hide show
  1. package/lib/codenarc-factory.js +32 -11
  2. package/lib/java/CodeNarc-3.5.0-groovy-4.0.jar +0 -0
  3. package/lib/java/CodeNarcServer.jar +0 -0
  4. package/lib/java/GMetrics-Groovy4-2.1.0.jar +0 -0
  5. package/lib/java/commons-compiler-3.1.12.jar +0 -0
  6. package/lib/java/groovy/lib/{ant-1.10.11.jar → ant-1.10.15.jar} +0 -0
  7. package/lib/java/groovy/lib/ant-launcher-1.10.15.jar +0 -0
  8. package/lib/java/groovy/lib/commons-cli-1.9.0.jar +0 -0
  9. package/lib/java/groovy/lib/{groovy-3.0.9.jar → groovy-4.0.24.jar} +0 -0
  10. package/lib/java/groovy/lib/groovy-ant-4.0.24.jar +0 -0
  11. package/lib/java/groovy/lib/groovy-cli-commons-4.0.24.jar +0 -0
  12. package/lib/java/groovy/lib/groovy-dateutil-4.0.24.jar +0 -0
  13. package/lib/java/groovy/lib/groovy-json-4.0.24.jar +0 -0
  14. package/lib/java/groovy/lib/groovy-templates-4.0.24.jar +0 -0
  15. package/lib/java/groovy/lib/groovy-xml-4.0.24.jar +0 -0
  16. package/lib/java/{jackson-annotations-2.16.0.jar → jackson-annotations-2.18.2.jar} +0 -0
  17. package/lib/java/jackson-core-2.18.2.jar +0 -0
  18. package/lib/java/jackson-databind-2.18.2.jar +0 -0
  19. package/lib/java/janino-3.1.12.jar +0 -0
  20. package/lib/java/{logback-classic-1.4.14.jar → logback-classic-1.5.12.jar} +0 -0
  21. package/lib/java/{logback-core-1.4.14.jar → logback-core-1.5.12.jar} +0 -0
  22. package/lib/java/slf4j-api-2.0.16.jar +0 -0
  23. package/package.json +4 -4
  24. package/lib/java/CodeNarc-3.5.0.jar +0 -0
  25. package/lib/java/GMetrics-2.1.0.jar +0 -0
  26. package/lib/java/commons-compiler-3.1.11.jar +0 -0
  27. package/lib/java/groovy/lib/ant-launcher-1.10.11.jar +0 -0
  28. package/lib/java/groovy/lib/commons-cli-1.4.jar +0 -0
  29. package/lib/java/groovy/lib/groovy-ant-3.0.9.jar +0 -0
  30. package/lib/java/groovy/lib/groovy-cli-commons-3.0.9.jar +0 -0
  31. package/lib/java/groovy/lib/groovy-dateutil-3.0.9.jar +0 -0
  32. package/lib/java/groovy/lib/groovy-json-3.0.9.jar +0 -0
  33. package/lib/java/groovy/lib/groovy-templates-3.0.9.jar +0 -0
  34. package/lib/java/groovy/lib/groovy-xml-3.0.9.jar +0 -0
  35. package/lib/java/jackson-core-2.16.0.jar +0 -0
  36. package/lib/java/jackson-databind-2.16.0.jar +0 -0
  37. package/lib/java/janino-3.1.11.jar +0 -0
  38. package/lib/java/slf4j-api-2.0.9.jar +0 -0
@@ -241,12 +241,30 @@ async function parseCodeNarcResult(options, codeNarcBaseDir, codeNarcJsonResult,
241
241
  if (files[fileNm] == null) {
242
242
  files[fileNm] = { errors: [] };
243
243
  }
244
- for (const parseError of fileParseErrors) {
244
+ for (const parseMessage of fileParseErrors) {
245
245
  // Convert GroovyShell.parse Compilation exception error into NpmGroovyLint exception
246
- let msg =
247
- parseError.cause && parseError.cause.message ? parseError.cause.message : `Unknown parsing error: ${JSON.stringify(parseError)}`;
246
+
247
+ let parseError = {
248
+ cause: {
249
+ message: null
250
+ }
251
+ }
252
+ /* NOTE parsing messages like this
253
+ '/path/to/Pipeline.groovy: 2: unable to resolve class org.sm.Something\n' +
254
+ ' @ line 2, column 1.\n' +
255
+ ' import org.sm.Something\n' +
256
+ ' ^\n',
257
+ */
258
+ const parts = /(.*):\s(\d+):\s(.*)/s.exec(parseMessage)
259
+ if(!parts || parts.length < 4) {
260
+ parseError.cause.message = `Unknown parsing error: ${JSON.stringify(parseMessage)}`;
261
+ } else {
262
+ parseError.cause.line = parts[2]
263
+ parseError.cause.message = parts[3]
264
+ }
265
+
248
266
  // Remove 'unable to resolve class' error as GroovyShell.parse is called without ClassPath
249
- if (msg.startsWith("unable to resolve class ")) {
267
+ if (parseError.cause.message.includes("unable to resolve class ")) {
250
268
  continue;
251
269
  }
252
270
  // Create new error
@@ -255,15 +273,18 @@ async function parseCodeNarcResult(options, codeNarcBaseDir, codeNarcJsonResult,
255
273
  line: parseError.cause && parseError.cause.line ? parseError.cause.line : 0,
256
274
  rule: "NglParseError",
257
275
  severity: "error",
258
- msg: msg,
276
+ msg: parseError.cause.message,
259
277
  };
278
+ // TODO would need a more complicated regex to parse for a "range"
279
+ // might not be really needed in this case for npm-groovy-lint
280
+ //
260
281
  // Add range if provided
261
- if (parseError.cause && parseError.cause.startColumn) {
262
- errItemParse.range = {
263
- start: { line: parseError.cause.startLine, character: parseError.cause.startColumn },
264
- end: { line: parseError.cause.endLine, character: parseError.cause.endColumn },
265
- };
266
- }
282
+ //if (parseError.cause && parseError.cause.startColumn) {
283
+ // errItemParse.range = {
284
+ // start: { line: parseError.cause.startLine, character: parseError.cause.startColumn },
285
+ // end: { line: parseError.cause.endLine, character: parseError.cause.endColumn },
286
+ // };
287
+ //}
267
288
 
268
289
  files[fileNm].errors.push(errItemParse);
269
290
  errId++;
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npm-groovy-lint",
3
- "version": "15.0.2",
3
+ "version": "15.0.3-beta202502221045.0",
4
4
  "description": "Lint, format and auto-fix your Groovy / Jenkinsfile / Gradle files",
5
5
  "exports": "./lib/groovy-lint.js",
6
6
  "type": "module",
@@ -72,11 +72,11 @@
72
72
  "@eslint/eslintrc": "^3.1.0",
73
73
  "@eslint/js": "^9.9.1",
74
74
  "adm-zip": "^0.5.10",
75
- "diff": "^5.0.0",
75
+ "diff": "^7.0.0",
76
76
  "eslint": "^9.0.0",
77
- "globals": "^15.9.0",
77
+ "globals": "^16.0.0",
78
78
  "handlebars": "^4.7.8",
79
- "mocha": "^10.2.0",
79
+ "mocha": "^11.0.0",
80
80
  "npm-run-all2": "^6.0.0",
81
81
  "nyc": "^17.0.0",
82
82
  "prettier": "^3.0.0",
Binary file
Binary file
Binary file
Binary file
Binary file