@breadstone-infrastructure/token-linter 0.0.231 → 0.0.232
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/cli/Cli.js +3 -3
- package/cli/Cli.js.map +1 -1
- package/core/interaction.d.ts +14 -3
- package/core/interaction.d.ts.map +1 -1
- package/core/interaction.js +139 -4
- package/core/interaction.js.map +1 -1
- package/core/resolver.d.ts +39 -0
- package/core/resolver.d.ts.map +1 -0
- package/core/resolver.js +138 -0
- package/core/resolver.js.map +1 -0
- package/core/runner.d.ts +3 -3
- package/core/runner.d.ts.map +1 -1
- package/core/runner.js +6 -5
- package/core/runner.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/models/rule-finding.d.ts +1 -0
- package/models/rule-finding.d.ts.map +1 -1
- package/orchestration/TokenLinterOrchestrator.js +1 -1
- package/package.json +5 -4
- package/presets/recommended.d.ts.map +1 -1
- package/presets/recommended.js +1 -0
- package/presets/recommended.js.map +1 -1
- package/reporters/console.reporter.d.ts.map +1 -1
- package/reporters/console.reporter.js +12 -4
- package/reporters/console.reporter.js.map +1 -1
- package/reporters/json.reporter.d.ts.map +1 -1
- package/reporters/json.reporter.js +1 -0
- package/reporters/json.reporter.js.map +1 -1
- package/reporters/summary.reporter.js +1 -1
- package/rules/alphabetical-sort.rule.d.ts +2 -1
- package/rules/alphabetical-sort.rule.d.ts.map +1 -1
- package/rules/alphabetical-sort.rule.js +3 -2
- package/rules/alphabetical-sort.rule.js.map +1 -1
- package/rules/component-presence.rule.d.ts +1 -1
- package/rules/component-presence.rule.js +2 -2
- package/rules/component-presence.rule.js.map +1 -1
- package/rules/duplicate-value.rule.d.ts +3 -1
- package/rules/duplicate-value.rule.d.ts.map +1 -1
- package/rules/duplicate-value.rule.js +3 -1
- package/rules/duplicate-value.rule.js.map +1 -1
- package/rules/empty-json.rule.d.ts +4 -3
- package/rules/empty-json.rule.d.ts.map +1 -1
- package/rules/empty-json.rule.js +5 -4
- package/rules/empty-json.rule.js.map +1 -1
- package/rules/forbidden-key.rule.d.ts +1 -1
- package/rules/forbidden-key.rule.d.ts.map +1 -1
- package/rules/forbidden-key.rule.js +4 -3
- package/rules/forbidden-key.rule.js.map +1 -1
- package/rules/forbidden-value.rule.d.ts +11 -6
- package/rules/forbidden-value.rule.d.ts.map +1 -1
- package/rules/forbidden-value.rule.js +19 -8
- package/rules/forbidden-value.rule.js.map +1 -1
- package/rules/includes-consistency.rule.d.ts.map +1 -1
- package/rules/includes-consistency.rule.js +3 -2
- package/rules/includes-consistency.rule.js.map +1 -1
- package/rules/index.d.ts.map +1 -1
- package/rules/index.js +2 -0
- package/rules/index.js.map +1 -1
- package/rules/key-consistency.rule.js +1 -1
- package/rules/key-consistency.rule.js.map +1 -1
- package/rules/missing-includes.rule.js +1 -1
- package/rules/missing-includes.rule.js.map +1 -1
- package/rules/mixin-reference.rule.js +1 -1
- package/rules/redundant-mixin-override.rule.d.ts +24 -0
- package/rules/redundant-mixin-override.rule.d.ts.map +1 -0
- package/rules/redundant-mixin-override.rule.js +143 -0
- package/rules/redundant-mixin-override.rule.js.map +1 -0
- package/rules/required-includes.rule.d.ts.map +1 -1
- package/rules/required-includes.rule.js +3 -1
- package/rules/required-includes.rule.js.map +1 -1
- package/rules/value-type.rule.d.ts.map +1 -1
- package/rules/value-type.rule.js +3 -2
- package/rules/value-type.rule.js.map +1 -1
- package/utils.d.ts +6 -0
- package/utils.d.ts.map +1 -1
- package/utils.js +28 -0
- package/utils.js.map +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// #region Imports
|
|
2
|
-
import { bold, ConsoleLogger, gray, green, red, yellow } from '@breadstone-infrastructure/utilities';
|
|
2
|
+
import { blue, bold, ConsoleLogger, gray, green, red, yellow } from '@breadstone-infrastructure/utilities';
|
|
3
|
+
import * as path from 'path';
|
|
3
4
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
4
5
|
// #endregion
|
|
5
6
|
/**
|
|
@@ -29,8 +30,15 @@ export class ConsoleReporter {
|
|
|
29
30
|
for (const finding of ruleResult.findings) {
|
|
30
31
|
const severityLabel = this.formatSeverity(finding.severity);
|
|
31
32
|
const fixedLabel = finding.fixed ? green(' [FIXED]') : '';
|
|
32
|
-
const location = [finding.
|
|
33
|
+
const location = [finding.theme, finding.component].filter(Boolean).join(' / ');
|
|
34
|
+
const relativePath = finding.filePath ? path.relative(process.cwd(), finding.filePath) : undefined;
|
|
35
|
+
const fileRef = relativePath
|
|
36
|
+
? gray(` ${relativePath}${finding.line ? `:${finding.line}` : ''}`)
|
|
37
|
+
: undefined;
|
|
33
38
|
this._logger.info(` ${severityLabel} ${gray(`[${location}]`)} ${finding.message}${fixedLabel}`);
|
|
39
|
+
if (fileRef) {
|
|
40
|
+
this._logger.info(fileRef);
|
|
41
|
+
}
|
|
34
42
|
}
|
|
35
43
|
this._logger.info('');
|
|
36
44
|
}
|
|
@@ -45,7 +53,7 @@ export class ConsoleReporter {
|
|
|
45
53
|
parts.push(yellow(`${result.totalWarnings} warning(s)`));
|
|
46
54
|
}
|
|
47
55
|
if (result.totalInfos > 0) {
|
|
48
|
-
parts.push(
|
|
56
|
+
parts.push(blue(`${result.totalInfos} info(s)`));
|
|
49
57
|
}
|
|
50
58
|
if (result.totalFixes > 0) {
|
|
51
59
|
parts.push(green(`${result.totalFixes} fix(es) applied`));
|
|
@@ -66,7 +74,7 @@ export class ConsoleReporter {
|
|
|
66
74
|
case RuleSeverity.Warning:
|
|
67
75
|
return yellow(bold('WARN '));
|
|
68
76
|
case RuleSeverity.Info:
|
|
69
|
-
return
|
|
77
|
+
return blue(bold('INFO '));
|
|
70
78
|
default:
|
|
71
79
|
return gray(' ');
|
|
72
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.reporter.js","sourceRoot":"","sources":["../../src/reporters/console.reporter.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"console.reporter.js","sourceRoot":"","sources":["../../src/reporters/console.reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/json.reporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;;GAGG;AACH,qBAAa,YAAa,YAAW,SAAS;IAI1C,SAAgB,IAAI,UAAU;IAMvB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"json.reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/json.reporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;;GAGG;AACH,qBAAa,YAAa,YAAW,SAAS;IAI1C,SAAgB,IAAI,UAAU;IAMvB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CA4B3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.reporter.js","sourceRoot":"","sources":["../../src/reporters/json.reporter.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAKlB,aAAa;AAEb;;;GAGG;AACH,MAAM,OAAO,YAAY;IAErB,iBAAiB;IAED,IAAI,GAAG,MAAM,CAAC;IAE9B,aAAa;IAEb,kBAAkB;IAEX,MAAM,CAAC,MAAmB;QAC7B,MAAM,MAAM,GAAG;YACX,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;gBAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACjB,CAAC,CAAC;aACN,CAAC,CAAC;SACN,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;CAGJ"}
|
|
1
|
+
{"version":3,"file":"json.reporter.js","sourceRoot":"","sources":["../../src/reporters/json.reporter.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAKlB,aAAa;AAEb;;;GAGG;AACH,MAAM,OAAO,YAAY;IAErB,iBAAiB;IAED,IAAI,GAAG,MAAM,CAAC;IAE9B,aAAa;IAEb,kBAAkB;IAEX,MAAM,CAAC,MAAmB;QAC7B,MAAM,MAAM,GAAG;YACX,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;gBAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;iBACjB,CAAC,CAAC;aACN,CAAC,CAAC;SACN,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;CAGJ"}
|
|
@@ -25,7 +25,7 @@ export class SummaryReporter {
|
|
|
25
25
|
const label = fixedCount > 0
|
|
26
26
|
? `${count} finding(s), ${fixedCount} fixed`
|
|
27
27
|
: `${count} finding(s)`;
|
|
28
|
-
this._logger.info(` ${yellow('✗')} ${ruleResult.ruleName}
|
|
28
|
+
this._logger.info(` ${yellow('✗')} ${ruleResult.ruleName} - ${label}`);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
this._logger.info(gray(` ${'─'.repeat(40)}`));
|
|
@@ -4,7 +4,8 @@ import type { IRuleFinding } from '../models/rule-finding.js';
|
|
|
4
4
|
import type { IRuleResult } from '../models/rule-result.js';
|
|
5
5
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Ensures token keys are sorted alphabetically within each file. Auto-fixable.
|
|
8
|
+
*
|
|
8
9
|
* @public
|
|
9
10
|
*/
|
|
10
11
|
export declare class AlphabeticalSortRule implements IRule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphabetical-sort.rule.d.ts","sourceRoot":"","sources":["../../src/rules/alphabetical-sort.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D
|
|
1
|
+
{"version":3,"file":"alphabetical-sort.rule.d.ts","sourceRoot":"","sources":["../../src/rules/alphabetical-sort.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,KAAK;IAI9C,SAAgB,IAAI,uBAAuB;IAC3C,SAAgB,WAAW,iEAAiE;IAC5F,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,QAAQ;IAC/B,SAAgB,WAAW,SAAS;IAM7B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAsCvC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY,EAAE;CAkC3F"}
|
|
@@ -3,7 +3,8 @@ import * as fs from 'fs';
|
|
|
3
3
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
4
4
|
// #endregion
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Ensures token keys are sorted alphabetically within each file. Auto-fixable.
|
|
7
|
+
*
|
|
7
8
|
* @public
|
|
8
9
|
*/
|
|
9
10
|
export class AlphabeticalSortRule {
|
|
@@ -36,7 +37,7 @@ export class AlphabeticalSortRule {
|
|
|
36
37
|
findings.push({
|
|
37
38
|
component: entry.component,
|
|
38
39
|
theme: entry.theme,
|
|
39
|
-
message: `Keys
|
|
40
|
+
message: `Keys are not sorted alphabetically.`,
|
|
40
41
|
severity: this.defaultSeverity,
|
|
41
42
|
filePath: entry.filePath,
|
|
42
43
|
fixed: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphabetical-sort.rule.js","sourceRoot":"","sources":["../../src/rules/alphabetical-sort.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,aAAa;AAEb
|
|
1
|
+
{"version":3,"file":"alphabetical-sort.rule.js","sourceRoot":"","sources":["../../src/rules/alphabetical-sort.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,aAAa;AAEb;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAE7B,iBAAiB;IAED,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,6DAA6D,CAAC;IAC5E,eAAe,GAAiB,YAAY,CAAC,OAAO,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,GAAG,KAAK,CAAC;IAEpC,aAAa;IAEb,kBAAkB;IAEX,GAAG,CAAC,OAAqB;QAC5B,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/D,qCAAqC;YACrC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAa,CAAC;gBACxD,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExE,SAAS,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,SAAS;YACb,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACV,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,qCAAqC;gBAC9C,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK;aACf,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC;IAEM,GAAG,CAAC,OAAqB,EAAE,QAAqC;QACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAErB,SAAS;YACb,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACnE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE9B,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,8BAA8B;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAClF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CAGJ"}
|
|
@@ -4,7 +4,7 @@ import type { IRuleFinding } from '../models/rule-finding.js';
|
|
|
4
4
|
import type { IRuleResult } from '../models/rule-result.js';
|
|
5
5
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Ensures all themes contain the same set of component token files.
|
|
8
8
|
*
|
|
9
9
|
* @example Interactive prompt
|
|
10
10
|
* ```
|
|
@@ -6,7 +6,7 @@ import { RuleSeverity } from '../models/rule-severity.js';
|
|
|
6
6
|
import { replaceThemePrefix } from '../utils.js';
|
|
7
7
|
// #endregion
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Ensures all themes contain the same set of component token files.
|
|
10
10
|
*
|
|
11
11
|
* @example Interactive prompt
|
|
12
12
|
* ```
|
|
@@ -44,7 +44,7 @@ export class ComponentPresenceRule {
|
|
|
44
44
|
findings.push({
|
|
45
45
|
component,
|
|
46
46
|
theme,
|
|
47
|
-
message: `Component
|
|
47
|
+
message: `Component is missing.`,
|
|
48
48
|
severity: this.defaultSeverity,
|
|
49
49
|
fixed: false,
|
|
50
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-presence.rule.js","sourceRoot":"","sources":["../../src/rules/component-presence.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAsB,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAK1F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,aAAa;AAEb;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,qBAAqB;IAE9B,iBAAiB;IAED,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,mEAAmE,CAAC;IAClF,eAAe,GAAiB,YAAY,CAAC,KAAK,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,IAAI,CAAC;IAEnC,aAAa;IAEb,kBAAkB;IAEX,GAAG,CAAC,OAAqB;QAC5B,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEhD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAErE,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC;wBACV,SAAS;wBACT,KAAK;wBACL,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"component-presence.rule.js","sourceRoot":"","sources":["../../src/rules/component-presence.rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import type { IRuleContext } from '../models/rule-context.js';
|
|
|
3
3
|
import type { IRuleResult } from '../models/rule-result.js';
|
|
4
4
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Detects duplicate token values within the same component
|
|
7
|
+
* that could be abstracted into a shared variable.
|
|
8
|
+
*
|
|
7
9
|
* @public
|
|
8
10
|
*/
|
|
9
11
|
export declare class DuplicateValueRule implements IRule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-value.rule.d.ts","sourceRoot":"","sources":["../../src/rules/duplicate-value.rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D
|
|
1
|
+
{"version":3,"file":"duplicate-value.rule.d.ts","sourceRoot":"","sources":["../../src/rules/duplicate-value.rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,KAAK;IAI5C,SAAgB,IAAI,qBAAqB;IACzC,SAAgB,WAAW,wFAAwF;IACnH,SAAgB,eAAe,EAAE,YAAY,CAAqB;IAClE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,SAAS;IAM7B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;CAuCjD"}
|
|
@@ -3,7 +3,9 @@ import { RuleSeverity } from '../models/rule-severity.js';
|
|
|
3
3
|
import { flattenTokenEntries } from '../utils.js';
|
|
4
4
|
// #endregion
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Detects duplicate token values within the same component
|
|
7
|
+
* that could be abstracted into a shared variable.
|
|
8
|
+
*
|
|
7
9
|
* @public
|
|
8
10
|
*/
|
|
9
11
|
export class DuplicateValueRule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-value.rule.js","sourceRoot":"","sources":["../../src/rules/duplicate-value.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAMlB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,aAAa;AAEb
|
|
1
|
+
{"version":3,"file":"duplicate-value.rule.js","sourceRoot":"","sources":["../../src/rules/duplicate-value.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAMlB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,aAAa;AAEb;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAE3B,iBAAiB;IAED,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GAAG,oFAAoF,CAAC;IACnG,eAAe,GAAiB,YAAY,CAAC,IAAI,CAAC;IAClD,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IAEpC,aAAa;IAEb,kBAAkB;IAEX,GAAG,CAAC,OAAqB;QAC5B,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;YAE7C,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;gBACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAE7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBAED,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC;wBACV,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,OAAO,EAAE,oBAAoB,KAAK,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C;wBACjH,QAAQ,EAAE,IAAI,CAAC,eAAe;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,KAAK,EAAE,KAAK;qBACf,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC;CAGJ"}
|
|
@@ -16,8 +16,7 @@ export interface IEmptyJsonRuleOptions extends IRuleOptionValues {
|
|
|
16
16
|
readonly allowIncludes?: boolean;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* @public
|
|
19
|
+
* Creates typed rule options for the `empty-json` rule.
|
|
21
20
|
*
|
|
22
21
|
* @example
|
|
23
22
|
* ```js
|
|
@@ -25,10 +24,12 @@ export interface IEmptyJsonRuleOptions extends IRuleOptionValues {
|
|
|
25
24
|
* ...emptyJsonRuleOptions({ allowIncludes: true }),
|
|
26
25
|
* }
|
|
27
26
|
* ```
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
28
29
|
*/
|
|
29
30
|
export declare function emptyJsonRuleOptions(options: IEmptyJsonRuleOptions): IRuleOptionsEntry;
|
|
30
31
|
/**
|
|
31
|
-
*
|
|
32
|
+
* Detects component token files with no token definitions.
|
|
32
33
|
*
|
|
33
34
|
* @example Interactive prompt
|
|
34
35
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-json.rule.d.ts","sourceRoot":"","sources":["../../src/rules/empty-json.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAO7F;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAE5D;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CACpC;AAMD
|
|
1
|
+
{"version":3,"file":"empty-json.rule.d.ts","sourceRoot":"","sources":["../../src/rules/empty-json.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAO7F;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAE5D;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CACpC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAEtF;AAID;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,KAAK;IAIvC,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,WAAW,8DAA8D;IACzF,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IA2BjC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA4ChH"}
|
package/rules/empty-json.rule.js
CHANGED
|
@@ -6,8 +6,7 @@ import { getTokenKeys } from '../utils.js';
|
|
|
6
6
|
// #endregion
|
|
7
7
|
// #region Functions
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
* @public
|
|
9
|
+
* Creates typed rule options for the `empty-json` rule.
|
|
11
10
|
*
|
|
12
11
|
* @example
|
|
13
12
|
* ```js
|
|
@@ -15,13 +14,15 @@ import { getTokenKeys } from '../utils.js';
|
|
|
15
14
|
* ...emptyJsonRuleOptions({ allowIncludes: true }),
|
|
16
15
|
* }
|
|
17
16
|
* ```
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
18
19
|
*/
|
|
19
20
|
export function emptyJsonRuleOptions(options) {
|
|
20
21
|
return { 'empty-json': options };
|
|
21
22
|
}
|
|
22
23
|
// #endregion
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
+
* Detects component token files with no token definitions.
|
|
25
26
|
*
|
|
26
27
|
* @example Interactive prompt
|
|
27
28
|
* ```
|
|
@@ -55,7 +56,7 @@ export class EmptyJsonRule {
|
|
|
55
56
|
findings.push({
|
|
56
57
|
component: entry.component,
|
|
57
58
|
theme: entry.theme,
|
|
58
|
-
message: `
|
|
59
|
+
message: `No token definitions found.`,
|
|
59
60
|
severity: this.defaultSeverity,
|
|
60
61
|
filePath: entry.filePath,
|
|
61
62
|
fixed: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-json.rule.js","sourceRoot":"","sources":["../../src/rules/empty-json.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKtE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmB3C,aAAa;AAEb,oBAAoB;AAEpB
|
|
1
|
+
{"version":3,"file":"empty-json.rule.js","sourceRoot":"","sources":["../../src/rules/empty-json.rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface IForbiddenKeyRuleOptions extends IRuleOptionValues {
|
|
|
33
33
|
*/
|
|
34
34
|
export declare function forbiddenKeyRuleOptions(options: IForbiddenKeyRuleOptions): IRuleOptionsEntry;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Detects forbidden keys in component token files.
|
|
37
37
|
*
|
|
38
38
|
* @example Interactive prompt
|
|
39
39
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forbidden-key.rule.d.ts","sourceRoot":"","sources":["../../src/rules/forbidden-key.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAa7F;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAE/D;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAE5F;AAID;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,KAAK;IAI1C,SAAgB,IAAI,mBAAmB;IACvC,SAAgB,WAAW,sDAAsD;IACjF,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"forbidden-key.rule.d.ts","sourceRoot":"","sources":["../../src/rules/forbidden-key.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAa7F;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAE/D;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAE5F;AAID;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,KAAK;IAI1C,SAAgB,IAAI,mBAAmB;IACvC,SAAgB,WAAW,sDAAsD;IACjF,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAgCjC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA6D/G"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import { promptSelect, SKIP, SKIP_ALL } from '../core/interaction.js';
|
|
4
4
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
5
|
-
import { getTokenKeys } from '../utils.js';
|
|
5
|
+
import { findKeyLine, getTokenKeys } from '../utils.js';
|
|
6
6
|
// #endregion
|
|
7
7
|
// #region Constants
|
|
8
8
|
const DEFAULT_FORBIDDEN_KEYS = ['transition', 'shadow'];
|
|
@@ -24,7 +24,7 @@ export function forbiddenKeyRuleOptions(options) {
|
|
|
24
24
|
}
|
|
25
25
|
// #endregion
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Detects forbidden keys in component token files.
|
|
28
28
|
*
|
|
29
29
|
* @example Interactive prompt
|
|
30
30
|
* ```
|
|
@@ -61,9 +61,10 @@ export class ForbiddenKeyRule {
|
|
|
61
61
|
component: entry.component,
|
|
62
62
|
theme: entry.theme,
|
|
63
63
|
key,
|
|
64
|
-
message: `Forbidden key '${key}' found
|
|
64
|
+
message: `Forbidden key '${key}' found.`,
|
|
65
65
|
severity: this.defaultSeverity,
|
|
66
66
|
filePath: entry.filePath,
|
|
67
|
+
line: findKeyLine(entry.filePath, key),
|
|
67
68
|
fixed: false,
|
|
68
69
|
});
|
|
69
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forbidden-key.rule.js","sourceRoot":"","sources":["../../src/rules/forbidden-key.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKtE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"forbidden-key.rule.js","sourceRoot":"","sources":["../../src/rules/forbidden-key.rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,15 @@ import type { IRuleOptionsEntry, IRuleOptionValues } from '../models/token-linte
|
|
|
10
10
|
*/
|
|
11
11
|
export interface IForbiddenValueRuleOptions extends IRuleOptionValues {
|
|
12
12
|
/**
|
|
13
|
-
* @description
|
|
14
|
-
* @default ['unset', '
|
|
13
|
+
* @description Exact values that are forbidden in token definitions. Overrides the built-in default list.
|
|
14
|
+
* @default ['unset', 'all']
|
|
15
15
|
*/
|
|
16
16
|
readonly values?: ReadonlyArray<string>;
|
|
17
|
+
/**
|
|
18
|
+
* @description Regex patterns that forbid matching values. Each string is compiled as a RegExp.
|
|
19
|
+
* @default ['^-?\\d+(\\.\\d+)?px$']
|
|
20
|
+
*/
|
|
21
|
+
readonly patterns?: ReadonlyArray<string>;
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* @description Creates typed rule options for the `forbidden-value` rule.
|
|
@@ -22,17 +27,17 @@ export interface IForbiddenValueRuleOptions extends IRuleOptionValues {
|
|
|
22
27
|
* @example
|
|
23
28
|
* ```js
|
|
24
29
|
* ruleOptions: {
|
|
25
|
-
* ...forbiddenValueRuleOptions({ values: ['unset', '
|
|
30
|
+
* ...forbiddenValueRuleOptions({ values: ['unset', 'none'], patterns: ['^-?\\d+(\\.\\d+)?px$'] }),
|
|
26
31
|
* }
|
|
27
32
|
* ```
|
|
28
33
|
*/
|
|
29
34
|
export declare function forbiddenValueRuleOptions(options: IForbiddenValueRuleOptions): IRuleOptionsEntry;
|
|
30
35
|
/**
|
|
31
|
-
* @description Detects forbidden token values
|
|
36
|
+
* @description Detects forbidden token values via exact match or regex patterns.
|
|
32
37
|
*
|
|
33
38
|
* @example Interactive prompt
|
|
34
39
|
* ```
|
|
35
|
-
* ? Forbidden value 'unset' found for key 'borderColor'
|
|
40
|
+
* ? Forbidden value 'unset' found for key 'borderColor'.
|
|
36
41
|
* > Remove key 'borderColor'
|
|
37
42
|
* Skip
|
|
38
43
|
* Skip all remaining
|
|
@@ -42,7 +47,7 @@ export declare function forbiddenValueRuleOptions(options: IForbiddenValueRuleOp
|
|
|
42
47
|
*/
|
|
43
48
|
export declare class ForbiddenValueRule implements IRule {
|
|
44
49
|
readonly name = "forbidden-value";
|
|
45
|
-
readonly description = "Detects forbidden token values
|
|
50
|
+
readonly description = "Detects forbidden token values via exact match or regex patterns.";
|
|
46
51
|
readonly defaultSeverity: RuleSeverity;
|
|
47
52
|
readonly fixable = false;
|
|
48
53
|
readonly interactive = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forbidden-value.rule.d.ts","sourceRoot":"","sources":["../../src/rules/forbidden-value.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"forbidden-value.rule.d.ts","sourceRoot":"","sources":["../../src/rules/forbidden-value.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAc7F;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IAEjE;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CAEhG;AAID;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,YAAW,KAAK;IAI5C,SAAgB,IAAI,qBAAqB;IACzC,SAAgB,WAAW,uEAAuE;IAClG,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAsCjC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA2D5G,OAAO,CAAC,gBAAgB;CA0B3B"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import { promptSelect, SKIP, SKIP_ALL } from '../core/interaction.js';
|
|
4
4
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
5
|
-
import { flattenTokenEntries } from '../utils.js';
|
|
5
|
+
import { findKeyLine, flattenTokenEntries } from '../utils.js';
|
|
6
6
|
// #endregion
|
|
7
7
|
// #region Constants
|
|
8
|
-
const DEFAULT_FORBIDDEN_VALUES = ['unset', '
|
|
8
|
+
const DEFAULT_FORBIDDEN_VALUES = ['unset', 'all'];
|
|
9
|
+
const DEFAULT_FORBIDDEN_PATTERNS = ['^-?\\d+(\\.\\d+)?px$'];
|
|
9
10
|
// #endregion
|
|
10
11
|
// #region Functions
|
|
11
12
|
/**
|
|
@@ -15,7 +16,7 @@ const DEFAULT_FORBIDDEN_VALUES = ['unset', '0px', 'all'];
|
|
|
15
16
|
* @example
|
|
16
17
|
* ```js
|
|
17
18
|
* ruleOptions: {
|
|
18
|
-
* ...forbiddenValueRuleOptions({ values: ['unset', '
|
|
19
|
+
* ...forbiddenValueRuleOptions({ values: ['unset', 'none'], patterns: ['^-?\\d+(\\.\\d+)?px$'] }),
|
|
19
20
|
* }
|
|
20
21
|
* ```
|
|
21
22
|
*/
|
|
@@ -24,11 +25,11 @@ export function forbiddenValueRuleOptions(options) {
|
|
|
24
25
|
}
|
|
25
26
|
// #endregion
|
|
26
27
|
/**
|
|
27
|
-
* @description Detects forbidden token values
|
|
28
|
+
* @description Detects forbidden token values via exact match or regex patterns.
|
|
28
29
|
*
|
|
29
30
|
* @example Interactive prompt
|
|
30
31
|
* ```
|
|
31
|
-
* ? Forbidden value 'unset' found for key 'borderColor'
|
|
32
|
+
* ? Forbidden value 'unset' found for key 'borderColor'.
|
|
32
33
|
* > Remove key 'borderColor'
|
|
33
34
|
* Skip
|
|
34
35
|
* Skip all remaining
|
|
@@ -39,7 +40,7 @@ export function forbiddenValueRuleOptions(options) {
|
|
|
39
40
|
export class ForbiddenValueRule {
|
|
40
41
|
// #region Fields
|
|
41
42
|
name = 'forbidden-value';
|
|
42
|
-
description = 'Detects forbidden token values
|
|
43
|
+
description = 'Detects forbidden token values via exact match or regex patterns.';
|
|
43
44
|
defaultSeverity = RuleSeverity.Warning;
|
|
44
45
|
fixable = false;
|
|
45
46
|
interactive = true;
|
|
@@ -49,17 +50,27 @@ export class ForbiddenValueRule {
|
|
|
49
50
|
const findings = [];
|
|
50
51
|
const options = context.config.ruleOptions[this.name];
|
|
51
52
|
const forbiddenValues = options?.values ?? DEFAULT_FORBIDDEN_VALUES;
|
|
53
|
+
const forbiddenPatterns = (options?.patterns ?? DEFAULT_FORBIDDEN_PATTERNS).map(p => new RegExp(p));
|
|
52
54
|
for (const entry of context.entries) {
|
|
53
55
|
const flatEntries = flattenTokenEntries(entry.content);
|
|
54
56
|
for (const { key, value } of flatEntries) {
|
|
55
|
-
if (typeof value
|
|
57
|
+
if (typeof value !== 'string') {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const trimmed = value.trim();
|
|
61
|
+
const exactMatch = forbiddenValues.includes(trimmed);
|
|
62
|
+
const patternMatch = forbiddenPatterns.find(p => p.test(trimmed));
|
|
63
|
+
if (exactMatch || patternMatch) {
|
|
56
64
|
findings.push({
|
|
57
65
|
component: entry.component,
|
|
58
66
|
theme: entry.theme,
|
|
59
67
|
key,
|
|
60
|
-
message:
|
|
68
|
+
message: patternMatch && !exactMatch
|
|
69
|
+
? `Value '${value}' for key '${key}' matches forbidden pattern '${patternMatch.source}'.`
|
|
70
|
+
: `Forbidden value '${value}' found for key '${key}'.`,
|
|
61
71
|
severity: this.defaultSeverity,
|
|
62
72
|
filePath: entry.filePath,
|
|
73
|
+
line: findKeyLine(entry.filePath, key),
|
|
63
74
|
fixed: false,
|
|
64
75
|
});
|
|
65
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forbidden-value.rule.js","sourceRoot":"","sources":["../../src/rules/forbidden-value.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKtE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"forbidden-value.rule.js","sourceRoot":"","sources":["../../src/rules/forbidden-value.rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes-consistency.rule.d.ts","sourceRoot":"","sources":["../../src/rules/includes-consistency.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,YAAW,KAAK;IAIjD,SAAgB,IAAI,0BAA0B;IAC9C,SAAgB,WAAW,mFAAmF;IAC9G,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"includes-consistency.rule.d.ts","sourceRoot":"","sources":["../../src/rules/includes-consistency.rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,YAAW,KAAK;IAIjD,SAAgB,IAAI,0BAA0B;IAC9C,SAAgB,WAAW,mFAAmF;IAC9G,SAAgB,eAAe,EAAE,YAAY,CAAwB;IACrE,SAAgB,OAAO,SAAS;IAChC,SAAgB,WAAW,QAAQ;IAM5B,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IA6DjC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAuG/G"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import { promptSelect, SKIP, SKIP_ALL } from '../core/interaction.js';
|
|
4
4
|
import { RuleSeverity } from '../models/rule-severity.js';
|
|
5
|
-
import { groupByComponent } from '../utils.js';
|
|
5
|
+
import { findKeyLine, groupByComponent } from '../utils.js';
|
|
6
6
|
// #endregion
|
|
7
7
|
/**
|
|
8
8
|
* @description Ensures $includes arrays are consistent across themes for the same component.
|
|
@@ -62,9 +62,10 @@ export class IncludesConsistencyRule {
|
|
|
62
62
|
component,
|
|
63
63
|
theme: entry.theme,
|
|
64
64
|
key: '$includes',
|
|
65
|
-
message: `$includes differs from '${referenceEntry.theme}'
|
|
65
|
+
message: `$includes differs from '${referenceEntry.theme}': ${parts.join('; ')}.`,
|
|
66
66
|
severity: this.defaultSeverity,
|
|
67
67
|
filePath: entry.filePath,
|
|
68
|
+
line: findKeyLine(entry.filePath, '$includes'),
|
|
68
69
|
fixed: false,
|
|
69
70
|
});
|
|
70
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes-consistency.rule.js","sourceRoot":"","sources":["../../src/rules/includes-consistency.rule.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAsB,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAK1F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"includes-consistency.rule.js","sourceRoot":"","sources":["../../src/rules/includes-consistency.rule.ts"],"names":[],"mappings":"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"}
|