@breadstone-infrastructure/style-dictionary 0.0.173 → 0.0.175

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 (146) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/formats/tailwind/DesignTokenType.d.ts +10 -0
  3. package/formats/tailwind/DesignTokenType.d.ts.map +1 -0
  4. package/formats/tailwind/DesignTokenType.js +3 -0
  5. package/formats/tailwind/DesignTokenType.js.map +1 -0
  6. package/formats/tailwind/TailwindPropertyMapping.d.ts +66 -0
  7. package/formats/tailwind/TailwindPropertyMapping.d.ts.map +1 -0
  8. package/formats/tailwind/TailwindPropertyMapping.js +188 -0
  9. package/formats/tailwind/TailwindPropertyMapping.js.map +1 -0
  10. package/formats/tailwind/buildTailwindConfig.d.ts +23 -0
  11. package/formats/tailwind/buildTailwindConfig.d.ts.map +1 -0
  12. package/formats/tailwind/buildTailwindConfig.js +191 -0
  13. package/formats/tailwind/buildTailwindConfig.js.map +1 -0
  14. package/formats/tailwind/index.d.ts +2 -0
  15. package/formats/tailwind/index.d.ts.map +1 -0
  16. package/formats/tailwind/index.js +18 -0
  17. package/formats/tailwind/index.js.map +1 -0
  18. package/formats/tailwind/tailwindFormat.d.ts +17 -0
  19. package/formats/tailwind/tailwindFormat.d.ts.map +1 -0
  20. package/formats/tailwind/tailwindFormat.js +58 -0
  21. package/formats/tailwind/tailwindFormat.js.map +1 -0
  22. package/index.d.ts +9 -0
  23. package/index.d.ts.map +1 -0
  24. package/index.js +32 -0
  25. package/index.js.map +1 -0
  26. package/package.json +8 -7
  27. package/{Preprocessors/Shadow.d.ts → preprocessors/expandShadowPreprocessor.d.ts} +1 -1
  28. package/preprocessors/expandShadowPreprocessor.d.ts.map +1 -0
  29. package/{Preprocessors/Shadow.js → preprocessors/expandShadowPreprocessor.js} +1 -12
  30. package/preprocessors/expandShadowPreprocessor.js.map +1 -0
  31. package/preprocessors/lint/engine/preprocessor.d.ts +12 -0
  32. package/preprocessors/lint/engine/preprocessor.d.ts.map +1 -0
  33. package/preprocessors/lint/engine/preprocessor.js +44 -0
  34. package/preprocessors/lint/engine/preprocessor.js.map +1 -0
  35. package/preprocessors/lint/engine/types.d.ts +21 -0
  36. package/preprocessors/lint/engine/types.d.ts.map +1 -0
  37. package/preprocessors/lint/engine/types.js +4 -0
  38. package/preprocessors/lint/engine/types.js.map +1 -0
  39. package/preprocessors/lint/engine/walker.d.ts +13 -0
  40. package/preprocessors/lint/engine/walker.d.ts.map +1 -0
  41. package/preprocessors/lint/engine/walker.js +30 -0
  42. package/preprocessors/lint/engine/walker.js.map +1 -0
  43. package/preprocessors/lint/index.d.ts +4 -0
  44. package/preprocessors/lint/index.d.ts.map +1 -0
  45. package/preprocessors/lint/index.js +19 -0
  46. package/preprocessors/lint/index.js.map +1 -0
  47. package/preprocessors/lint/rules/forbiddenTokenName.d.ts +25 -0
  48. package/preprocessors/lint/rules/forbiddenTokenName.d.ts.map +1 -0
  49. package/preprocessors/lint/rules/forbiddenTokenName.js +40 -0
  50. package/preprocessors/lint/rules/forbiddenTokenName.js.map +1 -0
  51. package/preprocessors/lint/rules/forbiddenValue.d.ts +31 -0
  52. package/preprocessors/lint/rules/forbiddenValue.d.ts.map +1 -0
  53. package/preprocessors/lint/rules/forbiddenValue.js +48 -0
  54. package/preprocessors/lint/rules/forbiddenValue.js.map +1 -0
  55. package/preprocessors/lint/rules/index.d.ts +9 -0
  56. package/preprocessors/lint/rules/index.d.ts.map +1 -0
  57. package/preprocessors/lint/rules/index.js +25 -0
  58. package/preprocessors/lint/rules/index.js.map +1 -0
  59. package/preprocessors/lint/rules/namingConvention.d.ts +26 -0
  60. package/preprocessors/lint/rules/namingConvention.d.ts.map +1 -0
  61. package/preprocessors/lint/rules/namingConvention.js +35 -0
  62. package/preprocessors/lint/rules/namingConvention.js.map +1 -0
  63. package/preprocessors/lint/rules/noDollarProps.d.ts +6 -0
  64. package/preprocessors/lint/rules/noDollarProps.d.ts.map +1 -0
  65. package/preprocessors/lint/rules/noDollarProps.js +27 -0
  66. package/preprocessors/lint/rules/noDollarProps.js.map +1 -0
  67. package/preprocessors/lint/rules/requireType.d.ts +6 -0
  68. package/preprocessors/lint/rules/requireType.d.ts.map +1 -0
  69. package/preprocessors/lint/rules/requireType.js +21 -0
  70. package/preprocessors/lint/rules/requireType.js.map +1 -0
  71. package/preprocessors/lint/rules/requireValue.d.ts +6 -0
  72. package/preprocessors/lint/rules/requireValue.d.ts.map +1 -0
  73. package/preprocessors/lint/rules/requireValue.js +21 -0
  74. package/preprocessors/lint/rules/requireValue.js.map +1 -0
  75. package/preprocessors/lint/rules/validType.d.ts +25 -0
  76. package/preprocessors/lint/rules/validType.d.ts.map +1 -0
  77. package/preprocessors/lint/rules/validType.js +41 -0
  78. package/preprocessors/lint/rules/validType.js.map +1 -0
  79. package/preprocessors/lint/rules/valueTypeByTokenType.d.ts +40 -0
  80. package/preprocessors/lint/rules/valueTypeByTokenType.d.ts.map +1 -0
  81. package/preprocessors/lint/rules/valueTypeByTokenType.js +80 -0
  82. package/preprocessors/lint/rules/valueTypeByTokenType.js.map +1 -0
  83. package/transforms/gradientCssTransform.d.ts +3 -0
  84. package/transforms/gradientCssTransform.d.ts.map +1 -0
  85. package/{Transforms/Gradient.js → transforms/gradientCssTransform.js} +6 -6
  86. package/transforms/gradientCssTransform.js.map +1 -0
  87. package/transforms/letterSpacingCalcCssTransform.d.ts +3 -0
  88. package/transforms/letterSpacingCalcCssTransform.d.ts.map +1 -0
  89. package/{Transforms/LetterSpacing.js → transforms/letterSpacingCalcCssTransform.js} +4 -4
  90. package/transforms/letterSpacingCalcCssTransform.js.map +1 -0
  91. package/transforms/listScssTransform.d.ts +3 -0
  92. package/transforms/listScssTransform.d.ts.map +1 -0
  93. package/transforms/listScssTransform.js +14 -0
  94. package/transforms/listScssTransform.js.map +1 -0
  95. package/{Transforms/QuoteString.d.ts → transforms/quoteStringTransform.d.ts} +1 -1
  96. package/transforms/quoteStringTransform.d.ts.map +1 -0
  97. package/{Transforms/QuoteString.js → transforms/quoteStringTransform.js} +4 -4
  98. package/transforms/quoteStringTransform.js.map +1 -0
  99. package/{Transforms/Shadow.d.ts → transforms/shadowCssTransform.d.ts} +1 -1
  100. package/transforms/shadowCssTransform.d.ts.map +1 -0
  101. package/{Transforms/Shadow.js → transforms/shadowCssTransform.js} +4 -4
  102. package/transforms/shadowCssTransform.js.map +1 -0
  103. package/{Utilities/Extract.d.ts → utilities/extractTokensByType.d.ts} +1 -1
  104. package/utilities/extractTokensByType.d.ts.map +1 -0
  105. package/{Utilities/Extract.js → utilities/extractTokensByType.js} +2 -2
  106. package/utilities/extractTokensByType.js.map +1 -0
  107. package/utilities/getType.d.ts +9 -0
  108. package/utilities/getType.d.ts.map +1 -0
  109. package/utilities/getType.js +14 -0
  110. package/utilities/getType.js.map +1 -0
  111. package/{Utilities/GetValue.d.ts → utilities/getValue.d.ts} +4 -4
  112. package/utilities/getValue.d.ts.map +1 -0
  113. package/{Utilities/GetValue.js → utilities/getValue.js} +4 -4
  114. package/utilities/getValue.js.map +1 -0
  115. package/Index.d.ts +0 -9
  116. package/Index.d.ts.map +0 -1
  117. package/Index.js +0 -20
  118. package/Index.js.map +0 -1
  119. package/Preprocessors/Lint.d.ts +0 -3
  120. package/Preprocessors/Lint.d.ts.map +0 -1
  121. package/Preprocessors/Lint.js +0 -65
  122. package/Preprocessors/Lint.js.map +0 -1
  123. package/Preprocessors/Shadow.d.ts.map +0 -1
  124. package/Preprocessors/Shadow.js.map +0 -1
  125. package/Transforms/Gradient.d.ts +0 -3
  126. package/Transforms/Gradient.d.ts.map +0 -1
  127. package/Transforms/Gradient.js.map +0 -1
  128. package/Transforms/LetterSpacing.d.ts +0 -3
  129. package/Transforms/LetterSpacing.d.ts.map +0 -1
  130. package/Transforms/LetterSpacing.js.map +0 -1
  131. package/Transforms/List.d.ts +0 -3
  132. package/Transforms/List.d.ts.map +0 -1
  133. package/Transforms/List.js +0 -14
  134. package/Transforms/List.js.map +0 -1
  135. package/Transforms/NameSnakeUpperCase.d.ts +0 -6
  136. package/Transforms/NameSnakeUpperCase.d.ts.map +0 -1
  137. package/Transforms/NameSnakeUpperCase.js +0 -20
  138. package/Transforms/NameSnakeUpperCase.js.map +0 -1
  139. package/Transforms/QuoteString.d.ts.map +0 -1
  140. package/Transforms/QuoteString.js.map +0 -1
  141. package/Transforms/Shadow.d.ts.map +0 -1
  142. package/Transforms/Shadow.js.map +0 -1
  143. package/Utilities/Extract.d.ts.map +0 -1
  144. package/Utilities/Extract.js.map +0 -1
  145. package/Utilities/GetValue.d.ts.map +0 -1
  146. package/Utilities/GetValue.js.map +0 -1
package/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export { letterSpacingCalcCssTransform } from './transforms/letterSpacingCalcCssTransform';
2
+ export { shadowCssTransform } from './transforms/shadowCssTransform';
3
+ export { gradientCssTransform } from './transforms/gradientCssTransform';
4
+ export { quoteStringTransform } from './transforms/quoteStringTransform';
5
+ export { listScssTransform } from './transforms/listScssTransform';
6
+ export { expandShadowPreprocessor } from './preprocessors/expandShadowPreprocessor';
7
+ export * from './preprocessors/lint';
8
+ export * from './formats/tailwind';
9
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
package/index.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.expandShadowPreprocessor = exports.listScssTransform = exports.quoteStringTransform = exports.gradientCssTransform = exports.shadowCssTransform = exports.letterSpacingCalcCssTransform = void 0;
18
+ var letterSpacingCalcCssTransform_1 = require("./transforms/letterSpacingCalcCssTransform");
19
+ Object.defineProperty(exports, "letterSpacingCalcCssTransform", { enumerable: true, get: function () { return letterSpacingCalcCssTransform_1.letterSpacingCalcCssTransform; } });
20
+ var shadowCssTransform_1 = require("./transforms/shadowCssTransform");
21
+ Object.defineProperty(exports, "shadowCssTransform", { enumerable: true, get: function () { return shadowCssTransform_1.shadowCssTransform; } });
22
+ var gradientCssTransform_1 = require("./transforms/gradientCssTransform");
23
+ Object.defineProperty(exports, "gradientCssTransform", { enumerable: true, get: function () { return gradientCssTransform_1.gradientCssTransform; } });
24
+ var quoteStringTransform_1 = require("./transforms/quoteStringTransform");
25
+ Object.defineProperty(exports, "quoteStringTransform", { enumerable: true, get: function () { return quoteStringTransform_1.quoteStringTransform; } });
26
+ var listScssTransform_1 = require("./transforms/listScssTransform");
27
+ Object.defineProperty(exports, "listScssTransform", { enumerable: true, get: function () { return listScssTransform_1.listScssTransform; } });
28
+ var expandShadowPreprocessor_1 = require("./preprocessors/expandShadowPreprocessor");
29
+ Object.defineProperty(exports, "expandShadowPreprocessor", { enumerable: true, get: function () { return expandShadowPreprocessor_1.expandShadowPreprocessor; } });
30
+ __exportStar(require("./preprocessors/lint"), exports);
31
+ __exportStar(require("./formats/tailwind"), exports);
32
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4FAA2F;AAAlF,8IAAA,6BAA6B,OAAA;AACtC,sEAAqE;AAA5D,wHAAA,kBAAkB,OAAA;AAC3B,0EAAyE;AAAhE,4HAAA,oBAAoB,OAAA;AAC7B,0EAAyE;AAAhE,4HAAA,oBAAoB,OAAA;AAC7B,oEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,uDAAqC;AACrC,qDAAmC"}
package/package.json CHANGED
@@ -1,19 +1,20 @@
1
1
  {
2
2
  "name": "@breadstone-infrastructure/style-dictionary",
3
3
  "description": "Common style-dictionary classes and functions",
4
- "version": "0.0.173",
4
+ "version": "0.0.175",
5
5
  "license": "MIT",
6
6
  "author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
7
7
  "repository": {
8
8
  "url": "git+ssh://git@github.com/RueDeRennes/mosaik.git"
9
9
  },
10
10
  "type": "commonjs",
11
- "main": "./Index.js",
12
- "commonjs": "./Index.js",
13
- "module": "./Index.js",
14
- "types": "./Index.d.ts",
11
+ "main": "./index.js",
12
+ "commonjs": "./index.js",
13
+ "module": "./index.js",
14
+ "types": "./index.d.ts",
15
15
  "dependencies": {
16
- "@breadstone-infrastructure/utilities": "^0.0.173",
17
- "style-dictionary": "^5.1.1"
16
+ "@breadstone-infrastructure/utilities": "^0.0.175",
17
+ "style-dictionary": "^4.4.0",
18
+ "tailwindcss": "^3.4.18"
18
19
  }
19
20
  }
@@ -1,3 +1,3 @@
1
1
  import type { Preprocessor } from 'style-dictionary/types';
2
2
  export declare const expandShadowPreprocessor: Preprocessor;
3
- //# sourceMappingURL=Shadow.d.ts.map
3
+ //# sourceMappingURL=expandShadowPreprocessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expandShadowPreprocessor.d.ts","sourceRoot":"","sources":["../../src/preprocessors/expandShadowPreprocessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsB,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AA8GvG,eAAO,MAAM,wBAAwB,EAAE,YAkCtC,CAAC"}
@@ -33,9 +33,6 @@ function isTokenShadow(input) {
33
33
  const isValid = (v) => typeof v === 'object' && v !== null && SHADOW_PARTS.every((part) => part in v);
34
34
  return Array.isArray(value) ? value.every(isValid) : isValid(value);
35
35
  }
36
- function buildReference(path, part, index) {
37
- return `{${[...path, part, String(index), 'value'].join('.')}}`;
38
- }
39
36
  function buildTokenStructure(path, input) {
40
37
  const layers = Array.isArray(input) ? input : [input];
41
38
  const result = {};
@@ -46,10 +43,6 @@ function buildTokenStructure(path, input) {
46
43
  }
47
44
  result[part] = partValues;
48
45
  }
49
- // result._ = {
50
- // value: layers.map((_, i) => SHADOW_PARTS.map((p) => buildShadowReference(path, p, i)).join(' ')).join(', '),
51
- // type: 'shadow'
52
- // };
53
46
  return result;
54
47
  }
55
48
  function assignDeep(target, path, value) {
@@ -118,10 +111,6 @@ exports.expandShadowPreprocessor = {
118
111
  }
119
112
  visit(structuredClone(dictionary), []);
120
113
  return mergeTokens(structuredClone(dictionary), result);
121
- // return {
122
- // ...dictionary,
123
- // ...result
124
- // };
125
114
  }
126
115
  };
127
- //# sourceMappingURL=Shadow.js.map
116
+ //# sourceMappingURL=expandShadowPreprocessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expandShadowPreprocessor.js","sourceRoot":"","sources":["../../src/preprocessors/expandShadowPreprocessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Preprocessor } from 'style-dictionary/types';
2
+ import type { LintRule } from './types.js';
3
+ /**
4
+ * Creates a lint preprocessor that evaluates all given lint rules.
5
+ *
6
+ * Any rule with severity "error" will terminate the build.
7
+ * Rules with severity "warn" will only be logged.
8
+ */
9
+ export declare function createLintPreprocessor(options: {
10
+ rules: ReadonlyArray<LintRule>;
11
+ }): Preprocessor;
12
+ //# sourceMappingURL=preprocessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preprocessor.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/preprocessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsB,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AACvG,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE;IACL,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAClC,GACF,YAAY,CAwCd"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createLintPreprocessor = createLintPreprocessor;
5
+ const walker_js_1 = require("./walker.js");
6
+ const utilities_1 = require("@breadstone-infrastructure/utilities");
7
+ // #endregion
8
+ /**
9
+ * Creates a lint preprocessor that evaluates all given lint rules.
10
+ *
11
+ * Any rule with severity "error" will terminate the build.
12
+ * Rules with severity "warn" will only be logged.
13
+ */
14
+ function createLintPreprocessor(options) {
15
+ const { rules } = options;
16
+ return {
17
+ name: 'lint/tokens',
18
+ preprocessor: (dictionary, _config) => {
19
+ console.log('🔍 Running token linting...');
20
+ const issues = [];
21
+ (0, walker_js_1.walkTokens)(dictionary, [], rules, issues);
22
+ if (issues.length === 0) {
23
+ console.log(`${(0, utilities_1.symbol)('success')} Token linting passed with no issues.`);
24
+ return dictionary;
25
+ }
26
+ // Print warnings
27
+ const warnings = issues.filter((i) => i.severity === 'warn');
28
+ for (const warn of warnings) {
29
+ console.warn(`${(0, utilities_1.symbol)('warning')} [WARN] ${warn.path.join('.')}: ${warn.message}`);
30
+ }
31
+ // Print errors
32
+ const errors = issues.filter((i) => i.severity === 'error');
33
+ for (const err of errors) {
34
+ console.error(`${(0, utilities_1.symbol)('error')} [ERROR] ${err.path.join('.')}: ${err.message}`);
35
+ }
36
+ if (errors.length > 0) {
37
+ throw new Error(`Token linting failed with ${errors.length} error(s).`);
38
+ }
39
+ console.log(`${(0, utilities_1.symbol)('warning')} Linting completed with warnings only.`);
40
+ return dictionary;
41
+ }
42
+ };
43
+ }
44
+ //# sourceMappingURL=preprocessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/preprocessor.ts"],"names":[],"mappings":";AAAA,kBAAkB;;AAelB,wDA4CC;AAvDD,2CAAyC;AACzC,oEAA8D;AAE9D,aAAa;AAEb;;;;;GAKG;AACH,SAAgB,sBAAsB,CAClC,OAEC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1B,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CACV,UAA8B,EAC9B,OAAgC,EACd,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAqB,EAAE,CAAC;YAEpC,IAAA,sBAAU,EAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAE1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAA,kBAAM,EAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;gBACzE,OAAO,UAAU,CAAC;YACtB,CAAC;YAED,iBAAiB;YACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;YAC7D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAA,kBAAM,EAAC,SAAS,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,eAAe;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;YAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAA,kBAAM,EAAC,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,GAAG,IAAA,kBAAM,EAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;QACtB,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { DesignToken } from 'style-dictionary/types';
2
+ /**
3
+ * Severity levels supported by the lint engine.
4
+ * - "error": Build stops.
5
+ * - "warn": Logged, but the build continues.
6
+ */
7
+ export type LintSeverity = 'error' | 'warn';
8
+ /**
9
+ * A single lint issue identified by a rule.
10
+ */
11
+ export interface LintIssue {
12
+ readonly message: string;
13
+ readonly severity: LintSeverity;
14
+ readonly path: Array<string>;
15
+ }
16
+ /**
17
+ * Function signature of a lint rule.
18
+ * A rule evaluates a token and returns zero or more lint issues.
19
+ */
20
+ export type LintRule = (token: DesignToken, path: Array<string>) => Array<LintIssue>;
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CACnB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAClB,KAAK,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/types.ts"],"names":[],"mappings":";AAAA,kBAAkB"}
@@ -0,0 +1,13 @@
1
+ import { DesignToken, PreprocessedTokens } from 'style-dictionary/types/DesignToken.js';
2
+ import type { LintRule, LintIssue } from './types.js';
3
+ /**
4
+ * Recursively walks through a Style Dictionary token tree, executing
5
+ * every rule on each discovered leaf token.
6
+ *
7
+ * @param tokens - any nested token structure
8
+ * @param path - accumulated key path
9
+ * @param rules - array of lint rules to execute
10
+ * @param collector - array to collect lint issues
11
+ */
12
+ export declare function walkTokens(tokens: PreprocessedTokens | DesignToken, path: Array<string>, rules: ReadonlyArray<LintRule>, collector: Array<LintIssue>): void;
13
+ //# sourceMappingURL=walker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/walker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAItD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE,kBAAkB,GAAG,WAAW,EACxC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAC5B,IAAI,CAaN"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.walkTokens = walkTokens;
5
+ // #endregion
6
+ /**
7
+ * Recursively walks through a Style Dictionary token tree, executing
8
+ * every rule on each discovered leaf token.
9
+ *
10
+ * @param tokens - any nested token structure
11
+ * @param path - accumulated key path
12
+ * @param rules - array of lint rules to execute
13
+ * @param collector - array to collect lint issues
14
+ */
15
+ function walkTokens(tokens, path, rules, collector) {
16
+ if (typeof tokens === 'object' && tokens !== null) {
17
+ const token = tokens;
18
+ for (const rule of rules) {
19
+ const issues = rule(token, path);
20
+ if (issues.length > 0) {
21
+ collector.push(...issues);
22
+ }
23
+ }
24
+ return;
25
+ }
26
+ for (const [key, value] of Object.entries(tokens)) {
27
+ walkTokens(value, [...path, key], rules, collector);
28
+ }
29
+ }
30
+ //# sourceMappingURL=walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/engine/walker.ts"],"names":[],"mappings":";AAAA,kBAAkB;;AAgBlB,gCAkBC;AA7BD,aAAa;AAEb;;;;;;;;GAQG;AACH,SAAgB,UAAU,CACtB,MAAwC,EACxC,IAAmB,EACnB,KAA8B,EAC9B,SAA2B;IAE3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAiC,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;YAAC,CAAC;QACzD,CAAC;QACD,OAAO;IACX,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAmC,MAAM,CAAC,EAAE,CAAC;QAClF,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type * from './engine/types.js';
2
+ export * from './engine/preprocessor.js';
3
+ export * from './rules';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preprocessors/lint/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,mBAAmB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./engine/preprocessor.js"), exports);
18
+ __exportStar(require("./rules"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preprocessors/lint/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2DAAyC;AACzC,0CAAwB"}
@@ -0,0 +1,25 @@
1
+ import type { LintRule, LintSeverity } from '../engine/types.js';
2
+ /**
3
+ * Options for the forbidden token name rule.
4
+ */
5
+ export interface ForbiddenTokenNameRuleOptions {
6
+ /**
7
+ * List of forbidden exact token names (matches the last segment of the path).
8
+ */
9
+ readonly names?: ReadonlyArray<string>;
10
+ /**
11
+ * Optional array of regular expressions tested against the last path segment.
12
+ */
13
+ readonly patterns?: ReadonlyArray<RegExp>;
14
+ /**
15
+ * Severity used when a forbidden name is detected.
16
+ * Defaults to "error".
17
+ */
18
+ readonly severity?: LintSeverity;
19
+ }
20
+ /**
21
+ * Rule: the last segment of the token path must not match any forbidden name
22
+ * or pattern.
23
+ */
24
+ export declare function ruleForbiddenTokenName(options: ForbiddenTokenNameRuleOptions): LintRule;
25
+ //# sourceMappingURL=forbiddenTokenName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbiddenTokenName.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/forbiddenTokenName.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIjE;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAE1C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,6BAA6B,GACvC,QAAQ,CAwCV"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ruleForbiddenTokenName = ruleForbiddenTokenName;
5
+ /**
6
+ * Rule: the last segment of the token path must not match any forbidden name
7
+ * or pattern.
8
+ */
9
+ function ruleForbiddenTokenName(options) {
10
+ const { names = [], patterns = [], severity = 'error' } = options;
11
+ const exactSet = new Set(names);
12
+ return (_token, path) => {
13
+ if (path.length === 0) {
14
+ return [];
15
+ }
16
+ const name = path[path.length - 1];
17
+ if (exactSet.has(name)) {
18
+ return [
19
+ {
20
+ message: `Token name "${name}" is forbidden.`,
21
+ severity,
22
+ path
23
+ }
24
+ ];
25
+ }
26
+ for (const pattern of patterns) {
27
+ if (pattern.test(name)) {
28
+ return [
29
+ {
30
+ message: `Token name "${name}" matches forbidden pattern ${pattern.toString()}.`,
31
+ severity,
32
+ path
33
+ }
34
+ ];
35
+ }
36
+ }
37
+ return [];
38
+ };
39
+ }
40
+ //# sourceMappingURL=forbiddenTokenName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbiddenTokenName.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/forbiddenTokenName.ts"],"names":[],"mappings":";AAAA,kBAAkB;;AAgClB,wDA0CC;AA9CD;;;GAGG;AACH,SAAgB,sBAAsB,CAClC,OAAsC;IAEtC,MAAM,EACF,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,OAAO,EACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEnC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO;gBACH;oBACI,OAAO,EAAE,eAAe,IAAI,iBAAiB;oBAC7C,QAAQ;oBACR,IAAI;iBACP;aACJ,CAAC;QACN,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO;oBACH;wBACI,OAAO,EAAE,eAAe,IAAI,+BAA+B,OAAO,CAAC,QAAQ,EAAE,GAAG;wBAChF,QAAQ;wBACR,IAAI;qBACP;iBACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { LintRule, LintSeverity } from '../engine/types.js';
2
+ /**
3
+ * Options for the forbidden value rule.
4
+ */
5
+ export interface ForbiddenValueRuleOptions {
6
+ /**
7
+ * List of forbidden raw values. Comparison is done on (optionally trimmed)
8
+ * string values.
9
+ */
10
+ readonly values: ReadonlyArray<string>;
11
+ /**
12
+ * Severity used when a forbidden value is detected.
13
+ * Defaults to "error".
14
+ */
15
+ readonly severity?: LintSeverity;
16
+ /**
17
+ * If true, value strings are trimmed before comparison.
18
+ * Defaults to true.
19
+ */
20
+ readonly trim?: boolean;
21
+ /**
22
+ * If true, comparison is done case-insensitive.
23
+ * Defaults to false.
24
+ */
25
+ readonly ignoreCase?: boolean;
26
+ }
27
+ /**
28
+ * Rule: token.value must not match any of the forbidden values.
29
+ */
30
+ export declare function ruleForbiddenValue(options: ForbiddenValueRuleOptions): LintRule;
31
+ //# sourceMappingURL=forbiddenValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbiddenValue.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/forbiddenValue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIjE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAEtC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,yBAAyB,GACnC,QAAQ,CAwCV"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ruleForbiddenValue = ruleForbiddenValue;
5
+ /**
6
+ * Rule: token.value must not match any of the forbidden values.
7
+ */
8
+ function ruleForbiddenValue(options) {
9
+ const { values, severity = 'error', trim = true, ignoreCase = false } = options;
10
+ const normalizedForbidden = values.map((v) => normalize(v, {
11
+ trim,
12
+ ignoreCase
13
+ }));
14
+ return (token, path) => {
15
+ if (!('value' in token)) {
16
+ return [];
17
+ }
18
+ const raw = token.value;
19
+ if (typeof raw !== 'string') {
20
+ return [];
21
+ }
22
+ const normalizedValue = normalize(raw, {
23
+ trim,
24
+ ignoreCase
25
+ });
26
+ if (normalizedForbidden.includes(normalizedValue)) {
27
+ return [
28
+ {
29
+ message: `Token uses a forbidden value "${raw}".`,
30
+ severity,
31
+ path
32
+ }
33
+ ];
34
+ }
35
+ return [];
36
+ };
37
+ }
38
+ function normalize(value, opts) {
39
+ let v = value;
40
+ if (opts.trim) {
41
+ v = v.trim();
42
+ }
43
+ if (opts.ignoreCase) {
44
+ v = v.toLowerCase();
45
+ }
46
+ return v;
47
+ }
48
+ //# sourceMappingURL=forbiddenValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbiddenValue.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/forbiddenValue.ts"],"names":[],"mappings":";AAAA,kBAAkB;;AAuClB,gDA0CC;AA7CD;;GAEG;AACH,SAAgB,kBAAkB,CAC9B,OAAkC;IAElC,MAAM,EACF,MAAM,EACN,QAAQ,GAAG,OAAO,EAClB,IAAI,GAAG,IAAI,EACX,UAAU,GAAG,KAAK,EACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;QACvD,IAAI;QACJ,UAAU;KACb,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,EAAE;YACnC,IAAI;YACJ,UAAU;SACb,CAAC,CAAC;QAEH,IAAI,mBAAmB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAChD,OAAO;gBACH;oBACI,OAAO,EAAE,iCAAiC,GAAG,IAAI;oBACjD,QAAQ;oBACR,IAAI;iBACP;aACJ,CAAC;QACN,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;AACN,CAAC;AAOD,SAAS,SAAS,CAAC,KAAa,EAAE,IAAsB;IACpD,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './forbiddenTokenName.js';
2
+ export * from './forbiddenValue.js';
3
+ export * from './namingConvention.js';
4
+ export * from './noDollarProps.js';
5
+ export * from './requireType.js';
6
+ export * from './requireValue.js';
7
+ export * from './validType.js';
8
+ export * from './valueTypeByTokenType.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./forbiddenTokenName.js"), exports);
18
+ __exportStar(require("./forbiddenValue.js"), exports);
19
+ __exportStar(require("./namingConvention.js"), exports);
20
+ __exportStar(require("./noDollarProps.js"), exports);
21
+ __exportStar(require("./requireType.js"), exports);
22
+ __exportStar(require("./requireValue.js"), exports);
23
+ __exportStar(require("./validType.js"), exports);
24
+ __exportStar(require("./valueTypeByTokenType.js"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,sDAAoC;AACpC,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC;AACjC,oDAAkC;AAClC,iDAA+B;AAC/B,4DAA0C"}
@@ -0,0 +1,26 @@
1
+ import type { LintRule, LintSeverity } from '../engine/types';
2
+ /**
3
+ * Options for the naming convention rule.
4
+ */
5
+ export interface NamingConventionRuleOptions {
6
+ /**
7
+ * Pattern that each individual segment must match (e.g. /^[a-z0-9]+$/).
8
+ * If omitted, segment-level checks are skipped.
9
+ */
10
+ readonly segmentPattern?: RegExp;
11
+ /**
12
+ * Pattern that the full path (joined by ".") must match.
13
+ * If omitted, full-path checks are skipped.
14
+ */
15
+ readonly fullPathPattern?: RegExp;
16
+ /**
17
+ * Severity used when a naming convention violation is detected.
18
+ * Defaults to "warn".
19
+ */
20
+ readonly severity?: LintSeverity;
21
+ }
22
+ /**
23
+ * Rule: enforces naming conventions on token path segments and/or full path.
24
+ */
25
+ export declare function ruleNamingConvention(options: NamingConventionRuleOptions): LintRule;
26
+ //# sourceMappingURL=namingConvention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namingConvention.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/namingConvention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAExC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,2BAA2B,GACrC,QAAQ,CAmCV"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ruleNamingConvention = ruleNamingConvention;
4
+ /**
5
+ * Rule: enforces naming conventions on token path segments and/or full path.
6
+ */
7
+ function ruleNamingConvention(options) {
8
+ const { segmentPattern, fullPathPattern, severity = 'warn' } = options;
9
+ return (_token, path) => {
10
+ const issues = [];
11
+ if (segmentPattern) {
12
+ for (const segment of path) {
13
+ if (!segmentPattern.test(segment)) {
14
+ issues.push({
15
+ message: `Path segment "${segment}" does not match naming pattern ${segmentPattern.toString()}.`,
16
+ severity,
17
+ path
18
+ });
19
+ }
20
+ }
21
+ }
22
+ if (fullPathPattern) {
23
+ const full = path.join('.');
24
+ if (!fullPathPattern.test(full)) {
25
+ issues.push({
26
+ message: `Token path "${full}" does not match naming pattern ${fullPathPattern.toString()}.`,
27
+ severity,
28
+ path
29
+ });
30
+ }
31
+ }
32
+ return issues;
33
+ };
34
+ }
35
+ //# sourceMappingURL=namingConvention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namingConvention.js","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/namingConvention.ts"],"names":[],"mappings":";;AA6BA,oDAqCC;AAxCD;;GAEG;AACH,SAAgB,oBAAoB,CAChC,OAAoC;IAEpC,MAAM,EACF,cAAc,EACd,eAAe,EACf,QAAQ,GAAG,MAAM,EACpB,GAAG,OAAO,CAAC;IAEZ,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC;wBACR,OAAO,EAAE,iBAAiB,OAAO,mCAAmC,cAAc,CAAC,QAAQ,EAAE,GAAG;wBAChG,QAAQ;wBACR,IAAI;qBACP,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACR,OAAO,EAAE,eAAe,IAAI,mCAAmC,eAAe,CAAC,QAAQ,EAAE,GAAG;oBAC5F,QAAQ;oBACR,IAAI;iBACP,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LintRule, LintSeverity } from '../engine/types.js';
2
+ /**
3
+ * Rule: "value" and "type" properties are forbidden.
4
+ */
5
+ export declare function ruleDollarProps(severity?: LintSeverity): LintRule;
6
+ //# sourceMappingURL=noDollarProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noDollarProps.d.ts","sourceRoot":"","sources":["../../../../src/preprocessors/lint/rules/noDollarProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;GAEG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,GAAE,YAAqB,GAChC,QAAQ,CAqBV"}