@dhzh/eslint-plugin-better-tailwindcss 0.0.0-stage → 4.9.0-patch

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.
Files changed (423) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -2
  3. package/lib/api/defaults.d.ts +103 -0
  4. package/lib/api/defaults.d.ts.map +1 -0
  5. package/lib/api/defaults.js +34 -0
  6. package/lib/api/defaults.js.map +1 -0
  7. package/lib/api/types.d.ts +9 -0
  8. package/lib/api/types.d.ts.map +1 -0
  9. package/lib/api/types.js +5 -0
  10. package/lib/api/types.js.map +1 -0
  11. package/lib/async-utils/cache.d.ts +30 -0
  12. package/lib/async-utils/cache.d.ts.map +1 -0
  13. package/lib/async-utils/cache.js +116 -0
  14. package/lib/async-utils/cache.js.map +1 -0
  15. package/lib/async-utils/escape.d.ts +2 -0
  16. package/lib/async-utils/escape.d.ts.map +1 -0
  17. package/lib/async-utils/escape.js +5 -0
  18. package/lib/async-utils/escape.js.map +1 -0
  19. package/lib/async-utils/fs.d.ts +3 -0
  20. package/lib/async-utils/fs.d.ts.map +1 -0
  21. package/lib/async-utils/fs.js +28 -0
  22. package/lib/async-utils/fs.js.map +1 -0
  23. package/lib/async-utils/module.d.ts +3 -0
  24. package/lib/async-utils/module.d.ts.map +1 -0
  25. package/lib/async-utils/module.js +7 -0
  26. package/lib/async-utils/module.js.map +1 -0
  27. package/lib/async-utils/operations.d.ts +23 -0
  28. package/lib/async-utils/operations.d.ts.map +1 -0
  29. package/lib/async-utils/operations.js +2 -0
  30. package/lib/async-utils/operations.js.map +1 -0
  31. package/lib/async-utils/order.d.ts +4 -0
  32. package/lib/async-utils/order.d.ts.map +1 -0
  33. package/lib/async-utils/order.js +5 -0
  34. package/lib/async-utils/order.js.map +1 -0
  35. package/lib/async-utils/path.d.ts +2 -0
  36. package/lib/async-utils/path.d.ts.map +1 -0
  37. package/lib/async-utils/path.js +7 -0
  38. package/lib/async-utils/path.js.map +1 -0
  39. package/lib/async-utils/platform.d.ts +2 -0
  40. package/lib/async-utils/platform.d.ts.map +1 -0
  41. package/lib/async-utils/platform.js +4 -0
  42. package/lib/async-utils/platform.js.map +1 -0
  43. package/lib/async-utils/regex.d.ts +3 -0
  44. package/lib/async-utils/regex.d.ts.map +1 -0
  45. package/lib/async-utils/regex.js +32 -0
  46. package/lib/async-utils/regex.js.map +1 -0
  47. package/lib/async-utils/resolvers.d.ts +7 -0
  48. package/lib/async-utils/resolvers.d.ts.map +1 -0
  49. package/lib/async-utils/resolvers.js +64 -0
  50. package/lib/async-utils/resolvers.js.map +1 -0
  51. package/lib/async-utils/segment.d.ts +2 -0
  52. package/lib/async-utils/segment.d.ts.map +1 -0
  53. package/lib/async-utils/segment.js +82 -0
  54. package/lib/async-utils/segment.js.map +1 -0
  55. package/lib/async-utils/worker.d.ts +3 -0
  56. package/lib/async-utils/worker.d.ts.map +1 -0
  57. package/lib/async-utils/worker.js +17 -0
  58. package/lib/async-utils/worker.js.map +1 -0
  59. package/lib/configs/config.d.ts +3521 -0
  60. package/lib/configs/config.d.ts.map +1 -0
  61. package/lib/configs/config.js +98 -0
  62. package/lib/configs/config.js.map +1 -0
  63. package/lib/options/callees/cc.d.ts +30 -0
  64. package/lib/options/callees/cc.d.ts.map +1 -0
  65. package/lib/options/callees/cc.js +25 -0
  66. package/lib/options/callees/cc.js.map +1 -0
  67. package/lib/options/callees/clb.d.ts +35 -0
  68. package/lib/options/callees/clb.d.ts.map +1 -0
  69. package/lib/options/callees/clb.js +39 -0
  70. package/lib/options/callees/clb.js.map +1 -0
  71. package/lib/options/callees/clsx.d.ts +30 -0
  72. package/lib/options/callees/clsx.d.ts.map +1 -0
  73. package/lib/options/callees/clsx.js +25 -0
  74. package/lib/options/callees/clsx.js.map +1 -0
  75. package/lib/options/callees/cn.d.ts +30 -0
  76. package/lib/options/callees/cn.d.ts.map +1 -0
  77. package/lib/options/callees/cn.js +25 -0
  78. package/lib/options/callees/cn.js.map +1 -0
  79. package/lib/options/callees/cnb.d.ts +30 -0
  80. package/lib/options/callees/cnb.d.ts.map +1 -0
  81. package/lib/options/callees/cnb.js +25 -0
  82. package/lib/options/callees/cnb.js.map +1 -0
  83. package/lib/options/callees/ctl.d.ts +17 -0
  84. package/lib/options/callees/ctl.d.ts.map +1 -0
  85. package/lib/options/callees/ctl.js +15 -0
  86. package/lib/options/callees/ctl.js.map +1 -0
  87. package/lib/options/callees/cva.d.ts +40 -0
  88. package/lib/options/callees/cva.d.ts.map +1 -0
  89. package/lib/options/callees/cva.js +37 -0
  90. package/lib/options/callees/cva.js.map +1 -0
  91. package/lib/options/callees/cx.d.ts +30 -0
  92. package/lib/options/callees/cx.d.ts.map +1 -0
  93. package/lib/options/callees/cx.js +25 -0
  94. package/lib/options/callees/cx.js.map +1 -0
  95. package/lib/options/callees/dcnb.d.ts +30 -0
  96. package/lib/options/callees/dcnb.d.ts.map +1 -0
  97. package/lib/options/callees/dcnb.js +25 -0
  98. package/lib/options/callees/dcnb.js.map +1 -0
  99. package/lib/options/callees/objstr.d.ts +24 -0
  100. package/lib/options/callees/objstr.d.ts.map +1 -0
  101. package/lib/options/callees/objstr.js +24 -0
  102. package/lib/options/callees/objstr.js.map +1 -0
  103. package/lib/options/callees/tv.d.ts +64 -0
  104. package/lib/options/callees/tv.d.ts.map +1 -0
  105. package/lib/options/callees/tv.js +70 -0
  106. package/lib/options/callees/tv.js.map +1 -0
  107. package/lib/options/callees/twJoin.d.ts +17 -0
  108. package/lib/options/callees/twJoin.d.ts.map +1 -0
  109. package/lib/options/callees/twJoin.js +15 -0
  110. package/lib/options/callees/twJoin.js.map +1 -0
  111. package/lib/options/callees/twMerge.d.ts +17 -0
  112. package/lib/options/callees/twMerge.d.ts.map +1 -0
  113. package/lib/options/callees/twMerge.js +15 -0
  114. package/lib/options/callees/twMerge.js.map +1 -0
  115. package/lib/options/default-options.d.ts +114 -0
  116. package/lib/options/default-options.d.ts.map +1 -0
  117. package/lib/options/default-options.js +176 -0
  118. package/lib/options/default-options.js.map +1 -0
  119. package/lib/options/descriptions.d.ts +657 -0
  120. package/lib/options/descriptions.d.ts.map +1 -0
  121. package/lib/options/descriptions.js +22 -0
  122. package/lib/options/descriptions.js.map +1 -0
  123. package/lib/options/migrate.d.ts +16 -0
  124. package/lib/options/migrate.d.ts.map +1 -0
  125. package/lib/options/migrate.js +132 -0
  126. package/lib/options/migrate.js.map +1 -0
  127. package/lib/options/schemas/attributes.d.ts +100 -0
  128. package/lib/options/schemas/attributes.d.ts.map +1 -0
  129. package/lib/options/schemas/attributes.js +19 -0
  130. package/lib/options/schemas/attributes.js.map +1 -0
  131. package/lib/options/schemas/callees.d.ts +101 -0
  132. package/lib/options/schemas/callees.d.ts.map +1 -0
  133. package/lib/options/schemas/callees.js +19 -0
  134. package/lib/options/schemas/callees.js.map +1 -0
  135. package/lib/options/schemas/common.d.ts +30 -0
  136. package/lib/options/schemas/common.d.ts.map +1 -0
  137. package/lib/options/schemas/common.js +30 -0
  138. package/lib/options/schemas/common.js.map +1 -0
  139. package/lib/options/schemas/matchers.d.ts +13 -0
  140. package/lib/options/schemas/matchers.d.ts.map +1 -0
  141. package/lib/options/schemas/matchers.js +14 -0
  142. package/lib/options/schemas/matchers.js.map +1 -0
  143. package/lib/options/schemas/selectors.d.ts +1289 -0
  144. package/lib/options/schemas/selectors.d.ts.map +1 -0
  145. package/lib/options/schemas/selectors.js +100 -0
  146. package/lib/options/schemas/selectors.js.map +1 -0
  147. package/lib/options/schemas/tags.d.ts +101 -0
  148. package/lib/options/schemas/tags.d.ts.map +1 -0
  149. package/lib/options/schemas/tags.js +19 -0
  150. package/lib/options/schemas/tags.js.map +1 -0
  151. package/lib/options/schemas/variables.d.ts +100 -0
  152. package/lib/options/schemas/variables.d.ts.map +1 -0
  153. package/lib/options/schemas/variables.js +19 -0
  154. package/lib/options/schemas/variables.js.map +1 -0
  155. package/lib/options/tags/twc.d.ts +36 -0
  156. package/lib/options/tags/twc.d.ts.map +1 -0
  157. package/lib/options/tags/twc.js +26 -0
  158. package/lib/options/tags/twc.js.map +1 -0
  159. package/lib/options/tags/twx.d.ts +36 -0
  160. package/lib/options/tags/twx.d.ts.map +1 -0
  161. package/lib/options/tags/twx.js +26 -0
  162. package/lib/options/tags/twx.js.map +1 -0
  163. package/lib/parsers/angular.d.ts +11 -0
  164. package/lib/parsers/angular.d.ts.map +1 -0
  165. package/lib/parsers/angular.js +736 -0
  166. package/lib/parsers/angular.js.map +1 -0
  167. package/lib/parsers/css.d.ts +5 -0
  168. package/lib/parsers/css.d.ts.map +1 -0
  169. package/lib/parsers/css.js +100 -0
  170. package/lib/parsers/css.js.map +1 -0
  171. package/lib/parsers/es.d.ts +49 -0
  172. package/lib/parsers/es.d.ts.map +1 -0
  173. package/lib/parsers/es.js +924 -0
  174. package/lib/parsers/es.js.map +1 -0
  175. package/lib/parsers/html.d.ts +8 -0
  176. package/lib/parsers/html.d.ts.map +1 -0
  177. package/lib/parsers/html.js +51 -0
  178. package/lib/parsers/html.js.map +1 -0
  179. package/lib/parsers/jsx.d.ts +9 -0
  180. package/lib/parsers/jsx.d.ts.map +1 -0
  181. package/lib/parsers/jsx.js +118 -0
  182. package/lib/parsers/jsx.js.map +1 -0
  183. package/lib/parsers/svelte.d.ts +11 -0
  184. package/lib/parsers/svelte.d.ts.map +1 -0
  185. package/lib/parsers/svelte.js +204 -0
  186. package/lib/parsers/svelte.js.map +1 -0
  187. package/lib/parsers/vue.d.ts +9 -0
  188. package/lib/parsers/vue.d.ts.map +1 -0
  189. package/lib/parsers/vue.js +155 -0
  190. package/lib/parsers/vue.js.map +1 -0
  191. package/lib/rules/enforce-canonical-classes.d.ts +229 -0
  192. package/lib/rules/enforce-canonical-classes.d.ts.map +1 -0
  193. package/lib/rules/enforce-canonical-classes.js +84 -0
  194. package/lib/rules/enforce-canonical-classes.js.map +1 -0
  195. package/lib/rules/enforce-consistent-class-order.d.ts +229 -0
  196. package/lib/rules/enforce-consistent-class-order.d.ts.map +1 -0
  197. package/lib/rules/enforce-consistent-class-order.js +250 -0
  198. package/lib/rules/enforce-consistent-class-order.js.map +1 -0
  199. package/lib/rules/enforce-consistent-important-position.d.ts +225 -0
  200. package/lib/rules/enforce-consistent-important-position.d.ts.map +1 -0
  201. package/lib/rules/enforce-consistent-important-position.js +68 -0
  202. package/lib/rules/enforce-consistent-important-position.js.map +1 -0
  203. package/lib/rules/enforce-consistent-line-wrapping.d.ts +235 -0
  204. package/lib/rules/enforce-consistent-line-wrapping.d.ts.map +1 -0
  205. package/lib/rules/enforce-consistent-line-wrapping.js +537 -0
  206. package/lib/rules/enforce-consistent-line-wrapping.js.map +1 -0
  207. package/lib/rules/enforce-consistent-variable-syntax.d.ts +225 -0
  208. package/lib/rules/enforce-consistent-variable-syntax.d.ts.map +1 -0
  209. package/lib/rules/enforce-consistent-variable-syntax.js +164 -0
  210. package/lib/rules/enforce-consistent-variable-syntax.js.map +1 -0
  211. package/lib/rules/enforce-consistent-variant-order.d.ts +225 -0
  212. package/lib/rules/enforce-consistent-variant-order.d.ts.map +1 -0
  213. package/lib/rules/enforce-consistent-variant-order.js +77 -0
  214. package/lib/rules/enforce-consistent-variant-order.js.map +1 -0
  215. package/lib/rules/enforce-logical-properties.d.ts +227 -0
  216. package/lib/rules/enforce-logical-properties.d.ts.map +1 -0
  217. package/lib/rules/enforce-logical-properties.js +142 -0
  218. package/lib/rules/enforce-logical-properties.js.map +1 -0
  219. package/lib/rules/enforce-shorthand-classes.d.ts +229 -0
  220. package/lib/rules/enforce-shorthand-classes.d.ts.map +1 -0
  221. package/lib/rules/enforce-shorthand-classes.js +217 -0
  222. package/lib/rules/enforce-shorthand-classes.js.map +1 -0
  223. package/lib/rules/no-concatenated-classes.d.ts +225 -0
  224. package/lib/rules/no-concatenated-classes.d.ts.map +1 -0
  225. package/lib/rules/no-concatenated-classes.js +31 -0
  226. package/lib/rules/no-concatenated-classes.js.map +1 -0
  227. package/lib/rules/no-conflicting-classes.d.ts +225 -0
  228. package/lib/rules/no-conflicting-classes.d.ts.map +1 -0
  229. package/lib/rules/no-conflicting-classes.js +60 -0
  230. package/lib/rules/no-conflicting-classes.js.map +1 -0
  231. package/lib/rules/no-deprecated-classes.d.ts +227 -0
  232. package/lib/rules/no-deprecated-classes.d.ts.map +1 -0
  233. package/lib/rules/no-deprecated-classes.js +103 -0
  234. package/lib/rules/no-deprecated-classes.js.map +1 -0
  235. package/lib/rules/no-duplicate-classes.d.ts +225 -0
  236. package/lib/rules/no-duplicate-classes.d.ts.map +1 -0
  237. package/lib/rules/no-duplicate-classes.js +52 -0
  238. package/lib/rules/no-duplicate-classes.js.map +1 -0
  239. package/lib/rules/no-restricted-classes.d.ts +225 -0
  240. package/lib/rules/no-restricted-classes.d.ts.map +1 -0
  241. package/lib/rules/no-restricted-classes.js +57 -0
  242. package/lib/rules/no-restricted-classes.js.map +1 -0
  243. package/lib/rules/no-unknown-classes.d.ts +225 -0
  244. package/lib/rules/no-unknown-classes.d.ts.map +1 -0
  245. package/lib/rules/no-unknown-classes.js +82 -0
  246. package/lib/rules/no-unknown-classes.js.map +1 -0
  247. package/lib/rules/no-unnecessary-whitespace.d.ts +225 -0
  248. package/lib/rules/no-unnecessary-whitespace.d.ts.map +1 -0
  249. package/lib/rules/no-unnecessary-whitespace.js +141 -0
  250. package/lib/rules/no-unnecessary-whitespace.js.map +1 -0
  251. package/lib/tailwindcss/canonical-classes.async.v4.d.ts +3 -0
  252. package/lib/tailwindcss/canonical-classes.async.v4.d.ts.map +1 -0
  253. package/lib/tailwindcss/canonical-classes.async.v4.js +54 -0
  254. package/lib/tailwindcss/canonical-classes.async.v4.js.map +1 -0
  255. package/lib/tailwindcss/canonical-classes.d.ts +21 -0
  256. package/lib/tailwindcss/canonical-classes.d.ts.map +1 -0
  257. package/lib/tailwindcss/canonical-classes.js +16 -0
  258. package/lib/tailwindcss/canonical-classes.js.map +1 -0
  259. package/lib/tailwindcss/class-order.async.v3.d.ts +3 -0
  260. package/lib/tailwindcss/class-order.async.v3.d.ts.map +1 -0
  261. package/lib/tailwindcss/class-order.async.v3.js +4 -0
  262. package/lib/tailwindcss/class-order.async.v3.js.map +1 -0
  263. package/lib/tailwindcss/class-order.async.v4.d.ts +3 -0
  264. package/lib/tailwindcss/class-order.async.v4.d.ts.map +1 -0
  265. package/lib/tailwindcss/class-order.async.v4.js +4 -0
  266. package/lib/tailwindcss/class-order.async.v4.js.map +1 -0
  267. package/lib/tailwindcss/class-order.d.ts +11 -0
  268. package/lib/tailwindcss/class-order.d.ts.map +1 -0
  269. package/lib/tailwindcss/class-order.js +16 -0
  270. package/lib/tailwindcss/class-order.js.map +1 -0
  271. package/lib/tailwindcss/conflicting-classes.async.v4.d.ts +35 -0
  272. package/lib/tailwindcss/conflicting-classes.async.v4.d.ts.map +1 -0
  273. package/lib/tailwindcss/conflicting-classes.async.v4.js +82 -0
  274. package/lib/tailwindcss/conflicting-classes.async.v4.js.map +1 -0
  275. package/lib/tailwindcss/conflicting-classes.d.ts +19 -0
  276. package/lib/tailwindcss/conflicting-classes.d.ts.map +1 -0
  277. package/lib/tailwindcss/conflicting-classes.js +17 -0
  278. package/lib/tailwindcss/conflicting-classes.js.map +1 -0
  279. package/lib/tailwindcss/context.async.v3.d.ts +3 -0
  280. package/lib/tailwindcss/context.async.v3.d.ts.map +1 -0
  281. package/lib/tailwindcss/context.async.v3.js +13 -0
  282. package/lib/tailwindcss/context.async.v3.js.map +1 -0
  283. package/lib/tailwindcss/context.async.v4.d.ts +3 -0
  284. package/lib/tailwindcss/context.async.v4.d.ts.map +1 -0
  285. package/lib/tailwindcss/context.async.v4.js +82 -0
  286. package/lib/tailwindcss/context.async.v4.js.map +1 -0
  287. package/lib/tailwindcss/custom-component-classes.async.v3.d.ts +4 -0
  288. package/lib/tailwindcss/custom-component-classes.async.v3.d.ts.map +1 -0
  289. package/lib/tailwindcss/custom-component-classes.async.v3.js +4 -0
  290. package/lib/tailwindcss/custom-component-classes.async.v3.js.map +1 -0
  291. package/lib/tailwindcss/custom-component-classes.async.v4.d.ts +4 -0
  292. package/lib/tailwindcss/custom-component-classes.async.v4.d.ts.map +1 -0
  293. package/lib/tailwindcss/custom-component-classes.async.v4.js +101 -0
  294. package/lib/tailwindcss/custom-component-classes.async.v4.js.map +1 -0
  295. package/lib/tailwindcss/custom-component-classes.d.ts +11 -0
  296. package/lib/tailwindcss/custom-component-classes.d.ts.map +1 -0
  297. package/lib/tailwindcss/custom-component-classes.js +16 -0
  298. package/lib/tailwindcss/custom-component-classes.js.map +1 -0
  299. package/lib/tailwindcss/dissect-classes.async.v3.d.ts +4 -0
  300. package/lib/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -0
  301. package/lib/tailwindcss/dissect-classes.async.v3.js +32 -0
  302. package/lib/tailwindcss/dissect-classes.async.v3.js.map +1 -0
  303. package/lib/tailwindcss/dissect-classes.async.v4.d.ts +3 -0
  304. package/lib/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -0
  305. package/lib/tailwindcss/dissect-classes.async.v4.js +39 -0
  306. package/lib/tailwindcss/dissect-classes.async.v4.js.map +1 -0
  307. package/lib/tailwindcss/dissect-classes.d.ts +23 -0
  308. package/lib/tailwindcss/dissect-classes.d.ts.map +1 -0
  309. package/lib/tailwindcss/dissect-classes.js +16 -0
  310. package/lib/tailwindcss/dissect-classes.js.map +1 -0
  311. package/lib/tailwindcss/prefix.async.v3.d.ts +4 -0
  312. package/lib/tailwindcss/prefix.async.v3.d.ts.map +1 -0
  313. package/lib/tailwindcss/prefix.async.v3.js +7 -0
  314. package/lib/tailwindcss/prefix.async.v3.js.map +1 -0
  315. package/lib/tailwindcss/prefix.async.v4.d.ts +4 -0
  316. package/lib/tailwindcss/prefix.async.v4.d.ts.map +1 -0
  317. package/lib/tailwindcss/prefix.async.v4.js +7 -0
  318. package/lib/tailwindcss/prefix.async.v4.js.map +1 -0
  319. package/lib/tailwindcss/prefix.d.ts +13 -0
  320. package/lib/tailwindcss/prefix.d.ts.map +1 -0
  321. package/lib/tailwindcss/prefix.js +15 -0
  322. package/lib/tailwindcss/prefix.js.map +1 -0
  323. package/lib/tailwindcss/tailwind.async.worker.v3.d.ts +2 -0
  324. package/lib/tailwindcss/tailwind.async.worker.v3.d.ts.map +1 -0
  325. package/lib/tailwindcss/tailwind.async.worker.v3.js +57 -0
  326. package/lib/tailwindcss/tailwind.async.worker.v3.js.map +1 -0
  327. package/lib/tailwindcss/tailwind.async.worker.v4.d.ts +2 -0
  328. package/lib/tailwindcss/tailwind.async.worker.v4.d.ts.map +1 -0
  329. package/lib/tailwindcss/tailwind.async.worker.v4.js +56 -0
  330. package/lib/tailwindcss/tailwind.async.worker.v4.js.map +1 -0
  331. package/lib/tailwindcss/unknown-classes.async.v3.d.ts +4 -0
  332. package/lib/tailwindcss/unknown-classes.async.v3.d.ts.map +1 -0
  333. package/lib/tailwindcss/unknown-classes.async.v3.js +10 -0
  334. package/lib/tailwindcss/unknown-classes.async.v3.js.map +1 -0
  335. package/lib/tailwindcss/unknown-classes.async.v4.d.ts +3 -0
  336. package/lib/tailwindcss/unknown-classes.async.v4.d.ts.map +1 -0
  337. package/lib/tailwindcss/unknown-classes.async.v4.js +5 -0
  338. package/lib/tailwindcss/unknown-classes.async.v4.js.map +1 -0
  339. package/lib/tailwindcss/unknown-classes.d.ts +11 -0
  340. package/lib/tailwindcss/unknown-classes.d.ts.map +1 -0
  341. package/lib/tailwindcss/unknown-classes.js +21 -0
  342. package/lib/tailwindcss/unknown-classes.js.map +1 -0
  343. package/lib/tailwindcss/variant-order.async.v3.d.ts +3 -0
  344. package/lib/tailwindcss/variant-order.async.v3.d.ts.map +1 -0
  345. package/lib/tailwindcss/variant-order.async.v3.js +4 -0
  346. package/lib/tailwindcss/variant-order.async.v3.js.map +1 -0
  347. package/lib/tailwindcss/variant-order.async.v4.d.ts +3 -0
  348. package/lib/tailwindcss/variant-order.async.v4.d.ts.map +1 -0
  349. package/lib/tailwindcss/variant-order.async.v4.js +34 -0
  350. package/lib/tailwindcss/variant-order.async.v4.js.map +1 -0
  351. package/lib/tailwindcss/variant-order.d.ts +11 -0
  352. package/lib/tailwindcss/variant-order.d.ts.map +1 -0
  353. package/lib/tailwindcss/variant-order.js +16 -0
  354. package/lib/tailwindcss/variant-order.js.map +1 -0
  355. package/lib/types/ast.d.ts +79 -0
  356. package/lib/types/ast.d.ts.map +1 -0
  357. package/lib/types/ast.js +2 -0
  358. package/lib/types/ast.js.map +1 -0
  359. package/lib/types/async.d.ts +7 -0
  360. package/lib/types/async.d.ts.map +1 -0
  361. package/lib/types/async.js +2 -0
  362. package/lib/types/async.js.map +1 -0
  363. package/lib/types/estree.d.ts +7 -0
  364. package/lib/types/estree.d.ts.map +1 -0
  365. package/lib/types/estree.js +2 -0
  366. package/lib/types/estree.js.map +1 -0
  367. package/lib/types/rule.d.ts +163 -0
  368. package/lib/types/rule.d.ts.map +1 -0
  369. package/lib/types/rule.js +24 -0
  370. package/lib/types/rule.js.map +1 -0
  371. package/lib/utils/ast.d.ts +4 -0
  372. package/lib/utils/ast.d.ts.map +1 -0
  373. package/lib/utils/ast.js +9 -0
  374. package/lib/utils/ast.js.map +1 -0
  375. package/lib/utils/class.d.ts +12 -0
  376. package/lib/utils/class.d.ts.map +1 -0
  377. package/lib/utils/class.js +19 -0
  378. package/lib/utils/class.js.map +1 -0
  379. package/lib/utils/context.d.ts +20 -0
  380. package/lib/utils/context.d.ts.map +1 -0
  381. package/lib/utils/context.js +91 -0
  382. package/lib/utils/context.js.map +1 -0
  383. package/lib/utils/lint.d.ts +17 -0
  384. package/lib/utils/lint.d.ts.map +1 -0
  385. package/lib/utils/lint.js +40 -0
  386. package/lib/utils/lint.js.map +1 -0
  387. package/lib/utils/matchers.d.ts +24 -0
  388. package/lib/utils/matchers.d.ts.map +1 -0
  389. package/lib/utils/matchers.js +154 -0
  390. package/lib/utils/matchers.js.map +1 -0
  391. package/lib/utils/quotes.d.ts +3 -0
  392. package/lib/utils/quotes.d.ts.map +1 -0
  393. package/lib/utils/quotes.js +9 -0
  394. package/lib/utils/quotes.js.map +1 -0
  395. package/lib/utils/rule.d.ts +31 -0
  396. package/lib/utils/rule.d.ts.map +1 -0
  397. package/lib/utils/rule.js +349 -0
  398. package/lib/utils/rule.js.map +1 -0
  399. package/lib/utils/selectors.d.ts +3 -0
  400. package/lib/utils/selectors.d.ts.map +1 -0
  401. package/lib/utils/selectors.js +4 -0
  402. package/lib/utils/selectors.js.map +1 -0
  403. package/lib/utils/utils.d.ts +49 -0
  404. package/lib/utils/utils.d.ts.map +1 -0
  405. package/lib/utils/utils.js +203 -0
  406. package/lib/utils/utils.js.map +1 -0
  407. package/lib/utils/valibot.d.ts +4 -0
  408. package/lib/utils/valibot.d.ts.map +1 -0
  409. package/lib/utils/valibot.js +12 -0
  410. package/lib/utils/valibot.js.map +1 -0
  411. package/lib/utils/version.d.ts +7 -0
  412. package/lib/utils/version.d.ts.map +1 -0
  413. package/lib/utils/version.js +6 -0
  414. package/lib/utils/version.js.map +1 -0
  415. package/lib/utils/visitedNodes.d.ts +4 -0
  416. package/lib/utils/visitedNodes.d.ts.map +1 -0
  417. package/lib/utils/visitedNodes.js +11 -0
  418. package/lib/utils/visitedNodes.js.map +1 -0
  419. package/lib/utils/warn.d.ts +2 -0
  420. package/lib/utils/warn.d.ts.map +1 -0
  421. package/lib/utils/warn.js +8 -0
  422. package/lib/utils/warn.js.map +1 -0
  423. package/package.json +163 -4
@@ -0,0 +1,163 @@
1
+ import type { JSRuleDefinition } from "eslint";
2
+ import type { BaseIssue, BaseSchema, Default, InferOutput, OptionalSchema, StrictObjectSchema } from "valibot";
3
+ import type { CommonOptions } from "../options/descriptions.js";
4
+ import type { Literal } from "./ast.js";
5
+ import type { Warning } from "./async.js";
6
+ export declare enum MatcherType {
7
+ /** Matches return values of anonymous functions via nested matchers. */
8
+ AnonymousFunctionReturn = "anonymousFunctionReturn",
9
+ /** Matches all object keys that are strings. */
10
+ ObjectKey = "objectKeys",
11
+ /** Matches all object values that are strings. */
12
+ ObjectValue = "objectValues",
13
+ /** Matches all strings that are not matched by another matcher. */
14
+ String = "strings"
15
+ }
16
+ export declare enum SelectorKind {
17
+ Attribute = "attribute",
18
+ Callee = "callee",
19
+ Tag = "tag",
20
+ Variable = "variable"
21
+ }
22
+ export type Regex = string;
23
+ export type StringMatcher = {
24
+ match: MatcherType.String;
25
+ };
26
+ export type ObjectKeyMatcher = {
27
+ match: MatcherType.ObjectKey;
28
+ pathPattern?: Regex | undefined;
29
+ };
30
+ export type ObjectValueMatcher = {
31
+ match: MatcherType.ObjectValue;
32
+ pathPattern?: Regex | undefined;
33
+ };
34
+ export declare const MATCHER_RESULT: {
35
+ readonly MATCH: true;
36
+ readonly NO_MATCH: false;
37
+ readonly UNCROSSABLE_BOUNDARY: "UNCROSSABLE_BOUNDARY";
38
+ };
39
+ type MatcherFunctionResult = typeof MATCHER_RESULT[keyof typeof MATCHER_RESULT];
40
+ export type MatcherFunction = (node: unknown) => MatcherFunctionResult | MatcherFunctions;
41
+ export type MatcherFunctions = MatcherFunction[];
42
+ export type Matcher = ObjectKeyMatcher | ObjectValueMatcher | StringMatcher;
43
+ export type SelectorStringMatcher = {
44
+ type: MatcherType.String;
45
+ };
46
+ export type SelectorAnonymousFunctionReturnMatcher = {
47
+ match: (SelectorObjectKeyMatcher | SelectorObjectValueMatcher | SelectorStringMatcher)[];
48
+ type: MatcherType.AnonymousFunctionReturn;
49
+ };
50
+ export type SelectorObjectKeyMatcher = {
51
+ type: MatcherType.ObjectKey;
52
+ path?: Regex | undefined;
53
+ };
54
+ export type SelectorObjectValueMatcher = {
55
+ type: MatcherType.ObjectValue;
56
+ path?: Regex | undefined;
57
+ };
58
+ export type SelectorMatcher = SelectorAnonymousFunctionReturnMatcher | SelectorObjectKeyMatcher | SelectorObjectValueMatcher | SelectorStringMatcher;
59
+ type BaseSelector<Kind extends SelectorKind> = {
60
+ kind: Kind;
61
+ name: Regex;
62
+ match?: SelectorMatcher[] | undefined;
63
+ };
64
+ export type Target = "all" | "first" | "last" | number;
65
+ export type CallTarget = Target;
66
+ export type ArgumentTarget = Target;
67
+ export type AttributeSelector = BaseSelector<SelectorKind.Attribute>;
68
+ export type CalleeSelector = {
69
+ kind: SelectorKind.Callee;
70
+ /** @deprecated Use targetCall instead. */
71
+ callTarget?: CallTarget | undefined;
72
+ match?: SelectorMatcher[] | undefined;
73
+ name?: Regex | undefined;
74
+ path?: Regex | undefined;
75
+ targetArgument?: ArgumentTarget | undefined;
76
+ targetCall?: CallTarget | undefined;
77
+ };
78
+ export type TagSelector = {
79
+ kind: SelectorKind.Tag;
80
+ match?: SelectorMatcher[] | undefined;
81
+ name?: Regex | undefined;
82
+ path?: Regex | undefined;
83
+ };
84
+ export type VariableSelector = BaseSelector<SelectorKind.Variable>;
85
+ export type Selector = AttributeSelector | CalleeSelector | TagSelector | VariableSelector;
86
+ export type Selectors = Selector[];
87
+ export type SelectorByKind<Kind extends SelectorKind> = Extract<Selector, {
88
+ kind: Kind;
89
+ }>;
90
+ export type Version = {
91
+ major: number;
92
+ minor: number;
93
+ patch: number;
94
+ };
95
+ export type TailwindConfig = {
96
+ entryPoint?: string;
97
+ tailwindConfig?: string;
98
+ };
99
+ export type TSConfig = {
100
+ tsconfig?: string;
101
+ };
102
+ export type Schema = StrictObjectSchema<Record<string, OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, Default<BaseSchema<unknown, unknown, BaseIssue<unknown>>, undefined>>>, undefined>;
103
+ export type JsonSchema<RawSchema extends Schema> = InferOutput<RawSchema>;
104
+ export type RuleCategory = "correctness" | "stylistic";
105
+ export interface CreateRuleOptions<Name extends string, Messages extends Record<string, string>, OptionsSchema extends Schema = Schema, Options extends Record<string, any> = CommonOptions & JsonSchema<OptionsSchema>, Category extends RuleCategory = RuleCategory, Recommended extends boolean = boolean> {
106
+ /** Whether the rule should automatically fix problems. */
107
+ autofix: boolean;
108
+ /** The category of the rule. */
109
+ category: Category;
110
+ /** A brief description of the rule. */
111
+ description: string;
112
+ /** The URL to the rule documentation. */
113
+ docs: string;
114
+ /** The name of the rule. */
115
+ name: Name;
116
+ /** Whether the rule is enabled in the recommended configs. */
117
+ recommended: Recommended;
118
+ /** Lint the literals in the given context. */
119
+ lintLiterals: (ctx: RuleContext<Messages, Options>, literals: Literal[]) => void;
120
+ /** The messages for the rule. */
121
+ messages?: Messages;
122
+ /** The schema for the rule options. */
123
+ schema?: OptionsSchema;
124
+ initialize?: (ctx: RuleContext<Messages, Options>) => void;
125
+ }
126
+ export interface ESLintRule<Name extends string = string, Messages extends Record<string, string> = Record<string, string>, Options extends Record<string, any> = Record<string, any>, Category extends RuleCategory = RuleCategory, Recommended extends boolean = boolean> {
127
+ category: Category;
128
+ messages: Messages | undefined;
129
+ name: Name;
130
+ recommended: Recommended;
131
+ rule: JSRuleDefinition<{
132
+ MessageIds: keyof Messages & string;
133
+ RuleOptions: [Required<Options>];
134
+ }>;
135
+ get options(): Options;
136
+ }
137
+ export interface RuleContext<Messages extends Record<string, string> | undefined, Options extends Record<string, any>> {
138
+ cwd: string;
139
+ docs: string;
140
+ /** The installation path of Tailwind CSS. */
141
+ installation: string;
142
+ options: Options;
143
+ /** The Tailwind CSS Version. */
144
+ version: Version;
145
+ report: <const MsgId extends MessageId<Messages>>(info: ((MsgId extends string ? Messages extends Record<string, string> ? MsgId extends keyof Messages ? {
146
+ data: Record<ExtractVariables<Messages[MsgId]>, string> extends infer Data ? keyof Data extends never ? never : Data : never;
147
+ id: MsgId;
148
+ fix?: string;
149
+ warnings?: (Warning | undefined)[] | undefined;
150
+ } : never : never : never) | {
151
+ fix?: string;
152
+ message?: string;
153
+ warnings?: (Warning<Options> | undefined)[] | undefined;
154
+ }) & {
155
+ range: [number, number];
156
+ }) => void;
157
+ }
158
+ export type Context<Rule extends ESLintRule = ESLintRule> = RuleContext<Rule["messages"], Rule["options"]>;
159
+ export type MessageId<Messages extends Record<string, any> | undefined> = Messages extends Record<string, any> ? keyof Messages : never;
160
+ type Trim<Content extends string> = Content extends ` ${infer Rest}` ? Trim<Rest> : Content extends `${infer Rest} ` ? Trim<Rest> : Content;
161
+ export type ExtractVariables<Template extends string> = Template extends `${string}{{${infer RawVariable}}}${infer Rest}` ? ExtractVariables<Rest> | Trim<RawVariable> : never;
162
+ export {};
163
+ //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/types/rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export var MatcherType;
2
+ (function (MatcherType) {
3
+ /** Matches return values of anonymous functions via nested matchers. */
4
+ MatcherType["AnonymousFunctionReturn"] = "anonymousFunctionReturn";
5
+ /** Matches all object keys that are strings. */
6
+ MatcherType["ObjectKey"] = "objectKeys";
7
+ /** Matches all object values that are strings. */
8
+ MatcherType["ObjectValue"] = "objectValues";
9
+ /** Matches all strings that are not matched by another matcher. */
10
+ MatcherType["String"] = "strings";
11
+ })(MatcherType || (MatcherType = {}));
12
+ export var SelectorKind;
13
+ (function (SelectorKind) {
14
+ SelectorKind["Attribute"] = "attribute";
15
+ SelectorKind["Callee"] = "callee";
16
+ SelectorKind["Tag"] = "tag";
17
+ SelectorKind["Variable"] = "variable";
18
+ })(SelectorKind || (SelectorKind = {}));
19
+ export const MATCHER_RESULT = {
20
+ MATCH: true,
21
+ NO_MATCH: false,
22
+ UNCROSSABLE_BOUNDARY: "UNCROSSABLE_BOUNDARY"
23
+ };
24
+ //# sourceMappingURL=rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/types/rule.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,wEAAwE;IACxE,kEAAmD,CAAA;IACnD,gDAAgD;IAChD,uCAAwB,CAAA;IACxB,kDAAkD;IAClD,2CAA4B,CAAA;IAC5B,oEAAoE;IACpE,iCAAkB,CAAA;AACpB,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,2BAAW,CAAA;IACX,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAoBD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;IACf,oBAAoB,EAAE,sBAAsB;CACpC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Rule } from "eslint";
2
+ import type { SourceLocation } from "estree";
3
+ export declare function getLocByRange(ctx: Rule.RuleContext, range: [number, number]): SourceLocation;
4
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAS5F"}
@@ -0,0 +1,9 @@
1
+ export function getLocByRange(ctx, range) {
2
+ const [rangeStart, rangeEnd] = range;
3
+ const loc = {
4
+ end: ctx.sourceCode.getLocFromIndex(rangeEnd),
5
+ start: ctx.sourceCode.getLocFromIndex(rangeStart)
6
+ };
7
+ return loc;
8
+ }
9
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,aAAa,CAAC,GAAqB,EAAE,KAAuB;IAC1E,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAErC,MAAM,GAAG,GAAmB;QAC1B,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC7C,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC;KAClD,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Context } from "../types/rule.js";
2
+ interface ClassParts {
3
+ base: string;
4
+ important: [boolean, boolean];
5
+ negative: boolean;
6
+ prefix: string;
7
+ separator: string;
8
+ variants: string[] | undefined;
9
+ }
10
+ export declare function buildClass(ctx: Context, { base, important, negative, prefix, separator, variants }: ClassParts): string;
11
+ export {};
12
+ //# sourceMappingURL=class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/utils/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAGhE,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAG,MAAM,CAkBvH"}
@@ -0,0 +1,19 @@
1
+ export function buildClass(ctx, { base, important, negative, prefix, separator, variants }) {
2
+ const importantAtStart = important[0] && "!";
3
+ const importantAtEnd = important[1] && "!";
4
+ const negativePrefix = negative && "-";
5
+ if (ctx.version.major >= 4) {
6
+ return [
7
+ prefix,
8
+ ...variants ?? [],
9
+ [importantAtStart, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
10
+ ].filter(Boolean).join(separator);
11
+ }
12
+ else {
13
+ return [
14
+ ...variants ?? [],
15
+ [importantAtStart, prefix, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
16
+ ].filter(Boolean).join(separator);
17
+ }
18
+ }
19
+ //# sourceMappingURL=class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/utils/class.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAc;IAE7G,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC3C,MAAM,cAAc,GAAG,QAAQ,IAAI,GAAG,CAAC;IAEvC,IAAG,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAC,CAAC;QACzB,OAAO;YACL,MAAM;YACN,GAAG,QAAQ,IAAI,EAAE;YACjB,CAAC,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAClF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO;YACL,GAAG,QAAQ,IAAI,EAAE;YACjB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Warning } from "../types/async.js";
2
+ import type { Context, Version } from "../types/rule.js";
3
+ export interface AsyncContext {
4
+ cwd: string;
5
+ installation: string;
6
+ tailwindConfigPath: string;
7
+ tsconfigPath: string | undefined;
8
+ version: Version;
9
+ warnings: (Warning | undefined)[];
10
+ }
11
+ export declare function async(ctx: Context): AsyncContext;
12
+ export declare function getTailwindConfigPath({ configPath, cwd, version }: {
13
+ configPath: string | undefined;
14
+ cwd: string;
15
+ version: Version;
16
+ }): {
17
+ path: string;
18
+ warnings: (Warning<Record<string, any>> | undefined)[];
19
+ };
20
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACnC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAYhD;AAuBD,wBAAgB,qBAAqB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAClE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;;;EA+CA"}
@@ -0,0 +1,91 @@
1
+ import { resolve } from "node:path";
2
+ import { withCache } from "../async-utils/cache.js";
3
+ import { findPathRecursive } from "../async-utils/fs.js";
4
+ import { resolveCss } from "../async-utils/resolvers.js";
5
+ export function async(ctx) {
6
+ const { path: resolvedTailwindPath, warnings: tailwindConfigWarnings } = getTailwindConfigPath({ configPath: ctx.options.entryPoint ?? ctx.options.tailwindConfig, cwd: ctx.cwd, version: ctx.version });
7
+ const { path: resolvedTSConfigPath, warnings: tsconfigWarnings } = getTSConfigPath({ configPath: ctx.options.tsconfig, cwd: ctx.cwd });
8
+ return {
9
+ cwd: ctx.cwd,
10
+ installation: ctx.installation,
11
+ tailwindConfigPath: resolvedTailwindPath,
12
+ tsconfigPath: resolvedTSConfigPath,
13
+ version: ctx.version,
14
+ warnings: [...tailwindConfigWarnings, ...tsconfigWarnings]
15
+ };
16
+ }
17
+ function getTSConfigPath({ configPath, cwd }) {
18
+ return withCache(`tsconfig-path-${cwd}`, configPath, () => {
19
+ const potentialPaths = [
20
+ ...configPath ? [configPath] : [],
21
+ "tsconfig.json",
22
+ "jsconfig.json"
23
+ ];
24
+ const foundConfigPath = findPathRecursive(cwd, cwd, potentialPaths);
25
+ const warning = getConfigPathWarning(configPath, foundConfigPath);
26
+ return {
27
+ path: foundConfigPath,
28
+ warnings: [warning]
29
+ };
30
+ });
31
+ }
32
+ export function getTailwindConfigPath({ configPath, cwd, version }) {
33
+ return withCache(`config-path-${cwd}`, configPath, () => {
34
+ if (version.major >= 4) {
35
+ const foundConfigPath = configPath && findPathRecursive(cwd, cwd, [configPath]);
36
+ const warning = getEntryPointWarning(configPath, foundConfigPath);
37
+ if (foundConfigPath) {
38
+ return {
39
+ path: foundConfigPath,
40
+ warnings: [warning]
41
+ };
42
+ }
43
+ const defaultConfigPath = resolveCss("tailwindcss/theme.css", cwd);
44
+ if (!defaultConfigPath) {
45
+ throw new Error("No default tailwind config found. Please ensure you have Tailwind CSS installed.");
46
+ }
47
+ return {
48
+ path: defaultConfigPath,
49
+ warnings: [warning]
50
+ };
51
+ }
52
+ if (version.major <= 3) {
53
+ const defaultPaths = [
54
+ "tailwind.config.js",
55
+ "tailwind.config.cjs",
56
+ "tailwind.config.mjs",
57
+ "tailwind.config.ts"
58
+ ];
59
+ const foundConfigPath = configPath && findPathRecursive(cwd, cwd, [configPath]);
60
+ const foundDefaultPath = findPathRecursive(cwd, cwd, defaultPaths);
61
+ const warning = getConfigPathWarning(configPath, foundConfigPath);
62
+ return {
63
+ path: foundConfigPath ?? foundDefaultPath ?? "default",
64
+ warnings: [warning]
65
+ };
66
+ }
67
+ throw new Error(`Unsupported Tailwind CSS version: ${version.major}. Please use a version between 3 and 4.`);
68
+ });
69
+ }
70
+ function getEntryPointWarning(entryPoint, foundEntryPoint) {
71
+ if (!!entryPoint && !!foundEntryPoint) {
72
+ return;
73
+ }
74
+ return {
75
+ option: "entryPoint",
76
+ title: `No tailwind css entry point found at \`${entryPoint}\``
77
+ };
78
+ }
79
+ function getConfigPathWarning(configPath, foundConfigPath) {
80
+ if (!configPath) {
81
+ return;
82
+ }
83
+ if (foundConfigPath && resolve(configPath) === resolve(foundConfigPath)) {
84
+ return;
85
+ }
86
+ return {
87
+ option: "tsconfig",
88
+ title: `No tsconfig found at \`${configPath}\``
89
+ };
90
+ }
91
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Literal } from "../types/ast.js";
2
+ import type { Warning } from "../types/async.js";
3
+ import type { Context } from "../types/rule.js";
4
+ export declare function lintClasses<const Ctx extends Context>(ctx: Ctx, literal: Literal, report: (className: string, index: number, classes: string[], fixedClasses: string[]) => ((Parameters<Ctx["report"]>[0] extends infer DataAndId ? (DataAndId extends Record<"data" | "id", any> ? {
5
+ data: DataAndId["data"];
6
+ id: DataAndId["id"];
7
+ fix?: string;
8
+ message?: undefined;
9
+ warnings?: (Warning | undefined)[];
10
+ } : never) : never) extends infer Result extends Record<string, any> ? {
11
+ [Key in keyof Result as Result[Key] extends never ? never : Key]: Result[Key];
12
+ } : never) | false | undefined | {
13
+ message: string;
14
+ fix?: string;
15
+ warnings?: (Warning | undefined)[];
16
+ }): void;
17
+ //# sourceMappingURL=lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/utils/lint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE,wBAAgB,WAAW,CACzB,KAAK,CAAC,GAAG,SAAS,OAAO,EAEzB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,KAC9E,CAAC,CACD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,GAChD,CACA,SAAS,SAAS,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,GACxC;IACA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACpC,GACC,KAAK,CACV,GACC,KAAK,CACV,SAAS,MAAM,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9C;KACC,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;CAC9E,GACC,KAAK,CACR,GACC,KAAK,GACL,SAAS,GACT;IACA,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACpC,GACJ,IAAI,CAqDN"}
@@ -0,0 +1,40 @@
1
+ import { splitClasses, splitWhitespaces } from "./utils.js";
2
+ export function lintClasses(ctx, literal, report) {
3
+ const classChunks = splitClasses(literal.content);
4
+ const whitespaceChunks = splitWhitespaces(literal.content);
5
+ const startsWithWhitespace = whitespaceChunks.length > 0 && whitespaceChunks[0] !== "";
6
+ const fixedClasses = [...classChunks];
7
+ for (let classIndex = 0, stringIndex = 0; classIndex < classChunks.length; classIndex++) {
8
+ const className = classChunks[classIndex];
9
+ if (startsWithWhitespace) {
10
+ stringIndex += whitespaceChunks[classIndex].length;
11
+ }
12
+ const startIndex = stringIndex;
13
+ const endIndex = stringIndex + className.length;
14
+ stringIndex = endIndex;
15
+ if (!startsWithWhitespace) {
16
+ stringIndex += whitespaceChunks[classIndex + 1].length;
17
+ }
18
+ const result = report(className, classIndex, classChunks, fixedClasses);
19
+ if (result === undefined || result === false) {
20
+ continue;
21
+ }
22
+ const [literalStart] = literal.range;
23
+ if (typeof result === "object" && result.fix !== undefined) {
24
+ fixedClasses[classIndex] = result.fix;
25
+ }
26
+ ctx.report({
27
+ message: `Expected ${className} to be ${result.fix ?? ""}.`,
28
+ range: [
29
+ literalStart + startIndex + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0),
30
+ literalStart + endIndex + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
31
+ ],
32
+ ..."warnings" in result && { warnings: result.warnings },
33
+ ..."data" in result && { data: result.data },
34
+ ..."message" in result && { id: undefined, message: result.message },
35
+ ..."id" in result && { id: result.id, message: undefined },
36
+ ...typeof result === "object" && result.fix !== undefined && { fix: result.fix }
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAWnF,MAAM,UAAU,WAAW,CAGzB,GAAQ,EACR,OAAgB,EAChB,MA2BK;IAGL,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAEtC,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAC/B,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhD,WAAW,GAAG,QAAQ,CAAC;QAEvB,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAExE,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACxC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EAAE,YAAY,SAAS,UAAU,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG;YAC3D,KAAK,EAAE;gBACL,YAAY,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;gBACtG,YAAY,GAAG,QAAQ,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;aACrG;YACD,GAAG,UAAU,IAAI,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;YACxD,GAAG,MAAM,IAAI,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAC5C,GAAG,SAAS,IAAI,MAAM,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACpE,GAAG,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC1D,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;SACjF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Rule } from "eslint";
2
+ import type { Node as ESNode } from "estree";
3
+ import type { AttributeMatchers, AttributeName, Attributes } from "../options/schemas/attributes.js";
4
+ import type { CalleeMatchers, CalleeName, Callees } from "../options/schemas/callees.js";
5
+ import type { TagMatchers, TagName, Tags } from "../options/schemas/tags.js";
6
+ import type { VariableMatchers, VariableName, Variables } from "../options/schemas/variables.js";
7
+ import type { WithParent } from "../types/estree.js";
8
+ import type { MatcherFunctions } from "../types/rule.js";
9
+ export declare function getLiteralNodesByMatchers<Node>(ctx: Rule.RuleContext, node: unknown, matcherFunctions: MatcherFunctions): Node[];
10
+ export declare function matchesPathPattern(path: string, pattern: string): boolean;
11
+ export declare function isCalleeName(callee: Callees[number]): callee is CalleeName;
12
+ export declare function isCalleeMatchers(callee: Callees[number]): callee is CalleeMatchers;
13
+ export declare function isVariableName(variable: Variables[number]): variable is VariableName;
14
+ export declare function isVariableMatchers(variable: Variables[number]): variable is VariableMatchers;
15
+ export declare function isTagName(tag: Tags[number]): tag is TagName;
16
+ export declare function isTagMatchers(tag: Tags[number]): tag is TagMatchers;
17
+ export declare function isAttributesName(attributes: Attributes[number]): attributes is AttributeName;
18
+ export declare function isAttributesMatchers(attributes: Attributes[number]): attributes is AttributeMatchers;
19
+ export declare function isInsideConditionalExpressionTest(node: WithParent<ESNode>): boolean;
20
+ export declare function isInsideDisallowedBinaryExpression(node: WithParent<ESNode>): boolean;
21
+ export declare function isInsideLogicalExpressionLeft(node: WithParent<ESNode>): boolean;
22
+ export declare function isInsideMemberExpression(node: WithParent<ESNode>): boolean;
23
+ export declare function isIndexedAccessLiteral(node: WithParent<ESNode>): boolean;
24
+ //# sourceMappingURL=matchers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/utils/matchers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AACrH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AACjH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAkChI;AA8DD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,UAAU,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,cAAc,CAElF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,YAAY,CAEpF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,gBAAgB,CAE5F;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,WAAW,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,aAAa,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,iBAAiB,CAEpG;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAInF;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAOpF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAI/E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAK1E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAIxE"}