@herb-tools/linter 0.8.5 → 0.8.7

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/dist/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@herb-tools/linter",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "HTML+ERB linter for validating HTML structure and enforcing best practices",
5
5
  "license": "MIT",
6
6
  "homepage": "https://herb-tools.dev",
7
7
  "bugs": "https://github.com/marcoroth/herb/issues/new?title=Package%20%60@herb-tools/linter%60:%20",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/marcoroth/herb.git",
10
+ "url": "git+https://github.com/marcoroth/herb.git",
11
11
  "directory": "javascript/packages/linter"
12
12
  },
13
13
  "main": "./dist/index.cjs",
14
14
  "module": "./dist/index.js",
15
15
  "types": "./dist/types/index.d.ts",
16
16
  "bin": {
17
- "herb-lint": "./bin/herb-lint"
17
+ "herb-lint": "bin/herb-lint"
18
18
  },
19
19
  "scripts": {
20
20
  "clean": "rimraf dist",
@@ -45,13 +45,14 @@
45
45
  }
46
46
  },
47
47
  "dependencies": {
48
- "@herb-tools/config": "0.8.5",
49
- "@herb-tools/core": "0.8.5",
50
- "@herb-tools/highlighter": "0.8.5",
51
- "@herb-tools/node-wasm": "0.8.5",
52
- "@herb-tools/printer": "0.8.5",
53
- "@herb-tools/rewriter": "0.8.5",
54
- "glob": "^13.0.0"
48
+ "@herb-tools/config": "0.8.7",
49
+ "@herb-tools/core": "0.8.7",
50
+ "@herb-tools/highlighter": "0.8.7",
51
+ "@herb-tools/node-wasm": "0.8.7",
52
+ "@herb-tools/printer": "0.8.7",
53
+ "@herb-tools/rewriter": "0.8.7",
54
+ "picomatch": "^4.0.2",
55
+ "tinyglobby": "^0.2.15"
55
56
  },
56
57
  "files": [
57
58
  "package.json",
@@ -19,6 +19,7 @@ export class ArgumentParser {
19
19
  --force force linting even if disabled in .herb.yml
20
20
  --fix automatically fix auto-correctable offenses
21
21
  --ignore-disable-comments report offenses even when suppressed with <%# herb:disable %> comments
22
+ --fail-level <severity> exit with error code when diagnostics of this severity or higher are present (error|warning|info|hint) [default: error]
22
23
  --format output format (simple|detailed|json) [default: detailed]
23
24
  --simple use simple output format (shortcut for --format simple)
24
25
  --json use JSON output format (shortcut for --format json)
@@ -42,6 +43,7 @@ export class ArgumentParser {
42
43
  force: { type: "boolean" },
43
44
  fix: { type: "boolean" },
44
45
  "ignore-disable-comments": { type: "boolean" },
46
+ "fail-level": { type: "string" },
45
47
  format: { type: "string" },
46
48
  simple: { type: "boolean" },
47
49
  json: { type: "boolean" },
@@ -105,7 +107,18 @@ export class ArgumentParser {
105
107
  const configFile = values["config-file"];
106
108
  const init = values.init || false;
107
109
  const loadCustomRules = !values["no-custom-rules"];
108
- return { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules };
110
+ let failLevel;
111
+ if (values["fail-level"]) {
112
+ const level = values["fail-level"];
113
+ if (level === "error" || level === "warning" || level === "info" || level === "hint") {
114
+ failLevel = level;
115
+ }
116
+ else {
117
+ console.error(`Error: Invalid --fail-level value "${level}". Must be one of: error, warning, info, hint`);
118
+ process.exit(1);
119
+ }
120
+ }
121
+ return { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules, failLevel };
109
122
  }
110
123
  getFilePatterns(positionals) {
111
124
  return positionals;
@@ -1 +1 @@
1
- {"version":3,"file":"argument-parser.js","sourceRoot":"","sources":["../../../src/cli/argument-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argument-parser.js","sourceRoot":"","sources":["../../../src/cli/argument-parser.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- import { glob } from "glob";
1
+ import { glob } from "tinyglobby";
2
2
  import { Herb } from "@herb-tools/node-wasm";
3
3
  import { Config, addHerbExtensionRecommendation, getExtensionsJsonRelativePath } from "@herb-tools/config";
4
4
  import { existsSync, statSync } from "fs";
@@ -108,7 +108,7 @@ export class CLI {
108
108
  await Herb.load();
109
109
  const startTime = Date.now();
110
110
  const startDate = new Date();
111
- let { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules } = this.argumentParser.parse(process.argv);
111
+ let { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules, failLevel } = this.argumentParser.parse(process.argv);
112
112
  this.determineProjectPath(patterns);
113
113
  if (init) {
114
114
  const configPath = configFile || this.projectPath;
@@ -197,7 +197,16 @@ export class CLI {
197
197
  const results = await this.fileProcessor.processFiles(files, formatOption, context);
198
198
  await this.outputManager.outputResults({ ...results, files }, outputOptions);
199
199
  await this.afterProcess(results, outputOptions);
200
- if (results.totalErrors > 0) {
200
+ const effectiveFailLevel = failLevel || linterConfig.failLevel;
201
+ const errors = results.totalErrors > 0;
202
+ const warnings = results.totalWarnings > 0;
203
+ const info = results.totalInfo > 0;
204
+ const hints = results.totalHints > 0;
205
+ const shouldFailOnWarnings = effectiveFailLevel === "warning" && warnings;
206
+ const shouldFailOnInfo = effectiveFailLevel === "info" && (warnings || info);
207
+ const shouldFailOnHints = effectiveFailLevel === "hint" && (warnings || info || hints);
208
+ const shouldFail = errors || shouldFailOnWarnings || shouldFailOnInfo || shouldFailOnHints;
209
+ if (shouldFail) {
201
210
  process.exit(1);
202
211
  }
203
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAE1G,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAKzC,cAAc,gBAAgB,CAAA;AAE9B,MAAM,OAAO,GAAG;IACJ,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IACrC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IACnC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IACnC,WAAW,GAAW,OAAO,CAAC,GAAG,EAAE,CAAA;IAE7C,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAES,aAAa,CAAC,OAAe,EAAE,YAA0B,EAAE,WAAmB,CAAC;QACvF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE;YACtC,YAAY;YACZ,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAES,YAAY,CAAC,OAAe,EAAE,YAA0B,EAAE,WAAmB,CAAC,EAAE,UAAwE;QAChK,MAAM,aAAa,GAAG;YACpB,YAAY;YACZ,KAAK,EAAE,MAAe;YACtB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,KAAK;YAC3C,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;YAC9C,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE;SAC/C,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAES,oBAAoB,CAAC,QAAkB;QAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAExC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAES,aAAa,CAAC,OAA2B,EAAE,iBAAyB;QAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAExC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;YAEvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,iBAAiB,CAAA;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,MAAc,EAAE,KAAc;QACnF,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAA;QACxF,IAAI,YAAgC,CAAA;QAEpC,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,GAAG,OAAO,CAAA;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;QAC1D,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC7E,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACpG,CAAC,CAAC,eAAe,CAAA;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QAEtE,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;YACtC,GAAG,EAAE,IAAI,CAAC,WAAW;YACrB,MAAM,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;SAClC,CAAC,CAAA;QAEF,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,YAAY,YAAY,yCAAyC,CAAC,CAAA;gBAChF,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAA;gBACnE,OAAO,CAAC,GAAG,EAAE,CAAA;gBACb,KAAK,GAAG,CAAC,eAAe,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;IAChC,CAAC;IAES,KAAK,CAAC,aAAa;QAC3B,6DAA6D;IAC/D,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAAa,EAAE,cAAmB;QAC7D,4DAA4D;IAC9D,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;QAE5B,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAExN,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,CAAA;YAEjD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,UAAU,IAAI,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACjF,OAAO,CAAC,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAA;gBACrE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YACjE,MAAM,cAAc,GAAG,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAEvE,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;YAE9D,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,qCAAqC,6BAA6B,EAAE,EAAE,CAAC,CAAA;YACrF,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,KAAK,MAAM,CAAA;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAChI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;QAEhD,MAAM,aAAa,GAAG;YACpB,YAAY;YACZ,KAAK;YACL,SAAS;YACT,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,SAAS;SACV,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YAE1B,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,4EAA4E,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;YACxJ,CAAC;YAED,IAAI,KAAK,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,EAAE,CAAA;YACf,CAAC;YAED,IAAI,KAAe,CAAA;YACnB,IAAI,aAAa,GAAa,EAAE,CAAA;YAEhC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAa,EAAE,CAAA;gBAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;oBAEtG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAA;wBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACjB,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;oBAC9B,IAAI,YAAY,EAAE,CAAC;wBACjB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBAClC,CAAC;gBACH,CAAC;gBAED,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAChC,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,qCAAqC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;YACvJ,CAAC;YAED,IAAI,gBAAgB,GAAG,MAAM,CAAA;YAE7B,IAAI,KAAK,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;gBAErC,cAAc,CAAC,MAAM,GAAG;oBACtB,GAAG,MAAM,CAAC,MAAM;oBAChB,MAAM,EAAE;wBACN,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM;wBACvB,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAA;gBAED,gBAAgB,GAAG,cAAc,CAAA;YACnC,CAAC;YAED,MAAM,OAAO,GAAsB;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,GAAG;gBACH,qBAAqB;gBACrB,YAAY;gBACZ,MAAM,EAAE,gBAAgB;gBACxB,eAAe;aAChB,CAAA;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YAEnF,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,aAAa,CAAC,CAAA;YAC5E,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAE/C,MAAM,kBAAkB,GAAG,SAAS,IAAI,YAAY,CAAC,SAAS,CAAA;YAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,CAAA;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAA;YAEpC,MAAM,oBAAoB,GAAG,kBAAkB,KAAK,SAAS,IAAI,QAAQ,CAAA;YACzE,MAAM,gBAAgB,GAAG,kBAAkB,KAAK,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;YAC5E,MAAM,iBAAiB,GAAG,kBAAkB,KAAK,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,CAAA;YAEtF,MAAM,UAAU,GAAG,MAAM,IAAI,oBAAoB,IAAI,gBAAgB,IAAI,iBAAiB,CAAA;YAE1F,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { Location } from "@herb-tools/core";
2
2
  import { IdentityPrinter } from "@herb-tools/printer";
3
- import { minimatch } from "minimatch";
3
+ import picomatch from "picomatch";
4
4
  import { rules } from "./rules.js";
5
5
  import { findNodeByLocation } from "./rules/rule-utils.js";
6
6
  import { parseHerbDisableLine } from "./herb-disable-comment-utils.js";
@@ -129,7 +129,7 @@ export class Linter {
129
129
  if (context?.fileName && !this.config?.linter?.rules?.[rule.name]?.exclude) {
130
130
  const defaultExclude = rule.defaultConfig?.exclude ?? DEFAULT_RULE_CONFIG.exclude;
131
131
  if (defaultExclude && defaultExclude.length > 0) {
132
- const isExcluded = defaultExclude.some((pattern) => minimatch(context.fileName, pattern));
132
+ const isExcluded = defaultExclude.some(pattern => picomatch.isMatch(context.fileName, pattern));
133
133
  if (isExcluded) {
134
134
  return [];
135
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,103 @@
1
1
  import { ParserRule } from "../types.js";
2
- import { AttributeVisitorMixin } from "./rule-utils.js";
3
- class NoDuplicateAttributesVisitor extends AttributeVisitorMixin {
4
- attributeNames = new Map();
2
+ import { ControlFlowTrackingVisitor, ControlFlowType, getAttributeName } from "./rule-utils.js";
3
+ class NoDuplicateAttributesVisitor extends ControlFlowTrackingVisitor {
4
+ tagAttributes = new Set();
5
+ currentBranchAttributes = new Set();
6
+ controlFlowAttributes = new Set();
5
7
  visitHTMLOpenTagNode(node) {
6
- this.attributeNames.clear();
8
+ this.tagAttributes = new Set();
9
+ this.currentBranchAttributes = new Set();
10
+ this.controlFlowAttributes = new Set();
7
11
  super.visitHTMLOpenTagNode(node);
8
- this.reportDuplicates();
9
12
  }
10
- checkStaticAttributeStaticValue({ attributeName, attributeNode }) {
11
- this.trackAttributeName(attributeName, attributeNode);
13
+ visitHTMLAttributeNode(node) {
14
+ this.checkAttribute(node);
12
15
  }
13
- checkStaticAttributeDynamicValue({ attributeName, attributeNode }) {
14
- this.trackAttributeName(attributeName, attributeNode);
16
+ onEnterControlFlow(_controlFlowType, wasAlreadyInControlFlow) {
17
+ const stateToRestore = {
18
+ previousBranchAttributes: this.currentBranchAttributes,
19
+ previousControlFlowAttributes: this.controlFlowAttributes,
20
+ };
21
+ this.currentBranchAttributes = new Set();
22
+ if (!wasAlreadyInControlFlow) {
23
+ this.controlFlowAttributes = new Set();
24
+ }
25
+ return stateToRestore;
26
+ }
27
+ onExitControlFlow(controlFlowType, wasAlreadyInControlFlow, stateToRestore) {
28
+ if (controlFlowType === ControlFlowType.CONDITIONAL && !wasAlreadyInControlFlow) {
29
+ this.controlFlowAttributes.forEach((attr) => this.tagAttributes.add(attr));
30
+ }
31
+ this.currentBranchAttributes = stateToRestore.previousBranchAttributes;
32
+ this.controlFlowAttributes = stateToRestore.previousControlFlowAttributes;
33
+ }
34
+ onEnterBranch() {
35
+ const stateToRestore = {
36
+ previousBranchAttributes: this.currentBranchAttributes,
37
+ };
38
+ if (this.isInControlFlow) {
39
+ this.currentBranchAttributes = new Set();
40
+ }
41
+ return stateToRestore;
42
+ }
43
+ onExitBranch(_stateToRestore) { }
44
+ checkAttribute(attributeNode) {
45
+ const identifier = getAttributeName(attributeNode);
46
+ if (!identifier)
47
+ return;
48
+ this.processAttributeDuplicate(identifier, attributeNode);
49
+ }
50
+ processAttributeDuplicate(identifier, attributeNode) {
51
+ if (!this.isInControlFlow) {
52
+ this.handleHTMLAttribute(identifier, attributeNode);
53
+ return;
54
+ }
55
+ if (this.currentControlFlowType === ControlFlowType.LOOP) {
56
+ this.handleLoopAttribute(identifier, attributeNode);
57
+ }
58
+ else {
59
+ this.handleConditionalAttribute(identifier, attributeNode);
60
+ }
61
+ this.currentBranchAttributes.add(identifier);
15
62
  }
16
- trackAttributeName(attributeName, attributeNode) {
17
- if (!this.attributeNames.has(attributeName)) {
18
- this.attributeNames.set(attributeName, []);
63
+ handleHTMLAttribute(identifier, attributeNode) {
64
+ if (this.tagAttributes.has(identifier)) {
65
+ this.addDuplicateAttributeOffense(identifier, attributeNode.name.location);
66
+ }
67
+ this.tagAttributes.add(identifier);
68
+ }
69
+ handleLoopAttribute(identifier, attributeNode) {
70
+ if (this.currentBranchAttributes.has(identifier)) {
71
+ this.addSameLoopIterationOffense(identifier, attributeNode.name.location);
72
+ return;
73
+ }
74
+ if (this.tagAttributes.has(identifier)) {
75
+ this.addDuplicateAttributeOffense(identifier, attributeNode.name.location);
76
+ return;
19
77
  }
20
- this.attributeNames.get(attributeName).push(attributeNode);
78
+ this.addLoopWillDuplicateOffense(identifier, attributeNode.name.location);
21
79
  }
22
- reportDuplicates() {
23
- for (const [attributeName, attributeNodes] of this.attributeNames) {
24
- if (attributeNodes.length > 1) {
25
- for (let i = 1; i < attributeNodes.length; i++) {
26
- const attributeNode = attributeNodes[i];
27
- this.addOffense(`Duplicate attribute \`${attributeName}\` found on tag. Remove the duplicate occurrence.`, attributeNode.name.location);
28
- }
29
- }
80
+ handleConditionalAttribute(identifier, attributeNode) {
81
+ if (this.currentBranchAttributes.has(identifier)) {
82
+ this.addSameBranchOffense(identifier, attributeNode.name.location);
83
+ return;
30
84
  }
85
+ if (this.tagAttributes.has(identifier)) {
86
+ this.addDuplicateAttributeOffense(identifier, attributeNode.name.location);
87
+ }
88
+ this.controlFlowAttributes.add(identifier);
89
+ }
90
+ addDuplicateAttributeOffense(identifier, location) {
91
+ this.addOffense(`Duplicate attribute \`${identifier}\`. Browsers only use the first occurrence and ignore duplicate attributes. Remove the duplicate or merge the values.`, location);
92
+ }
93
+ addSameLoopIterationOffense(identifier, location) {
94
+ this.addOffense(`Duplicate attribute \`${identifier}\` in same loop iteration. Each iteration will produce an element with duplicate attributes. Remove one or merge the values.`, location);
95
+ }
96
+ addLoopWillDuplicateOffense(identifier, location) {
97
+ this.addOffense(`Attribute \`${identifier}\` inside loop will appear multiple times on this element. Use a dynamic attribute name like \`${identifier}-<%= index %>\` or move the attribute outside the loop.`, location);
98
+ }
99
+ addSameBranchOffense(identifier, location) {
100
+ this.addOffense(`Duplicate attribute \`${identifier}\` in same branch. This branch will produce an element with duplicate attributes. Remove one or merge the values.`, location);
31
101
  }
32
102
  }
33
103
  export class HTMLNoDuplicateAttributesRule extends ParserRule {
@@ -1 +1 @@
1
- {"version":3,"file":"html-no-duplicate-attributes.js","sourceRoot":"","sources":["../../../src/rules/html-no-duplicate-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAuE,MAAM,iBAAiB,CAAA;AAK5H,MAAM,4BAA6B,SAAQ,qBAAqB;IACtD,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAA;IAE/D,oBAAoB,CAAC,IAAqB;QACxC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC3B,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAGS,+BAA+B,CAAC,EAAE,aAAa,EAAE,aAAa,EAAoC;QAC1G,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;IACvD,CAAC;IAES,gCAAgC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAqC;QAC5G,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;IACvD,CAAC;IAEO,kBAAkB,CAAC,aAAqB,EAAE,aAAgC;QAChF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7D,CAAC;IAEO,gBAAgB;QACtB,KAAK,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAClE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;oBAEvC,IAAI,CAAC,UAAU,CACb,yBAAyB,aAAa,mDAAmD,EACzF,aAAa,CAAC,IAAK,CAAC,QAAQ,CAC7B,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,UAAU;IAC3D,IAAI,GAAG,8BAA8B,CAAA;IAErC,IAAI,aAAa;QACf,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,OAAO;SAClB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAmB,EAAE,OAA8B;QACvD,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE3B,OAAO,OAAO,CAAC,QAAQ,CAAA;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"html-no-duplicate-attributes.js","sourceRoot":"","sources":["../../../src/rules/html-no-duplicate-attributes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ThemeInput } from "@herb-tools/highlighter";
2
+ import type { DiagnosticSeverity } from "@herb-tools/core";
2
3
  export type FormatOption = "simple" | "detailed" | "json";
3
4
  export interface ParsedArguments {
4
5
  patterns: string[];
@@ -14,6 +15,7 @@ export interface ParsedArguments {
14
15
  force: boolean;
15
16
  init: boolean;
16
17
  loadCustomRules: boolean;
18
+ failLevel?: DiagnosticSeverity;
17
19
  }
18
20
  export declare class ArgumentParser {
19
21
  private readonly usage;
@@ -1,4 +1,5 @@
1
1
  import type { ThemeInput } from "@herb-tools/highlighter";
2
+ import type { DiagnosticSeverity } from "@herb-tools/core";
2
3
  export type FormatOption = "simple" | "detailed" | "json";
3
4
  export interface ParsedArguments {
4
5
  patterns: string[];
@@ -14,6 +15,7 @@ export interface ParsedArguments {
14
15
  force: boolean;
15
16
  init: boolean;
16
17
  loadCustomRules: boolean;
18
+ failLevel?: DiagnosticSeverity;
17
19
  }
18
20
  export declare class ArgumentParser {
19
21
  private readonly usage;
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@herb-tools/linter",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "HTML+ERB linter for validating HTML structure and enforcing best practices",
5
5
  "license": "MIT",
6
6
  "homepage": "https://herb-tools.dev",
7
7
  "bugs": "https://github.com/marcoroth/herb/issues/new?title=Package%20%60@herb-tools/linter%60:%20",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/marcoroth/herb.git",
10
+ "url": "git+https://github.com/marcoroth/herb.git",
11
11
  "directory": "javascript/packages/linter"
12
12
  },
13
13
  "main": "./dist/index.cjs",
14
14
  "module": "./dist/index.js",
15
15
  "types": "./dist/types/index.d.ts",
16
16
  "bin": {
17
- "herb-lint": "./bin/herb-lint"
17
+ "herb-lint": "bin/herb-lint"
18
18
  },
19
19
  "scripts": {
20
20
  "clean": "rimraf dist",
@@ -45,13 +45,14 @@
45
45
  }
46
46
  },
47
47
  "dependencies": {
48
- "@herb-tools/config": "0.8.5",
49
- "@herb-tools/core": "0.8.5",
50
- "@herb-tools/highlighter": "0.8.5",
51
- "@herb-tools/node-wasm": "0.8.5",
52
- "@herb-tools/printer": "0.8.5",
53
- "@herb-tools/rewriter": "0.8.5",
54
- "glob": "^13.0.0"
48
+ "@herb-tools/config": "0.8.7",
49
+ "@herb-tools/core": "0.8.7",
50
+ "@herb-tools/highlighter": "0.8.7",
51
+ "@herb-tools/node-wasm": "0.8.7",
52
+ "@herb-tools/printer": "0.8.7",
53
+ "@herb-tools/rewriter": "0.8.7",
54
+ "picomatch": "^4.0.2",
55
+ "tinyglobby": "^0.2.15"
55
56
  },
56
57
  "files": [
57
58
  "package.json",
@@ -5,6 +5,7 @@ import { Herb } from "@herb-tools/node-wasm"
5
5
 
6
6
  import { THEME_NAMES, DEFAULT_THEME } from "@herb-tools/highlighter"
7
7
  import type { ThemeInput } from "@herb-tools/highlighter"
8
+ import type { DiagnosticSeverity } from "@herb-tools/core"
8
9
 
9
10
  import { name, version, dependencies } from "../../package.json"
10
11
 
@@ -24,6 +25,7 @@ export interface ParsedArguments {
24
25
  force: boolean
25
26
  init: boolean
26
27
  loadCustomRules: boolean
28
+ failLevel?: DiagnosticSeverity
27
29
  }
28
30
 
29
31
  export class ArgumentParser {
@@ -42,6 +44,7 @@ export class ArgumentParser {
42
44
  --force force linting even if disabled in .herb.yml
43
45
  --fix automatically fix auto-correctable offenses
44
46
  --ignore-disable-comments report offenses even when suppressed with <%# herb:disable %> comments
47
+ --fail-level <severity> exit with error code when diagnostics of this severity or higher are present (error|warning|info|hint) [default: error]
45
48
  --format output format (simple|detailed|json) [default: detailed]
46
49
  --simple use simple output format (shortcut for --format simple)
47
50
  --json use JSON output format (shortcut for --format json)
@@ -66,6 +69,7 @@ export class ArgumentParser {
66
69
  force: { type: "boolean" },
67
70
  fix: { type: "boolean" },
68
71
  "ignore-disable-comments": { type: "boolean" },
72
+ "fail-level": { type: "string" },
69
73
  format: { type: "string" },
70
74
  simple: { type: "boolean" },
71
75
  json: { type: "boolean" },
@@ -144,7 +148,18 @@ export class ArgumentParser {
144
148
  const init = values.init || false
145
149
  const loadCustomRules = !values["no-custom-rules"]
146
150
 
147
- return { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules }
151
+ let failLevel: DiagnosticSeverity | undefined
152
+ if (values["fail-level"]) {
153
+ const level = values["fail-level"]
154
+ if (level === "error" || level === "warning" || level === "info" || level === "hint") {
155
+ failLevel = level
156
+ } else {
157
+ console.error(`Error: Invalid --fail-level value "${level}". Must be one of: error, warning, info, hint`)
158
+ process.exit(1)
159
+ }
160
+ }
161
+
162
+ return { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules, failLevel }
148
163
  }
149
164
 
150
165
  private getFilePatterns(positionals: string[]): string[] {
package/src/cli.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { glob } from "glob"
1
+ import { glob } from "tinyglobby"
2
2
  import { Herb } from "@herb-tools/node-wasm"
3
3
  import { Config, addHerbExtensionRecommendation, getExtensionsJsonRelativePath } from "@herb-tools/config"
4
4
 
5
5
  import { existsSync, statSync } from "fs"
6
- import { dirname, resolve, relative } from "path"
6
+ import { resolve, relative } from "path"
7
7
 
8
8
  import { ArgumentParser } from "./cli/argument-parser.js"
9
9
  import { FileProcessor } from "./cli/file-processor.js"
@@ -135,7 +135,7 @@ export class CLI {
135
135
  const startTime = Date.now()
136
136
  const startDate = new Date()
137
137
 
138
- let { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules } = this.argumentParser.parse(process.argv)
138
+ let { patterns, configFile, formatOption, showTiming, theme, wrapLines, truncateLines, useGitHubActions, fix, ignoreDisableComments, force, init, loadCustomRules, failLevel } = this.argumentParser.parse(process.argv)
139
139
 
140
140
  this.determineProjectPath(patterns)
141
141
 
@@ -250,7 +250,20 @@ export class CLI {
250
250
  await this.outputManager.outputResults({ ...results, files }, outputOptions)
251
251
  await this.afterProcess(results, outputOptions)
252
252
 
253
- if (results.totalErrors > 0) {
253
+ const effectiveFailLevel = failLevel || linterConfig.failLevel
254
+
255
+ const errors = results.totalErrors > 0
256
+ const warnings = results.totalWarnings > 0
257
+ const info = results.totalInfo > 0
258
+ const hints = results.totalHints > 0
259
+
260
+ const shouldFailOnWarnings = effectiveFailLevel === "warning" && warnings
261
+ const shouldFailOnInfo = effectiveFailLevel === "info" && (warnings || info)
262
+ const shouldFailOnHints = effectiveFailLevel === "hint" && (warnings || info || hints)
263
+
264
+ const shouldFail = errors || shouldFailOnWarnings || shouldFailOnInfo || shouldFailOnHints
265
+
266
+ if (shouldFail) {
254
267
  process.exit(1)
255
268
  }
256
269
 
package/src/linter.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Location } from "@herb-tools/core"
2
2
  import { IdentityPrinter } from "@herb-tools/printer"
3
- import { minimatch } from "minimatch"
3
+ import picomatch from "picomatch"
4
4
 
5
5
  import { rules } from "./rules.js"
6
6
  import { findNodeByLocation } from "./rules/rule-utils.js"
@@ -191,7 +191,7 @@ export class Linter {
191
191
  const defaultExclude = rule.defaultConfig?.exclude ?? DEFAULT_RULE_CONFIG.exclude
192
192
 
193
193
  if (defaultExclude && defaultExclude.length > 0) {
194
- const isExcluded = defaultExclude.some((pattern: string) => minimatch(context.fileName!, pattern))
194
+ const isExcluded = defaultExclude.some(pattern => picomatch.isMatch(context.fileName!, pattern))
195
195
 
196
196
  if (isExcluded) {
197
197
  return []