eslint-plugin-better-tailwindcss 4.3.1 → 4.4.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/README.md +35 -0
- package/lib/api/defaults.d.ts +15 -0
- package/lib/api/defaults.d.ts.map +1 -1
- package/lib/api/types.d.ts +7 -2
- package/lib/api/types.d.ts.map +1 -1
- package/lib/api/types.js +4 -1
- package/lib/api/types.js.map +1 -1
- package/lib/async-utils/escape.d.ts.map +1 -1
- package/lib/async-utils/escape.js +2 -1
- package/lib/async-utils/escape.js.map +1 -1
- package/lib/async-utils/fs.d.ts +1 -1
- package/lib/async-utils/fs.d.ts.map +1 -1
- package/lib/async-utils/fs.js +2 -6
- package/lib/async-utils/fs.js.map +1 -1
- package/lib/async-utils/operations.d.ts +2 -0
- package/lib/async-utils/operations.d.ts.map +1 -1
- package/lib/async-utils/regex.d.ts +3 -0
- package/lib/async-utils/regex.d.ts.map +1 -0
- package/lib/async-utils/regex.js +32 -0
- package/lib/async-utils/regex.js.map +1 -0
- package/lib/async-utils/worker.d.ts.map +1 -1
- package/lib/async-utils/worker.js +3 -2
- package/lib/async-utils/worker.js.map +1 -1
- package/lib/configs/config.d.ts +2921 -33
- package/lib/configs/config.d.ts.map +1 -1
- package/lib/configs/config.js +4 -0
- package/lib/configs/config.js.map +1 -1
- package/lib/options/callees/cc.js +2 -2
- package/lib/options/callees/cc.js.map +1 -1
- package/lib/options/callees/clb.js +3 -3
- package/lib/options/callees/clb.js.map +1 -1
- package/lib/options/callees/clsx.js +2 -2
- package/lib/options/callees/clsx.js.map +1 -1
- package/lib/options/callees/cn.js +2 -2
- package/lib/options/callees/cn.js.map +1 -1
- package/lib/options/callees/cnb.js +2 -2
- package/lib/options/callees/cnb.js.map +1 -1
- package/lib/options/callees/ctl.js +1 -1
- package/lib/options/callees/ctl.js.map +1 -1
- package/lib/options/callees/cva.js +3 -3
- package/lib/options/callees/cva.js.map +1 -1
- package/lib/options/callees/cx.js +2 -2
- package/lib/options/callees/cx.js.map +1 -1
- package/lib/options/callees/dcnb.js +2 -2
- package/lib/options/callees/dcnb.js.map +1 -1
- package/lib/options/callees/objstr.js +2 -2
- package/lib/options/callees/objstr.js.map +1 -1
- package/lib/options/callees/tv.js +6 -6
- package/lib/options/callees/tv.js.map +1 -1
- package/lib/options/callees/twJoin.js +1 -1
- package/lib/options/callees/twJoin.js.map +1 -1
- package/lib/options/callees/twMerge.js +1 -1
- package/lib/options/callees/twMerge.js.map +1 -1
- package/lib/options/default-options.d.ts +31 -1
- package/lib/options/default-options.d.ts.map +1 -1
- package/lib/options/default-options.js +9 -3
- package/lib/options/default-options.js.map +1 -1
- package/lib/options/descriptions.d.ts +308 -2
- package/lib/options/descriptions.d.ts.map +1 -1
- package/lib/options/descriptions.js +3 -2
- package/lib/options/descriptions.js.map +1 -1
- package/lib/options/migrate.js +29 -12
- package/lib/options/migrate.js.map +1 -1
- package/lib/options/schemas/common.d.ts +4 -0
- package/lib/options/schemas/common.d.ts.map +1 -1
- package/lib/options/schemas/common.js +3 -0
- package/lib/options/schemas/common.js.map +1 -1
- package/lib/options/schemas/selectors.d.ts +806 -5
- package/lib/options/schemas/selectors.d.ts.map +1 -1
- package/lib/options/schemas/selectors.js +42 -11
- package/lib/options/schemas/selectors.js.map +1 -1
- package/lib/options/tags/twc.d.ts +36 -0
- package/lib/options/tags/twc.d.ts.map +1 -0
- package/lib/options/tags/twc.js +26 -0
- package/lib/options/tags/twc.js.map +1 -0
- package/lib/options/tags/twx.d.ts +36 -0
- package/lib/options/tags/twx.d.ts.map +1 -0
- package/lib/options/tags/twx.js +26 -0
- package/lib/options/tags/twx.js.map +1 -0
- package/lib/parsers/angular.d.ts.map +1 -1
- package/lib/parsers/angular.js +54 -12
- package/lib/parsers/angular.js.map +1 -1
- package/lib/parsers/es.d.ts +11 -2
- package/lib/parsers/es.d.ts.map +1 -1
- package/lib/parsers/es.js +270 -58
- package/lib/parsers/es.js.map +1 -1
- package/lib/parsers/svelte.d.ts.map +1 -1
- package/lib/parsers/svelte.js +7 -64
- package/lib/parsers/svelte.js.map +1 -1
- package/lib/parsers/vue.d.ts.map +1 -1
- package/lib/parsers/vue.js +6 -65
- package/lib/parsers/vue.js.map +1 -1
- package/lib/rules/enforce-canonical-classes.d.ts +172 -2
- package/lib/rules/enforce-canonical-classes.d.ts.map +1 -1
- package/lib/rules/enforce-consistent-class-order.d.ts +172 -2
- package/lib/rules/enforce-consistent-class-order.d.ts.map +1 -1
- package/lib/rules/enforce-consistent-class-order.js +26 -8
- package/lib/rules/enforce-consistent-class-order.js.map +1 -1
- package/lib/rules/enforce-consistent-important-position.d.ts +172 -2
- package/lib/rules/enforce-consistent-important-position.d.ts.map +1 -1
- package/lib/rules/enforce-consistent-important-position.js +2 -1
- package/lib/rules/enforce-consistent-important-position.js.map +1 -1
- package/lib/rules/enforce-consistent-line-wrapping.d.ts +172 -2
- package/lib/rules/enforce-consistent-line-wrapping.d.ts.map +1 -1
- package/lib/rules/enforce-consistent-line-wrapping.js +30 -0
- package/lib/rules/enforce-consistent-line-wrapping.js.map +1 -1
- package/lib/rules/enforce-consistent-variable-syntax.d.ts +172 -2
- package/lib/rules/enforce-consistent-variable-syntax.d.ts.map +1 -1
- package/lib/rules/enforce-consistent-variable-syntax.js +3 -2
- package/lib/rules/enforce-consistent-variable-syntax.js.map +1 -1
- package/lib/rules/enforce-consistent-variant-order.d.ts +426 -0
- package/lib/rules/enforce-consistent-variant-order.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-variant-order.js +75 -0
- package/lib/rules/enforce-consistent-variant-order.js.map +1 -0
- package/lib/rules/enforce-logical-properties.d.ts +426 -0
- package/lib/rules/enforce-logical-properties.d.ts.map +1 -0
- package/lib/rules/enforce-logical-properties.js +118 -0
- package/lib/rules/enforce-logical-properties.js.map +1 -0
- package/lib/rules/enforce-shorthand-classes.d.ts +172 -2
- package/lib/rules/enforce-shorthand-classes.d.ts.map +1 -1
- package/lib/rules/no-conflicting-classes.d.ts +172 -2
- package/lib/rules/no-conflicting-classes.d.ts.map +1 -1
- package/lib/rules/no-deprecated-classes.d.ts +173 -3
- package/lib/rules/no-deprecated-classes.d.ts.map +1 -1
- package/lib/rules/no-duplicate-classes.d.ts +172 -2
- package/lib/rules/no-duplicate-classes.d.ts.map +1 -1
- package/lib/rules/no-restricted-classes.d.ts +172 -2
- package/lib/rules/no-restricted-classes.d.ts.map +1 -1
- package/lib/rules/no-unknown-classes.d.ts +172 -2
- package/lib/rules/no-unknown-classes.d.ts.map +1 -1
- package/lib/rules/no-unknown-classes.js +8 -7
- package/lib/rules/no-unknown-classes.js.map +1 -1
- package/lib/rules/no-unnecessary-whitespace.d.ts +172 -2
- package/lib/rules/no-unnecessary-whitespace.d.ts.map +1 -1
- package/lib/rules/no-unnecessary-whitespace.js +32 -0
- package/lib/rules/no-unnecessary-whitespace.js.map +1 -1
- package/lib/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -1
- package/lib/tailwindcss/dissect-classes.async.v3.js +4 -3
- package/lib/tailwindcss/dissect-classes.async.v3.js.map +1 -1
- package/lib/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -1
- package/lib/tailwindcss/dissect-classes.async.v4.js +6 -5
- package/lib/tailwindcss/dissect-classes.async.v4.js.map +1 -1
- package/lib/tailwindcss/tailwind.async.worker.v3.js +5 -0
- package/lib/tailwindcss/tailwind.async.worker.v3.js.map +1 -1
- package/lib/tailwindcss/tailwind.async.worker.v4.js +6 -0
- package/lib/tailwindcss/tailwind.async.worker.v4.js.map +1 -1
- package/lib/tailwindcss/variant-order.async.v3.d.ts +3 -0
- package/lib/tailwindcss/variant-order.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.async.v3.js +4 -0
- package/lib/tailwindcss/variant-order.async.v3.js.map +1 -0
- package/lib/tailwindcss/variant-order.async.v4.d.ts +3 -0
- package/lib/tailwindcss/variant-order.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.async.v4.js +18 -0
- package/lib/tailwindcss/variant-order.async.v4.js.map +1 -0
- package/lib/tailwindcss/variant-order.d.ts +11 -0
- package/lib/tailwindcss/variant-order.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.js +15 -0
- package/lib/tailwindcss/variant-order.js.map +1 -0
- package/lib/types/ast.d.ts +2 -0
- package/lib/types/ast.d.ts.map +1 -1
- package/lib/types/rule.d.ts +27 -5
- package/lib/types/rule.d.ts.map +1 -1
- package/lib/types/rule.js +7 -0
- package/lib/types/rule.js.map +1 -1
- package/lib/utils/context.js +5 -5
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/matchers.d.ts +2 -4
- package/lib/utils/matchers.d.ts.map +1 -1
- package/lib/utils/matchers.js +61 -40
- package/lib/utils/matchers.js.map +1 -1
- package/lib/utils/project.d.ts +4 -0
- package/lib/utils/project.d.ts.map +1 -0
- package/lib/utils/project.js +22 -0
- package/lib/utils/project.js.map +1 -0
- package/lib/utils/rule.d.ts +1 -1
- package/lib/utils/rule.d.ts.map +1 -1
- package/lib/utils/rule.js +49 -11
- package/lib/utils/rule.js.map +1 -1
- package/lib/utils/utils.d.ts.map +1 -1
- package/lib/utils/utils.js +6 -5
- package/lib/utils/utils.js.map +1 -1
- package/package.json +20 -19
package/README.md
CHANGED
|
@@ -129,9 +129,11 @@ The table below lists all available rules, the Tailwind CSS versions they suppor
|
|
|
129
129
|
| :--- | :--- | :---: | :---: | :---: | :---: |
|
|
130
130
|
| [enforce-consistent-line-wrapping](docs/rules/enforce-consistent-line-wrapping.md) | Enforce consistent line wrapping for tailwind classes. | ✔ | ✔ | ✔ | ✔ |
|
|
131
131
|
| [enforce-consistent-class-order](docs/rules/enforce-consistent-class-order.md) | Enforce a consistent order for tailwind classes. | ✔ | ✔ | ✔ | ✔ |
|
|
132
|
+
| [enforce-consistent-variant-order](docs/rules/enforce-consistent-variant-order.md) | Enforce a consistent variant order for tailwind classes. | | ✔ | | ✔ |
|
|
132
133
|
| [enforce-consistent-variable-syntax](docs/rules/enforce-consistent-variable-syntax.md) | Enforce consistent variable syntax. | ✔ | ✔ | | ✔ |
|
|
133
134
|
| [enforce-consistent-important-position](docs/rules/enforce-consistent-important-position.md) | Enforce consistent position of the important modifier. | ✔ | ✔ | | ✔ |
|
|
134
135
|
| [enforce-shorthand-classes](docs/rules/enforce-shorthand-classes.md) | Enforce shorthand class names. | ✔ | ✔ | | ✔ |
|
|
136
|
+
| [enforce-logical-properties](docs/rules/enforce-logical-properties.md) | Enforce logical property class names. | ✔ | ✔ | | ✔ |
|
|
135
137
|
| [enforce-canonical-classes](docs/rules/enforce-canonical-classes.md) | Enforce canonical class names. | | ✔ | ✔ | ✔ |
|
|
136
138
|
| [no-duplicate-classes](docs/rules/no-duplicate-classes.md) | Remove duplicate classes. | ✔ | ✔ | ✔ | ✔ |
|
|
137
139
|
| [no-deprecated-classes](docs/rules/no-deprecated-classes.md) | Remove deprecated classes. | | ✔ | ✔ | ✔ |
|
|
@@ -162,6 +164,7 @@ This plugin is pre-configured to lint tailwind classes for the most popular util
|
|
|
162
164
|
- [cnbuilder](https://github.com/xobotyi/cnbuilder): `cnb`
|
|
163
165
|
- [classnames template literals](https://github.com/netlify/classnames-template-literals): `ctl`
|
|
164
166
|
- [obj str](https://github.com/lukeed/obj-str): `objstr`
|
|
167
|
+
- [react-twc](https://github.com/gregberge/twc): `twc` · `twx`
|
|
165
168
|
|
|
166
169
|
<br/>
|
|
167
170
|
<br/>
|
|
@@ -174,6 +177,38 @@ See the [Advanced configuration guide](./docs/configuration/advanced.md) to lear
|
|
|
174
177
|
<br/>
|
|
175
178
|
<br/>
|
|
176
179
|
|
|
180
|
+
### Monorepo setup
|
|
181
|
+
|
|
182
|
+
In monorepos, linting is often started from the repository root while each package has its own Tailwind setup.
|
|
183
|
+
You can configure `settings["better-tailwindcss"].cwd` per file group so the plugin resolves `tailwindcss` and config files from the correct project directory.
|
|
184
|
+
|
|
185
|
+
```js
|
|
186
|
+
// eslint.config.js
|
|
187
|
+
export default [
|
|
188
|
+
{
|
|
189
|
+
files: ["packages/website/**/*.{js,jsx,cjs,mjs,ts,tsx}"],
|
|
190
|
+
settings: {
|
|
191
|
+
"better-tailwindcss": {
|
|
192
|
+
cwd: "./packages/website"
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
files: ["packages/app/**/*.{js,jsx,cjs,mjs,ts,tsx}"],
|
|
198
|
+
settings: {
|
|
199
|
+
"better-tailwindcss": {
|
|
200
|
+
cwd: "./packages/app"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
];
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
See [Settings](./docs/settings/settings.md#cwd) for more details.
|
|
208
|
+
|
|
209
|
+
<br/>
|
|
210
|
+
<br/>
|
|
211
|
+
|
|
177
212
|
### Editor configuration
|
|
178
213
|
|
|
179
214
|
#### VSCode
|
package/lib/api/defaults.d.ts
CHANGED
|
@@ -66,6 +66,21 @@ export declare function getDefaultSelectors(): ({
|
|
|
66
66
|
type: import("../types/rule.js").MatcherType.ObjectValue;
|
|
67
67
|
}[];
|
|
68
68
|
name: string;
|
|
69
|
+
} | {
|
|
70
|
+
kind: SelectorKind.Tag;
|
|
71
|
+
path: string;
|
|
72
|
+
} | {
|
|
73
|
+
kind: SelectorKind.Callee;
|
|
74
|
+
match: ({
|
|
75
|
+
type: import("../types/rule.js").MatcherType.String;
|
|
76
|
+
match?: never;
|
|
77
|
+
} | {
|
|
78
|
+
match: {
|
|
79
|
+
type: import("../types/rule.js").MatcherType.String;
|
|
80
|
+
}[];
|
|
81
|
+
type: import("../types/rule.js").MatcherType.AnonymousFunctionReturn;
|
|
82
|
+
})[];
|
|
83
|
+
path: string;
|
|
69
84
|
} | {
|
|
70
85
|
kind: SelectorKind.Attribute;
|
|
71
86
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/api/defaults.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAQhE;;GAEG;AACH,wBAAgB,iBAAiB;;;;;;;;SAIhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB;;;;;;;;SAInC;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;SAIlC;AAED;;GAEG;AACH,wBAAgB,cAAc;;;;;;;;SAI7B;AAED,wBAAgB,mBAAmB
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/api/defaults.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAQhE;;GAEG;AACH,wBAAgB,iBAAiB;;;;;;;;SAIhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB;;;;;;;;SAInC;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;SAIlC;AAED;;GAEG;AACH,wBAAgB,cAAc;;;;;;;;SAI7B;AAED,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAElC"}
|
package/lib/api/types.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export { MatcherType
|
|
1
|
+
export type { ArgumentTarget, CallTarget } from "../types/rule.js";
|
|
2
|
+
export { MatcherType } from "../types/rule.js";
|
|
3
|
+
export type { Matcher, ObjectKeyMatcher, ObjectValueMatcher, StringMatcher } from "../types/rule.js";
|
|
4
|
+
export { SelectorKind } from "../types/rule.js";
|
|
5
|
+
export type { AttributeSelector, CalleeSelector, Selector, TagSelector, VariableSelector } from "../types/rule.js";
|
|
6
|
+
export type { SelectorAnonymousFunctionReturnMatcher, SelectorMatcher, SelectorObjectKeyMatcher, SelectorObjectValueMatcher, SelectorStringMatcher } from "../types/rule.js";
|
|
7
|
+
export type { Regex, Selectors } from "../types/rule.js";
|
|
3
8
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/api/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGrH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACnI,YAAY,EAAE,sCAAsC,EAAE,eAAe,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG7L,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"}
|
package/lib/api/types.js
CHANGED
package/lib/api/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAGA,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/async-utils/escape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/async-utils/escape.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/async-utils/escape.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/async-utils/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC"}
|
package/lib/async-utils/fs.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function findPathRecursive(cwd: string, startDirectory: string, entries: string[]): string | undefined;
|
|
2
2
|
export declare function getModifiedDate(filePath: string): Date;
|
|
3
3
|
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/async-utils/fs.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/async-utils/fs.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAqB5G;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOtD"}
|
package/lib/async-utils/fs.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { existsSync, statSync } from "node:fs";
|
|
2
2
|
import { basename, dirname, resolve } from "node:path";
|
|
3
|
-
export function
|
|
4
|
-
const resolvedPaths =
|
|
3
|
+
export function findPathRecursive(cwd, startDirectory, entries) {
|
|
4
|
+
const resolvedPaths = entries.map(p => resolve(startDirectory, p));
|
|
5
5
|
for (let resolvedPath = resolvedPaths.shift(); resolvedPath !== undefined; resolvedPath = resolvedPaths.shift()) {
|
|
6
6
|
if (existsSync(resolvedPath)) {
|
|
7
|
-
const stat = statSync(resolvedPath);
|
|
8
|
-
if (!stat.isFile()) {
|
|
9
|
-
continue;
|
|
10
|
-
}
|
|
11
7
|
return resolvedPath;
|
|
12
8
|
}
|
|
13
9
|
const fileName = basename(resolvedPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/async-utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGvD,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/async-utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGvD,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,cAAsB,EAAE,OAAiB;IACtF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,KAAI,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,YAAY,KAAK,SAAS,EAAE,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,EAAC,CAAC;QAE9G,IAAG,UAAU,CAAC,YAAY,CAAC,EAAC,CAAC;YAC3B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAG,eAAe,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG,EAAC,CAAC;YACrD,SAAS;QACX,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -5,6 +5,7 @@ import type { GetCustomComponentClasses } from "../tailwindcss/custom-component-
|
|
|
5
5
|
import type { GetDissectedClasses } from "../tailwindcss/dissect-classes.js";
|
|
6
6
|
import type { GetPrefix } from "../tailwindcss/prefix.js";
|
|
7
7
|
import type { GetUnknownClasses } from "../tailwindcss/unknown-classes.js";
|
|
8
|
+
import type { GetVariantOrder } from "../tailwindcss/variant-order.js";
|
|
8
9
|
import type { Async } from "../types/async.js";
|
|
9
10
|
export interface Operations {
|
|
10
11
|
getCanonicalClasses: Async<GetCanonicalClasses>;
|
|
@@ -14,6 +15,7 @@ export interface Operations {
|
|
|
14
15
|
getDissectedClasses: Async<GetDissectedClasses>;
|
|
15
16
|
getPrefix: Async<GetPrefix>;
|
|
16
17
|
getUnknownClasses: Async<GetUnknownClasses>;
|
|
18
|
+
getVariantOrder: Async<GetVariantOrder>;
|
|
17
19
|
}
|
|
18
20
|
export type OperationHandlers = {
|
|
19
21
|
[Operation in keyof Operations]: (...args: Parameters<Operations[Operation]>) => ReturnType<Operations[Operation]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/async-utils/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/async-utils/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5C,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACzC;AAGD,MAAM,MAAM,iBAAiB,GAAG;KAC7B,SAAS,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;CACnH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../src/async-utils/regex.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AACtD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const REGEX_CACHE = new Map();
|
|
2
|
+
const MAX_CACHE_SIZE = 500;
|
|
3
|
+
function getRegexCacheKey(pattern, flags) {
|
|
4
|
+
return `${flags}\u0000${pattern}`;
|
|
5
|
+
}
|
|
6
|
+
export function getCachedRegex(patternOrRegex, flags) {
|
|
7
|
+
const regexFlags = typeof patternOrRegex === "string"
|
|
8
|
+
? flags ?? ""
|
|
9
|
+
: patternOrRegex.flags;
|
|
10
|
+
const regexPattern = typeof patternOrRegex === "string"
|
|
11
|
+
? patternOrRegex
|
|
12
|
+
: patternOrRegex.source;
|
|
13
|
+
const cacheKey = getRegexCacheKey(regexPattern, regexFlags);
|
|
14
|
+
let regex = REGEX_CACHE.get(cacheKey);
|
|
15
|
+
if (!regex) {
|
|
16
|
+
if (REGEX_CACHE.size >= MAX_CACHE_SIZE) {
|
|
17
|
+
const firstKey = REGEX_CACHE.keys().next().value;
|
|
18
|
+
if (firstKey !== undefined) {
|
|
19
|
+
REGEX_CACHE.delete(firstKey);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
regex = typeof patternOrRegex === "string"
|
|
23
|
+
? new RegExp(patternOrRegex, flags)
|
|
24
|
+
: patternOrRegex;
|
|
25
|
+
REGEX_CACHE.set(cacheKey, regex);
|
|
26
|
+
}
|
|
27
|
+
if (regex.global || regex.sticky) {
|
|
28
|
+
regex.lastIndex = 0;
|
|
29
|
+
}
|
|
30
|
+
return regex;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=regex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.js","sourceRoot":"","sources":["../../src/async-utils/regex.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC9C,MAAM,cAAc,GAAG,GAAG,CAAC;AAG3B,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAa;IACtD,OAAO,GAAG,KAAK,SAAS,OAAO,EAAE,CAAC;AACpC,CAAC;AAID,MAAM,UAAU,cAAc,CAAC,cAA+B,EAAE,KAAc;IAC5E,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ;QACnD,CAAC,CAAC,KAAK,IAAI,EAAE;QACb,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;IAEzB,MAAM,YAAY,GAAG,OAAO,cAAc,KAAK,QAAQ;QACrD,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAE5D,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAG,CAAC,KAAK,EAAC,CAAC;QACT,IAAG,WAAW,CAAC,IAAI,IAAI,cAAc,EAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACjD,IAAG,QAAQ,KAAK,SAAS,EAAC,CAAC;gBACzB,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,GAAG,OAAO,cAAc,KAAK,QAAQ;YACxC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC;YACnC,CAAC,CAAC,cAAc,CAAC;QAEnB,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAC,CAAC;QAC/B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/async-utils/worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/async-utils/worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAW7D"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { env } from "node:process";
|
|
2
2
|
import { TsRunner } from "synckit";
|
|
3
|
+
const defaultTimeout = 30000;
|
|
3
4
|
export function getWorkerOptions() {
|
|
4
5
|
if (env.NODE_ENV === "test") {
|
|
5
6
|
return {
|
|
6
|
-
timeout:
|
|
7
|
+
timeout: Number(env.SYNCKIT_TIMEOUT) || defaultTimeout,
|
|
7
8
|
tsRunner: TsRunner.OXC
|
|
8
9
|
};
|
|
9
10
|
}
|
|
10
11
|
else {
|
|
11
12
|
return {
|
|
12
|
-
timeout:
|
|
13
|
+
timeout: Number(env.SYNCKIT_TIMEOUT) || defaultTimeout
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/async-utils/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,MAAM,UAAU,gBAAgB;IAC9B,IAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAC,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/async-utils/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,MAAM,cAAc,GAAG,KAAM,CAAC;AAE9B,MAAM,UAAU,gBAAgB;IAC9B,IAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAC,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,cAAc;YACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG;SACvB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,cAAc;SACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
|