@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.
Files changed (80) hide show
  1. package/cli/Cli.js +3 -3
  2. package/cli/Cli.js.map +1 -1
  3. package/core/interaction.d.ts +14 -3
  4. package/core/interaction.d.ts.map +1 -1
  5. package/core/interaction.js +139 -4
  6. package/core/interaction.js.map +1 -1
  7. package/core/resolver.d.ts +39 -0
  8. package/core/resolver.d.ts.map +1 -0
  9. package/core/resolver.js +138 -0
  10. package/core/resolver.js.map +1 -0
  11. package/core/runner.d.ts +3 -3
  12. package/core/runner.d.ts.map +1 -1
  13. package/core/runner.js +6 -5
  14. package/core/runner.js.map +1 -1
  15. package/index.d.ts +1 -0
  16. package/index.d.ts.map +1 -1
  17. package/index.js +1 -0
  18. package/index.js.map +1 -1
  19. package/models/rule-finding.d.ts +1 -0
  20. package/models/rule-finding.d.ts.map +1 -1
  21. package/orchestration/TokenLinterOrchestrator.js +1 -1
  22. package/package.json +5 -4
  23. package/presets/recommended.d.ts.map +1 -1
  24. package/presets/recommended.js +1 -0
  25. package/presets/recommended.js.map +1 -1
  26. package/reporters/console.reporter.d.ts.map +1 -1
  27. package/reporters/console.reporter.js +12 -4
  28. package/reporters/console.reporter.js.map +1 -1
  29. package/reporters/json.reporter.d.ts.map +1 -1
  30. package/reporters/json.reporter.js +1 -0
  31. package/reporters/json.reporter.js.map +1 -1
  32. package/reporters/summary.reporter.js +1 -1
  33. package/rules/alphabetical-sort.rule.d.ts +2 -1
  34. package/rules/alphabetical-sort.rule.d.ts.map +1 -1
  35. package/rules/alphabetical-sort.rule.js +3 -2
  36. package/rules/alphabetical-sort.rule.js.map +1 -1
  37. package/rules/component-presence.rule.d.ts +1 -1
  38. package/rules/component-presence.rule.js +2 -2
  39. package/rules/component-presence.rule.js.map +1 -1
  40. package/rules/duplicate-value.rule.d.ts +3 -1
  41. package/rules/duplicate-value.rule.d.ts.map +1 -1
  42. package/rules/duplicate-value.rule.js +3 -1
  43. package/rules/duplicate-value.rule.js.map +1 -1
  44. package/rules/empty-json.rule.d.ts +4 -3
  45. package/rules/empty-json.rule.d.ts.map +1 -1
  46. package/rules/empty-json.rule.js +5 -4
  47. package/rules/empty-json.rule.js.map +1 -1
  48. package/rules/forbidden-key.rule.d.ts +1 -1
  49. package/rules/forbidden-key.rule.d.ts.map +1 -1
  50. package/rules/forbidden-key.rule.js +4 -3
  51. package/rules/forbidden-key.rule.js.map +1 -1
  52. package/rules/forbidden-value.rule.d.ts +11 -6
  53. package/rules/forbidden-value.rule.d.ts.map +1 -1
  54. package/rules/forbidden-value.rule.js +19 -8
  55. package/rules/forbidden-value.rule.js.map +1 -1
  56. package/rules/includes-consistency.rule.d.ts.map +1 -1
  57. package/rules/includes-consistency.rule.js +3 -2
  58. package/rules/includes-consistency.rule.js.map +1 -1
  59. package/rules/index.d.ts.map +1 -1
  60. package/rules/index.js +2 -0
  61. package/rules/index.js.map +1 -1
  62. package/rules/key-consistency.rule.js +1 -1
  63. package/rules/key-consistency.rule.js.map +1 -1
  64. package/rules/missing-includes.rule.js +1 -1
  65. package/rules/missing-includes.rule.js.map +1 -1
  66. package/rules/mixin-reference.rule.js +1 -1
  67. package/rules/redundant-mixin-override.rule.d.ts +24 -0
  68. package/rules/redundant-mixin-override.rule.d.ts.map +1 -0
  69. package/rules/redundant-mixin-override.rule.js +143 -0
  70. package/rules/redundant-mixin-override.rule.js.map +1 -0
  71. package/rules/required-includes.rule.d.ts.map +1 -1
  72. package/rules/required-includes.rule.js +3 -1
  73. package/rules/required-includes.rule.js.map +1 -1
  74. package/rules/value-type.rule.d.ts.map +1 -1
  75. package/rules/value-type.rule.js +3 -2
  76. package/rules/value-type.rule.js.map +1 -1
  77. package/utils.d.ts +6 -0
  78. package/utils.d.ts.map +1 -1
  79. package/utils.js +28 -0
  80. package/utils.js.map +1 -1
package/cli/Cli.js CHANGED
@@ -13,9 +13,9 @@ export class Cli extends Program {
13
13
  // #region Ctor
14
14
  constructor() {
15
15
  super({
16
- moduleName: 'token-linter',
17
- prog: 'token-linter',
18
- description: 'Token Linter A configurable linter for Style Dictionary token JSON files.',
16
+ moduleName: 'tokenlinter',
17
+ prog: 'tokenlinter',
18
+ description: 'Token Linter - A configurable linter for Style Dictionary token JSON files.',
19
19
  version: '@@VERSION',
20
20
  addHelp: true,
21
21
  debug: true,
package/cli/Cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAuB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,aAAa;AAEb;;;GAGG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAuB;IAE5C,eAAe;IAEf;QACI,KAAK,CAAC;YACF,UAAU,EAAE,cAAc;YAC1B,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,6EAA6E;YAC1F,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM;aACN,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI;aACJ,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAoD,GAAG,EAAE,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAE7G,IAAI,CAAC,QAAQ;aACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;CAGJ"}
1
+ {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAuB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,aAAa;AAEb;;;GAGG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAuB;IAE5C,eAAe;IAEf;QACI,KAAK,CAAC;YACF,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,6EAA6E;YAC1F,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM;aACN,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI;aACJ,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAoD,GAAG,EAAE,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAE7G,IAAI,CAAC,QAAQ;aACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;CAGJ"}
@@ -15,11 +15,22 @@ export declare const SKIP_ALL: "__skip_all__";
15
15
  export interface IPromptChoice {
16
16
  readonly name: string;
17
17
  readonly message: string;
18
+ readonly hint?: string;
19
+ readonly shortcut?: string;
18
20
  }
19
21
  /**
20
- * @description Presents a select prompt to the user with the given choices plus Skip / Skip all remaining.
21
- * Returns the selected choice name string, or one of the sentinel values (SKIP / SKIP_ALL).
22
+ * @description Progress information rendered in the interactive prompt footer.
22
23
  * @public
23
24
  */
24
- export declare function promptSelect(message: string, choices: ReadonlyArray<string | IPromptChoice>): Promise<string>;
25
+ export interface IInteractiveProgress {
26
+ readonly current: number;
27
+ readonly total: number;
28
+ }
29
+ /**
30
+ * @description Runs an interactive session with a global progress state.
31
+ * Every `promptSelect()` call inside the callback automatically advances and renders the footer status.
32
+ * @public
33
+ */
34
+ export declare function withInteractiveProgress<T>(total: number, callback: () => Promise<T>): Promise<T>;
35
+ export declare function promptSelect(message: string, choices: ReadonlyArray<string | IPromptChoice>, progress?: IInteractiveProgress): Promise<string>;
25
36
  //# sourceMappingURL=interaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/core/interaction.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAG,UAAmB,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAG,cAAuB,CAAC;AAMhD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBnH"}
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/core/interaction.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAG,UAAmB,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAG,cAAuB,CAAC;AAMhD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AA6CD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC3C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAWZ;AAyFD,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,EAC9C,QAAQ,CAAC,EAAE,oBAAoB,GAChC,OAAO,CAAC,MAAM,CAAC,CA6EjB"}
@@ -20,23 +20,158 @@ export const SKIP_ALL = '__skip_all__';
20
20
  * Returns the selected choice name string, or one of the sentinel values (SKIP / SKIP_ALL).
21
21
  * @public
22
22
  */
23
- export async function promptSelect(message, choices) {
23
+ let _interactiveProgressState;
24
+ const DEFAULT_KEY_ACTIONS = {
25
+ pageup: 'pageUp',
26
+ pagedown: 'pageDown',
27
+ home: 'home',
28
+ end: 'end',
29
+ cancel: 'cancel',
30
+ delete: 'deleteForward',
31
+ backspace: 'delete',
32
+ down: 'down',
33
+ enter: 'submit',
34
+ escape: 'cancel',
35
+ left: 'left',
36
+ space: 'space',
37
+ number: 'number',
38
+ return: 'submit',
39
+ right: 'right',
40
+ tab: 'next',
41
+ up: 'up',
42
+ };
43
+ /**
44
+ * @description Runs an interactive session with a global progress state.
45
+ * Every `promptSelect()` call inside the callback automatically advances and renders the footer status.
46
+ * @public
47
+ */
48
+ export async function withInteractiveProgress(total, callback) {
49
+ _interactiveProgressState = {
50
+ current: 0,
51
+ total: Math.max(total, 0),
52
+ };
53
+ try {
54
+ return await callback();
55
+ }
56
+ finally {
57
+ _interactiveProgressState = undefined;
58
+ }
59
+ }
60
+ function getProgressFooter(progress) {
61
+ if (progress) {
62
+ return `[${progress.current}/${progress.total}]`;
63
+ }
64
+ if (!_interactiveProgressState || _interactiveProgressState.total <= 0) {
65
+ return undefined;
66
+ }
67
+ _interactiveProgressState.current = Math.min(_interactiveProgressState.current + 1, _interactiveProgressState.total);
68
+ return `[${_interactiveProgressState.current}/${_interactiveProgressState.total}]`;
69
+ }
70
+ function addShortcutHint(choice, shortcut) {
71
+ const shortcutHint = `[${shortcut.toUpperCase()}]`;
72
+ if (!choice.hint) {
73
+ choice.hint = shortcutHint;
74
+ return;
75
+ }
76
+ if (!choice.hint.includes(shortcutHint)) {
77
+ choice.hint = `${choice.hint} ${shortcutHint}`;
78
+ }
79
+ }
80
+ function sanitizeShortcut(value) {
81
+ const normalized = value.trim().toLowerCase();
82
+ if (!/^[a-z0-9]$/.test(normalized)) {
83
+ return undefined;
84
+ }
85
+ return normalized;
86
+ }
87
+ function getPreferredShortcut(message, usedShortcuts) {
88
+ for (const character of message.toLowerCase()) {
89
+ if (!/^[a-z0-9]$/.test(character)) {
90
+ continue;
91
+ }
92
+ if (usedShortcuts.has(character)) {
93
+ continue;
94
+ }
95
+ return character;
96
+ }
97
+ return undefined;
98
+ }
99
+ function selectChoiceByName(promptInstance, choiceName) {
100
+ const index = promptInstance.findIndex(choiceName);
101
+ if (index >= 0) {
102
+ promptInstance.index = index;
103
+ return promptInstance.submit();
104
+ }
105
+ promptInstance.alert();
106
+ }
107
+ function applyShortcut(choice, shortcut, usedShortcuts, keyActions, actionHandlers) {
108
+ const actionName = `shortcut_${shortcut}`;
109
+ choice.shortcut = shortcut;
110
+ addShortcutHint(choice, shortcut);
111
+ usedShortcuts.add(shortcut);
112
+ keyActions[shortcut] = actionName;
113
+ actionHandlers[actionName] = function () {
114
+ return selectChoiceByName(this, choice.name);
115
+ };
116
+ }
117
+ export async function promptSelect(message, choices, progress) {
24
118
  const normalizedChoices = choices.map(choice => {
25
119
  if (typeof choice === 'string') {
26
120
  return { name: choice, message: choice };
27
121
  }
28
- return choice;
122
+ return {
123
+ name: choice.name,
124
+ message: choice.message,
125
+ hint: choice.hint,
126
+ shortcut: choice.shortcut,
127
+ };
29
128
  });
129
+ const keyActions = { ...DEFAULT_KEY_ACTIONS };
130
+ const actionHandlers = {};
131
+ const usedShortcuts = new Set(['s', 'a']);
132
+ const deleteChoice = normalizedChoices.find(choice => /delete/i.test(choice.message) || /delete/i.test(choice.name));
133
+ if (deleteChoice) {
134
+ applyShortcut(deleteChoice, 'd', usedShortcuts, keyActions, actionHandlers);
135
+ }
136
+ for (const choice of normalizedChoices) {
137
+ if (choice.shortcut) {
138
+ const explicitShortcut = sanitizeShortcut(choice.shortcut);
139
+ if (explicitShortcut && !usedShortcuts.has(explicitShortcut)) {
140
+ applyShortcut(choice, explicitShortcut, usedShortcuts, keyActions, actionHandlers);
141
+ continue;
142
+ }
143
+ }
144
+ if (choice.shortcut) {
145
+ continue;
146
+ }
147
+ const preferredShortcut = getPreferredShortcut(choice.message, usedShortcuts);
148
+ if (preferredShortcut) {
149
+ applyShortcut(choice, preferredShortcut, usedShortcuts, keyActions, actionHandlers);
150
+ }
151
+ }
30
152
  const allChoices = [
31
153
  ...normalizedChoices,
32
- { name: SKIP, message: 'Skip' },
33
- { name: SKIP_ALL, message: 'Skip all remaining' },
154
+ { name: SKIP, message: 'Skip', hint: '[S]', shortcut: 's' },
155
+ { name: SKIP_ALL, message: 'Skip all remaining', hint: '[A]', shortcut: 'a' },
34
156
  ];
157
+ actionHandlers['shortcut_s'] = function () {
158
+ return selectChoiceByName(this, SKIP);
159
+ };
160
+ actionHandlers['shortcut_a'] = function () {
161
+ return selectChoiceByName(this, SKIP_ALL);
162
+ };
163
+ keyActions['s'] = 'shortcut_s';
164
+ keyActions['a'] = 'shortcut_a';
35
165
  const options = {
36
166
  type: 'select',
37
167
  name: 'action',
38
168
  message,
39
169
  choices: allChoices,
170
+ footer: getProgressFooter(progress),
171
+ actions: {
172
+ keys: keyActions,
173
+ },
174
+ ...actionHandlers,
40
175
  };
41
176
  const result = await prompt(options);
42
177
  return result.action;
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/core/interaction.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAE5B,aAAa;AAEb,oBAAoB;AAEpB;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAmB,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAuB,CAAC;AAehD,aAAa;AAEb,oBAAoB;AAEpB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAA8C;IAC9F,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG;QACf,GAAG,iBAAiB;QACpB,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;QAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE;KACpD,CAAC;IAEF,MAAM,OAAO,GAAY;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,OAAO,EAAE,UAAU;KACtB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAqB,OAAuC,CAAC,CAAC;IAEzF,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,aAAa"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/core/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @description Represents a single resolved design token with its CSS custom property name, value, and type.
3
+ * @public
4
+ */
5
+ export interface IResolvedToken {
6
+ /** The camelCase token key as defined in the JSON (e.g. `backgroundColor`). */
7
+ readonly key: string;
8
+ /** The token value (e.g. `var(--joy-scheme-background)` or `solid`). */
9
+ readonly value: string | string[];
10
+ /** The optional type annotation from the token JSON (e.g. `color`, `alias`). */
11
+ readonly type: string | undefined;
12
+ }
13
+ /**
14
+ * @description Options for resolving component tokens.
15
+ * @public
16
+ */
17
+ export interface ITokenResolverOptions {
18
+ /** Absolute path to the component token JSON file. */
19
+ readonly componentFilePath: string;
20
+ /** Absolute path to the base `components.json` file. */
21
+ readonly baseTokensPath: string;
22
+ /** Absolute path to the mixins directory. */
23
+ readonly mixinsDir: string;
24
+ }
25
+ /**
26
+ * @description Resolves all design tokens for a component by merging base tokens, mixin tokens,
27
+ * and component-specific tokens. Handles `$includes` with optional prefix syntax (e.g. `color:background`).
28
+ * @public
29
+ */
30
+ export declare namespace TokenResolver {
31
+ /**
32
+ * @description Resolves all tokens for a component, merging base → mixins → component overrides.
33
+ * @param options - The resolver options containing file paths.
34
+ * @returns An array of resolved tokens sorted alphabetically by key.
35
+ * @public
36
+ */
37
+ function resolve(options: ITokenResolverOptions): IResolvedToken[];
38
+ }
39
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,sDAAsD;IACtD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,yBAAiB,aAAa,CAAC;IAI3B;;;;;OAKG;IACH,SAAgB,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,EAAE,CAiBxE;CA0IJ"}
@@ -0,0 +1,138 @@
1
+ // #region Imports
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { isTokenValue } from '../utils.js';
5
+ /**
6
+ * @description Resolves all design tokens for a component by merging base tokens, mixin tokens,
7
+ * and component-specific tokens. Handles `$includes` with optional prefix syntax (e.g. `color:background`).
8
+ * @public
9
+ */
10
+ export var TokenResolver;
11
+ (function (TokenResolver) {
12
+ // #region Methods
13
+ /**
14
+ * @description Resolves all tokens for a component, merging base → mixins → component overrides.
15
+ * @param options - The resolver options containing file paths.
16
+ * @returns An array of resolved tokens sorted alphabetically by key.
17
+ * @public
18
+ */
19
+ function resolve(options) {
20
+ const baseTokens = _readJson(options.baseTokensPath);
21
+ const componentTokens = _readJson(options.componentFilePath);
22
+ const mixinTokens = _resolveMixinTokens(componentTokens['$includes'], options.mixinsDir);
23
+ // Remove $includes from component tokens before merge
24
+ const cleanComponentTokens = { ...componentTokens };
25
+ delete cleanComponentTokens['$includes'];
26
+ // Merge order: base (lowest) → mixins → component (highest)
27
+ const merged = _deepAssign(_deepAssign(baseTokens, mixinTokens), cleanComponentTokens);
28
+ return _flattenToResolvedTokens(merged).sort((a, b) => a.key.localeCompare(b.key));
29
+ }
30
+ TokenResolver.resolve = resolve;
31
+ // #endregion
32
+ // #region Private
33
+ /**
34
+ * @description Reads and parses a JSON file.
35
+ */
36
+ function _readJson(filePath) {
37
+ if (!fs.existsSync(filePath)) {
38
+ return {};
39
+ }
40
+ const raw = fs.readFileSync(filePath, 'utf-8');
41
+ try {
42
+ return JSON.parse(raw);
43
+ }
44
+ catch (error) {
45
+ const message = error instanceof Error ? error.message : String(error);
46
+ throw new Error(`Failed to parse JSON file "${filePath}": ${message}`);
47
+ }
48
+ }
49
+ /**
50
+ * @description Resolves mixin tokens from the `$includes` array.
51
+ * Handles the `name:prefix` syntax (e.g. `color:background` → `backgroundColor`).
52
+ */
53
+ function _resolveMixinTokens(includes, mixinsDir) {
54
+ const result = {};
55
+ if (!includes) {
56
+ return result;
57
+ }
58
+ for (const entry of includes) {
59
+ let mixinName = entry;
60
+ let prefix;
61
+ if (entry.includes(':')) {
62
+ const [name, pfx] = entry.split(':');
63
+ mixinName = name;
64
+ prefix = pfx;
65
+ }
66
+ const mixinPath = path.join(mixinsDir, `${mixinName}.json`);
67
+ if (!fs.existsSync(mixinPath)) {
68
+ continue;
69
+ }
70
+ const mixinJson = _readJson(mixinPath);
71
+ if (prefix) {
72
+ for (const [key, value] of Object.entries(mixinJson)) {
73
+ if (key.startsWith('$')) {
74
+ continue;
75
+ }
76
+ const prefixedKey = prefix + key.charAt(0).toUpperCase() + key.slice(1);
77
+ result[prefixedKey] = value;
78
+ }
79
+ }
80
+ else {
81
+ for (const [key, value] of Object.entries(mixinJson)) {
82
+ if (key.startsWith('$')) {
83
+ continue;
84
+ }
85
+ result[key] = value;
86
+ }
87
+ }
88
+ }
89
+ return result;
90
+ }
91
+ /**
92
+ * @description Flattens merged token content into an array of resolved tokens.
93
+ * Handles both flat token values and nested token groups.
94
+ */
95
+ function _flattenToResolvedTokens(content, prefix) {
96
+ const tokens = [];
97
+ for (const [key, val] of Object.entries(content)) {
98
+ if (key.startsWith('$')) {
99
+ continue;
100
+ }
101
+ const fullKey = prefix ? `${prefix}.${key}` : key;
102
+ if (isTokenValue(val)) {
103
+ const tokenObj = val;
104
+ const value = tokenObj.value;
105
+ tokens.push({
106
+ key: fullKey,
107
+ value: Array.isArray(value)
108
+ ? value.map(String)
109
+ : String(value),
110
+ type: typeof tokenObj.type === 'string' ? tokenObj.type : undefined,
111
+ });
112
+ }
113
+ else if (typeof val === 'object' && val !== null) {
114
+ tokens.push(..._flattenToResolvedTokens(val, fullKey));
115
+ }
116
+ }
117
+ return tokens;
118
+ }
119
+ /**
120
+ * @description Deep-assigns source properties onto the target, recursively merging nested objects.
121
+ */
122
+ function _deepAssign(target, source) {
123
+ const result = { ...target };
124
+ for (const [key, sourceVal] of Object.entries(source)) {
125
+ const targetVal = result[key];
126
+ if (typeof sourceVal === 'object' && sourceVal !== null && !Array.isArray(sourceVal) && !('value' in sourceVal)
127
+ && typeof targetVal === 'object' && targetVal !== null && !Array.isArray(targetVal) && !('value' in targetVal)) {
128
+ result[key] = _deepAssign(targetVal, sourceVal);
129
+ }
130
+ else {
131
+ result[key] = sourceVal;
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ // #endregion
137
+ })(TokenResolver || (TokenResolver = {}));
138
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"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"}
package/core/runner.d.ts CHANGED
@@ -13,9 +13,9 @@ export declare namespace LintRunner {
13
13
  * Rules not listed in the config are not executed (opt-in model).
14
14
  *
15
15
  * Execution phases per rule:
16
- * 1. **Detect** `rule.run()` identifies findings (side-effect free).
17
- * 2. **Fix** `rule.fix()` auto-fixes findings (only when `config.fix` is enabled and `rule.fixable` is `true`).
18
- * 3. **Interact** `rule.interact()` prompts the user for resolution of remaining findings
16
+ * 1. **Detect** - `rule.run()` identifies findings (side-effect free).
17
+ * 2. **Fix** - `rule.fix()` auto-fixes findings (only when `config.fix` is enabled and `rule.fixable` is `true`).
18
+ * 3. **Interact** - `rule.interact()` prompts the user for resolution of remaining findings
19
19
  * (only when `config.interactive` is enabled and `rule.interactive` is `true`).
20
20
  */
21
21
  function run(registry: RuleRegistry, config: ITokenLinterConfig, entries: ReadonlyArray<ITokenEntry>, mixinNames: ReadonlyArray<string>, mixinKeys: ReadonlyMap<string, ReadonlyArray<string>>, logger: ILogger): Promise<ILintResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,yBAAiB,UAAU,CAAC;IAIxB;;;;;;;;;OASG;IACH,SAAsB,GAAG,CACrB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EACnC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,EACrD,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,WAAW,CAAC,CA2GtB;CAGJ"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,yBAAiB,UAAU,CAAC;IAIxB;;;;;;;;;OASG;IACH,SAAsB,GAAG,CACrB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EACnC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,EACrD,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,WAAW,CAAC,CA8GtB;CAGJ"}
package/core/runner.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // #region Imports
2
2
  import { RuleSeverity } from '../models/rule-severity.js';
3
+ import { withInteractiveProgress } from './interaction.js';
3
4
  // #endregion
4
5
  /**
5
6
  * @description Orchestrates 3-phase rule execution (detect → fix → interact), severity overrides, and result aggregation.
@@ -13,9 +14,9 @@ export var LintRunner;
13
14
  * Rules not listed in the config are not executed (opt-in model).
14
15
  *
15
16
  * Execution phases per rule:
16
- * 1. **Detect** `rule.run()` identifies findings (side-effect free).
17
- * 2. **Fix** `rule.fix()` auto-fixes findings (only when `config.fix` is enabled and `rule.fixable` is `true`).
18
- * 3. **Interact** `rule.interact()` prompts the user for resolution of remaining findings
17
+ * 1. **Detect** - `rule.run()` identifies findings (side-effect free).
18
+ * 2. **Fix** - `rule.fix()` auto-fixes findings (only when `config.fix` is enabled and `rule.fixable` is `true`).
19
+ * 3. **Interact** - `rule.interact()` prompts the user for resolution of remaining findings
19
20
  * (only when `config.interactive` is enabled and `rule.interactive` is `true`).
20
21
  */
21
22
  async function run(registry, config, entries, mixinNames, mixinKeys, logger) {
@@ -39,7 +40,7 @@ export var LintRunner;
39
40
  }
40
41
  const rule = registry.getByName(ruleName);
41
42
  if (!rule) {
42
- logger.warn(`Unknown rule '${ruleName}' in configuration skipping.`);
43
+ logger.warn(`Unknown rule '${ruleName}' in configuration - skipping.`);
43
44
  continue;
44
45
  }
45
46
  const effectiveSeverity = severityOrOff;
@@ -70,7 +71,7 @@ export var LintRunner;
70
71
  if (config.interactive && rule.interactive && rule.interact) {
71
72
  const unfixed = findings.filter(f => !f.fixed);
72
73
  if (unfixed.length > 0) {
73
- const interactedFindings = await rule.interact(context, unfixed);
74
+ const interactedFindings = await withInteractiveProgress(unfixed.length, async () => rule.interact(context, unfixed));
74
75
  const interactedSet = new Set(unfixed);
75
76
  findings = findings
76
77
  .filter(f => !interactedSet.has(f))
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './models/token-linter-config.js';
8
8
  export * from './utils.js';
9
9
  export * from './core/interaction.js';
10
10
  export * from './core/loader.js';
11
+ export * from './core/resolver.js';
11
12
  export * from './core/rule-registry.js';
12
13
  export * from './core/rule.js';
13
14
  export * from './core/runner.js';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,YAAY,CAAC;AAG3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAChG,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACvF,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACtG,YAAY,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,YAAY,CAAC;AAG3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAChG,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACvF,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACtG,YAAY,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
package/index.js CHANGED
@@ -11,6 +11,7 @@ export * from './utils.js';
11
11
  // Core
12
12
  export * from './core/interaction.js';
13
13
  export * from './core/loader.js';
14
+ export * from './core/resolver.js';
14
15
  export * from './core/rule-registry.js';
15
16
  export * from './core/rule.js';
16
17
  export * from './core/runner.js';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,OAAO;AACP,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,QAAQ;AACR,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGjF,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,OAAO;AACP,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,QAAQ;AACR,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGjF,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
@@ -10,6 +10,7 @@ export interface IRuleFinding {
10
10
  readonly message: string;
11
11
  readonly severity: RuleSeverity;
12
12
  readonly filePath?: string;
13
+ readonly line?: number;
13
14
  readonly fixed: boolean;
14
15
  }
15
16
  //# sourceMappingURL=rule-finding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-finding.d.ts","sourceRoot":"","sources":["../../src/models/rule-finding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"rule-finding.d.ts","sourceRoot":"","sources":["../../src/models/rule-finding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B"}
@@ -47,7 +47,7 @@ export class TokenLinterOrchestrator {
47
47
  * @description Runs the token linter with an explicitly provided config.
48
48
  */
49
49
  async execute(rootPath, config) {
50
- this._logger.info('Token Linter Starting analysis...');
50
+ this._logger.info('Token Linter - Starting analysis...');
51
51
  const tokensBasePath = path.resolve(rootPath, config.tokensDir);
52
52
  const mixinsBasePath = path.resolve(rootPath, config.mixinsDir);
53
53
  // Load data
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@breadstone-infrastructure/token-linter",
3
3
  "description": "A configurable, extensible linter for Style Dictionary token JSON files. Validates structure, consistency, naming, and values across themes.",
4
- "version": "0.0.231",
4
+ "version": "0.0.232",
5
5
  "license": "MIT",
6
6
  "author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
7
7
  "repository": {
@@ -10,11 +10,12 @@
10
10
  "type": "module",
11
11
  "main": "./index.js",
12
12
  "types": "./index.d.ts",
13
- "bin": "./bin/token-linter.js",
13
+ "bin": {
14
+ "tokenlinter": "./bin/tokenlinter.js"
15
+ },
14
16
  "dependencies": {
15
- "@breadstone-infrastructure/utilities": "0.0.231",
17
+ "@breadstone-infrastructure/utilities": "0.0.232",
16
18
  "enquirer": "^2.4.1",
17
- "glob": "13.0.6",
18
19
  "tslib": "2.8.1"
19
20
  }
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAiB9D,CAAC"}
1
+ {"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAkB9D,CAAC"}
@@ -26,6 +26,7 @@ export const recommended = {
26
26
  'includes-consistency': 'warning',
27
27
  'missing-includes': 'warning',
28
28
  'required-includes': 'error',
29
+ 'redundant-mixin-override': 'warning',
29
30
  'empty-json': 'warning',
30
31
  'forbidden-value': 'warning',
31
32
  'forbidden-key': 'warning',
@@ -1 +1 @@
1
- {"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAIlB,aAAa;AAEb;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2C;IAC/D,oBAAoB,EAAE,OAAO;IAC7B,iBAAiB,EAAE,OAAO;IAC1B,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,OAAO;IAC5B,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,SAAS;IAC5B,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,SAAS;IAC9B,cAAc,EAAE,MAAM;IACtB,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,MAAM;IAC3B,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,OAAO;IAC1B,mBAAmB,EAAE,SAAS;CACjC,CAAC"}
1
+ {"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAIlB,aAAa;AAEb;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2C;IAC/D,oBAAoB,EAAE,OAAO;IAC7B,iBAAiB,EAAE,OAAO;IAC1B,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,OAAO;IAC5B,0BAA0B,EAAE,SAAS;IACrC,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,SAAS;IAC5B,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,SAAS;IAC9B,cAAc,EAAE,MAAM;IACtB,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,MAAM;IAC3B,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,OAAO;IAC1B,mBAAmB,EAAE,SAAS;CACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"console.reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/console.reporter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAgB,IAAI,aAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAMxC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUxC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,cAAc;CAczB"}
1
+ {"version":3,"file":"console.reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/console.reporter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAgB,IAAI,aAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAMxC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUxC,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,cAAc;CAczB"}