@breadstone-infrastructure/style-dictionary 0.0.174 → 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.
- package/CHANGELOG.md +14 -0
- package/formats/tailwind/DesignTokenType.d.ts +10 -0
- package/formats/tailwind/DesignTokenType.d.ts.map +1 -0
- package/formats/tailwind/DesignTokenType.js +3 -0
- package/formats/tailwind/DesignTokenType.js.map +1 -0
- package/formats/tailwind/TailwindPropertyMapping.d.ts +66 -0
- package/formats/tailwind/TailwindPropertyMapping.d.ts.map +1 -0
- package/formats/tailwind/TailwindPropertyMapping.js +188 -0
- package/formats/tailwind/TailwindPropertyMapping.js.map +1 -0
- package/formats/tailwind/buildTailwindConfig.d.ts +23 -0
- package/formats/tailwind/buildTailwindConfig.d.ts.map +1 -0
- package/formats/tailwind/buildTailwindConfig.js +191 -0
- package/formats/tailwind/buildTailwindConfig.js.map +1 -0
- package/formats/tailwind/index.d.ts +2 -0
- package/formats/tailwind/index.d.ts.map +1 -0
- package/formats/tailwind/index.js +18 -0
- package/formats/tailwind/index.js.map +1 -0
- package/formats/tailwind/tailwindFormat.d.ts +17 -0
- package/formats/tailwind/tailwindFormat.d.ts.map +1 -0
- package/formats/tailwind/tailwindFormat.js +58 -0
- package/formats/tailwind/tailwindFormat.js.map +1 -0
- package/index.d.ts +8 -9
- package/index.d.ts.map +1 -1
- package/index.js +29 -19
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/preprocessors/{Shadow.d.ts → expandShadowPreprocessor.d.ts} +1 -1
- package/preprocessors/expandShadowPreprocessor.d.ts.map +1 -0
- package/preprocessors/{Shadow.js → expandShadowPreprocessor.js} +1 -12
- package/preprocessors/expandShadowPreprocessor.js.map +1 -0
- package/preprocessors/lint/engine/preprocessor.d.ts +12 -0
- package/preprocessors/lint/engine/preprocessor.d.ts.map +1 -0
- package/preprocessors/lint/engine/preprocessor.js +44 -0
- package/preprocessors/lint/engine/preprocessor.js.map +1 -0
- package/preprocessors/lint/engine/types.d.ts +21 -0
- package/preprocessors/lint/engine/types.d.ts.map +1 -0
- package/preprocessors/lint/engine/types.js +4 -0
- package/preprocessors/lint/engine/types.js.map +1 -0
- package/preprocessors/lint/engine/walker.d.ts +13 -0
- package/preprocessors/lint/engine/walker.d.ts.map +1 -0
- package/preprocessors/lint/engine/walker.js +30 -0
- package/preprocessors/lint/engine/walker.js.map +1 -0
- package/preprocessors/lint/index.d.ts +4 -0
- package/preprocessors/lint/index.d.ts.map +1 -0
- package/preprocessors/lint/index.js +19 -0
- package/preprocessors/lint/index.js.map +1 -0
- package/preprocessors/lint/rules/forbiddenTokenName.d.ts +25 -0
- package/preprocessors/lint/rules/forbiddenTokenName.d.ts.map +1 -0
- package/preprocessors/lint/rules/forbiddenTokenName.js +40 -0
- package/preprocessors/lint/rules/forbiddenTokenName.js.map +1 -0
- package/preprocessors/lint/rules/forbiddenValue.d.ts +31 -0
- package/preprocessors/lint/rules/forbiddenValue.d.ts.map +1 -0
- package/preprocessors/lint/rules/forbiddenValue.js +48 -0
- package/preprocessors/lint/rules/forbiddenValue.js.map +1 -0
- package/preprocessors/lint/rules/index.d.ts +9 -0
- package/preprocessors/lint/rules/index.d.ts.map +1 -0
- package/preprocessors/lint/rules/index.js +25 -0
- package/preprocessors/lint/rules/index.js.map +1 -0
- package/preprocessors/lint/rules/namingConvention.d.ts +26 -0
- package/preprocessors/lint/rules/namingConvention.d.ts.map +1 -0
- package/preprocessors/lint/rules/namingConvention.js +35 -0
- package/preprocessors/lint/rules/namingConvention.js.map +1 -0
- package/preprocessors/lint/rules/noDollarProps.d.ts +6 -0
- package/preprocessors/lint/rules/noDollarProps.d.ts.map +1 -0
- package/preprocessors/lint/rules/noDollarProps.js +27 -0
- package/preprocessors/lint/rules/noDollarProps.js.map +1 -0
- package/preprocessors/lint/rules/requireType.d.ts +6 -0
- package/preprocessors/lint/rules/requireType.d.ts.map +1 -0
- package/preprocessors/lint/rules/requireType.js +21 -0
- package/preprocessors/lint/rules/requireType.js.map +1 -0
- package/preprocessors/lint/rules/requireValue.d.ts +6 -0
- package/preprocessors/lint/rules/requireValue.d.ts.map +1 -0
- package/preprocessors/lint/rules/requireValue.js +21 -0
- package/preprocessors/lint/rules/requireValue.js.map +1 -0
- package/preprocessors/lint/rules/validType.d.ts +25 -0
- package/preprocessors/lint/rules/validType.d.ts.map +1 -0
- package/preprocessors/lint/rules/validType.js +41 -0
- package/preprocessors/lint/rules/validType.js.map +1 -0
- package/preprocessors/lint/rules/valueTypeByTokenType.d.ts +40 -0
- package/preprocessors/lint/rules/valueTypeByTokenType.d.ts.map +1 -0
- package/preprocessors/lint/rules/valueTypeByTokenType.js +80 -0
- package/preprocessors/lint/rules/valueTypeByTokenType.js.map +1 -0
- package/transforms/gradientCssTransform.d.ts +3 -0
- package/transforms/gradientCssTransform.d.ts.map +1 -0
- package/transforms/{Gradient.js → gradientCssTransform.js} +4 -4
- package/transforms/gradientCssTransform.js.map +1 -0
- package/transforms/letterSpacingCalcCssTransform.d.ts +3 -0
- package/transforms/letterSpacingCalcCssTransform.d.ts.map +1 -0
- package/transforms/{LetterSpacing.js → letterSpacingCalcCssTransform.js} +4 -4
- package/transforms/letterSpacingCalcCssTransform.js.map +1 -0
- package/transforms/listScssTransform.d.ts +3 -0
- package/transforms/listScssTransform.d.ts.map +1 -0
- package/transforms/{List.js → listScssTransform.js} +4 -4
- package/transforms/listScssTransform.js.map +1 -0
- package/transforms/{QuoteString.d.ts → quoteStringTransform.d.ts} +1 -1
- package/transforms/quoteStringTransform.d.ts.map +1 -0
- package/transforms/{QuoteString.js → quoteStringTransform.js} +2 -2
- package/transforms/quoteStringTransform.js.map +1 -0
- package/transforms/{Shadow.d.ts → shadowCssTransform.d.ts} +1 -1
- package/transforms/shadowCssTransform.d.ts.map +1 -0
- package/transforms/{Shadow.js → shadowCssTransform.js} +2 -2
- package/transforms/shadowCssTransform.js.map +1 -0
- package/utilities/{Extract.d.ts → extractTokensByType.d.ts} +1 -1
- package/utilities/extractTokensByType.d.ts.map +1 -0
- package/utilities/{Extract.js → extractTokensByType.js} +2 -2
- package/utilities/extractTokensByType.js.map +1 -0
- package/formats/tailwind.d.ts +0 -3
- package/formats/tailwind.d.ts.map +0 -1
- package/formats/tailwind.js +0 -209
- package/formats/tailwind.js.map +0 -1
- package/preprocessors/Lint.d.ts +0 -3
- package/preprocessors/Lint.d.ts.map +0 -1
- package/preprocessors/Lint.js +0 -65
- package/preprocessors/Lint.js.map +0 -1
- package/preprocessors/Shadow.d.ts.map +0 -1
- package/preprocessors/Shadow.js.map +0 -1
- package/transforms/Gradient.d.ts +0 -3
- package/transforms/Gradient.d.ts.map +0 -1
- package/transforms/Gradient.js.map +0 -1
- package/transforms/LetterSpacing.d.ts +0 -3
- package/transforms/LetterSpacing.d.ts.map +0 -1
- package/transforms/LetterSpacing.js.map +0 -1
- package/transforms/List.d.ts +0 -3
- package/transforms/List.d.ts.map +0 -1
- package/transforms/List.js.map +0 -1
- package/transforms/NameSnakeUpperCase.d.ts +0 -6
- package/transforms/NameSnakeUpperCase.d.ts.map +0 -1
- package/transforms/NameSnakeUpperCase.js +0 -20
- package/transforms/NameSnakeUpperCase.js.map +0 -1
- package/transforms/QuoteString.d.ts.map +0 -1
- package/transforms/QuoteString.js.map +0 -1
- package/transforms/Shadow.d.ts.map +0 -1
- package/transforms/Shadow.js.map +0 -1
- package/utilities/Extract.d.ts.map +0 -1
- package/utilities/Extract.js.map +0 -1
- /package/utilities/{GetValue.d.ts → getValue.d.ts} +0 -0
- /package/utilities/{GetValue.d.ts.map → getValue.d.ts.map} +0 -0
- /package/utilities/{GetValue.js → getValue.js} +0 -0
- /package/utilities/{GetValue.js.map → getValue.js.map} +0 -0
package/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { shadowCssTransform } from './transforms/
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export { tailwindFormat } from './formats/tailwind';
|
|
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';
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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
CHANGED
|
@@ -1,22 +1,32 @@
|
|
|
1
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
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "shadowCssTransform", { enumerable: true, get: function () { return
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var Lint_1 = require("./preprocessors/Lint");
|
|
19
|
-
Object.defineProperty(exports, "lintPreprocessor", { enumerable: true, get: function () { return Lint_1.lintPreprocessor; } });
|
|
20
|
-
var tailwind_1 = require("./formats/tailwind");
|
|
21
|
-
Object.defineProperty(exports, "tailwindFormat", { enumerable: true, get: function () { return tailwind_1.tailwindFormat; } });
|
|
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);
|
|
22
32
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone-infrastructure/style-dictionary",
|
|
3
3
|
"description": "Common style-dictionary classes and functions",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.175",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
|
|
7
7
|
"repository": {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"module": "./index.js",
|
|
14
14
|
"types": "./index.d.ts",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@breadstone-infrastructure/utilities": "^0.0.
|
|
16
|
+
"@breadstone-infrastructure/utilities": "^0.0.175",
|
|
17
17
|
"style-dictionary": "^4.4.0",
|
|
18
|
-
"tailwindcss": "^3.4.
|
|
18
|
+
"tailwindcss": "^3.4.18"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -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=
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|