@futdevpro/dynamo-eslint 1.20.51 → 1.20.57

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 (40) hide show
  1. package/README.md +35 -2
  2. package/build/configs/ngx.d.ts +6 -0
  3. package/build/configs/ngx.d.ts.map +1 -1
  4. package/build/configs/ngx.js +20 -0
  5. package/build/configs/ngx.js.map +1 -1
  6. package/build/plugin/index.d.ts +1 -0
  7. package/build/plugin/index.d.ts.map +1 -1
  8. package/build/plugin/index.js +2 -0
  9. package/build/plugin/index.js.map +1 -1
  10. package/build/plugin/rules/angular/empty-state-guard.util.d.ts +58 -0
  11. package/build/plugin/rules/angular/empty-state-guard.util.d.ts.map +1 -0
  12. package/build/plugin/rules/angular/empty-state-guard.util.js +158 -0
  13. package/build/plugin/rules/angular/empty-state-guard.util.js.map +1 -0
  14. package/build/plugin/rules/angular/empty-state-requires-guard.d.ts +10 -0
  15. package/build/plugin/rules/angular/empty-state-requires-guard.d.ts.map +1 -0
  16. package/build/plugin/rules/angular/empty-state-requires-guard.js +61 -0
  17. package/build/plugin/rules/angular/empty-state-requires-guard.js.map +1 -0
  18. package/build/plugin/rules/angular/ui-building-blocks-baseline.interface.d.ts +5 -0
  19. package/build/plugin/rules/angular/ui-building-blocks-baseline.interface.d.ts.map +1 -1
  20. package/build/plugin/rules/angular/ui-building-blocks-element.interface.d.ts +5 -0
  21. package/build/plugin/rules/angular/ui-building-blocks-element.interface.d.ts.map +1 -1
  22. package/build/plugin/rules/angular/ui-building-blocks-rule-context.util.js +1 -1
  23. package/build/plugin/rules/angular/ui-building-blocks-rule-context.util.js.map +1 -1
  24. package/build/plugin/rules/angular/ui-building-blocks.util.d.ts +10 -1
  25. package/build/plugin/rules/angular/ui-building-blocks.util.d.ts.map +1 -1
  26. package/build/plugin/rules/angular/ui-building-blocks.util.js +44 -4
  27. package/build/plugin/rules/angular/ui-building-blocks.util.js.map +1 -1
  28. package/build/plugin/rules/prefer-enum-over-string-union.d.ts.map +1 -1
  29. package/build/plugin/rules/prefer-enum-over-string-union.js +5 -42
  30. package/build/plugin/rules/prefer-enum-over-string-union.js.map +1 -1
  31. package/build/plugin/rules/prefer-interface-over-duplicate-types.d.ts.map +1 -1
  32. package/build/plugin/rules/prefer-interface-over-duplicate-types.js +31 -19
  33. package/build/plugin/rules/prefer-interface-over-duplicate-types.js.map +1 -1
  34. package/build/scripts/lint-strict.d.ts +62 -0
  35. package/build/scripts/lint-strict.d.ts.map +1 -0
  36. package/build/scripts/lint-strict.js +151 -0
  37. package/build/scripts/lint-strict.js.map +1 -0
  38. package/build/scripts/ui-building-blocks-baseline.js +17 -2
  39. package/build/scripts/ui-building-blocks-baseline.js.map +1 -1
  40. package/package.json +4 -3
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * @fileoverview Strict lint entry point — `dynamo-lint-strict` (BFR-WARFACTORY-003)
5
+ *
6
+ * Runs ESLint (flat config, the project's own `eslint.config.*`) and sets the process exit code from the
7
+ * AGGREGATED result counters — never from a wrapper's own success path:
8
+ *
9
+ * | exit | meaning |
10
+ * |---|---|
11
+ * | `0` | 0 errors (incl. fatal/parsing errors) and the warnings are within the budget |
12
+ * | `1` | at least one error, OR more warnings than `--max-warnings` |
13
+ * | `2` | lint could not run (config error, NO file linted, crash) — never reported as a pass |
14
+ *
15
+ * **Warning budget:** without `--max-warnings` warnings are reported but do not fail (the budget is unlimited);
16
+ * `--max-warnings 0` is the zero-warning gate; `--max-warnings <n>` a ratchet for a known backlog.
17
+ *
18
+ * **`.eslintignore`:** flat config does NOT read it (ESLint 9) — files listed there ARE linted. If one exists, the
19
+ * run says so loudly and points at the `ignores` migration; it does not fail on it.
20
+ *
21
+ * @usage
22
+ * ```bash
23
+ * dynamo-lint-strict [patterns...] [--max-warnings <n>] [--json]
24
+ * dynamo-lint-strict src --max-warnings 0
25
+ * dynamo-lint-strict --json # last stdout line: machine-readable summary (CI)
26
+ * ```
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.DyESL_LintStrict_Util = void 0;
30
+ const fs_1 = require("fs");
31
+ const path_1 = require("path");
32
+ const eslint_1 = require("eslint");
33
+ /** Strict lint runner — pure helpers (unit-testable) + the CLI `run`. */
34
+ class DyESL_LintStrict_Util {
35
+ /**
36
+ * Parses `[patterns...] [--max-warnings <n>] [--json]`.
37
+ * @throws Error on an invalid / missing `--max-warnings` value or an unknown option
38
+ */
39
+ static parseArgs(argv) {
40
+ const options = { patterns: [], json: false };
41
+ for (let i = 0; i < argv.length; i++) {
42
+ const arg = argv[i];
43
+ if (arg === '--json') {
44
+ options.json = true;
45
+ }
46
+ else if (arg === '--max-warnings') {
47
+ const value = Number(argv[i + 1]);
48
+ if (argv[i + 1] === undefined || !Number.isInteger(value) || value < 0) {
49
+ throw new Error(`--max-warnings needs a non-negative integer (got: ${argv[i + 1] ?? 'nothing'})`);
50
+ }
51
+ options.maxWarnings = value;
52
+ i++;
53
+ }
54
+ else if (arg.startsWith('-')) {
55
+ throw new Error(`unknown option: ${arg}`);
56
+ }
57
+ else {
58
+ options.patterns.push(arg);
59
+ }
60
+ }
61
+ if (!options.patterns.length) {
62
+ options.patterns.push('.');
63
+ }
64
+ return options;
65
+ }
66
+ /** Aggregates the ESLint results into the summary + the exit code (0 pass / 1 fail). */
67
+ static summarize(results, maxWarnings, legacyEslintignore) {
68
+ const errorCount = results.reduce((sum, r) => sum + r.errorCount, 0);
69
+ const fatalErrorCount = results
70
+ .reduce((sum, r) => sum + r.fatalErrorCount, 0);
71
+ const warningCount = results
72
+ .reduce((sum, r) => sum + r.warningCount, 0);
73
+ // a `fatalErrorCount` az `errorCount` RÉSZE (ESLint 9) — külön is számoljuk, hogy a parsing-hiba látsszon
74
+ const overBudget = maxWarnings !== undefined && warningCount > maxWarnings;
75
+ const passed = !errorCount && !fatalErrorCount && !overBudget;
76
+ return {
77
+ errorCount: errorCount,
78
+ fatalErrorCount: fatalErrorCount,
79
+ warningCount: warningCount,
80
+ fileCount: results.length,
81
+ maxWarnings: maxWarnings ?? null,
82
+ legacyEslintignore: legacyEslintignore,
83
+ passed: passed,
84
+ exitCode: passed ? 0 : 1,
85
+ };
86
+ }
87
+ /** Human-readable one-line verdict. */
88
+ static formatVerdict(summary) {
89
+ const budget = summary.maxWarnings === null ? 'unlimited' : `${summary.maxWarnings}`;
90
+ return `[dynamo-lint-strict] ${summary.passed ? 'PASS' : 'FAIL'} — errors: ${summary.errorCount}`
91
+ + ` (fatal: ${summary.fatalErrorCount}) · warnings: ${summary.warningCount} (budget: ${budget})`
92
+ + ` · files: ${summary.fileCount}`;
93
+ }
94
+ /**
95
+ * Runs the strict lint in `cwd` and returns the exit code (0 / 1 / 2). Output goes to stdout/stderr.
96
+ */
97
+ static async run(argv, cwd = process.cwd()) {
98
+ let options;
99
+ try {
100
+ options = DyESL_LintStrict_Util.parseArgs(argv);
101
+ }
102
+ catch (error) {
103
+ console.error(`[dynamo-lint-strict] usage error: ${error instanceof Error ? error.message : String(error)}`);
104
+ return 2;
105
+ }
106
+ const legacyEslintignore = (0, fs_1.existsSync)((0, path_1.join)(cwd, '.eslintignore'));
107
+ if (legacyEslintignore) {
108
+ console.error('[dynamo-lint-strict] ⚠️ .eslintignore found — ESLint 9 flat config does NOT read it, the files'
109
+ + ' listed there ARE linted. Move the patterns into an `ignores` entry of eslint.config.* and delete the file.');
110
+ }
111
+ try {
112
+ const eslint = new eslint_1.ESLint({ cwd: cwd });
113
+ const results = await eslint.lintFiles(options.patterns);
114
+ // üres futás ⛔ zöld: az ESLint `errorOnUnmatchedPattern`-je MÉRTEN nem megbízható (nem létező mappára 5/5
115
+ // futásban 0 fájlt adott vissza, hiba nélkül) — ezért a kapu maga ellenőrzi
116
+ if (!results.length) {
117
+ console.error(`[dynamo-lint-strict] no file was linted for: ${options.patterns.join(' ')} (exit 2)`
118
+ + ' — an empty run is not a pass. Check the patterns and the `ignores` of eslint.config.*.');
119
+ return 2;
120
+ }
121
+ const summary = DyESL_LintStrict_Util.summarize(results, options.maxWarnings, legacyEslintignore);
122
+ const formatter = await eslint.loadFormatter('stylish');
123
+ const formatted = await formatter.format(results);
124
+ if (formatted) {
125
+ console.log(formatted);
126
+ }
127
+ console.log(DyESL_LintStrict_Util.formatVerdict(summary));
128
+ if (options.json) {
129
+ console.log(JSON.stringify(summary));
130
+ }
131
+ return summary.exitCode;
132
+ }
133
+ catch (error) {
134
+ // a lint NEM futott le ⇒ ⛔ soha nem „zöld"
135
+ console.error('[dynamo-lint-strict] lint could not run (exit 2):', error instanceof Error ? error.message : String(error));
136
+ return 2;
137
+ }
138
+ }
139
+ }
140
+ exports.DyESL_LintStrict_Util = DyESL_LintStrict_Util;
141
+ if (require.main === module) {
142
+ DyESL_LintStrict_Util.run(process.argv.slice(2))
143
+ .then((code) => {
144
+ process.exitCode = code;
145
+ })
146
+ .catch((error) => {
147
+ console.error('[dynamo-lint-strict] crashed (exit 2):', error);
148
+ process.exitCode = 2;
149
+ });
150
+ }
151
+ //# sourceMappingURL=lint-strict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-strict.js","sourceRoot":"","sources":["../../src/scripts/lint-strict.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ const fast_glob_1 = tslib_1.__importDefault(require("fast-glob"));
24
24
  const fs_1 = require("fs");
25
25
  const path = tslib_1.__importStar(require("path"));
26
26
  const ui_building_blocks_util_1 = require("../plugin/rules/angular/ui-building-blocks.util");
27
+ const empty_state_guard_util_1 = require("../plugin/rules/angular/empty-state-guard.util");
27
28
  /** Scans a project folder into baseline form. */
28
29
  function scanProject(root, scrollerTags) {
29
30
  const files = fast_glob_1.default.sync(['**/*.html', '**/*.ts'], {
@@ -34,6 +35,7 @@ function scanProject(root, scrollerTags) {
34
35
  const scrollContainers = {};
35
36
  const loadingModules = new Set();
36
37
  const failedModules = new Set();
38
+ const emptyStatesWithoutGuard = {};
37
39
  files.sort().forEach((rel) => {
38
40
  if (!ui_building_blocks_util_1.UiBuildingBlocks_Util.isInScope(rel)) {
39
41
  return;
@@ -44,6 +46,12 @@ function scanProject(root, scrollerTags) {
44
46
  if (findings) {
45
47
  scrollContainers[ui_building_blocks_util_1.UiBuildingBlocks_Util.normalize(rel)] = findings;
46
48
  }
49
+ // BFR-QA-003: unguarded empty-state messages (own ancestor block OR the rendering parent's guard clears them)
50
+ const unguarded = empty_state_guard_util_1.EmptyStateGuard_Util.findings(text, rel)
51
+ .filter((f) => !f.ownGuard).length;
52
+ if (unguarded && !empty_state_guard_util_1.EmptyStateGuard_Util.guardedByParent(full, root)) {
53
+ emptyStatesWithoutGuard[ui_building_blocks_util_1.UiBuildingBlocks_Util.normalize(rel)] = unguarded;
54
+ }
47
55
  const moduleDir = ui_building_blocks_util_1.UiBuildingBlocks_Util.moduleDir(full);
48
56
  if (moduleDir) {
49
57
  const key = ui_building_blocks_util_1.UiBuildingBlocks_Util.relativeKey(moduleDir, root);
@@ -59,6 +67,7 @@ function scanProject(root, scrollerTags) {
59
67
  scrollerTags: scrollerTags,
60
68
  scrollContainers: scrollContainers,
61
69
  modulesWithoutLoadFailedBranch: [...loadingModules].filter((m) => !failedModules.has(m)).sort(),
70
+ emptyStatesWithoutGuard: emptyStatesWithoutGuard,
62
71
  };
63
72
  }
64
73
  /** The CLI. */
@@ -79,12 +88,16 @@ function main(args) {
79
88
  .map(([key]) => key);
80
89
  const newModules = current.modulesWithoutLoadFailedBranch
81
90
  .filter((m) => !committed.modulesWithoutLoadFailedBranch.includes(m));
91
+ const grownEmpty = Object.entries(current.emptyStatesWithoutGuard ?? {})
92
+ .filter(([key, count]) => count > (committed.emptyStatesWithoutGuard?.[key] ?? 0))
93
+ .map(([key]) => key);
82
94
  grownFiles.forEach((key) => console.log(`NEW scroll container without min-h-0 chain: ${key}`));
83
95
  newModules.forEach((m) => console.log(`NEW module with a loading state but no failed state: ${m}`));
84
- if (!grownFiles.length && !newModules.length) {
96
+ grownEmpty.forEach((key) => console.log(`NEW empty-state message without a loading / failed guard: ${key}`));
97
+ if (!grownFiles.length && !newModules.length && !grownEmpty.length) {
85
98
  console.log('UI building blocks within the baseline.');
86
99
  }
87
- process.exitCode = grownFiles.length || newModules.length ? 1 : 0;
100
+ process.exitCode = grownFiles.length || newModules.length || grownEmpty.length ? 1 : 0;
88
101
  return;
89
102
  }
90
103
  (0, fs_1.mkdirSync)(path.dirname(out), { recursive: true });
@@ -97,9 +110,11 @@ function main(args) {
97
110
  totals: {
98
111
  scrollContainers: scrollTotal,
99
112
  modulesWithoutLoadFailedBranch: current.modulesWithoutLoadFailedBranch.length,
113
+ emptyStatesWithoutGuard: Object.values(current.emptyStatesWithoutGuard ?? {}).reduce((a, b) => a + b, 0),
100
114
  },
101
115
  scrollContainers: current.scrollContainers,
102
116
  modulesWithoutLoadFailedBranch: current.modulesWithoutLoadFailedBranch,
117
+ emptyStatesWithoutGuard: current.emptyStatesWithoutGuard ?? {},
103
118
  }, null, 2) + '\n');
104
119
  console.log(`UI-building-blocks baseline written: ${path.relative(root, out)} — ${scrollTotal} scroll container(s) `
105
120
  + `without a min-h-0 chain, ${current.modulesWithoutLoadFailedBranch.length} module(s) without a load-failed state.`);
@@ -1 +1 @@
1
- {"version":3,"file":"ui-building-blocks-baseline.js","sourceRoot":"","sources":["../../src/scripts/ui-building-blocks-baseline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-building-blocks-baseline.js","sourceRoot":"","sources":["../../src/scripts/ui-building-blocks-baseline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/dynamo-eslint",
3
- "version": "1.20.51",
3
+ "version": "1.20.57",
4
4
  "description": "Shared ESLint configs, Dynamo-powered plugin and validators for FutDevPro stacks",
5
5
  "author": "Future Development Program Ltd.",
6
6
  "license": "MIT",
@@ -71,7 +71,8 @@
71
71
  "dynamo-fix-return-types": "./build/scripts/fix-return-types.js",
72
72
  "dynamo-xss-surface-baseline": "./build/scripts/xss-surface-baseline.js",
73
73
  "dynamo-ui-building-blocks-baseline": "./build/scripts/ui-building-blocks-baseline.js",
74
- "dynamo-unused-components-baseline": "./build/scripts/unused-components-baseline.js"
74
+ "dynamo-unused-components-baseline": "./build/scripts/unused-components-baseline.js",
75
+ "dynamo-lint-strict": "./build/scripts/lint-strict.js"
75
76
  },
76
77
  "keywords": [
77
78
  "eslint",
@@ -92,7 +93,7 @@
92
93
  }
93
94
  },
94
95
  "dependencies": {
95
- "@futdevpro/fsm-dynamo": "1.20.88",
96
+ "@futdevpro/fsm-dynamo": "1.20.105",
96
97
  "eslint-plugin-max-params-no-constructor": "0.0.4",
97
98
  "eslint-plugin-unused-imports": "4.4.1",
98
99
  "fast-glob": "3.3.3",