@culur/config-stylelint 1.0.3 → 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 CHANGED
@@ -1,5 +1,39 @@
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
+
28
+ ## 1.0.4
29
+
30
+ ### Patch Changes
31
+
32
+ - 📦 Update `packageJson.homepage` & `packageJson.repository.directory` ([`95ddadc`](https://github.com/culur/culur/commit/95ddadc3dc22af28bb67ff55d02b366176e8685f)) ([@phamhongphuc](https://github.com/phamhongphuc)).
33
+
34
+ - 📦 Update workspace dependencies:
35
+ - [`@culur/utils-packages@1.0.4`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
36
+
3
37
  ## 1.0.3
4
38
 
5
39
  ### Patch Changes
@@ -28,8 +62,8 @@
28
62
  - `@vitest/ui@^2.0.2`
29
63
  - `vitest@^2.0.2`
30
64
 
31
- - 📦 Update workspace dependencies ([`48415cd`](https://github.com/culur/culur/commit/48415cd678f229f7de42a24141ebf6ab76aa2d19) [`8674db9`](https://github.com/culur/culur/commit/8674db941572a49cc16a9c53e981fed32e8aebcf) [`7353b5d`](https://github.com/culur/culur/commit/7353b5dcd35d81aa6c46a97eff3436e6e715a0f8)):
32
- - `@culur/utils-packages@1.0.3`
65
+ - 📦 Update workspace dependencies:
66
+ - [`@culur/utils-packages@1.0.3`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
33
67
 
34
68
  ## 1.0.2
35
69
 
@@ -49,8 +83,8 @@
49
83
  - `rimraf@^5.0.8`
50
84
  - `typescript@^5.5.3`
51
85
 
52
- - 📦 Update workspace dependencies ([`2a74486`](https://github.com/culur/culur/commit/2a744863a5ba8378906547713fde5033ea85939c) [`9a595fa`](https://github.com/culur/culur/commit/9a595fae5f9505e9afdc872a2f670c08bb53d419)):
53
- - `@culur/utils-packages@1.0.2`
86
+ - 📦 Update workspace dependencies:
87
+ - [`@culur/utils-packages@1.0.2`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
54
88
 
55
89
  ## 1.0.1
56
90
 
@@ -72,8 +106,8 @@
72
106
 
73
107
  - 📦 Update workspace dependencies to specific version ([`7f4eeae`](https://github.com/culur/culur/commit/7f4eeae4fa2c2dbed218675e8ce2cc91ca0bc4c3) [@phamhongphuc](https://github.com/phamhongphuc)).
74
108
 
75
- - 📦 Update workspace dependencies ([`74dbf2c`](https://github.com/culur/culur/commit/74dbf2c0050b30e9289aa7879c4cbb9ac103f4d3) [`7f4eeae`](https://github.com/culur/culur/commit/7f4eeae4fa2c2dbed218675e8ce2cc91ca0bc4c3)):
76
- - `@culur/utils-packages@1.0.1`
109
+ - 📦 Update workspace dependencies:
110
+ - [`@culur/utils-packages@1.0.1`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
77
111
 
78
112
  ## 1.0.0
79
113
 
@@ -83,5 +117,5 @@
83
117
 
84
118
  ### Patch Changes
85
119
 
86
- - 📦 Update workspace dependencies ([`e3492d2`](https://github.com/culur/culur/commit/e3492d20a29bee15bbabab0a60277ed36944cd7a)):
87
- - `@culur/utils-packages@1.0.0`
120
+ - 📦 Update workspace dependencies:
121
+ - [`@culur/utils-packages@1.0.0`](https://github.com/culur/culur/tree/main/packages/utils-packages#readme)
@@ -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"]}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var chunkFFVAQLBF_cjs = require('./chunk-FFVAQLBF.cjs');
4
+
5
+
6
+
7
+ module.exports = chunkFFVAQLBF_cjs.defineConfig;
8
+ //# sourceMappingURL=factory.cjs.map
9
+ //# sourceMappingURL=factory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"factory.cjs"}
@@ -0,0 +1,6 @@
1
+ import { Packages } from '@culur/utils-packages';
2
+ import { Config } from 'stylelint';
3
+
4
+ declare function defineConfig(options?: Partial<Packages>, config?: Config): Config;
5
+
6
+ export { defineConfig as default };
@@ -0,0 +1,6 @@
1
+ import { Packages } from '@culur/utils-packages';
2
+ import { Config } from 'stylelint';
3
+
4
+ declare function defineConfig(options?: Partial<Packages>, config?: Config): Config;
5
+
6
+ export { defineConfig as default };
@@ -0,0 +1,3 @@
1
+ export { defineConfig as default } from './chunk-TRE3FPWU.js';
2
+ //# sourceMappingURL=factory.js.map
3
+ //# sourceMappingURL=factory.js.map
@@ -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 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: 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=out.js.map
9
+ //# sourceMappingURL=index.cjs.map
190
10
  //# sourceMappingURL=index.cjs.map
@@ -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":";AACA,SAAS,WAAAA,UAAS,UAAAC,SAAQ,6BAA6B;;;ACDvD,SAAS,mBAAmB;;;ACSrB,IAAM,aAAa,CAIxB,SACG;AAEE,IAAM,cAAc,CAAiC,SAC1D;AAGK,IAAM,eAAe,IACvB,kBACA;AACH,QAAM,UAAU,cAAc,OAAO,CAAC,MAAmB,CAAC,CAAC,CAAC;AAE5D,SAAO;AAAA,IACL,SAAS,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,OAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAAA,IAC3D,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,OAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAAA,IAC/D,SAAS,QACN,QAAQ,OAAK,EAAE,WAAW,CAAC,CAAC,EAC5B,OAAO,CAAC,MAAM,OAAO,QAAQ,IAAI,YAAY,IAAI,MAAM,KAAK;AAAA,IAC/D,OAAO,QAAQ;AAAA,MACb,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,GAAG,OAAO,MAAM;AAAA,MAC5C,CAAC;AAAA,IACH;AAAA,IACA,GAAG,QAAQ;AAAA,MACT,CACE,KACA,EAAE,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,OAAO,IAAI,GAAG,OAAO,OAC5D,EAAE,GAAG,KAAK,GAAG,OAAO;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ADvCA,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,sBAAsB,MACjC,WAA4D;AAAA,EAC1D;AAAA,EACA,EAAE,eAAe,YAAY,IAAI,aAAa,CAAC,EAAE;AACnD,CAAC;AAEI,IAAM,qBAAqB,MAChC,YAAY;AAAA,EACV,sBAAsB,oBAAoB;AAC5C,CAAC;AAEI,IAAM,sBAAsB,MACjC,YAAY;AAAA,EACV,sBAAsB;AAAA,EACtB,2BAA2B,oBAAoB;AACjD,CAAC;;;AE9BI,IAAM,oDAAoD,WAG/D,CAAC,MAAM,EAAE,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC;AAE1C,IAAM,gDAAgD,YAAY;AAAA,EACvE,sDACE;AACJ,CAAC;;;ACVD,SAAS,SAAS,eAAAC,cAAa,cAAc;AAGtC,SAAS,wBAAwB;AACtC,QAAM,kBAAkB;AAAA;AAAA,IAEtB,GAAIA,aAAY,IACZ,CAAC,SAAS,QAAQ,IAClB,CAAC;AAAA;AAAA;AAAA;AAAA,IAKL,GAAI,QAAQ,IACR,CAAC,wBAAwB,IACzB,CAAC;AAAA;AAAA,IAGL,GAAI,OAAO,IACP,CAAC,QAAQ,IACT,CAAC;AAAA,EACP;AAEA,SAAO,WAA+D;AAAA,IACpE;AAAA,IACA,gBAAgB,SAAS,IACrB,EAAE,gBAAgB,IAClB,EAAE,iBAAiB,OAAU;AAAA,EACnC,CAAC;AACH;AAEO,IAAM,oBAAoB,MAC/B,YAAY;AAAA,EACV,uBAAuB,sBAAsB;AAC/C,CAAC;;;AClCH,SAAS,WAAAF,UAAS,eAAAE,oBAAmB;AAmCrC,IAAM,mBAAkC;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,MAAM;AAAA,EAC/B,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,EACnC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AACA,IAAM,aAA4B;AAAA,EAChC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,SAAS;AAAA,EAClC,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,EACnC,EAAE,MAAM,WAAW,MAAM,UAAU;AACrC;AAEA,IAAM,YAA2B;AAAA,EAC/B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAKA,IAAM,iBAAgC;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AAOA,IAAM,mBAAkC;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,aAAa;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AAKA,IAAM,QAAuB;AAAA,EAC3B;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA;AACF;AAEO,IAAM,YAAY,MACvB,WAA4C;AAAA,EAC1C;AAAA,IACE,GAAIF,SAAQ,IAAI,mBAAmB,CAAC;AAAA,IACpC,GAAIE,aAAY,IAAI,iBAAiB,CAAC;AAAA,IACtC,GAAG;AAAA,IACH,GAAIF,SAAQ,IAAI,aAAa,CAAC;AAAA,IAC9B,GAAIE,aAAY,IAAI,mBAAmB,CAAC;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,EACf;AACF,CAAC;AAEI,IAAM,QAAQ,MACnB,YAAY;AAAA,EACV,eAAe,UAAU;AAC3B,CAAC;;;ACrGI,IAAM,YAAY,OAAe;AAAA,EACtC,SAAS,CAAC,6BAA6B,8BAA8B;AAAA,EACrE,SAAS,CAAC,mBAAmB,gCAAgC;AAAA,EAC7D,OAAO;AAAA,IACL,GAAG,mBAAmB;AAAA,IACtB,GAAG;AAAA,IACH,GAAG,kBAAkB;AAAA,IACrB,GAAG,MAAM;AAAA,EACX;AACF;;;ACRO,IAAM,4BAA4B,WAGvC;AAAA,EACA;AAAA,EACA,EAAE,SAAS,qCAAqC;AAClD,CAAC;AAEM,IAAM,4BAA4B,YAAY;AAAA,EACnD,gCAAgC;AAClC,CAAC;;;ACbM,IAAM,aAAa,OAAe;AAAA,EACvC,SAAS,CAAC,gCAAgC;AAAA,EAC1C,OAAO;AAAA,IACL,GAAG,oBAAoB;AAAA,IACvB,GAAG;AAAA,EACL;AACF;;;ACRO,IAAM,eAAe,OAAe;AAAA,EACzC,SAAS,CAAC,uBAAuB;AACnC;;;ACJA,SAAS,WAAAF,gBAAe;AAGjB,IAAM,YAAY,OAAe;AAAA,EACtC,SAAS;AAAA,IACPA,SAAQ,IACJ,uCACA;AAAA,EACN;AACF;;;AVAe,SAAR,aACL,SACA,QACQ;AACR,wBAAsB,OAAO;AAE7B,SAAO;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,IACVA,SAAQ,KAAK,WAAW;AAAA,IACxBC,QAAO,KAAK,UAAU;AAAA,IACtB;AAAA,EACF;AACF;;;AWpBA,IAAO,cAAQ,aAAa","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 { 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: 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=out.js.map
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":";AACA,SAAS,WAAAA,UAAS,UAAAC,SAAQ,6BAA6B;;;ACDvD,SAAS,mBAAmB;;;ACSrB,IAAM,aAAa,CAIxB,SACG;AAEE,IAAM,cAAc,CAAiC,SAC1D;AAGK,IAAM,eAAe,IACvB,kBACA;AACH,QAAM,UAAU,cAAc,OAAO,CAAC,MAAmB,CAAC,CAAC,CAAC;AAE5D,SAAO;AAAA,IACL,SAAS,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,OAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAAA,IAC3D,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,OAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAAA,IAC/D,SAAS,QACN,QAAQ,OAAK,EAAE,WAAW,CAAC,CAAC,EAC5B,OAAO,CAAC,MAAM,OAAO,QAAQ,IAAI,YAAY,IAAI,MAAM,KAAK;AAAA,IAC/D,OAAO,QAAQ;AAAA,MACb,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,GAAG,OAAO,MAAM;AAAA,MAC5C,CAAC;AAAA,IACH;AAAA,IACA,GAAG,QAAQ;AAAA,MACT,CACE,KACA,EAAE,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI,OAAO,IAAI,GAAG,OAAO,OAC5D,EAAE,GAAG,KAAK,GAAG,OAAO;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ADvCA,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,sBAAsB,MACjC,WAA4D;AAAA,EAC1D;AAAA,EACA,EAAE,eAAe,YAAY,IAAI,aAAa,CAAC,EAAE;AACnD,CAAC;AAEI,IAAM,qBAAqB,MAChC,YAAY;AAAA,EACV,sBAAsB,oBAAoB;AAC5C,CAAC;AAEI,IAAM,sBAAsB,MACjC,YAAY;AAAA,EACV,sBAAsB;AAAA,EACtB,2BAA2B,oBAAoB;AACjD,CAAC;;;AE9BI,IAAM,oDAAoD,WAG/D,CAAC,MAAM,EAAE,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC;AAE1C,IAAM,gDAAgD,YAAY;AAAA,EACvE,sDACE;AACJ,CAAC;;;ACVD,SAAS,SAAS,eAAAC,cAAa,cAAc;AAGtC,SAAS,wBAAwB;AACtC,QAAM,kBAAkB;AAAA;AAAA,IAEtB,GAAIA,aAAY,IACZ,CAAC,SAAS,QAAQ,IAClB,CAAC;AAAA;AAAA;AAAA;AAAA,IAKL,GAAI,QAAQ,IACR,CAAC,wBAAwB,IACzB,CAAC;AAAA;AAAA,IAGL,GAAI,OAAO,IACP,CAAC,QAAQ,IACT,CAAC;AAAA,EACP;AAEA,SAAO,WAA+D;AAAA,IACpE;AAAA,IACA,gBAAgB,SAAS,IACrB,EAAE,gBAAgB,IAClB,EAAE,iBAAiB,OAAU;AAAA,EACnC,CAAC;AACH;AAEO,IAAM,oBAAoB,MAC/B,YAAY;AAAA,EACV,uBAAuB,sBAAsB;AAC/C,CAAC;;;AClCH,SAAS,WAAAF,UAAS,eAAAE,oBAAmB;AAmCrC,IAAM,mBAAkC;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,MAAM;AAAA,EAC/B,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,EACnC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AACA,IAAM,aAA4B;AAAA,EAChC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,SAAS;AAAA,EAClC,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,EACnC,EAAE,MAAM,WAAW,MAAM,UAAU;AACrC;AAEA,IAAM,YAA2B;AAAA,EAC/B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAKA,IAAM,iBAAgC;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,EACjC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AAOA,IAAM,mBAAkC;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,EACpC,EAAE,MAAM,WAAW,MAAM,aAAa;AAAA,EACtC,EAAE,MAAM,WAAW,MAAM,SAAS;AACpC;AAKA,IAAM,QAAuB;AAAA,EAC3B;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA;AACF;AAEO,IAAM,YAAY,MACvB,WAA4C;AAAA,EAC1C;AAAA,IACE,GAAIF,SAAQ,IAAI,mBAAmB,CAAC;AAAA,IACpC,GAAIE,aAAY,IAAI,iBAAiB,CAAC;AAAA,IACtC,GAAG;AAAA,IACH,GAAIF,SAAQ,IAAI,aAAa,CAAC;AAAA,IAC9B,GAAIE,aAAY,IAAI,mBAAmB,CAAC;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,EACf;AACF,CAAC;AAEI,IAAM,QAAQ,MACnB,YAAY;AAAA,EACV,eAAe,UAAU;AAC3B,CAAC;;;ACrGI,IAAM,YAAY,OAAe;AAAA,EACtC,SAAS,CAAC,6BAA6B,8BAA8B;AAAA,EACrE,SAAS,CAAC,mBAAmB,gCAAgC;AAAA,EAC7D,OAAO;AAAA,IACL,GAAG,mBAAmB;AAAA,IACtB,GAAG;AAAA,IACH,GAAG,kBAAkB;AAAA,IACrB,GAAG,MAAM;AAAA,EACX;AACF;;;ACRO,IAAM,4BAA4B,WAGvC;AAAA,EACA;AAAA,EACA,EAAE,SAAS,qCAAqC;AAClD,CAAC;AAEM,IAAM,4BAA4B,YAAY;AAAA,EACnD,gCAAgC;AAClC,CAAC;;;ACbM,IAAM,aAAa,OAAe;AAAA,EACvC,SAAS,CAAC,gCAAgC;AAAA,EAC1C,OAAO;AAAA,IACL,GAAG,oBAAoB;AAAA,IACvB,GAAG;AAAA,EACL;AACF;;;ACRO,IAAM,eAAe,OAAe;AAAA,EACzC,SAAS,CAAC,uBAAuB;AACnC;;;ACJA,SAAS,WAAAF,gBAAe;AAGjB,IAAM,YAAY,OAAe;AAAA,EACtC,SAAS;AAAA,IACPA,SAAQ,IACJ,uCACA;AAAA,EACN;AACF;;;AVAe,SAAR,aACL,SACA,QACQ;AACR,wBAAsB,OAAO;AAE7B,SAAO;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,IACVA,SAAQ,KAAK,WAAW;AAAA,IACxBC,QAAO,KAAK,UAAU;AAAA,IACtB;AAAA,EACF;AACF;;;AWpBA,IAAO,cAAQ,aAAa","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",
3
+ "version": "1.0.5",
4
4
  "description": "Culur's stylelint configuration",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -13,7 +13,7 @@
13
13
  "bugs": {
14
14
  "url": "https://github.com/culur/culur/issues"
15
15
  },
16
- "homepage": "https://github.com/culur/culur#readme",
16
+ "homepage": "https://github.com/culur/culur/tree/main/packages/config-stylelint#readme",
17
17
  "author": "culur <culur.net@gmail.com>",
18
18
  "license": "MIT",
19
19
  "keywords": [
@@ -66,33 +66,33 @@
66
66
  "node": ">=20"
67
67
  },
68
68
  "dependencies": {
69
- "@culur/utils-packages": "1.0.3",
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.4.1",
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.1",
81
- "@culur/config-typescript": "1.0.2",
82
- "@culur/config-vite": "1.0.4",
83
- "@types/node": "^20.14.10",
84
- "@vitest/coverage-v8": "^2.0.2",
85
- "@vitest/ui": "^2.0.2",
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.39",
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.7.0",
93
- "tsup": "^8.1.0",
94
- "typescript": "^5.5.3",
95
- "vitest": "^2.0.2"
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?: (string | RegExp)[] }>([
24
+ return defineRule<boolean, { ignoreFunctions: (string | RegExp)[] }>([
25
25
  true,
26
- ignoreFunctions.length > 0
26
+ ignoreFunctions.length > 0 //
27
27
  ? { ignoreFunctions }
28
- : { ignoreFunctions: undefined },
28
+ : { ignoreFunctions: [] },
29
29
  ]);
30
30
  }
31
31