@culur/config-stylelint 1.0.4 → 1.0.5
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 +25 -0
- package/dist/chunk-FFVAQLBF.cjs +187 -0
- package/dist/chunk-FFVAQLBF.cjs.map +1 -0
- package/dist/chunk-TRE3FPWU.js +185 -0
- package/dist/chunk-TRE3FPWU.js.map +1 -0
- package/dist/factory.cjs +9 -0
- package/dist/factory.cjs.map +1 -0
- package/dist/factory.d.cts +6 -0
- package/dist/factory.d.ts +6 -0
- package/dist/factory.js +3 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.cjs +3 -183
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -182
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
- package/src/rules/function-no-unknown.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @culur/config-stylelint
|
|
2
2
|
|
|
3
|
+
## 1.0.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 📦 Update dependencies ([#88](https://github.com/culur/culur/pull/88) [`931ffd2`](https://github.com/culur/culur/commit/931ffd24457c410ee28a3a38fef93a97527a85d6)) ([@phamhongphuc](https://github.com/phamhongphuc)):
|
|
8
|
+
|
|
9
|
+
- `dependencies`:
|
|
10
|
+
- `stylelint-scss@^6.5.1`
|
|
11
|
+
- `devDependencies`:
|
|
12
|
+
- `@types/node@^20.16.2`
|
|
13
|
+
- `@vitest/coverage-v8@^2.0.5`
|
|
14
|
+
- `@vitest/ui@^2.0.5`
|
|
15
|
+
- `postcss@^8.4.41`
|
|
16
|
+
- `stylelint@^16.9.0`
|
|
17
|
+
- `tsup@^8.2.4`
|
|
18
|
+
- `typescript@^5.5.4`
|
|
19
|
+
- `vitest@^2.0.5`
|
|
20
|
+
|
|
21
|
+
- 🩹 `ignoreFunctions` is `[]` (empty array) instead of `undefined` ([`031cace`](https://github.com/culur/culur/commit/031cacea954b7574f349c28dd40c307095ee69cb)) ([@phamhongphuc](https://github.com/phamhongphuc)).
|
|
22
|
+
|
|
23
|
+
- ✨ Add `factory` to entry point ([`1269ad5`](https://github.com/culur/culur/commit/1269ad5548345a4681eb67bf4f0a33079b256723)) ([@phamhongphuc](https://github.com/phamhongphuc)).
|
|
24
|
+
|
|
25
|
+
- 📦 Update workspace dependencies:
|
|
26
|
+
- [`@culur/utils-packages@1.0.5`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
|
|
27
|
+
|
|
3
28
|
## 1.0.4
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utilsPackages = require('@culur/utils-packages');
|
|
4
|
+
|
|
5
|
+
// src/factory.ts
|
|
6
|
+
|
|
7
|
+
// src/utils/utils.ts
|
|
8
|
+
var defineRule = (rule) => rule;
|
|
9
|
+
var defineRules = (rule) => rule;
|
|
10
|
+
var mergeConfigs = (...configsOrNull) => {
|
|
11
|
+
const configs = configsOrNull.filter((c) => !!c);
|
|
12
|
+
return {
|
|
13
|
+
plugins: [...new Set(configs.flatMap((c) => c.plugins ?? []))],
|
|
14
|
+
overrides: [...new Set(configs.flatMap((c) => c.overrides ?? []))],
|
|
15
|
+
extends: configs.flatMap((c) => c.extends ?? []).filter((item, index, arr) => arr.lastIndexOf(item) === index),
|
|
16
|
+
rules: configs.reduce(
|
|
17
|
+
(acc, config) => ({ ...acc, ...config.rules }),
|
|
18
|
+
{}
|
|
19
|
+
),
|
|
20
|
+
...configs.reduce(
|
|
21
|
+
(acc, { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config }) => ({ ...acc, ...config }),
|
|
22
|
+
{}
|
|
23
|
+
)
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// src/rules/at-rule-no-unknown.ts
|
|
28
|
+
var directives = [
|
|
29
|
+
"tailwind",
|
|
30
|
+
"layer",
|
|
31
|
+
"apply",
|
|
32
|
+
"config",
|
|
33
|
+
// https://v2.tailwindcss.com/docs/functions-and-directives
|
|
34
|
+
// backwards compatible for v2
|
|
35
|
+
"variants",
|
|
36
|
+
"responsive",
|
|
37
|
+
"screen"
|
|
38
|
+
];
|
|
39
|
+
var atRuleNoUnknownRule = () => defineRule([
|
|
40
|
+
true,
|
|
41
|
+
{ ignoreAtRules: utilsPackages.hasTailwind() ? directives : [] }
|
|
42
|
+
]);
|
|
43
|
+
var atRuleNoUnknownCSS = () => defineRules({
|
|
44
|
+
"at-rule-no-unknown": atRuleNoUnknownRule()
|
|
45
|
+
});
|
|
46
|
+
var atRuleNoUnknownSCSS = () => defineRules({
|
|
47
|
+
"at-rule-no-unknown": null,
|
|
48
|
+
"scss/at-rule-no-unknown": atRuleNoUnknownRule()
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// src/rules/declaration-block-no-redundant-longhand-properties.ts
|
|
52
|
+
var declarationBlockNoRedundantLonghandPropertiesRule = defineRule([true, { ignoreShorthands: ["grid-template"] }]);
|
|
53
|
+
var declarationBlockNoRedundantLonghandProperties = defineRules({
|
|
54
|
+
"declaration-block-no-redundant-longhand-properties": declarationBlockNoRedundantLonghandPropertiesRule
|
|
55
|
+
});
|
|
56
|
+
function functionNoUnknownRule() {
|
|
57
|
+
const ignoreFunctions = [
|
|
58
|
+
// https://tailwindcss.com/docs/functions-and-directives#functions
|
|
59
|
+
...utilsPackages.hasTailwind() ? ["theme", "screen"] : [],
|
|
60
|
+
// https://sass-lang.com/documentation/modules/list
|
|
61
|
+
// https://sass-lang.com/documentation/modules/math
|
|
62
|
+
// https://sass-lang.com/documentation/modules/color
|
|
63
|
+
...utilsPackages.hasSass() ? [/^(list|math|color)\..+/] : [],
|
|
64
|
+
// https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
|
|
65
|
+
...utilsPackages.hasVue() ? ["v-bind"] : []
|
|
66
|
+
];
|
|
67
|
+
return defineRule([
|
|
68
|
+
true,
|
|
69
|
+
ignoreFunctions.length > 0 ? { ignoreFunctions } : { ignoreFunctions: [] }
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
var functionNoUnknown = () => defineRules({
|
|
73
|
+
"function-no-unknown": functionNoUnknownRule()
|
|
74
|
+
});
|
|
75
|
+
var atRuleScssImport = [
|
|
76
|
+
{ type: "at-rule", name: "use" },
|
|
77
|
+
{ type: "at-rule", name: "forward" },
|
|
78
|
+
{ type: "at-rule", name: "import" }
|
|
79
|
+
];
|
|
80
|
+
var atRuleScss = [
|
|
81
|
+
{ type: "at-rule", name: "function" },
|
|
82
|
+
{ type: "at-rule", name: "mixin" },
|
|
83
|
+
{ type: "at-rule", name: "extend" },
|
|
84
|
+
{ type: "at-rule", name: "include" },
|
|
85
|
+
{ type: "at-rule", name: "at-root" }
|
|
86
|
+
];
|
|
87
|
+
var variables = [
|
|
88
|
+
"dollar-variables",
|
|
89
|
+
// $variable
|
|
90
|
+
"at-variables",
|
|
91
|
+
// @variable
|
|
92
|
+
"custom-properties"
|
|
93
|
+
// --property: 10px
|
|
94
|
+
];
|
|
95
|
+
var atRuleTailwind = [
|
|
96
|
+
{ type: "at-rule", name: "tailwind" },
|
|
97
|
+
{ type: "at-rule", name: "layer" },
|
|
98
|
+
{ type: "at-rule", name: "apply" },
|
|
99
|
+
{ type: "at-rule", name: "config" }
|
|
100
|
+
];
|
|
101
|
+
var atRuleTailwindV2 = [
|
|
102
|
+
{ type: "at-rule", name: "variants" },
|
|
103
|
+
{ type: "at-rule", name: "responsive" },
|
|
104
|
+
{ type: "at-rule", name: "screen" }
|
|
105
|
+
];
|
|
106
|
+
var rules = [
|
|
107
|
+
{
|
|
108
|
+
type: "rule",
|
|
109
|
+
selector: /^&::[\w-]+/
|
|
110
|
+
},
|
|
111
|
+
"rules"
|
|
112
|
+
];
|
|
113
|
+
var orderRule = () => defineRule([
|
|
114
|
+
[
|
|
115
|
+
...utilsPackages.hasSass() ? atRuleScssImport : [],
|
|
116
|
+
...utilsPackages.hasTailwind() ? atRuleTailwind : [],
|
|
117
|
+
...variables,
|
|
118
|
+
...utilsPackages.hasSass() ? atRuleScss : [],
|
|
119
|
+
...utilsPackages.hasTailwind() ? atRuleTailwindV2 : [],
|
|
120
|
+
"at-rules",
|
|
121
|
+
"less-mixins",
|
|
122
|
+
"declarations",
|
|
123
|
+
...rules
|
|
124
|
+
],
|
|
125
|
+
{
|
|
126
|
+
unspecified: "bottom"
|
|
127
|
+
}
|
|
128
|
+
]);
|
|
129
|
+
var order = () => defineRules({
|
|
130
|
+
"order/order": orderRule()
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// src/configs/css.ts
|
|
134
|
+
var configCss = () => ({
|
|
135
|
+
extends: ["stylelint-config-standard", "stylelint-config-clean-order"],
|
|
136
|
+
plugins: ["stylelint-order", "stylelint-selector-bem-pattern"],
|
|
137
|
+
rules: {
|
|
138
|
+
...atRuleNoUnknownCSS(),
|
|
139
|
+
...declarationBlockNoRedundantLonghandProperties,
|
|
140
|
+
...functionNoUnknown(),
|
|
141
|
+
...order()
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// src/rules/dollar-variable-pattern.ts
|
|
146
|
+
var dollarVariablePatternRule = defineRule([
|
|
147
|
+
"^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$",
|
|
148
|
+
{ message: "Expected variable to be kebab-case" }
|
|
149
|
+
]);
|
|
150
|
+
var dollarVariablePatternSCSS = defineRules({
|
|
151
|
+
"scss/dollar-variable-pattern": dollarVariablePatternRule
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// src/configs/scss.ts
|
|
155
|
+
var configScss = () => ({
|
|
156
|
+
extends: ["stylelint-config-standard-scss"],
|
|
157
|
+
rules: {
|
|
158
|
+
...atRuleNoUnknownSCSS(),
|
|
159
|
+
...dollarVariablePatternSCSS
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// src/configs/shared.ts
|
|
164
|
+
var configShared = () => ({
|
|
165
|
+
extends: ["stylelint-config-html"]
|
|
166
|
+
});
|
|
167
|
+
var configVue = () => ({
|
|
168
|
+
extends: [
|
|
169
|
+
utilsPackages.hasSass() ? "stylelint-config-standard-vue/scss" : "stylelint-config-standard-vue"
|
|
170
|
+
]
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/factory.ts
|
|
174
|
+
function defineConfig(options, config) {
|
|
175
|
+
utilsPackages.updateDefaultPackages(options);
|
|
176
|
+
return mergeConfigs(
|
|
177
|
+
configShared(),
|
|
178
|
+
configCss(),
|
|
179
|
+
utilsPackages.hasSass() && configScss(),
|
|
180
|
+
utilsPackages.hasVue() && configVue(),
|
|
181
|
+
config
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
exports.defineConfig = defineConfig;
|
|
186
|
+
//# sourceMappingURL=chunk-FFVAQLBF.cjs.map
|
|
187
|
+
//# sourceMappingURL=chunk-FFVAQLBF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/utils.ts","../src/rules/at-rule-no-unknown.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/factory.ts"],"names":["hasTailwind","hasSass","hasVue","updateDefaultPackages"],"mappings":"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","file":"chunk-FFVAQLBF.cjs","sourcesContent":["import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import { hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = () =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: hasTailwind() ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = () =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n\nexport const atRuleNoUnknownSCSS = () =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import { hasSass, hasTailwind, hasVue } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule() {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(hasTailwind() //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(hasSass() //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(hasVue() //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0 //\n ? { ignoreFunctions }\n : { ignoreFunctions: [] },\n ]);\n}\n\nexport const functionNoUnknown = () =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(),\n });\n","import { hasSass, hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = () =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(hasSass() ? atRuleScssImport : []),\n ...(hasTailwind() ? atRuleTailwind : []),\n ...variables,\n ...(hasSass() ? atRuleScss : []),\n ...(hasTailwind() ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = () =>\n defineRules({\n 'order/order': orderRule(),\n });\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(),\n ...order(),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import { hasSass } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (): Config => ({\n extends: [\n hasSass()\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport { hasSass, hasVue, updateDefaultPackages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n options?: Partial<Packages>,\n config?: Config,\n): Config {\n updateDefaultPackages(options);\n\n return mergeConfigs(\n configShared(),\n configCss(),\n hasSass() && configScss(),\n hasVue() && configVue(),\n config,\n );\n}\n"]}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { updateDefaultPackages, hasVue, hasSass, hasTailwind } from '@culur/utils-packages';
|
|
2
|
+
|
|
3
|
+
// src/factory.ts
|
|
4
|
+
|
|
5
|
+
// src/utils/utils.ts
|
|
6
|
+
var defineRule = (rule) => rule;
|
|
7
|
+
var defineRules = (rule) => rule;
|
|
8
|
+
var mergeConfigs = (...configsOrNull) => {
|
|
9
|
+
const configs = configsOrNull.filter((c) => !!c);
|
|
10
|
+
return {
|
|
11
|
+
plugins: [...new Set(configs.flatMap((c) => c.plugins ?? []))],
|
|
12
|
+
overrides: [...new Set(configs.flatMap((c) => c.overrides ?? []))],
|
|
13
|
+
extends: configs.flatMap((c) => c.extends ?? []).filter((item, index, arr) => arr.lastIndexOf(item) === index),
|
|
14
|
+
rules: configs.reduce(
|
|
15
|
+
(acc, config) => ({ ...acc, ...config.rules }),
|
|
16
|
+
{}
|
|
17
|
+
),
|
|
18
|
+
...configs.reduce(
|
|
19
|
+
(acc, { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config }) => ({ ...acc, ...config }),
|
|
20
|
+
{}
|
|
21
|
+
)
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/rules/at-rule-no-unknown.ts
|
|
26
|
+
var directives = [
|
|
27
|
+
"tailwind",
|
|
28
|
+
"layer",
|
|
29
|
+
"apply",
|
|
30
|
+
"config",
|
|
31
|
+
// https://v2.tailwindcss.com/docs/functions-and-directives
|
|
32
|
+
// backwards compatible for v2
|
|
33
|
+
"variants",
|
|
34
|
+
"responsive",
|
|
35
|
+
"screen"
|
|
36
|
+
];
|
|
37
|
+
var atRuleNoUnknownRule = () => defineRule([
|
|
38
|
+
true,
|
|
39
|
+
{ ignoreAtRules: hasTailwind() ? directives : [] }
|
|
40
|
+
]);
|
|
41
|
+
var atRuleNoUnknownCSS = () => defineRules({
|
|
42
|
+
"at-rule-no-unknown": atRuleNoUnknownRule()
|
|
43
|
+
});
|
|
44
|
+
var atRuleNoUnknownSCSS = () => defineRules({
|
|
45
|
+
"at-rule-no-unknown": null,
|
|
46
|
+
"scss/at-rule-no-unknown": atRuleNoUnknownRule()
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// src/rules/declaration-block-no-redundant-longhand-properties.ts
|
|
50
|
+
var declarationBlockNoRedundantLonghandPropertiesRule = defineRule([true, { ignoreShorthands: ["grid-template"] }]);
|
|
51
|
+
var declarationBlockNoRedundantLonghandProperties = defineRules({
|
|
52
|
+
"declaration-block-no-redundant-longhand-properties": declarationBlockNoRedundantLonghandPropertiesRule
|
|
53
|
+
});
|
|
54
|
+
function functionNoUnknownRule() {
|
|
55
|
+
const ignoreFunctions = [
|
|
56
|
+
// https://tailwindcss.com/docs/functions-and-directives#functions
|
|
57
|
+
...hasTailwind() ? ["theme", "screen"] : [],
|
|
58
|
+
// https://sass-lang.com/documentation/modules/list
|
|
59
|
+
// https://sass-lang.com/documentation/modules/math
|
|
60
|
+
// https://sass-lang.com/documentation/modules/color
|
|
61
|
+
...hasSass() ? [/^(list|math|color)\..+/] : [],
|
|
62
|
+
// https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
|
|
63
|
+
...hasVue() ? ["v-bind"] : []
|
|
64
|
+
];
|
|
65
|
+
return defineRule([
|
|
66
|
+
true,
|
|
67
|
+
ignoreFunctions.length > 0 ? { ignoreFunctions } : { ignoreFunctions: [] }
|
|
68
|
+
]);
|
|
69
|
+
}
|
|
70
|
+
var functionNoUnknown = () => defineRules({
|
|
71
|
+
"function-no-unknown": functionNoUnknownRule()
|
|
72
|
+
});
|
|
73
|
+
var atRuleScssImport = [
|
|
74
|
+
{ type: "at-rule", name: "use" },
|
|
75
|
+
{ type: "at-rule", name: "forward" },
|
|
76
|
+
{ type: "at-rule", name: "import" }
|
|
77
|
+
];
|
|
78
|
+
var atRuleScss = [
|
|
79
|
+
{ type: "at-rule", name: "function" },
|
|
80
|
+
{ type: "at-rule", name: "mixin" },
|
|
81
|
+
{ type: "at-rule", name: "extend" },
|
|
82
|
+
{ type: "at-rule", name: "include" },
|
|
83
|
+
{ type: "at-rule", name: "at-root" }
|
|
84
|
+
];
|
|
85
|
+
var variables = [
|
|
86
|
+
"dollar-variables",
|
|
87
|
+
// $variable
|
|
88
|
+
"at-variables",
|
|
89
|
+
// @variable
|
|
90
|
+
"custom-properties"
|
|
91
|
+
// --property: 10px
|
|
92
|
+
];
|
|
93
|
+
var atRuleTailwind = [
|
|
94
|
+
{ type: "at-rule", name: "tailwind" },
|
|
95
|
+
{ type: "at-rule", name: "layer" },
|
|
96
|
+
{ type: "at-rule", name: "apply" },
|
|
97
|
+
{ type: "at-rule", name: "config" }
|
|
98
|
+
];
|
|
99
|
+
var atRuleTailwindV2 = [
|
|
100
|
+
{ type: "at-rule", name: "variants" },
|
|
101
|
+
{ type: "at-rule", name: "responsive" },
|
|
102
|
+
{ type: "at-rule", name: "screen" }
|
|
103
|
+
];
|
|
104
|
+
var rules = [
|
|
105
|
+
{
|
|
106
|
+
type: "rule",
|
|
107
|
+
selector: /^&::[\w-]+/
|
|
108
|
+
},
|
|
109
|
+
"rules"
|
|
110
|
+
];
|
|
111
|
+
var orderRule = () => defineRule([
|
|
112
|
+
[
|
|
113
|
+
...hasSass() ? atRuleScssImport : [],
|
|
114
|
+
...hasTailwind() ? atRuleTailwind : [],
|
|
115
|
+
...variables,
|
|
116
|
+
...hasSass() ? atRuleScss : [],
|
|
117
|
+
...hasTailwind() ? atRuleTailwindV2 : [],
|
|
118
|
+
"at-rules",
|
|
119
|
+
"less-mixins",
|
|
120
|
+
"declarations",
|
|
121
|
+
...rules
|
|
122
|
+
],
|
|
123
|
+
{
|
|
124
|
+
unspecified: "bottom"
|
|
125
|
+
}
|
|
126
|
+
]);
|
|
127
|
+
var order = () => defineRules({
|
|
128
|
+
"order/order": orderRule()
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// src/configs/css.ts
|
|
132
|
+
var configCss = () => ({
|
|
133
|
+
extends: ["stylelint-config-standard", "stylelint-config-clean-order"],
|
|
134
|
+
plugins: ["stylelint-order", "stylelint-selector-bem-pattern"],
|
|
135
|
+
rules: {
|
|
136
|
+
...atRuleNoUnknownCSS(),
|
|
137
|
+
...declarationBlockNoRedundantLonghandProperties,
|
|
138
|
+
...functionNoUnknown(),
|
|
139
|
+
...order()
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// src/rules/dollar-variable-pattern.ts
|
|
144
|
+
var dollarVariablePatternRule = defineRule([
|
|
145
|
+
"^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$",
|
|
146
|
+
{ message: "Expected variable to be kebab-case" }
|
|
147
|
+
]);
|
|
148
|
+
var dollarVariablePatternSCSS = defineRules({
|
|
149
|
+
"scss/dollar-variable-pattern": dollarVariablePatternRule
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// src/configs/scss.ts
|
|
153
|
+
var configScss = () => ({
|
|
154
|
+
extends: ["stylelint-config-standard-scss"],
|
|
155
|
+
rules: {
|
|
156
|
+
...atRuleNoUnknownSCSS(),
|
|
157
|
+
...dollarVariablePatternSCSS
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// src/configs/shared.ts
|
|
162
|
+
var configShared = () => ({
|
|
163
|
+
extends: ["stylelint-config-html"]
|
|
164
|
+
});
|
|
165
|
+
var configVue = () => ({
|
|
166
|
+
extends: [
|
|
167
|
+
hasSass() ? "stylelint-config-standard-vue/scss" : "stylelint-config-standard-vue"
|
|
168
|
+
]
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// src/factory.ts
|
|
172
|
+
function defineConfig(options, config) {
|
|
173
|
+
updateDefaultPackages(options);
|
|
174
|
+
return mergeConfigs(
|
|
175
|
+
configShared(),
|
|
176
|
+
configCss(),
|
|
177
|
+
hasSass() && configScss(),
|
|
178
|
+
hasVue() && configVue(),
|
|
179
|
+
config
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export { defineConfig };
|
|
184
|
+
//# sourceMappingURL=chunk-TRE3FPWU.js.map
|
|
185
|
+
//# sourceMappingURL=chunk-TRE3FPWU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/utils.ts","../src/rules/at-rule-no-unknown.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/factory.ts"],"names":["hasTailwind","hasSass","hasVue"],"mappings":"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","file":"chunk-TRE3FPWU.js","sourcesContent":["import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import { hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = () =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: hasTailwind() ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = () =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n\nexport const atRuleNoUnknownSCSS = () =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import { hasSass, hasTailwind, hasVue } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule() {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(hasTailwind() //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(hasSass() //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(hasVue() //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0 //\n ? { ignoreFunctions }\n : { ignoreFunctions: [] },\n ]);\n}\n\nexport const functionNoUnknown = () =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(),\n });\n","import { hasSass, hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = () =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(hasSass() ? atRuleScssImport : []),\n ...(hasTailwind() ? atRuleTailwind : []),\n ...variables,\n ...(hasSass() ? atRuleScss : []),\n ...(hasTailwind() ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = () =>\n defineRules({\n 'order/order': orderRule(),\n });\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(),\n ...order(),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import { hasSass } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (): Config => ({\n extends: [\n hasSass()\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import type { Packages } from '@culur/utils-packages';\nimport { hasSass, hasVue, updateDefaultPackages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n options?: Partial<Packages>,\n config?: Config,\n): Config {\n updateDefaultPackages(options);\n\n return mergeConfigs(\n configShared(),\n configCss(),\n hasSass() && configScss(),\n hasVue() && configVue(),\n config,\n );\n}\n"]}
|
package/dist/factory.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"factory.cjs"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"factory.js"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,190 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
// src/factory.ts
|
|
6
|
-
|
|
7
|
-
// src/utils/utils.ts
|
|
8
|
-
var defineRule = (rule) => rule;
|
|
9
|
-
var defineRules = (rule) => rule;
|
|
10
|
-
var mergeConfigs = (...configsOrNull) => {
|
|
11
|
-
const configs = configsOrNull.filter((c) => !!c);
|
|
12
|
-
return {
|
|
13
|
-
plugins: [...new Set(configs.flatMap((c) => c.plugins ?? []))],
|
|
14
|
-
overrides: [...new Set(configs.flatMap((c) => c.overrides ?? []))],
|
|
15
|
-
extends: configs.flatMap((c) => c.extends ?? []).filter((item, index, arr) => arr.lastIndexOf(item) === index),
|
|
16
|
-
rules: configs.reduce(
|
|
17
|
-
(acc, config) => ({ ...acc, ...config.rules }),
|
|
18
|
-
{}
|
|
19
|
-
),
|
|
20
|
-
...configs.reduce(
|
|
21
|
-
(acc, { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config }) => ({ ...acc, ...config }),
|
|
22
|
-
{}
|
|
23
|
-
)
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// src/rules/at-rule-no-unknown.ts
|
|
28
|
-
var directives = [
|
|
29
|
-
"tailwind",
|
|
30
|
-
"layer",
|
|
31
|
-
"apply",
|
|
32
|
-
"config",
|
|
33
|
-
// https://v2.tailwindcss.com/docs/functions-and-directives
|
|
34
|
-
// backwards compatible for v2
|
|
35
|
-
"variants",
|
|
36
|
-
"responsive",
|
|
37
|
-
"screen"
|
|
38
|
-
];
|
|
39
|
-
var atRuleNoUnknownRule = () => defineRule([
|
|
40
|
-
true,
|
|
41
|
-
{ ignoreAtRules: utilsPackages.hasTailwind() ? directives : [] }
|
|
42
|
-
]);
|
|
43
|
-
var atRuleNoUnknownCSS = () => defineRules({
|
|
44
|
-
"at-rule-no-unknown": atRuleNoUnknownRule()
|
|
45
|
-
});
|
|
46
|
-
var atRuleNoUnknownSCSS = () => defineRules({
|
|
47
|
-
"at-rule-no-unknown": null,
|
|
48
|
-
"scss/at-rule-no-unknown": atRuleNoUnknownRule()
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// src/rules/declaration-block-no-redundant-longhand-properties.ts
|
|
52
|
-
var declarationBlockNoRedundantLonghandPropertiesRule = defineRule([true, { ignoreShorthands: ["grid-template"] }]);
|
|
53
|
-
var declarationBlockNoRedundantLonghandProperties = defineRules({
|
|
54
|
-
"declaration-block-no-redundant-longhand-properties": declarationBlockNoRedundantLonghandPropertiesRule
|
|
55
|
-
});
|
|
56
|
-
function functionNoUnknownRule() {
|
|
57
|
-
const ignoreFunctions = [
|
|
58
|
-
// https://tailwindcss.com/docs/functions-and-directives#functions
|
|
59
|
-
...utilsPackages.hasTailwind() ? ["theme", "screen"] : [],
|
|
60
|
-
// https://sass-lang.com/documentation/modules/list
|
|
61
|
-
// https://sass-lang.com/documentation/modules/math
|
|
62
|
-
// https://sass-lang.com/documentation/modules/color
|
|
63
|
-
...utilsPackages.hasSass() ? [/^(list|math|color)\..+/] : [],
|
|
64
|
-
// https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
|
|
65
|
-
...utilsPackages.hasVue() ? ["v-bind"] : []
|
|
66
|
-
];
|
|
67
|
-
return defineRule([
|
|
68
|
-
true,
|
|
69
|
-
ignoreFunctions.length > 0 ? { ignoreFunctions } : { ignoreFunctions: void 0 }
|
|
70
|
-
]);
|
|
71
|
-
}
|
|
72
|
-
var functionNoUnknown = () => defineRules({
|
|
73
|
-
"function-no-unknown": functionNoUnknownRule()
|
|
74
|
-
});
|
|
75
|
-
var atRuleScssImport = [
|
|
76
|
-
{ type: "at-rule", name: "use" },
|
|
77
|
-
{ type: "at-rule", name: "forward" },
|
|
78
|
-
{ type: "at-rule", name: "import" }
|
|
79
|
-
];
|
|
80
|
-
var atRuleScss = [
|
|
81
|
-
{ type: "at-rule", name: "function" },
|
|
82
|
-
{ type: "at-rule", name: "mixin" },
|
|
83
|
-
{ type: "at-rule", name: "extend" },
|
|
84
|
-
{ type: "at-rule", name: "include" },
|
|
85
|
-
{ type: "at-rule", name: "at-root" }
|
|
86
|
-
];
|
|
87
|
-
var variables = [
|
|
88
|
-
"dollar-variables",
|
|
89
|
-
// $variable
|
|
90
|
-
"at-variables",
|
|
91
|
-
// @variable
|
|
92
|
-
"custom-properties"
|
|
93
|
-
// --property: 10px
|
|
94
|
-
];
|
|
95
|
-
var atRuleTailwind = [
|
|
96
|
-
{ type: "at-rule", name: "tailwind" },
|
|
97
|
-
{ type: "at-rule", name: "layer" },
|
|
98
|
-
{ type: "at-rule", name: "apply" },
|
|
99
|
-
{ type: "at-rule", name: "config" }
|
|
100
|
-
];
|
|
101
|
-
var atRuleTailwindV2 = [
|
|
102
|
-
{ type: "at-rule", name: "variants" },
|
|
103
|
-
{ type: "at-rule", name: "responsive" },
|
|
104
|
-
{ type: "at-rule", name: "screen" }
|
|
105
|
-
];
|
|
106
|
-
var rules = [
|
|
107
|
-
{
|
|
108
|
-
type: "rule",
|
|
109
|
-
selector: /^&::[\w-]+/
|
|
110
|
-
},
|
|
111
|
-
"rules"
|
|
112
|
-
];
|
|
113
|
-
var orderRule = () => defineRule([
|
|
114
|
-
[
|
|
115
|
-
...utilsPackages.hasSass() ? atRuleScssImport : [],
|
|
116
|
-
...utilsPackages.hasTailwind() ? atRuleTailwind : [],
|
|
117
|
-
...variables,
|
|
118
|
-
...utilsPackages.hasSass() ? atRuleScss : [],
|
|
119
|
-
...utilsPackages.hasTailwind() ? atRuleTailwindV2 : [],
|
|
120
|
-
"at-rules",
|
|
121
|
-
"less-mixins",
|
|
122
|
-
"declarations",
|
|
123
|
-
...rules
|
|
124
|
-
],
|
|
125
|
-
{
|
|
126
|
-
unspecified: "bottom"
|
|
127
|
-
}
|
|
128
|
-
]);
|
|
129
|
-
var order = () => defineRules({
|
|
130
|
-
"order/order": orderRule()
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
// src/configs/css.ts
|
|
134
|
-
var configCss = () => ({
|
|
135
|
-
extends: ["stylelint-config-standard", "stylelint-config-clean-order"],
|
|
136
|
-
plugins: ["stylelint-order", "stylelint-selector-bem-pattern"],
|
|
137
|
-
rules: {
|
|
138
|
-
...atRuleNoUnknownCSS(),
|
|
139
|
-
...declarationBlockNoRedundantLonghandProperties,
|
|
140
|
-
...functionNoUnknown(),
|
|
141
|
-
...order()
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// src/rules/dollar-variable-pattern.ts
|
|
146
|
-
var dollarVariablePatternRule = defineRule([
|
|
147
|
-
"^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$",
|
|
148
|
-
{ message: "Expected variable to be kebab-case" }
|
|
149
|
-
]);
|
|
150
|
-
var dollarVariablePatternSCSS = defineRules({
|
|
151
|
-
"scss/dollar-variable-pattern": dollarVariablePatternRule
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
// src/configs/scss.ts
|
|
155
|
-
var configScss = () => ({
|
|
156
|
-
extends: ["stylelint-config-standard-scss"],
|
|
157
|
-
rules: {
|
|
158
|
-
...atRuleNoUnknownSCSS(),
|
|
159
|
-
...dollarVariablePatternSCSS
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
// src/configs/shared.ts
|
|
164
|
-
var configShared = () => ({
|
|
165
|
-
extends: ["stylelint-config-html"]
|
|
166
|
-
});
|
|
167
|
-
var configVue = () => ({
|
|
168
|
-
extends: [
|
|
169
|
-
utilsPackages.hasSass() ? "stylelint-config-standard-vue/scss" : "stylelint-config-standard-vue"
|
|
170
|
-
]
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
// src/factory.ts
|
|
174
|
-
function defineConfig(options, config) {
|
|
175
|
-
utilsPackages.updateDefaultPackages(options);
|
|
176
|
-
return mergeConfigs(
|
|
177
|
-
configShared(),
|
|
178
|
-
configCss(),
|
|
179
|
-
utilsPackages.hasSass() && configScss(),
|
|
180
|
-
utilsPackages.hasVue() && configVue(),
|
|
181
|
-
config
|
|
182
|
-
);
|
|
183
|
-
}
|
|
3
|
+
var chunkFFVAQLBF_cjs = require('./chunk-FFVAQLBF.cjs');
|
|
184
4
|
|
|
185
5
|
// src/index.ts
|
|
186
|
-
var src_default = defineConfig();
|
|
6
|
+
var src_default = chunkFFVAQLBF_cjs.defineConfig();
|
|
187
7
|
|
|
188
8
|
module.exports = src_default;
|
|
189
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=index.cjs.map
|
|
190
10
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/factory.ts","../src/rules/at-rule-no-unknown.ts","../src/utils/utils.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/index.ts"],"names":["hasSass","hasVue","hasTailwind"],"mappings":"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","sourcesContent":["import type { Packages } from '@culur/utils-packages';\nimport { hasSass, hasVue, updateDefaultPackages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n options?: Partial<Packages>,\n config?: Config,\n): Config {\n updateDefaultPackages(options);\n\n return mergeConfigs(\n configShared(),\n configCss(),\n hasSass() && configScss(),\n hasVue() && configVue(),\n config,\n );\n}\n","import { hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = () =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: hasTailwind() ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = () =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n\nexport const atRuleNoUnknownSCSS = () =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n","import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import { hasSass, hasTailwind, hasVue } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule() {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(hasTailwind() //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(hasSass() //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(hasVue() //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions?: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0\n ? { ignoreFunctions }\n : { ignoreFunctions: undefined },\n ]);\n}\n\nexport const functionNoUnknown = () =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(),\n });\n","import { hasSass, hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = () =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(hasSass() ? atRuleScssImport : []),\n ...(hasTailwind() ? atRuleTailwind : []),\n ...variables,\n ...(hasSass() ? atRuleScss : []),\n ...(hasTailwind() ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = () =>\n defineRules({\n 'order/order': orderRule(),\n });\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(),\n ...order(),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import { hasSass } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (): Config => ({\n extends: [\n hasSass()\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import defineConfig from './factory';\n\nexport default defineConfig();\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["defineConfig"],"mappings":";;;;;AAEA,IAAO,cAAQA,8BAAa","file":"index.cjs","sourcesContent":["import defineConfig from './factory';\n\nexport default defineConfig();\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,188 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
// src/factory.ts
|
|
4
|
-
|
|
5
|
-
// src/utils/utils.ts
|
|
6
|
-
var defineRule = (rule) => rule;
|
|
7
|
-
var defineRules = (rule) => rule;
|
|
8
|
-
var mergeConfigs = (...configsOrNull) => {
|
|
9
|
-
const configs = configsOrNull.filter((c) => !!c);
|
|
10
|
-
return {
|
|
11
|
-
plugins: [...new Set(configs.flatMap((c) => c.plugins ?? []))],
|
|
12
|
-
overrides: [...new Set(configs.flatMap((c) => c.overrides ?? []))],
|
|
13
|
-
extends: configs.flatMap((c) => c.extends ?? []).filter((item, index, arr) => arr.lastIndexOf(item) === index),
|
|
14
|
-
rules: configs.reduce(
|
|
15
|
-
(acc, config) => ({ ...acc, ...config.rules }),
|
|
16
|
-
{}
|
|
17
|
-
),
|
|
18
|
-
...configs.reduce(
|
|
19
|
-
(acc, { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config }) => ({ ...acc, ...config }),
|
|
20
|
-
{}
|
|
21
|
-
)
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// src/rules/at-rule-no-unknown.ts
|
|
26
|
-
var directives = [
|
|
27
|
-
"tailwind",
|
|
28
|
-
"layer",
|
|
29
|
-
"apply",
|
|
30
|
-
"config",
|
|
31
|
-
// https://v2.tailwindcss.com/docs/functions-and-directives
|
|
32
|
-
// backwards compatible for v2
|
|
33
|
-
"variants",
|
|
34
|
-
"responsive",
|
|
35
|
-
"screen"
|
|
36
|
-
];
|
|
37
|
-
var atRuleNoUnknownRule = () => defineRule([
|
|
38
|
-
true,
|
|
39
|
-
{ ignoreAtRules: hasTailwind() ? directives : [] }
|
|
40
|
-
]);
|
|
41
|
-
var atRuleNoUnknownCSS = () => defineRules({
|
|
42
|
-
"at-rule-no-unknown": atRuleNoUnknownRule()
|
|
43
|
-
});
|
|
44
|
-
var atRuleNoUnknownSCSS = () => defineRules({
|
|
45
|
-
"at-rule-no-unknown": null,
|
|
46
|
-
"scss/at-rule-no-unknown": atRuleNoUnknownRule()
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
// src/rules/declaration-block-no-redundant-longhand-properties.ts
|
|
50
|
-
var declarationBlockNoRedundantLonghandPropertiesRule = defineRule([true, { ignoreShorthands: ["grid-template"] }]);
|
|
51
|
-
var declarationBlockNoRedundantLonghandProperties = defineRules({
|
|
52
|
-
"declaration-block-no-redundant-longhand-properties": declarationBlockNoRedundantLonghandPropertiesRule
|
|
53
|
-
});
|
|
54
|
-
function functionNoUnknownRule() {
|
|
55
|
-
const ignoreFunctions = [
|
|
56
|
-
// https://tailwindcss.com/docs/functions-and-directives#functions
|
|
57
|
-
...hasTailwind() ? ["theme", "screen"] : [],
|
|
58
|
-
// https://sass-lang.com/documentation/modules/list
|
|
59
|
-
// https://sass-lang.com/documentation/modules/math
|
|
60
|
-
// https://sass-lang.com/documentation/modules/color
|
|
61
|
-
...hasSass() ? [/^(list|math|color)\..+/] : [],
|
|
62
|
-
// https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
|
|
63
|
-
...hasVue() ? ["v-bind"] : []
|
|
64
|
-
];
|
|
65
|
-
return defineRule([
|
|
66
|
-
true,
|
|
67
|
-
ignoreFunctions.length > 0 ? { ignoreFunctions } : { ignoreFunctions: void 0 }
|
|
68
|
-
]);
|
|
69
|
-
}
|
|
70
|
-
var functionNoUnknown = () => defineRules({
|
|
71
|
-
"function-no-unknown": functionNoUnknownRule()
|
|
72
|
-
});
|
|
73
|
-
var atRuleScssImport = [
|
|
74
|
-
{ type: "at-rule", name: "use" },
|
|
75
|
-
{ type: "at-rule", name: "forward" },
|
|
76
|
-
{ type: "at-rule", name: "import" }
|
|
77
|
-
];
|
|
78
|
-
var atRuleScss = [
|
|
79
|
-
{ type: "at-rule", name: "function" },
|
|
80
|
-
{ type: "at-rule", name: "mixin" },
|
|
81
|
-
{ type: "at-rule", name: "extend" },
|
|
82
|
-
{ type: "at-rule", name: "include" },
|
|
83
|
-
{ type: "at-rule", name: "at-root" }
|
|
84
|
-
];
|
|
85
|
-
var variables = [
|
|
86
|
-
"dollar-variables",
|
|
87
|
-
// $variable
|
|
88
|
-
"at-variables",
|
|
89
|
-
// @variable
|
|
90
|
-
"custom-properties"
|
|
91
|
-
// --property: 10px
|
|
92
|
-
];
|
|
93
|
-
var atRuleTailwind = [
|
|
94
|
-
{ type: "at-rule", name: "tailwind" },
|
|
95
|
-
{ type: "at-rule", name: "layer" },
|
|
96
|
-
{ type: "at-rule", name: "apply" },
|
|
97
|
-
{ type: "at-rule", name: "config" }
|
|
98
|
-
];
|
|
99
|
-
var atRuleTailwindV2 = [
|
|
100
|
-
{ type: "at-rule", name: "variants" },
|
|
101
|
-
{ type: "at-rule", name: "responsive" },
|
|
102
|
-
{ type: "at-rule", name: "screen" }
|
|
103
|
-
];
|
|
104
|
-
var rules = [
|
|
105
|
-
{
|
|
106
|
-
type: "rule",
|
|
107
|
-
selector: /^&::[\w-]+/
|
|
108
|
-
},
|
|
109
|
-
"rules"
|
|
110
|
-
];
|
|
111
|
-
var orderRule = () => defineRule([
|
|
112
|
-
[
|
|
113
|
-
...hasSass() ? atRuleScssImport : [],
|
|
114
|
-
...hasTailwind() ? atRuleTailwind : [],
|
|
115
|
-
...variables,
|
|
116
|
-
...hasSass() ? atRuleScss : [],
|
|
117
|
-
...hasTailwind() ? atRuleTailwindV2 : [],
|
|
118
|
-
"at-rules",
|
|
119
|
-
"less-mixins",
|
|
120
|
-
"declarations",
|
|
121
|
-
...rules
|
|
122
|
-
],
|
|
123
|
-
{
|
|
124
|
-
unspecified: "bottom"
|
|
125
|
-
}
|
|
126
|
-
]);
|
|
127
|
-
var order = () => defineRules({
|
|
128
|
-
"order/order": orderRule()
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
// src/configs/css.ts
|
|
132
|
-
var configCss = () => ({
|
|
133
|
-
extends: ["stylelint-config-standard", "stylelint-config-clean-order"],
|
|
134
|
-
plugins: ["stylelint-order", "stylelint-selector-bem-pattern"],
|
|
135
|
-
rules: {
|
|
136
|
-
...atRuleNoUnknownCSS(),
|
|
137
|
-
...declarationBlockNoRedundantLonghandProperties,
|
|
138
|
-
...functionNoUnknown(),
|
|
139
|
-
...order()
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
// src/rules/dollar-variable-pattern.ts
|
|
144
|
-
var dollarVariablePatternRule = defineRule([
|
|
145
|
-
"^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$",
|
|
146
|
-
{ message: "Expected variable to be kebab-case" }
|
|
147
|
-
]);
|
|
148
|
-
var dollarVariablePatternSCSS = defineRules({
|
|
149
|
-
"scss/dollar-variable-pattern": dollarVariablePatternRule
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// src/configs/scss.ts
|
|
153
|
-
var configScss = () => ({
|
|
154
|
-
extends: ["stylelint-config-standard-scss"],
|
|
155
|
-
rules: {
|
|
156
|
-
...atRuleNoUnknownSCSS(),
|
|
157
|
-
...dollarVariablePatternSCSS
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
// src/configs/shared.ts
|
|
162
|
-
var configShared = () => ({
|
|
163
|
-
extends: ["stylelint-config-html"]
|
|
164
|
-
});
|
|
165
|
-
var configVue = () => ({
|
|
166
|
-
extends: [
|
|
167
|
-
hasSass() ? "stylelint-config-standard-vue/scss" : "stylelint-config-standard-vue"
|
|
168
|
-
]
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
// src/factory.ts
|
|
172
|
-
function defineConfig(options, config) {
|
|
173
|
-
updateDefaultPackages(options);
|
|
174
|
-
return mergeConfigs(
|
|
175
|
-
configShared(),
|
|
176
|
-
configCss(),
|
|
177
|
-
hasSass() && configScss(),
|
|
178
|
-
hasVue() && configVue(),
|
|
179
|
-
config
|
|
180
|
-
);
|
|
181
|
-
}
|
|
1
|
+
import { defineConfig } from './chunk-TRE3FPWU.js';
|
|
182
2
|
|
|
183
3
|
// src/index.ts
|
|
184
4
|
var src_default = defineConfig();
|
|
185
5
|
|
|
186
6
|
export { src_default as default };
|
|
187
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
188
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/factory.ts","../src/rules/at-rule-no-unknown.ts","../src/utils/utils.ts","../src/rules/declaration-block-no-redundant-longhand-properties.ts","../src/rules/function-no-unknown.ts","../src/rules/order.ts","../src/configs/css.ts","../src/rules/dollar-variable-pattern.ts","../src/configs/scss.ts","../src/configs/shared.ts","../src/configs/vue.ts","../src/index.ts"],"names":["hasSass","hasVue","hasTailwind"],"mappings":"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","sourcesContent":["import type { Packages } from '@culur/utils-packages';\nimport { hasSass, hasVue, updateDefaultPackages } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\nimport { configCss } from './configs/css';\nimport { configScss } from './configs/scss';\nimport { configShared } from './configs/shared';\nimport { configVue } from './configs/vue';\nimport { mergeConfigs } from './utils';\n\nexport default function defineConfig(\n options?: Partial<Packages>,\n config?: Config,\n): Config {\n updateDefaultPackages(options);\n\n return mergeConfigs(\n configShared(),\n configCss(),\n hasSass() && configScss(),\n hasVue() && configVue(),\n config,\n );\n}\n","import { hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://tailwindcss.com/docs/functions-and-directives\nconst directives = [\n 'tailwind',\n 'layer',\n 'apply',\n 'config',\n\n // https://v2.tailwindcss.com/docs/functions-and-directives\n // backwards compatible for v2\n 'variants',\n 'responsive',\n 'screen',\n];\n\nexport const atRuleNoUnknownRule = () =>\n defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([\n true,\n { ignoreAtRules: hasTailwind() ? directives : [] },\n ]);\n\nexport const atRuleNoUnknownCSS = () =>\n defineRules({\n 'at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n\nexport const atRuleNoUnknownSCSS = () =>\n defineRules({\n 'at-rule-no-unknown': null,\n 'scss/at-rule-no-unknown': atRuleNoUnknownRule(),\n });\n","import type { Config, ConfigRuleSettings } from 'stylelint';\n\nexport type ConfigRulePrimaryOption =\n | boolean\n | number\n | string\n | Array<boolean | number | string | object>;\nexport type ConfigRuleSecondaryOptions = object;\n\nexport const defineRule = <\n PrimaryOption extends ConfigRulePrimaryOption,\n SecondaryOptions extends ConfigRuleSecondaryOptions,\n>(\n rule: ConfigRuleSettings<PrimaryOption, SecondaryOptions>,\n) => rule;\n\nexport const defineRules = <TRules extends Config['rules']>(rule: TRules) =>\n rule;\n\n// clone function mergeConfigs from stylelint repository\nexport const mergeConfigs = (\n ...configsOrNull: (Config | undefined | null | false)[]\n) => {\n const configs = configsOrNull.filter((c): c is Config => !!c);\n\n return {\n plugins: [...new Set(configs.flatMap(c => c.plugins ?? []))],\n overrides: [...new Set(configs.flatMap(c => c.overrides ?? []))],\n extends: configs\n .flatMap(c => c.extends ?? [])\n .filter((item, index, arr) => arr.lastIndexOf(item) === index),\n rules: configs.reduce(\n (acc, config) => ({ ...acc, ...config.rules }),\n {} as Config['rules'],\n ),\n ...configs.reduce(\n (\n acc,\n { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config },\n ) => ({ ...acc, ...config }),\n {} as Config,\n ),\n };\n};\n","import { defineRule, defineRules } from '~/utils';\n\nexport const declarationBlockNoRedundantLonghandPropertiesRule = defineRule<\n true,\n { ignoreShorthands?: (string | RegExp)[] }\n>([true, { ignoreShorthands: ['grid-template'] }]);\n\nexport const declarationBlockNoRedundantLonghandProperties = defineRules({\n 'declaration-block-no-redundant-longhand-properties':\n declarationBlockNoRedundantLonghandPropertiesRule,\n});\n","import { hasSass, hasTailwind, hasVue } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\nexport function functionNoUnknownRule() {\n const ignoreFunctions = [\n // https://tailwindcss.com/docs/functions-and-directives#functions\n ...(hasTailwind() //\n ? ['theme', 'screen']\n : []),\n\n // https://sass-lang.com/documentation/modules/list\n // https://sass-lang.com/documentation/modules/math\n // https://sass-lang.com/documentation/modules/color\n ...(hasSass() //\n ? [/^(list|math|color)\\..+/]\n : []),\n\n // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css\n ...(hasVue() //\n ? ['v-bind']\n : []),\n ];\n\n return defineRule<boolean, { ignoreFunctions?: (string | RegExp)[] }>([\n true,\n ignoreFunctions.length > 0\n ? { ignoreFunctions }\n : { ignoreFunctions: undefined },\n ]);\n}\n\nexport const functionNoUnknown = () =>\n defineRules({\n 'function-no-unknown': functionNoUnknownRule(),\n });\n","import { hasSass, hasTailwind } from '@culur/utils-packages';\nimport { defineRule, defineRules } from '~/utils';\n\n// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options\n\ntype Keyword =\n | 'custom-properties' /**/ // Custom properties (e.g. --property: 10px;)\n | 'dollar-variables' /***/ // Dollar variables (e.g. $variable)\n | 'at-variables' /*******/ // At-variables (e.g. @variable available in Less syntax)\n | 'declarations' /*******/ // CSS declarations (e.g. display: block)\n | 'rules' /**************/ // Nested rules (e.g. a { span {} })\n | 'at-rules' /***********/ // Nested at-rules (e.g. div { @media () {} })\n | 'less-mixins'; /*******/ // Mixins in Less syntax (e.g. .mixin();)\n\ninterface AtRule {\n type: 'at-rule';\n name?: string;\n parameter?: string | RegExp;\n hasBlock?: boolean;\n}\n\ninterface Rule {\n type: 'rule';\n selector?: string | RegExp;\n name?: string;\n}\n\ntype PrimaryOption = Array<Keyword | AtRule | Rule>;\ninterface SecondaryOptions {\n unspecified?: 'top' | 'bottom' | 'ignore';\n}\n\n/**\n * https://sass-lang.com/documentation/at-rules\n */\nconst atRuleScssImport: PrimaryOption = [\n { type: 'at-rule', name: 'use' },\n { type: 'at-rule', name: 'forward' },\n { type: 'at-rule', name: 'import' },\n];\nconst atRuleScss: PrimaryOption = [\n { type: 'at-rule', name: 'function' },\n { type: 'at-rule', name: 'mixin' },\n { type: 'at-rule', name: 'extend' },\n { type: 'at-rule', name: 'include' },\n { type: 'at-rule', name: 'at-root' },\n];\n\nconst variables: PrimaryOption = [\n 'dollar-variables', // $variable\n 'at-variables', // @variable\n 'custom-properties', // --property: 10px\n];\n\n/**\n * https://tailwindcss.com/docs/functions-and-directives\n */\nconst atRuleTailwind: PrimaryOption = [\n { type: 'at-rule', name: 'tailwind' },\n { type: 'at-rule', name: 'layer' },\n { type: 'at-rule', name: 'apply' },\n { type: 'at-rule', name: 'config' },\n];\n\n/**\n * https://v2.tailwindcss.com/docs/functions-and-directives\n *\n * backwards compatible for v2\n */\nconst atRuleTailwindV2: PrimaryOption = [\n { type: 'at-rule', name: 'variants' },\n { type: 'at-rule', name: 'responsive' },\n { type: 'at-rule', name: 'screen' },\n];\n\n/**\n * Nested rules (e.g. a { span {} })\n */\nconst rules: PrimaryOption = [\n {\n type: 'rule',\n selector: /^&::[\\w-]+/,\n },\n 'rules',\n];\n\nexport const orderRule = () =>\n defineRule<PrimaryOption, SecondaryOptions>([\n [\n ...(hasSass() ? atRuleScssImport : []),\n ...(hasTailwind() ? atRuleTailwind : []),\n ...variables,\n ...(hasSass() ? atRuleScss : []),\n ...(hasTailwind() ? atRuleTailwindV2 : []),\n 'at-rules',\n 'less-mixins',\n 'declarations',\n ...rules,\n ],\n {\n unspecified: 'bottom',\n },\n ]);\n\nexport const order = () =>\n defineRules({\n 'order/order': orderRule(),\n });\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';\nimport { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';\nimport { functionNoUnknown } from '~/rules/function-no-unknown';\nimport { order } from '~/rules/order';\n\nexport const configCss = (): Config => ({\n extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],\n plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],\n rules: {\n ...atRuleNoUnknownCSS(),\n ...declarationBlockNoRedundantLonghandProperties,\n ...functionNoUnknown(),\n ...order(),\n },\n});\n","import { defineRule, defineRules } from '~/utils';\n\ntype PrimaryOption = string;\ninterface SecondaryOptions {\n message: string;\n}\n\nexport const dollarVariablePatternRule = defineRule<\n PrimaryOption,\n SecondaryOptions\n>([\n '^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',\n { message: 'Expected variable to be kebab-case' },\n]);\n\nexport const dollarVariablePatternSCSS = defineRules({\n 'scss/dollar-variable-pattern': dollarVariablePatternRule,\n});\n","import type { Config } from 'stylelint';\nimport { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';\nimport { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';\n\nexport const configScss = (): Config => ({\n extends: ['stylelint-config-standard-scss'],\n rules: {\n ...atRuleNoUnknownSCSS(),\n ...dollarVariablePatternSCSS,\n },\n});\n","import type { Config } from 'stylelint';\n\nexport const configShared = (): Config => ({\n extends: ['stylelint-config-html'],\n});\n","import { hasSass } from '@culur/utils-packages';\nimport type { Config } from 'stylelint';\n\nexport const configVue = (): Config => ({\n extends: [\n hasSass()\n ? 'stylelint-config-standard-vue/scss'\n : 'stylelint-config-standard-vue',\n ],\n});\n","import defineConfig from './factory';\n\nexport default defineConfig();\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,IAAO,cAAQ,YAAa","file":"index.js","sourcesContent":["import defineConfig from './factory';\n\nexport default defineConfig();\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@culur/config-stylelint",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Culur's stylelint configuration",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -66,33 +66,33 @@
|
|
|
66
66
|
"node": ">=20"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@culur/utils-packages": "1.0.
|
|
69
|
+
"@culur/utils-packages": "1.0.5",
|
|
70
70
|
"stylelint-config-clean-order": "^6.1.0",
|
|
71
71
|
"stylelint-config-html": "^1.1.0",
|
|
72
72
|
"stylelint-config-standard": "^36.0.1",
|
|
73
73
|
"stylelint-config-standard-scss": "^13.1.0",
|
|
74
74
|
"stylelint-config-standard-vue": "^1.0.0",
|
|
75
75
|
"stylelint-order": "^6.0.4",
|
|
76
|
-
"stylelint-scss": "^6.
|
|
76
|
+
"stylelint-scss": "^6.5.1",
|
|
77
77
|
"stylelint-selector-bem-pattern": "^4.0.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@culur/config-tsup": "1.1.
|
|
81
|
-
"@culur/config-typescript": "1.0.
|
|
82
|
-
"@culur/config-vite": "1.0.
|
|
83
|
-
"@types/node": "^20.
|
|
84
|
-
"@vitest/coverage-v8": "^2.0.
|
|
85
|
-
"@vitest/ui": "^2.0.
|
|
80
|
+
"@culur/config-tsup": "1.1.3",
|
|
81
|
+
"@culur/config-typescript": "1.0.4",
|
|
82
|
+
"@culur/config-vite": "1.0.6",
|
|
83
|
+
"@types/node": "^20.16.2",
|
|
84
|
+
"@vitest/coverage-v8": "^2.0.5",
|
|
85
|
+
"@vitest/ui": "^2.0.5",
|
|
86
86
|
"dedent": "^1.5.3",
|
|
87
|
-
"postcss": "^8.4.
|
|
87
|
+
"postcss": "^8.4.41",
|
|
88
88
|
"postcss-html": "^1.7.0",
|
|
89
89
|
"postcss-sass": "^0.5.0",
|
|
90
90
|
"postcss-scss": "^4.0.9",
|
|
91
91
|
"rimraf": "^6.0.1",
|
|
92
|
-
"stylelint": "^16.
|
|
93
|
-
"tsup": "^8.
|
|
94
|
-
"typescript": "^5.5.
|
|
95
|
-
"vitest": "^2.0.
|
|
92
|
+
"stylelint": "^16.9.0",
|
|
93
|
+
"tsup": "^8.2.4",
|
|
94
|
+
"typescript": "^5.5.4",
|
|
95
|
+
"vitest": "^2.0.5"
|
|
96
96
|
},
|
|
97
97
|
"peerDependencies": {
|
|
98
98
|
"stylelint": ">=16.0.0"
|
|
@@ -21,11 +21,11 @@ export function functionNoUnknownRule() {
|
|
|
21
21
|
: []),
|
|
22
22
|
];
|
|
23
23
|
|
|
24
|
-
return defineRule<boolean, { ignoreFunctions
|
|
24
|
+
return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([
|
|
25
25
|
true,
|
|
26
|
-
ignoreFunctions.length > 0
|
|
26
|
+
ignoreFunctions.length > 0 //
|
|
27
27
|
? { ignoreFunctions }
|
|
28
|
-
: { ignoreFunctions:
|
|
28
|
+
: { ignoreFunctions: [] },
|
|
29
29
|
]);
|
|
30
30
|
}
|
|
31
31
|
|