@culur/config-stylelint 1.0.5 → 1.1.0
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 +6 -0
- package/README.md +18 -0
- package/dist/chunk-25GAG7VZ.cjs +14 -0
- package/dist/chunk-25GAG7VZ.cjs.map +1 -0
- package/dist/chunk-3EXGA24H.cjs +14 -0
- package/dist/chunk-3EXGA24H.cjs.map +1 -0
- package/dist/chunk-5B6KVSBM.cjs +21 -0
- package/dist/chunk-5B6KVSBM.cjs.map +1 -0
- package/dist/chunk-6KBIBHQC.js +17 -0
- package/dist/chunk-6KBIBHQC.js.map +1 -0
- package/dist/chunk-6TFCLJEL.js +12 -0
- package/dist/chunk-6TFCLJEL.js.map +1 -0
- package/dist/chunk-7GVP73HJ.js +12 -0
- package/dist/chunk-7GVP73HJ.js.map +1 -0
- package/dist/chunk-7HEUVQEH.cjs +14 -0
- package/dist/chunk-7HEUVQEH.cjs.map +1 -0
- package/dist/chunk-7MXAEVIH.js +12 -0
- package/dist/chunk-7MXAEVIH.js.map +1 -0
- package/dist/chunk-A7OLAKMM.cjs +15 -0
- package/dist/chunk-A7OLAKMM.cjs.map +1 -0
- package/dist/chunk-BUXFTQGN.js +12 -0
- package/dist/chunk-BUXFTQGN.js.map +1 -0
- package/dist/chunk-C27K4OM4.js +12 -0
- package/dist/chunk-C27K4OM4.js.map +1 -0
- package/dist/chunk-C64I73TJ.cjs +14 -0
- package/dist/chunk-C64I73TJ.cjs.map +1 -0
- package/dist/{chunk-FFVAQLBF.cjs → chunk-DCLB4SF5.cjs} +40 -38
- package/dist/chunk-DCLB4SF5.cjs.map +1 -0
- package/dist/chunk-DHBMZYEQ.js +13 -0
- package/dist/chunk-DHBMZYEQ.js.map +1 -0
- package/dist/chunk-IYMC4Z7C.js +12 -0
- package/dist/chunk-IYMC4Z7C.js.map +1 -0
- package/dist/chunk-OGKNAGXF.cjs +14 -0
- package/dist/chunk-OGKNAGXF.cjs.map +1 -0
- package/dist/chunk-OHYFOP6B.js +12 -0
- package/dist/chunk-OHYFOP6B.js.map +1 -0
- package/dist/{chunk-TRE3FPWU.js → chunk-RGZTVH2G.js} +40 -38
- package/dist/chunk-RGZTVH2G.js.map +1 -0
- package/dist/chunk-VILYU6GB.cjs +14 -0
- package/dist/chunk-VILYU6GB.cjs.map +1 -0
- package/dist/chunk-Y6Z2IDP7.cjs +14 -0
- package/dist/chunk-Y6Z2IDP7.cjs.map +1 -0
- package/dist/factory.cjs +3 -2
- package/dist/factory.d.cts +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.js +2 -1
- package/dist/magic-string.es-KHKLXHFY.js +1273 -0
- package/dist/magic-string.es-KHKLXHFY.js.map +1 -0
- package/dist/magic-string.es-Y5KWYA2U.cjs +1279 -0
- package/dist/magic-string.es-Y5KWYA2U.cjs.map +1 -0
- package/dist/shareable-configs/auto.cjs +11 -0
- package/dist/shareable-configs/auto.cjs.map +1 -0
- package/dist/shareable-configs/auto.js +5 -0
- package/dist/shareable-configs/auto.js.map +1 -0
- package/dist/shareable-configs/none.cjs +11 -0
- package/dist/shareable-configs/none.cjs.map +1 -0
- package/dist/shareable-configs/none.d.cts +5 -0
- package/dist/shareable-configs/none.d.ts +5 -0
- package/dist/shareable-configs/none.js +5 -0
- package/dist/shareable-configs/none.js.map +1 -0
- package/dist/shareable-configs/sass-vue.cjs +11 -0
- package/dist/shareable-configs/sass-vue.cjs.map +1 -0
- package/dist/shareable-configs/sass-vue.d.cts +5 -0
- package/dist/shareable-configs/sass-vue.d.ts +5 -0
- package/dist/shareable-configs/sass-vue.js +5 -0
- package/dist/shareable-configs/sass-vue.js.map +1 -0
- package/dist/shareable-configs/sass.cjs +11 -0
- package/dist/shareable-configs/sass.cjs.map +1 -0
- package/dist/shareable-configs/sass.d.cts +5 -0
- package/dist/shareable-configs/sass.d.ts +5 -0
- package/dist/shareable-configs/sass.js +5 -0
- package/dist/shareable-configs/sass.js.map +1 -0
- package/dist/shareable-configs/shareable-configs.test.cjs +15579 -0
- package/dist/shareable-configs/shareable-configs.test.cjs.map +1 -0
- package/dist/shareable-configs/shareable-configs.test.d.cts +2 -0
- package/dist/shareable-configs/shareable-configs.test.d.ts +2 -0
- package/dist/shareable-configs/shareable-configs.test.js +15577 -0
- package/dist/shareable-configs/shareable-configs.test.js.map +1 -0
- package/dist/shareable-configs/tailwind-sass-vue.cjs +11 -0
- package/dist/shareable-configs/tailwind-sass-vue.cjs.map +1 -0
- package/dist/shareable-configs/tailwind-sass-vue.d.cts +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.d.ts +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.js +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.js.map +1 -0
- package/dist/shareable-configs/tailwind-sass.cjs +11 -0
- package/dist/shareable-configs/tailwind-sass.cjs.map +1 -0
- package/dist/shareable-configs/tailwind-sass.d.cts +5 -0
- package/dist/shareable-configs/tailwind-sass.d.ts +5 -0
- package/dist/shareable-configs/tailwind-sass.js +5 -0
- package/dist/shareable-configs/tailwind-sass.js.map +1 -0
- package/dist/shareable-configs/tailwind.cjs +11 -0
- package/dist/shareable-configs/tailwind.cjs.map +1 -0
- package/dist/shareable-configs/tailwind.d.cts +5 -0
- package/dist/shareable-configs/tailwind.d.ts +5 -0
- package/dist/shareable-configs/tailwind.js +5 -0
- package/dist/shareable-configs/tailwind.js.map +1 -0
- package/dist/shareable-configs/vue.cjs +11 -0
- package/dist/shareable-configs/vue.cjs.map +1 -0
- package/dist/shareable-configs/vue.d.cts +5 -0
- package/dist/shareable-configs/vue.d.ts +5 -0
- package/dist/shareable-configs/vue.js +5 -0
- package/dist/shareable-configs/vue.js.map +1 -0
- package/package.json +15 -5
- package/src/__tests__/describe-lint-and-fix.ts +8 -17
- package/src/__tests__/describe-rule-or-config.ts +19 -28
- package/src/__tests__/index.ts +0 -4
- package/src/configs/css.test.ts +1 -2
- package/src/configs/css.ts +5 -4
- package/src/configs/scss.test.ts +1 -2
- package/src/configs/scss.ts +3 -2
- package/src/configs/shared.test.ts +1 -2
- package/src/configs/vue.test.ts +2 -4
- package/src/configs/vue.ts +3 -3
- package/src/factory.test.ts +27 -13
- package/src/factory.ts +5 -6
- package/src/rules/at-rule-no-unknown.test.ts +11 -15
- package/src/rules/at-rule-no-unknown.ts +7 -7
- package/src/rules/declaration-block-no-redundant-longhand-properties.test.ts +2 -7
- package/src/rules/dollar-variable-pattern.test.ts +8 -7
- package/src/rules/function-no-unknown.test.ts +6 -9
- package/src/rules/function-no-unknown.ts +7 -7
- package/src/rules/order.test.ts +8 -11
- package/src/rules/order.ts +8 -8
- package/src/shareable-configs/auto.ts +10 -0
- package/src/shareable-configs/none.ts +7 -0
- package/src/shareable-configs/sass-vue.ts +7 -0
- package/src/shareable-configs/sass.ts +7 -0
- package/src/shareable-configs/shareable-configs.test.ts +21 -0
- package/src/shareable-configs/tailwind-sass-vue.ts +7 -0
- package/src/shareable-configs/tailwind-sass.ts +7 -0
- package/src/shareable-configs/tailwind.ts +7 -0
- package/src/shareable-configs/vue.ts +7 -0
- package/dist/chunk-FFVAQLBF.cjs.map +0 -1
- package/dist/chunk-TRE3FPWU.js.map +0 -1
- package/dist/index.cjs +0 -10
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/src/__tests__/mock.ts +0 -34
- package/src/__tests__/spy-on-utils-packages.ts +0 -14
- package/src/index.test.ts +0 -9
- package/src/index.ts +0 -3
- /package/dist/{index.d.cts → shareable-configs/auto.d.cts} +0 -0
- /package/dist/{index.d.ts → shareable-configs/auto.d.ts} +0 -0
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { assert, expectTypeOf } from 'vitest';
|
|
2
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
3
2
|
import {
|
|
4
3
|
dollarVariablePatternRule,
|
|
5
4
|
dollarVariablePatternSCSS,
|
|
6
5
|
} from './dollar-variable-pattern';
|
|
7
6
|
import { describeLintAndFix, describeRule, scss } from '~/__tests__';
|
|
8
7
|
|
|
9
|
-
describeRule(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
describeRule(
|
|
9
|
+
dollarVariablePatternRule, //
|
|
10
|
+
rule => {
|
|
11
|
+
assert(Array.isArray(rule));
|
|
12
|
+
assert(typeof rule[1] === 'object');
|
|
13
|
+
expectTypeOf(rule[1].message).toBeString();
|
|
14
|
+
},
|
|
15
|
+
);
|
|
14
16
|
|
|
15
17
|
describeLintAndFix(
|
|
16
|
-
utilsPackages,
|
|
17
18
|
{
|
|
18
19
|
extends: ['stylelint-config-standard-scss'],
|
|
19
20
|
rules: dollarVariablePatternSCSS,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assert, expect } from 'vitest';
|
|
2
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
3
2
|
import {
|
|
4
3
|
functionNoUnknown,
|
|
5
4
|
functionNoUnknownRule,
|
|
@@ -7,12 +6,11 @@ import {
|
|
|
7
6
|
import { describeLintAndFix, describeRule } from '~/__tests__';
|
|
8
7
|
|
|
9
8
|
describeRule(
|
|
10
|
-
utilsPackages,
|
|
11
9
|
functionNoUnknownRule,
|
|
12
10
|
[
|
|
13
|
-
{
|
|
14
|
-
{
|
|
15
|
-
{
|
|
11
|
+
{ tailwind: true, sass: false, vue: false, length: 2 },
|
|
12
|
+
{ tailwind: false, sass: true, vue: false, length: 1 },
|
|
13
|
+
{ tailwind: false, sass: false, vue: true, length: 1 },
|
|
16
14
|
],
|
|
17
15
|
(rule, options) => {
|
|
18
16
|
assert(Array.isArray(rule));
|
|
@@ -22,20 +20,19 @@ describeRule(
|
|
|
22
20
|
);
|
|
23
21
|
|
|
24
22
|
describeLintAndFix(
|
|
25
|
-
|
|
26
|
-
() => ({ rules: functionNoUnknown() }),
|
|
23
|
+
o => ({ rules: functionNoUnknown(o) }),
|
|
27
24
|
[
|
|
28
25
|
{
|
|
29
26
|
isError: true,
|
|
30
27
|
code: 'a { color: unknown(1); }',
|
|
31
28
|
},
|
|
32
29
|
{
|
|
33
|
-
|
|
30
|
+
tailwind: true,
|
|
34
31
|
isError: false,
|
|
35
32
|
code: 'a { color: theme(colors.blue.500); }',
|
|
36
33
|
},
|
|
37
34
|
{
|
|
38
|
-
|
|
35
|
+
vue: true,
|
|
39
36
|
isError: false,
|
|
40
37
|
code: 'a { color: v-bind(colors); }',
|
|
41
38
|
},
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
2
2
|
import { defineRule, defineRules } from '~/utils';
|
|
3
3
|
|
|
4
|
-
export function functionNoUnknownRule() {
|
|
4
|
+
export function functionNoUnknownRule(packages: Partial<Packages>) {
|
|
5
5
|
const ignoreFunctions = [
|
|
6
6
|
// https://tailwindcss.com/docs/functions-and-directives#functions
|
|
7
|
-
...(
|
|
7
|
+
...(packages.tailwind //
|
|
8
8
|
? ['theme', 'screen']
|
|
9
9
|
: []),
|
|
10
10
|
|
|
11
11
|
// https://sass-lang.com/documentation/modules/list
|
|
12
12
|
// https://sass-lang.com/documentation/modules/math
|
|
13
13
|
// https://sass-lang.com/documentation/modules/color
|
|
14
|
-
...(
|
|
14
|
+
...(packages.sass //
|
|
15
15
|
? [/^(list|math|color)\..+/]
|
|
16
16
|
: []),
|
|
17
17
|
|
|
18
18
|
// https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
|
|
19
|
-
...(
|
|
19
|
+
...(packages.vue //
|
|
20
20
|
? ['v-bind']
|
|
21
21
|
: []),
|
|
22
22
|
];
|
|
@@ -29,7 +29,7 @@ export function functionNoUnknownRule() {
|
|
|
29
29
|
]);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export const functionNoUnknown = () =>
|
|
32
|
+
export const functionNoUnknown = (packages: Partial<Packages>) =>
|
|
33
33
|
defineRules({
|
|
34
|
-
'function-no-unknown': functionNoUnknownRule(),
|
|
34
|
+
'function-no-unknown': functionNoUnknownRule(packages),
|
|
35
35
|
});
|
package/src/rules/order.test.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
2
1
|
import { assert, expect } from 'vitest';
|
|
3
2
|
import { order, orderRule } from './order';
|
|
4
3
|
import { describeLintAndFix, describeRule, scss } from '~/__tests__';
|
|
5
4
|
|
|
6
5
|
describeRule(
|
|
7
|
-
utilsPackages,
|
|
8
6
|
orderRule,
|
|
9
7
|
[
|
|
10
|
-
{
|
|
11
|
-
{
|
|
12
|
-
{
|
|
13
|
-
{
|
|
8
|
+
{ tailwind: false, sass: false, length: 8 },
|
|
9
|
+
{ tailwind: true, sass: false, length: 15 },
|
|
10
|
+
{ tailwind: false, sass: true, length: 16 },
|
|
11
|
+
{ tailwind: true, sass: true, length: 23 },
|
|
14
12
|
],
|
|
15
13
|
(rule, testCase) => {
|
|
16
14
|
assert(Array.isArray(rule));
|
|
@@ -24,15 +22,14 @@ describeRule(
|
|
|
24
22
|
);
|
|
25
23
|
|
|
26
24
|
describeLintAndFix(
|
|
27
|
-
|
|
28
|
-
async () => ({
|
|
25
|
+
o => ({
|
|
29
26
|
plugins: ['stylelint-order'],
|
|
30
|
-
rules: order(),
|
|
27
|
+
rules: order(o),
|
|
31
28
|
}),
|
|
32
29
|
[
|
|
33
30
|
{
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
tailwind: false,
|
|
32
|
+
sass: false,
|
|
36
33
|
code: scss`
|
|
37
34
|
a {
|
|
38
35
|
$variable: 1px;
|
package/src/rules/order.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
2
2
|
import { defineRule, defineRules } from '~/utils';
|
|
3
3
|
|
|
4
4
|
// https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md#options
|
|
@@ -84,14 +84,14 @@ const rules: PrimaryOption = [
|
|
|
84
84
|
'rules',
|
|
85
85
|
];
|
|
86
86
|
|
|
87
|
-
export const orderRule = () =>
|
|
87
|
+
export const orderRule = (packages: Partial<Packages>) =>
|
|
88
88
|
defineRule<PrimaryOption, SecondaryOptions>([
|
|
89
89
|
[
|
|
90
|
-
...(
|
|
91
|
-
...(
|
|
90
|
+
...(packages.sass ? atRuleScssImport : []),
|
|
91
|
+
...(packages.tailwind ? atRuleTailwind : []),
|
|
92
92
|
...variables,
|
|
93
|
-
...(
|
|
94
|
-
...(
|
|
93
|
+
...(packages.sass ? atRuleScss : []),
|
|
94
|
+
...(packages.tailwind ? atRuleTailwindV2 : []),
|
|
95
95
|
'at-rules',
|
|
96
96
|
'less-mixins',
|
|
97
97
|
'declarations',
|
|
@@ -102,7 +102,7 @@ export const orderRule = () =>
|
|
|
102
102
|
},
|
|
103
103
|
]);
|
|
104
104
|
|
|
105
|
-
export const order = () =>
|
|
105
|
+
export const order = (packages: Partial<Packages>) =>
|
|
106
106
|
defineRules({
|
|
107
|
-
'order/order': orderRule(),
|
|
107
|
+
'order/order': orderRule(packages),
|
|
108
108
|
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defineHasPackages } from '@culur/utils-packages';
|
|
2
|
+
import defineConfig from '~/factory';
|
|
3
|
+
|
|
4
|
+
const { hasTailwind, hasSass, hasVue } = defineHasPackages();
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
tailwind: hasTailwind(),
|
|
8
|
+
sass: hasSass(),
|
|
9
|
+
vue: hasVue(),
|
|
10
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { expectTypeOf, it } from 'vitest';
|
|
2
|
+
import type { Config } from 'stylelint';
|
|
3
|
+
import autoConfig from './auto';
|
|
4
|
+
import noneConfig from './none';
|
|
5
|
+
import sassVueConfig from './sass-vue';
|
|
6
|
+
import sassConfig from './sass';
|
|
7
|
+
import tailwindSassVueConfig from './tailwind-sass-vue';
|
|
8
|
+
import tailwindSassConfig from './tailwind-sass';
|
|
9
|
+
import tailwindConfig from './tailwind';
|
|
10
|
+
import vueConfig from './vue';
|
|
11
|
+
|
|
12
|
+
it('shareable configs', () => {
|
|
13
|
+
expectTypeOf(autoConfig).toEqualTypeOf<Config>();
|
|
14
|
+
expectTypeOf(noneConfig).toEqualTypeOf<Config>();
|
|
15
|
+
expectTypeOf(sassVueConfig).toEqualTypeOf<Config>();
|
|
16
|
+
expectTypeOf(sassConfig).toEqualTypeOf<Config>();
|
|
17
|
+
expectTypeOf(tailwindSassVueConfig).toEqualTypeOf<Config>();
|
|
18
|
+
expectTypeOf(tailwindSassConfig).toEqualTypeOf<Config>();
|
|
19
|
+
expectTypeOf(tailwindConfig).toEqualTypeOf<Config>();
|
|
20
|
+
expectTypeOf(vueConfig).toEqualTypeOf<Config>();
|
|
21
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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/index.cjs
DELETED
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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/src/__tests__/mock.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { vi } from 'vitest';
|
|
2
|
-
|
|
3
|
-
vi.mock('@culur/utils-packages');
|
|
4
|
-
|
|
5
|
-
export type UtilsPackages = Partial<{
|
|
6
|
-
hasTailwind: boolean;
|
|
7
|
-
hasSass: boolean;
|
|
8
|
-
hasVue: boolean;
|
|
9
|
-
}>;
|
|
10
|
-
|
|
11
|
-
export const defineMockUtilsPackages = (testCases: UtilsPackages[]) => {
|
|
12
|
-
const shouldMockUtilsPackages = testCases.some(
|
|
13
|
-
t =>
|
|
14
|
-
typeof t.hasTailwind === 'boolean' ||
|
|
15
|
-
typeof t.hasSass === 'boolean' ||
|
|
16
|
-
typeof t.hasVue === 'boolean',
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
return async ({ hasTailwind, hasSass, hasVue }: UtilsPackages) => {
|
|
20
|
-
if (shouldMockUtilsPackages) {
|
|
21
|
-
const utilsPackages = await import('@culur/utils-packages');
|
|
22
|
-
|
|
23
|
-
if (typeof hasTailwind === 'boolean') {
|
|
24
|
-
utilsPackages.hasTailwind = vi.fn().mockReturnValue(hasTailwind);
|
|
25
|
-
}
|
|
26
|
-
if (typeof hasSass === 'boolean') {
|
|
27
|
-
utilsPackages.hasSass = vi.fn().mockReturnValue(hasSass);
|
|
28
|
-
}
|
|
29
|
-
if (typeof hasVue === 'boolean') {
|
|
30
|
-
utilsPackages.hasVue = vi.fn().mockReturnValue(hasVue);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { vi } from 'vitest';
|
|
2
|
-
import type { UtilsPackages } from './mock';
|
|
3
|
-
|
|
4
|
-
export const hasValues = ['hasTailwind', 'hasSass', 'hasVue'] as const;
|
|
5
|
-
|
|
6
|
-
export function spyOnUtilsPackages(
|
|
7
|
-
utilsPackages: typeof import('@culur/utils-packages'),
|
|
8
|
-
options: UtilsPackages,
|
|
9
|
-
) {
|
|
10
|
-
for (const hasValue of hasValues) {
|
|
11
|
-
const value = options[hasValue] ?? false;
|
|
12
|
-
vi.spyOn(utilsPackages, hasValue).mockReturnValue(value);
|
|
13
|
-
}
|
|
14
|
-
}
|
package/src/index.test.ts
DELETED
package/src/index.ts
DELETED
|
File without changes
|
|
File without changes
|