@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,154 @@
1
+ import { hasESNodeParentExtension, isESSimpleStringLiteral } from "../parsers/es.js";
2
+ import { MATCHER_RESULT } from "../types/rule.js";
3
+ import { getCachedRegex } from "../async-utils/regex.js";
4
+ import { isGenericNodeWithParent } from "./utils.js";
5
+ export function getLiteralNodesByMatchers(ctx, node, matcherFunctions) {
6
+ if (!isGenericNodeWithParent(node)) {
7
+ return [];
8
+ }
9
+ const { nestedMatcherFunctions, self } = matcherFunctions.reduce((matchedNodes, matcherFunction) => {
10
+ const result = matcherFunction(node);
11
+ if (result === MATCHER_RESULT.NO_MATCH) {
12
+ matchedNodes.nestedMatcherFunctions.push(matcherFunction);
13
+ return matchedNodes;
14
+ }
15
+ if (result === MATCHER_RESULT.MATCH) {
16
+ matchedNodes.self.unshift(node);
17
+ matchedNodes.nestedMatcherFunctions.push(matcherFunction);
18
+ return matchedNodes;
19
+ }
20
+ if (result === MATCHER_RESULT.UNCROSSABLE_BOUNDARY) {
21
+ return matchedNodes;
22
+ }
23
+ matchedNodes.nestedMatcherFunctions.push(...result);
24
+ return matchedNodes;
25
+ }, {
26
+ nestedMatcherFunctions: [],
27
+ self: []
28
+ });
29
+ const nestedLiterals = findMatchingNestedNodes(node, nestedMatcherFunctions);
30
+ return [...nestedLiterals, ...self];
31
+ }
32
+ function findMatchingNestedNodes(node, matcherFunctions) {
33
+ if (matcherFunctions.length === 0) {
34
+ return [];
35
+ }
36
+ return Object.entries(node).reduce((matchedNodes, [key, value]) => {
37
+ if (!value || typeof value !== "object" || key === "parent") {
38
+ return matchedNodes;
39
+ }
40
+ let isMatch = false;
41
+ let currentMatcherFunctions = [...matcherFunctions];
42
+ let hasMatcherFunctions = currentMatcherFunctions.length > 0;
43
+ while (hasMatcherFunctions) {
44
+ const nextMatcherFunctions = [];
45
+ const nestedMatcherFunctions = [];
46
+ for (const matcherFunction of currentMatcherFunctions) {
47
+ const result = matcherFunction(value);
48
+ if (result === MATCHER_RESULT.NO_MATCH) {
49
+ nextMatcherFunctions.push(matcherFunction);
50
+ continue;
51
+ }
52
+ if (result === MATCHER_RESULT.MATCH) {
53
+ isMatch = true;
54
+ nextMatcherFunctions.push(matcherFunction);
55
+ continue;
56
+ }
57
+ if (result === MATCHER_RESULT.UNCROSSABLE_BOUNDARY) {
58
+ continue;
59
+ }
60
+ for (const nestedMatcherFunction of result) {
61
+ nestedMatcherFunctions.push(nestedMatcherFunction);
62
+ }
63
+ }
64
+ hasMatcherFunctions = nestedMatcherFunctions.length > 0;
65
+ currentMatcherFunctions = hasMatcherFunctions
66
+ ? nestedMatcherFunctions
67
+ : nextMatcherFunctions;
68
+ }
69
+ if (isMatch) {
70
+ matchedNodes.push(value);
71
+ }
72
+ if (currentMatcherFunctions.length === 0) {
73
+ return matchedNodes;
74
+ }
75
+ matchedNodes.push(...findMatchingNestedNodes(value, currentMatcherFunctions));
76
+ return matchedNodes;
77
+ }, []);
78
+ }
79
+ export function matchesPathPattern(path, pattern) {
80
+ return getCachedRegex(pattern).test(path);
81
+ }
82
+ export function isCalleeName(callee) {
83
+ return typeof callee === "string";
84
+ }
85
+ export function isCalleeMatchers(callee) {
86
+ return Array.isArray(callee) && typeof callee[0] === "string" && Array.isArray(callee[1]);
87
+ }
88
+ export function isVariableName(variable) {
89
+ return typeof variable === "string";
90
+ }
91
+ export function isVariableMatchers(variable) {
92
+ return Array.isArray(variable) && typeof variable[0] === "string" && Array.isArray(variable[1]);
93
+ }
94
+ export function isTagName(tag) {
95
+ return typeof tag === "string";
96
+ }
97
+ export function isTagMatchers(tag) {
98
+ return Array.isArray(tag) && typeof tag[0] === "string" && Array.isArray(tag[1]);
99
+ }
100
+ export function isAttributesName(attributes) {
101
+ return typeof attributes === "string";
102
+ }
103
+ export function isAttributesMatchers(attributes) {
104
+ return Array.isArray(attributes) && typeof attributes[0] === "string" && Array.isArray(attributes[1]);
105
+ }
106
+ export function isInsideConditionalExpressionTest(node) {
107
+ if (!hasESNodeParentExtension(node)) {
108
+ return false;
109
+ }
110
+ if (node.parent.type === "ConditionalExpression" && node.parent.test === node) {
111
+ return true;
112
+ }
113
+ return isInsideConditionalExpressionTest(node.parent);
114
+ }
115
+ export function isInsideDisallowedBinaryExpression(node) {
116
+ if (!hasESNodeParentExtension(node)) {
117
+ return false;
118
+ }
119
+ if (node.parent.type === "BinaryExpression" &&
120
+ node.parent.operator !== "+" // allow string concatenation
121
+ ) {
122
+ return true;
123
+ }
124
+ return isInsideDisallowedBinaryExpression(node.parent);
125
+ }
126
+ export function isInsideLogicalExpressionLeft(node) {
127
+ if (!hasESNodeParentExtension(node)) {
128
+ return false;
129
+ }
130
+ if (node.parent.type === "LogicalExpression" && node.parent.left === node) {
131
+ return true;
132
+ }
133
+ return isInsideLogicalExpressionLeft(node.parent);
134
+ }
135
+ export function isInsideMemberExpression(node) {
136
+ // aka indexed access: https://github.com/estree/estree/blob/master/es5.md#memberexpression
137
+ if (!hasESNodeParentExtension(node)) {
138
+ return false;
139
+ }
140
+ if (node.parent.type === "MemberExpression") {
141
+ return true;
142
+ }
143
+ return isInsideMemberExpression(node.parent);
144
+ }
145
+ export function isIndexedAccessLiteral(node) {
146
+ if (!hasESNodeParentExtension(node)) {
147
+ return false;
148
+ }
149
+ if (node.parent.type !== "MemberExpression") {
150
+ return false;
151
+ }
152
+ return node.parent.property === node && isESSimpleStringLiteral(node);
153
+ }
154
+ //# sourceMappingURL=matchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/utils/matchers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LiteralValueQuotes } from "../types/ast.js";
2
+ export declare function escapeNestedQuotes(content: string, surroundingQuotes: LiteralValueQuotes): string;
3
+ //# sourceMappingURL=quotes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/utils/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,GAAG,MAAM,CAQjG"}
@@ -0,0 +1,9 @@
1
+ export function escapeNestedQuotes(content, surroundingQuotes) {
2
+ const regex = surroundingQuotes === "'"
3
+ ? /(?<!\\)'/g
4
+ : surroundingQuotes === "\""
5
+ ? /(?<!\\)"/g
6
+ : /(?<!\\)`/g;
7
+ return content.replace(regex, `\\${surroundingQuotes}`);
8
+ }
9
+ //# sourceMappingURL=quotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/utils/quotes.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,iBAAqC;IACvF,MAAM,KAAK,GAAG,iBAAiB,KAAK,GAAG;QACrC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,iBAAiB,KAAK,IAAI;YAC1B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,iBAAiB,EAAE,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Rule } from "eslint";
2
+ import type { CommonOptions } from "../options/descriptions.js";
3
+ import type { Literal } from "../types/ast.js";
4
+ import type { Context, CreateRuleOptions, JsonSchema, RuleCategory, Schema } from "../types/rule.js";
5
+ export declare function createRule<const Name extends string, const Messages extends Record<string, string>, const OptionsSchema extends Schema = Schema, const Options extends CommonOptions & JsonSchema<OptionsSchema> = CommonOptions & JsonSchema<OptionsSchema>, const Category extends RuleCategory = RuleCategory, const Recommended extends boolean = boolean>(options: CreateRuleOptions<Name, Messages, OptionsSchema, Options, Category, Recommended>): {
6
+ category: Category;
7
+ messages: Messages | undefined;
8
+ name: Name;
9
+ readonly options: Options;
10
+ recommended: Recommended;
11
+ rule: {
12
+ create: (ctx: Rule.RuleContext) => Rule.RuleListener;
13
+ meta: {
14
+ messages?: Messages;
15
+ docs: {
16
+ description: string;
17
+ recommended: boolean;
18
+ url: string;
19
+ };
20
+ fixable: "code" | undefined;
21
+ schema: {
22
+ additionalProperties: false;
23
+ properties: Record<string, boolean | import("@valibot/to-json-schema").JsonSchema> | undefined;
24
+ type: "object";
25
+ }[];
26
+ type: "problem" | "layout";
27
+ };
28
+ };
29
+ };
30
+ export declare function createRuleListener<Ctx extends Context>(ctx: Rule.RuleContext, context: Ctx, lintLiterals: (ctx: Ctx, literals: Literal[]) => void): Rule.RuleListener;
31
+ //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/utils/rule.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAanC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAGV,OAAO,EACP,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAEZ,MAAM,EAIP,MAAM,kCAAkC,CAAC;AAoB1C,wBAAgB,UAAU,CACxB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,KAAK,CAAC,aAAa,SAAS,MAAM,GAAG,MAAM,EAC3C,KAAK,CAAC,OAAO,SAAS,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,EAC3G,KAAK,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY,EAClD,KAAK,CAAC,WAAW,SAAS,OAAO,GAAG,OAAO,EAC3C,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;;;;;;;sBAmFvE,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;EA6EnC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,YAAY,CA8NrK"}
@@ -0,0 +1,349 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { toJsonSchema } from "@valibot/to-json-schema";
4
+ import { getDefaults, strictObject } from "valibot";
5
+ import { COMMON_OPTIONS } from "../options/descriptions.js";
6
+ import { migrateLegacySelectorsToFlatSelectors } from "../options/migrate.js";
7
+ import { getAttributesByAngularElement, getLiteralsByAngularAttribute } from "../parsers/angular.js";
8
+ import { getLiteralsByCSSAtRule } from "../parsers/css.js";
9
+ import { getLiteralsByESBareTemplateLiteral, getLiteralsByESCallExpression, getLiteralsByESExportDefaultDeclaration, getLiteralsByESVariableDeclarator, getLiteralsByTaggedTemplateExpression } from "../parsers/es.js";
10
+ import { getAttributesByHTMLTag, getLiteralsByHTMLAttribute } from "../parsers/html.js";
11
+ import { getAttributesByJSXElement, getLiteralsByJSXAttribute } from "../parsers/jsx.js";
12
+ import { getAttributesBySvelteTag, getDirectivesBySvelteTag, getLiteralsBySvelteAttribute, getLiteralsBySvelteDirective } from "../parsers/svelte.js";
13
+ import { getAttributesByVueStartTag, getLiteralsByVueAttribute } from "../parsers/vue.js";
14
+ import { SelectorKind } from "../types/rule.js";
15
+ import { getLocByRange } from "./ast.js";
16
+ import { withCache } from "../async-utils/cache.js";
17
+ import { resolveJson } from "../async-utils/resolvers.js";
18
+ import { augmentMessageWithWarnings, escapeMessage } from "./utils.js";
19
+ import { removeDefaults } from "./valibot.js";
20
+ import { parseSemanticVersion } from "./version.js";
21
+ import { warnOnce } from "./warn.js";
22
+ // caching tailwind's package.json so it scales better
23
+ // the operation is called for every rule * every linted file
24
+ const getTailwindPackage = (cwd) => withCache("tailwind-package", cwd, () => {
25
+ const packageJsonPath = resolveJson("tailwindcss/package.json", cwd);
26
+ if (!packageJsonPath) {
27
+ return;
28
+ }
29
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
30
+ return {
31
+ installation: dirname(packageJsonPath),
32
+ version: parseSemanticVersion(packageJson.version)
33
+ };
34
+ });
35
+ export function createRule(options) {
36
+ const { autofix, category, description, docs, initialize, lintLiterals, messages, name, recommended, schema } = options;
37
+ let eslintContext;
38
+ const propertiesSchema = strictObject({
39
+ // eslint injects the defaults from the settings to options, if not specified in the options
40
+ // because we want to have a specific order of precedence, we need to remove the defaults here and merge them
41
+ // manually in getOptions. The order of precedence is:
42
+ // 1. defaults from settings
43
+ // 2. defaults from option
44
+ // 3. configs from settings
45
+ // 4. configs from option
46
+ ...removeDefaults(COMMON_OPTIONS.entries),
47
+ ...schema?.entries
48
+ });
49
+ const jsonSchema = toJsonSchema(propertiesSchema).properties;
50
+ const getOptions = () => {
51
+ const defaultSettings = getDefaults(COMMON_OPTIONS);
52
+ const defaultOptions = schema ? getDefaults(schema) : {};
53
+ const settings = eslintContext?.settings?.["eslint-plugin-better-tailwindcss"] ?? eslintContext?.settings?.["better-tailwindcss"] ?? {};
54
+ const options = eslintContext?.options[0] ?? {};
55
+ const mergedOptions = {
56
+ ...defaultSettings,
57
+ ...defaultOptions,
58
+ ...settings,
59
+ ...options
60
+ };
61
+ const migratedSelectors = migrateLegacySelectorsToFlatSelectors({
62
+ attributes: mergedOptions.attributes,
63
+ callees: mergedOptions.callees,
64
+ tags: mergedOptions.tags,
65
+ variables: mergedOptions.variables
66
+ });
67
+ const hasAttributeOverride = mergedOptions.attributes !== undefined;
68
+ const hasCalleeOverride = mergedOptions.callees !== undefined;
69
+ const hasTagOverride = mergedOptions.tags !== undefined;
70
+ const hasVariableOverride = mergedOptions.variables !== undefined;
71
+ const preservedSelectors = (mergedOptions.selectors ?? []).filter(selector => {
72
+ if (hasAttributeOverride && selector.kind === SelectorKind.Attribute) {
73
+ return false;
74
+ }
75
+ if (hasCalleeOverride && selector.kind === SelectorKind.Callee) {
76
+ return false;
77
+ }
78
+ if (hasTagOverride && selector.kind === SelectorKind.Tag) {
79
+ return false;
80
+ }
81
+ if (hasVariableOverride && selector.kind === SelectorKind.Variable) {
82
+ return false;
83
+ }
84
+ return true;
85
+ });
86
+ const selectors = [
87
+ ...migratedSelectors,
88
+ ...preservedSelectors
89
+ ];
90
+ return {
91
+ ...mergedOptions,
92
+ selectors
93
+ };
94
+ };
95
+ return {
96
+ category,
97
+ messages,
98
+ name,
99
+ get options() { return getOptions(); },
100
+ recommended,
101
+ rule: {
102
+ create: (ctx) => {
103
+ eslintContext = ctx;
104
+ const options = getOptions();
105
+ const { messageStyle } = options;
106
+ // #361#issuecomment-4227041592
107
+ const cwd = options.cwd
108
+ ? resolve(ctx.cwd, options.cwd)
109
+ : ctx.cwd;
110
+ const tailwindPackage = getTailwindPackage(cwd);
111
+ if (!tailwindPackage) {
112
+ warnOnce(`Tailwind CSS is not installed. Disabling rule ${ctx.id}.`);
113
+ return {};
114
+ }
115
+ const { installation, version } = tailwindPackage;
116
+ const context = {
117
+ cwd,
118
+ docs,
119
+ installation,
120
+ options,
121
+ report: ({ fix, range, warnings, ...rest }) => {
122
+ const loc = getLocByRange(ctx, range);
123
+ if ("id" in rest && rest.id && messages && rest.id in messages) {
124
+ return void ctx.report({
125
+ data: rest.data,
126
+ loc,
127
+ ...fix !== undefined && {
128
+ fix: fixer => fixer.replaceTextRange(range, fix)
129
+ },
130
+ message: escapeMessage(messageStyle, augmentMessageWithWarnings(messages[rest.id], docs, warnings))
131
+ });
132
+ }
133
+ if ("message" in rest && rest.message) {
134
+ return void ctx.report({
135
+ loc,
136
+ ...fix !== undefined && {
137
+ fix: fixer => fixer.replaceTextRange(range, fix)
138
+ },
139
+ message: escapeMessage(messageStyle, augmentMessageWithWarnings(rest.message, docs, warnings))
140
+ });
141
+ }
142
+ },
143
+ version
144
+ };
145
+ initialize?.(context);
146
+ return createRuleListener(eslintContext, context, lintLiterals);
147
+ },
148
+ meta: {
149
+ docs: {
150
+ description,
151
+ recommended,
152
+ url: docs
153
+ },
154
+ fixable: autofix ? "code" : undefined,
155
+ schema: [
156
+ {
157
+ additionalProperties: false,
158
+ properties: jsonSchema,
159
+ type: "object"
160
+ }
161
+ ],
162
+ type: category === "correctness" ? "problem" : "layout",
163
+ ...messages && { messages }
164
+ }
165
+ }
166
+ };
167
+ }
168
+ export function createRuleListener(ctx, context, lintLiterals) {
169
+ const selectors = context.options.selectors;
170
+ const attributes = [];
171
+ const callees = [];
172
+ const tags = [];
173
+ const variables = [];
174
+ for (const selector of selectors) {
175
+ switch (selector.kind) {
176
+ case SelectorKind.Attribute:
177
+ attributes.push(selector);
178
+ break;
179
+ case SelectorKind.Callee:
180
+ callees.push(selector);
181
+ break;
182
+ case SelectorKind.Tag:
183
+ tags.push(selector);
184
+ break;
185
+ case SelectorKind.Variable:
186
+ variables.push(selector);
187
+ break;
188
+ }
189
+ }
190
+ const callExpression = {
191
+ CallExpression(node) {
192
+ const callExpressionNode = node;
193
+ const literals = getLiteralsByESCallExpression(ctx, callExpressionNode, callees);
194
+ if (literals.length > 0) {
195
+ lintLiterals(context, literals);
196
+ }
197
+ }
198
+ };
199
+ const variableDeclarators = {
200
+ VariableDeclarator(node) {
201
+ const variableDeclaratorNode = node;
202
+ const literals = getLiteralsByESVariableDeclarator(ctx, variableDeclaratorNode, variables);
203
+ if (literals.length > 0) {
204
+ lintLiterals(context, literals);
205
+ }
206
+ }
207
+ };
208
+ const exportDefaultDeclarations = {
209
+ ExportDefaultDeclaration(node) {
210
+ const exportDefaultDeclarationNode = node;
211
+ const literals = getLiteralsByESExportDefaultDeclaration(ctx, exportDefaultDeclarationNode, variables);
212
+ if (literals.length > 0) {
213
+ lintLiterals(context, literals);
214
+ }
215
+ }
216
+ };
217
+ const taggedTemplateExpression = {
218
+ TaggedTemplateExpression(node) {
219
+ const taggedTemplateExpressionNode = node;
220
+ const literals = getLiteralsByTaggedTemplateExpression(ctx, taggedTemplateExpressionNode, tags);
221
+ if (literals.length > 0) {
222
+ lintLiterals(context, literals);
223
+ }
224
+ }
225
+ };
226
+ const bareTemplateLiteral = {
227
+ TemplateLiteral(node) {
228
+ const templateLiteralNode = node;
229
+ const literals = getLiteralsByESBareTemplateLiteral(ctx, templateLiteralNode, tags);
230
+ if (literals.length > 0) {
231
+ lintLiterals(context, literals);
232
+ }
233
+ }
234
+ };
235
+ const jsx = {
236
+ JSXOpeningElement(node) {
237
+ const jsxNode = node;
238
+ const jsxAttributes = getAttributesByJSXElement(ctx, jsxNode);
239
+ for (const jsxAttribute of jsxAttributes) {
240
+ const attributeValue = jsxAttribute.value;
241
+ if (!attributeValue) {
242
+ continue;
243
+ }
244
+ const literals = getLiteralsByJSXAttribute(ctx, jsxAttribute, attributes);
245
+ if (literals.length > 0) {
246
+ lintLiterals(context, literals);
247
+ }
248
+ }
249
+ }
250
+ };
251
+ const svelte = {
252
+ SvelteStartTag(node) {
253
+ const svelteNode = node;
254
+ const svelteAttributes = getAttributesBySvelteTag(ctx, svelteNode);
255
+ const svelteDirectives = getDirectivesBySvelteTag(ctx, svelteNode);
256
+ for (const svelteAttribute of svelteAttributes) {
257
+ const attributeName = svelteAttribute.key.name;
258
+ if (typeof attributeName !== "string") {
259
+ continue;
260
+ }
261
+ const literals = getLiteralsBySvelteAttribute(ctx, svelteAttribute, attributes);
262
+ if (literals.length > 0) {
263
+ lintLiterals(context, literals);
264
+ }
265
+ }
266
+ for (const svelteDirective of svelteDirectives) {
267
+ const literals = getLiteralsBySvelteDirective(ctx, svelteDirective, attributes);
268
+ if (literals.length > 0) {
269
+ lintLiterals(context, literals);
270
+ }
271
+ }
272
+ }
273
+ };
274
+ const vue = {
275
+ VStartTag(node) {
276
+ const vueNode = node;
277
+ const vueAttributes = getAttributesByVueStartTag(ctx, vueNode);
278
+ for (const attribute of vueAttributes) {
279
+ const literals = getLiteralsByVueAttribute(ctx, attribute, attributes);
280
+ if (literals.length > 0) {
281
+ lintLiterals(context, literals);
282
+ }
283
+ }
284
+ }
285
+ };
286
+ const html = {
287
+ Tag(node) {
288
+ const htmlTagNode = node;
289
+ const htmlAttributes = getAttributesByHTMLTag(ctx, htmlTagNode);
290
+ for (const htmlAttribute of htmlAttributes) {
291
+ const literals = getLiteralsByHTMLAttribute(ctx, htmlAttribute, attributes);
292
+ if (literals.length > 0) {
293
+ lintLiterals(context, literals);
294
+ }
295
+ }
296
+ }
297
+ };
298
+ const angular = {
299
+ Element(node) {
300
+ const angularElementNode = node;
301
+ const angularAttributes = getAttributesByAngularElement(ctx, angularElementNode);
302
+ for (const angularAttribute of angularAttributes) {
303
+ const literals = getLiteralsByAngularAttribute(ctx, angularAttribute, attributes);
304
+ if (literals.length > 0) {
305
+ lintLiterals(context, literals);
306
+ }
307
+ }
308
+ }
309
+ };
310
+ const css = {
311
+ Atrule(node) {
312
+ const atRuleNode = node;
313
+ const literals = getLiteralsByCSSAtRule(ctx, atRuleNode);
314
+ if (literals.length > 0) {
315
+ lintLiterals(context, literals);
316
+ }
317
+ }
318
+ };
319
+ // Vue
320
+ if (typeof ctx.sourceCode.parserServices?.defineTemplateBodyVisitor === "function") {
321
+ return {
322
+ // script tag
323
+ ...callExpression,
324
+ ...variableDeclarators,
325
+ ...bareTemplateLiteral,
326
+ ...exportDefaultDeclarations,
327
+ ...taggedTemplateExpression,
328
+ // bound classes
329
+ ...ctx.sourceCode.parserServices.defineTemplateBodyVisitor({
330
+ ...callExpression,
331
+ ...vue
332
+ })
333
+ };
334
+ }
335
+ return {
336
+ ...callExpression,
337
+ ...variableDeclarators,
338
+ ...bareTemplateLiteral,
339
+ ...exportDefaultDeclarations,
340
+ ...taggedTemplateExpression,
341
+ ...jsx,
342
+ ...svelte,
343
+ ...vue,
344
+ ...html,
345
+ ...angular,
346
+ ...css
347
+ };
348
+ }
349
+ //# sourceMappingURL=rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/utils/rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,qCAAqC,EAAE,MAAM,uCAAuC,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACrH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACL,kCAAkC,EAClC,6BAA6B,EAC7B,uCAAuC,EACvC,iCAAiC,EACjC,qCAAqC,EACtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACzG,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAoC5D,sDAAsD;AACtD,6DAA6D;AAC7D,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE;IAClF,MAAM,eAAe,GAAG,WAAW,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAErE,IAAG,CAAC,eAAe,EAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC;QACtC,OAAO,EAAE,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC;KACnD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,UAAU,CAOxB,OAAyF;IAEzF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAExH,IAAI,aAA2C,CAAC;IAEhD,MAAM,gBAAgB,GAAG,YAAY,CAAC;QACpC,4FAA4F;QAC5F,6GAA6G;QAC7G,sDAAsD;QACtD,4BAA4B;QAC5B,0BAA0B;QAC1B,2BAA2B;QAC3B,yBAAyB;QACzB,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC;QACzC,GAAG,MAAM,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC;IAE7D,MAAM,UAAU,GAAG,GAAY,EAAE;QAC/B,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,CAAC,kCAAkC,CAAC,IAAI,aAAa,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACxI,MAAM,OAAO,GAAG,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhD,MAAM,aAAa,GAAG;YACpB,GAAG,eAAe;YAClB,GAAG,cAAc;YACjB,GAAG,QAAQ;YACX,GAAG,OAAO;SACX,CAAC;QAEF,MAAM,iBAAiB,GAAG,qCAAqC,CAAC;YAC9D,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,aAAa,CAAC,UAAU,KAAK,SAAS,CAAC;QACpE,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,KAAK,SAAS,CAAC;QAC9D,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC;QACxD,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,KAAK,SAAS,CAAC;QAElE,MAAM,kBAAkB,GAAG,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC3E,IAAG,oBAAoB,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAC,CAAC;gBACnE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAG,iBAAiB,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAG,cAAc,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,EAAC,CAAC;gBACvD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAG,mBAAmB,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,EAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YAChB,GAAG,iBAAiB;YACpB,GAAG,kBAAkB;SACtB,CAAC;QAEF,OAAO;YACL,GAAG,aAAa;YAChB,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI,OAAO,KAAK,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC;QACtC,WAAW;QACX,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,GAAqB,EAAE,EAAE;gBAEhC,aAAa,GAAG,GAAG,CAAC;gBAEpB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;gBAE7B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;gBAEjC,+BAA+B;gBAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;oBACrB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;oBAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAEZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAEhD,IAAG,CAAC,eAAe,EAAC,CAAC;oBACnB,QAAQ,CAAC,iDAAiD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBACrE,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;gBAElD,MAAM,OAAO,GAAG;oBACd,GAAG;oBACH,IAAI;oBACJ,YAAY;oBACZ,OAAO;oBACP,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;wBAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAEtC,IAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAC,CAAC;4BAC7D,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC;gCACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,GAAG;gCACH,GAAG,GAAG,KAAK,SAAS,IAAI;oCACtB,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;iCACjD;gCACD,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;6BACpG,CAAC,CAAC;wBACL,CAAC;wBAED,IAAG,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAC,CAAC;4BACpC,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC;gCACrB,GAAG;gCACH,GAAG,GAAG,KAAK,SAAS,IAAI;oCACtB,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;iCACjD;gCACD,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,0BAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;6BAC/F,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,OAAO;iBACiC,CAAC;gBAE3C,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;gBAEtB,OAAO,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,WAAW;oBACX,WAAW;oBACX,GAAG,EAAE,IAAI;iBACV;gBACD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACrC,MAAM,EAAE;oBACN;wBACE,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,IAAI,EAAE,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBACvD,GAAG,QAAQ,IAAI,EAAE,QAAQ,EAAE;aAC5B;SACF;KACmE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAsB,GAAqB,EAAE,OAAY,EAAE,YAAqD;IAEhJ,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAsB,CAAC;IAEzD,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,KAAI,MAAM,QAAQ,IAAI,SAAS,EAAC,CAAC;QAC/B,QAAQ,QAAQ,CAAC,IAAI,EAAC,CAAC;YACrB,KAAK,YAAY,CAAC,SAAS;gBACzB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,YAAY,CAAC,MAAM;gBACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,YAAY,CAAC,GAAG;gBACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,MAAM;YACR,KAAK,YAAY,CAAC,QAAQ;gBACxB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,cAAc,CAAC,IAAU;YACvB,MAAM,kBAAkB,GAAG,IAAsB,CAAC;YAElD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAEjF,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,kBAAkB,CAAC,IAAU;YAC3B,MAAM,sBAAsB,GAAG,IAA0B,CAAC;YAE1D,MAAM,QAAQ,GAAG,iCAAiC,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;YAE3F,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,yBAAyB,GAAG;QAChC,wBAAwB,CAAC,IAAU;YACjC,MAAM,4BAA4B,GAAG,IAAgC,CAAC;YAEtE,MAAM,QAAQ,GAAG,uCAAuC,CAAC,GAAG,EAAE,4BAA4B,EAAE,SAAS,CAAC,CAAC;YAEvG,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,wBAAwB,GAAG;QAC/B,wBAAwB,CAAC,IAAU;YACjC,MAAM,4BAA4B,GAAG,IAAgC,CAAC;YAEtE,MAAM,QAAQ,GAAG,qCAAqC,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;YAEhG,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,eAAe,CAAC,IAAU;YACxB,MAAM,mBAAmB,GAAG,IAAuB,CAAC;YAEpD,MAAM,QAAQ,GAAG,kCAAkC,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAEpF,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,GAAG,GAAG;QACV,iBAAiB,CAAC,IAAU;YAC1B,MAAM,OAAO,GAAG,IAAyB,CAAC;YAC1C,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE9D,KAAI,MAAM,YAAY,IAAI,aAAa,EAAC,CAAC;gBAEvC,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC;gBAE1C,IAAG,CAAC,cAAc,EAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAEhC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;gBAE1E,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,cAAc,CAAC,IAAU;YACvB,MAAM,UAAU,GAAG,IAAiC,CAAC;YACrD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnE,KAAI,MAAM,eAAe,IAAI,gBAAgB,EAAC,CAAC;gBAC7C,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;gBAE/C,IAAG,OAAO,aAAa,KAAK,QAAQ,EAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAElD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;gBAEhF,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,KAAI,MAAM,eAAe,IAAI,gBAAgB,EAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;gBAEhF,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,GAAG,GAAG;QACV,SAAS,CAAC,IAAU;YAClB,MAAM,OAAO,GAAG,IAAgC,CAAC;YACjD,MAAM,aAAa,GAAG,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE/D,KAAI,MAAM,SAAS,IAAI,aAAa,EAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEvE,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,IAAU;YACZ,MAAM,WAAW,GAAG,IAA0B,CAAC;YAC/C,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAEhE,KAAI,MAAM,aAAa,IAAI,cAAc,EAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;gBAE5E,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,OAAO,CAAC,IAAU;YAChB,MAAM,kBAAkB,GAAG,IAAiC,CAAC;YAC7D,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAEjF,KAAI,MAAM,gBAAgB,IAAI,iBAAiB,EAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,6BAA6B,CAAC,GAAG,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBAElF,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,GAAG,GAAG;QACV,MAAM,CAAC,IAAU;YACf,MAAM,UAAU,GAAG,IAAyB,CAAC;YAE7C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAEzD,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;gBACtB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM;IACN,IAAG,OAAO,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,KAAK,UAAU,EAAC,CAAC;QACjF,OAAO;YACL,aAAa;YACb,GAAG,cAAc;YACjB,GAAG,mBAAmB;YACtB,GAAG,mBAAmB;YACtB,GAAG,yBAAyB;YAC5B,GAAG,wBAAwB;YAE3B,gBAAgB;YAChB,GAAG,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC;gBACzD,GAAG,cAAc;gBACjB,GAAG,GAAG;aACP,CAAC;SACH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,mBAAmB;QACtB,GAAG,mBAAmB;QACtB,GAAG,yBAAyB;QAC5B,GAAG,wBAAwB;QAC3B,GAAG,GAAG;QACN,GAAG,MAAM;QACT,GAAG,GAAG;QACN,GAAG,IAAI;QACP,GAAG,OAAO;QACV,GAAG,GAAG;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Selector, SelectorByKind, SelectorKind } from "../types/rule.js";
2
+ export declare function isSelectorKind<Kind extends SelectorKind>(kind: Kind): (selector: Selector) => selector is SelectorByKind<Kind>;
3
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/utils/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAG/F,wBAAgB,cAAc,CAAC,IAAI,SAAS,YAAY,EAAE,IAAI,EAAE,IAAI,IAC1D,UAAU,QAAQ,KAAG,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAC9D"}
@@ -0,0 +1,4 @@
1
+ export function isSelectorKind(kind) {
2
+ return (selector) => selector.kind === kind;
3
+ }
4
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/utils/selectors.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAA4B,IAAU;IAClE,OAAO,CAAC,QAAkB,EAAoC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;AAC1F,CAAC"}