@luxass/eslint-config 4.2.6 → 4.2.7

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 (134) hide show
  1. package/README.md +4 -5
  2. package/dist/index.cjs +145 -446
  3. package/dist/index.d.cts +733 -12
  4. package/dist/index.d.ts +733 -12
  5. package/dist/{configs/index.cjs → index.js} +288 -516
  6. package/package.json +51 -85
  7. package/dist/chunk-2IR43M6N.mjs +0 -48
  8. package/dist/chunk-47ISSTHW.mjs +0 -291
  9. package/dist/chunk-4YBQZLPS.mjs +0 -68
  10. package/dist/chunk-4YT54JFZ.mjs +0 -48
  11. package/dist/chunk-5NK24IKQ.mjs +0 -26
  12. package/dist/chunk-AJS3TMZE.mjs +0 -63
  13. package/dist/chunk-C6FE5KXJ.mjs +0 -104
  14. package/dist/chunk-DAJA5AV3.mjs +0 -29
  15. package/dist/chunk-DCOLHWHC.mjs +0 -269
  16. package/dist/chunk-E4RVBKZB.mjs +0 -207
  17. package/dist/chunk-HZNHG5PB.mjs +0 -45
  18. package/dist/chunk-KOXCJL3C.mjs +0 -109
  19. package/dist/chunk-PFCAWBCD.mjs +0 -93
  20. package/dist/chunk-PFYV2TWZ.mjs +0 -117
  21. package/dist/chunk-QT6FHTFU.mjs +0 -92
  22. package/dist/chunk-RDZJT36Z.mjs +0 -57
  23. package/dist/chunk-RVSUTDCE.mjs +0 -57
  24. package/dist/chunk-TWAETZPX.mjs +0 -149
  25. package/dist/chunk-WSQOWO67.mjs +0 -16
  26. package/dist/chunk-XBASVDU6.mjs +0 -215
  27. package/dist/chunk-XD3UVRU7.mjs +0 -274
  28. package/dist/chunk-XGI647GZ.mjs +0 -81
  29. package/dist/chunk-XMXYE5WC.mjs +0 -183
  30. package/dist/chunk-YNMFVYL6.mjs +0 -69
  31. package/dist/chunk-YO3IYQ2L.mjs +0 -220
  32. package/dist/chunk-YZCJUX6Z.mjs +0 -0
  33. package/dist/configs/comments.cjs +0 -63
  34. package/dist/configs/comments.d.cts +0 -15
  35. package/dist/configs/comments.d.ts +0 -15
  36. package/dist/configs/comments.mjs +0 -6
  37. package/dist/configs/css/tailwindcss.cjs +0 -148
  38. package/dist/configs/css/tailwindcss.d.cts +0 -11
  39. package/dist/configs/css/tailwindcss.d.ts +0 -11
  40. package/dist/configs/css/tailwindcss.mjs +0 -8
  41. package/dist/configs/css/unocss.cjs +0 -133
  42. package/dist/configs/css/unocss.d.cts +0 -11
  43. package/dist/configs/css/unocss.d.ts +0 -11
  44. package/dist/configs/css/unocss.mjs +0 -8
  45. package/dist/configs/data/json.cjs +0 -155
  46. package/dist/configs/data/json.d.cts +0 -11
  47. package/dist/configs/data/json.d.ts +0 -11
  48. package/dist/configs/data/json.mjs +0 -8
  49. package/dist/configs/data/toml.cjs +0 -131
  50. package/dist/configs/data/toml.d.cts +0 -11
  51. package/dist/configs/data/toml.d.ts +0 -11
  52. package/dist/configs/data/toml.mjs +0 -8
  53. package/dist/configs/data/yaml.cjs +0 -143
  54. package/dist/configs/data/yaml.d.cts +0 -11
  55. package/dist/configs/data/yaml.d.ts +0 -11
  56. package/dist/configs/data/yaml.mjs +0 -8
  57. package/dist/configs/docs/jsdoc.cjs +0 -85
  58. package/dist/configs/docs/jsdoc.d.cts +0 -27
  59. package/dist/configs/docs/jsdoc.d.ts +0 -27
  60. package/dist/configs/docs/jsdoc.mjs +0 -7
  61. package/dist/configs/docs/markdown.cjs +0 -164
  62. package/dist/configs/docs/markdown.d.cts +0 -35
  63. package/dist/configs/docs/markdown.d.ts +0 -35
  64. package/dist/configs/docs/markdown.mjs +0 -8
  65. package/dist/configs/formatters.cjs +0 -274
  66. package/dist/configs/formatters.d.cts +0 -11
  67. package/dist/configs/formatters.d.ts +0 -11
  68. package/dist/configs/formatters.mjs +0 -9
  69. package/dist/configs/frameworks/astro.cjs +0 -179
  70. package/dist/configs/frameworks/astro.d.cts +0 -11
  71. package/dist/configs/frameworks/astro.d.ts +0 -11
  72. package/dist/configs/frameworks/astro.mjs +0 -8
  73. package/dist/configs/frameworks/nextjs.cjs +0 -180
  74. package/dist/configs/frameworks/nextjs.d.cts +0 -11
  75. package/dist/configs/frameworks/nextjs.d.ts +0 -11
  76. package/dist/configs/frameworks/nextjs.mjs +0 -8
  77. package/dist/configs/frameworks/react.cjs +0 -377
  78. package/dist/configs/frameworks/react.d.cts +0 -11
  79. package/dist/configs/frameworks/react.d.ts +0 -11
  80. package/dist/configs/frameworks/react.mjs +0 -8
  81. package/dist/configs/frameworks/solid.cjs +0 -360
  82. package/dist/configs/frameworks/solid.d.cts +0 -11
  83. package/dist/configs/frameworks/solid.d.ts +0 -11
  84. package/dist/configs/frameworks/solid.mjs +0 -8
  85. package/dist/configs/frameworks/vue.cjs +0 -293
  86. package/dist/configs/frameworks/vue.d.cts +0 -11
  87. package/dist/configs/frameworks/vue.d.ts +0 -11
  88. package/dist/configs/frameworks/vue.mjs +0 -8
  89. package/dist/configs/ignores.cjs +0 -96
  90. package/dist/configs/ignores.d.cts +0 -15
  91. package/dist/configs/ignores.d.ts +0 -15
  92. package/dist/configs/ignores.mjs +0 -7
  93. package/dist/configs/imports.cjs +0 -104
  94. package/dist/configs/imports.d.cts +0 -23
  95. package/dist/configs/imports.d.ts +0 -23
  96. package/dist/configs/imports.mjs +0 -7
  97. package/dist/configs/index.d.cts +0 -19
  98. package/dist/configs/index.d.ts +0 -19
  99. package/dist/configs/index.mjs +0 -99
  100. package/dist/configs/javascript.cjs +0 -324
  101. package/dist/configs/javascript.d.cts +0 -11
  102. package/dist/configs/javascript.d.ts +0 -11
  103. package/dist/configs/javascript.mjs +0 -7
  104. package/dist/configs/node.cjs +0 -60
  105. package/dist/configs/node.d.cts +0 -15
  106. package/dist/configs/node.d.ts +0 -15
  107. package/dist/configs/node.mjs +0 -6
  108. package/dist/configs/sort.cjs +0 -240
  109. package/dist/configs/sort.d.cts +0 -26
  110. package/dist/configs/sort.d.ts +0 -26
  111. package/dist/configs/sort.mjs +0 -8
  112. package/dist/configs/stylistic.cjs +0 -98
  113. package/dist/configs/stylistic.d.cts +0 -11
  114. package/dist/configs/stylistic.d.ts +0 -11
  115. package/dist/configs/stylistic.mjs +0 -9
  116. package/dist/configs/test.cjs +0 -210
  117. package/dist/configs/test.d.cts +0 -11
  118. package/dist/configs/test.d.ts +0 -11
  119. package/dist/configs/test.mjs +0 -8
  120. package/dist/configs/typescript.cjs +0 -291
  121. package/dist/configs/typescript.d.cts +0 -11
  122. package/dist/configs/typescript.d.ts +0 -11
  123. package/dist/configs/typescript.mjs +0 -8
  124. package/dist/configs/unicorn.cjs +0 -91
  125. package/dist/configs/unicorn.d.cts +0 -15
  126. package/dist/configs/unicorn.d.ts +0 -15
  127. package/dist/configs/unicorn.mjs +0 -6
  128. package/dist/globs.cjs +0 -158
  129. package/dist/globs.d.cts +0 -28
  130. package/dist/globs.d.ts +0 -28
  131. package/dist/globs.mjs +0 -56
  132. package/dist/index.mjs +0 -278
  133. package/dist/types-HqEzZfQU.d.cts +0 -668
  134. package/dist/types-HqEzZfQU.d.ts +0 -668
package/dist/index.cjs CHANGED
@@ -30,8 +30,63 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
- default: () => src_default,
34
- luxass: () => luxass
33
+ GLOB_ASTRO: () => GLOB_ASTRO,
34
+ GLOB_CSS: () => GLOB_CSS,
35
+ GLOB_EXCLUDE: () => GLOB_EXCLUDE,
36
+ GLOB_HTML: () => GLOB_HTML,
37
+ GLOB_JS: () => GLOB_JS,
38
+ GLOB_JSON: () => GLOB_JSON,
39
+ GLOB_JSON5: () => GLOB_JSON5,
40
+ GLOB_JSONC: () => GLOB_JSONC,
41
+ GLOB_JSX: () => GLOB_JSX,
42
+ GLOB_LESS: () => GLOB_LESS,
43
+ GLOB_MARKDOWN: () => GLOB_MARKDOWN,
44
+ GLOB_MARKDOWN_CODE: () => GLOB_MARKDOWN_CODE,
45
+ GLOB_MARKDOWN_IN_MARKDOWN: () => GLOB_MARKDOWN_IN_MARKDOWN,
46
+ GLOB_NEXTJS_OG: () => GLOB_NEXTJS_OG,
47
+ GLOB_NEXTJS_ROUTES: () => GLOB_NEXTJS_ROUTES,
48
+ GLOB_POSTCSS: () => GLOB_POSTCSS,
49
+ GLOB_SCSS: () => GLOB_SCSS,
50
+ GLOB_SRC: () => GLOB_SRC,
51
+ GLOB_SRC_EXT: () => GLOB_SRC_EXT,
52
+ GLOB_STYLE: () => GLOB_STYLE,
53
+ GLOB_TESTS: () => GLOB_TESTS,
54
+ GLOB_TOML: () => GLOB_TOML,
55
+ GLOB_TS: () => GLOB_TS,
56
+ GLOB_TSX: () => GLOB_TSX,
57
+ GLOB_VUE: () => GLOB_VUE,
58
+ GLOB_YAML: () => GLOB_YAML,
59
+ astro: () => astro,
60
+ combine: () => combine,
61
+ comments: () => comments,
62
+ ensure: () => ensure,
63
+ formatters: () => formatters,
64
+ getOverrides: () => getOverrides,
65
+ ignores: () => ignores,
66
+ imports: () => imports,
67
+ interop: () => interop,
68
+ javascript: () => javascript,
69
+ jsdoc: () => jsdoc,
70
+ jsonc: () => jsonc,
71
+ luxass: () => luxass,
72
+ markdown: () => markdown,
73
+ nextjs: () => nextjs,
74
+ node: () => node,
75
+ react: () => react,
76
+ renameRules: () => renameRules,
77
+ resolveSubOptions: () => resolveSubOptions,
78
+ sortPackageJson: () => sortPackageJson,
79
+ sortTsconfig: () => sortTsconfig,
80
+ stylistic: () => stylistic,
81
+ tailwindcss: () => tailwindcss,
82
+ test: () => test,
83
+ toArray: () => toArray,
84
+ toml: () => toml,
85
+ typescript: () => typescript,
86
+ unicorn: () => unicorn,
87
+ unocss: () => unocss,
88
+ vue: () => vue,
89
+ yaml: () => yaml
35
90
  });
36
91
  module.exports = __toCommonJS(src_exports);
37
92
 
@@ -123,9 +178,11 @@ function unicorn() {
123
178
  // src/globs.ts
124
179
  var GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
125
180
  var GLOB_SRC = `**/*.${GLOB_SRC_EXT}`;
181
+ var GLOB_JS = "**/*.?([cm])js";
126
182
  var GLOB_JSX = "**/*.?([cm])jsx";
127
183
  var GLOB_TS = "**/*.?([cm])ts";
128
184
  var GLOB_TSX = "**/*.?([cm])tsx";
185
+ var GLOB_STYLE = "**/*.{c,le,sc}ss";
129
186
  var GLOB_CSS = "**/*.css";
130
187
  var GLOB_POSTCSS = "**/*.{p,post}css";
131
188
  var GLOB_LESS = "**/*.less";
@@ -138,6 +195,7 @@ var GLOB_MARKDOWN_IN_MARKDOWN = "**/*.md/*.md";
138
195
  var GLOB_VUE = "**/*.vue";
139
196
  var GLOB_YAML = "**/*.y?(a)ml";
140
197
  var GLOB_TOML = "**/*.toml";
198
+ var GLOB_HTML = "**/*.htm?(l)";
141
199
  var GLOB_ASTRO = "**/*.astro";
142
200
  var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
143
201
  var GLOB_TESTS = [
@@ -1271,24 +1329,18 @@ async function typescript(options = {}) {
1271
1329
  var import_eslint_merge_processors2 = require("eslint-merge-processors");
1272
1330
  async function vue(options = {}) {
1273
1331
  const {
1274
- a11y = false,
1275
1332
  files = [GLOB_VUE],
1276
1333
  overrides = {},
1277
1334
  stylistic: stylistic2 = true
1278
1335
  } = options;
1279
- if (a11y) {
1280
- await ensure(["eslint-plugin-vuejs-accessibility"]);
1281
- }
1282
1336
  const [
1283
1337
  pluginVue,
1284
1338
  parserVue,
1285
- processorVueBlocks,
1286
- pluginA11y
1339
+ processorVueBlocks
1287
1340
  ] = await Promise.all([
1288
1341
  interop(import("eslint-plugin-vue")),
1289
1342
  interop(import("vue-eslint-parser")),
1290
- interop(import("eslint-processor-vue-blocks")),
1291
- ...a11y ? [interop(import("eslint-plugin-vuejs-accessibility"))] : []
1343
+ interop(import("eslint-processor-vue-blocks"))
1292
1344
  ]);
1293
1345
  const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
1294
1346
  const {
@@ -1298,8 +1350,7 @@ async function vue(options = {}) {
1298
1350
  {
1299
1351
  name: "luxass:vue:setup",
1300
1352
  plugins: {
1301
- vue: pluginVue,
1302
- ...a11y ? { "vue-a11y": pluginA11y } : {}
1353
+ vue: pluginVue
1303
1354
  }
1304
1355
  },
1305
1356
  {
@@ -1435,28 +1486,6 @@ async function vue(options = {}) {
1435
1486
  "vue/space-in-parens": ["error", "never"],
1436
1487
  "vue/template-curly-spacing": "error"
1437
1488
  } : {},
1438
- ...a11y ? {
1439
- "vue-a11y/alt-text": "error",
1440
- "vue-a11y/anchor-has-content": "error",
1441
- "vue-a11y/aria-props": "error",
1442
- "vue-a11y/aria-role": "error",
1443
- "vue-a11y/aria-unsupported-elements": "error",
1444
- "vue-a11y/click-events-have-key-events": "error",
1445
- "vue-a11y/form-control-has-label": "error",
1446
- "vue-a11y/heading-has-content": "error",
1447
- "vue-a11y/iframe-has-title": "error",
1448
- "vue-a11y/interactive-supports-focus": "error",
1449
- "vue-a11y/label-has-for": "error",
1450
- "vue-a11y/media-has-caption": "error",
1451
- "vue-a11y/mouse-events-have-key-events": "error",
1452
- "vue-a11y/no-access-key": "error",
1453
- "vue-a11y/no-autofocus": "error",
1454
- "vue-a11y/no-distracting-elements": "error",
1455
- "vue-a11y/no-redundant-roles": "error",
1456
- "vue-a11y/no-static-element-interactions": "error",
1457
- "vue-a11y/role-has-required-aria-props": "error",
1458
- "vue-a11y/tabindex-no-positive": "error"
1459
- } : {},
1460
1489
  ...overrides
1461
1490
  }
1462
1491
  }
@@ -1534,102 +1563,6 @@ async function yaml(options = {}) {
1534
1563
  ];
1535
1564
  }
1536
1565
 
1537
- // src/custom-rules/utils.ts
1538
- var import_utils8 = require("@typescript-eslint/utils");
1539
- var createRule = import_utils8.ESLintUtils.RuleCreator((ruleName) => `https://github.com/luxass/eslint-config/blob/main/src/custom-rules/${ruleName}/README.md`);
1540
-
1541
- // src/custom-rules/no-only-tests/index.ts
1542
- var RULE_NAME = "no-only-tests";
1543
- var DEFAULT_OPTIONS = {
1544
- blocks: ["describe", "it", "test"],
1545
- focus: ["only"]
1546
- };
1547
- function getPath(node2, path = []) {
1548
- if (node2) {
1549
- const nodeName = node2.name || node2.property && node2.property.name;
1550
- if (node2.object) {
1551
- return getPath(
1552
- node2.object,
1553
- [nodeName, ...path]
1554
- );
1555
- }
1556
- if (node2.callee)
1557
- return getPath(node2.callee, path);
1558
- return [nodeName, ...path];
1559
- }
1560
- return path;
1561
- }
1562
- var noOnlyTests = createRule({
1563
- name: RULE_NAME,
1564
- create: (context, [options]) => {
1565
- const {
1566
- blocks = DEFAULT_OPTIONS.blocks,
1567
- focus = DEFAULT_OPTIONS.focus
1568
- } = options;
1569
- return {
1570
- Identifier(node2) {
1571
- const parent = node2.parent?.object;
1572
- if (!parent)
1573
- return;
1574
- if (!focus.includes(node2.name))
1575
- return;
1576
- const callPath = getPath(node2.parent).join(".");
1577
- const found = blocks.find((block) => {
1578
- if (block.endsWith("*")) {
1579
- return callPath.startsWith(block.replace(/\*$/, ""));
1580
- }
1581
- return callPath.startsWith(`${block}.`);
1582
- });
1583
- if (found) {
1584
- context.report({
1585
- data: { block: callPath.split(".")[0], focus: node2.name },
1586
- messageId: "not-permitted",
1587
- node: node2
1588
- });
1589
- }
1590
- }
1591
- };
1592
- },
1593
- defaultOptions: [
1594
- {
1595
- blocks: ["describe", "it", "test"],
1596
- focus: ["only"]
1597
- }
1598
- ],
1599
- meta: {
1600
- docs: {
1601
- description: "disallow .only blocks in tests",
1602
- recommended: "recommended"
1603
- },
1604
- messages: {
1605
- "not-permitted": "{{ block }}.{{ focus }} not permitted"
1606
- },
1607
- schema: [
1608
- {
1609
- additionalProperties: false,
1610
- properties: {
1611
- blocks: {
1612
- items: {
1613
- type: "string"
1614
- },
1615
- type: "array",
1616
- uniqueItems: true
1617
- },
1618
- focus: {
1619
- items: {
1620
- type: "string"
1621
- },
1622
- type: "array",
1623
- uniqueItems: true
1624
- }
1625
- },
1626
- type: "object"
1627
- }
1628
- ],
1629
- type: "layout"
1630
- }
1631
- });
1632
-
1633
1566
  // src/configs/test.ts
1634
1567
  async function test(options = {}) {
1635
1568
  const {
@@ -1649,8 +1582,7 @@ async function test(options = {}) {
1649
1582
  test: {
1650
1583
  ...pluginVitest,
1651
1584
  rules: {
1652
- ...pluginVitest.rules,
1653
- "no-only-tests": noOnlyTests
1585
+ ...pluginVitest.rules
1654
1586
  }
1655
1587
  }
1656
1588
  }
@@ -1664,7 +1596,7 @@ async function test(options = {}) {
1664
1596
  { fn: "it", withinDescribe: "it" }
1665
1597
  ],
1666
1598
  "test/no-identical-title": "error",
1667
- "test/no-only-tests": editor ? "off" : "error",
1599
+ "test/no-focused-tests": editor ? "off" : "error",
1668
1600
  "test/prefer-hooks-in-order": "error",
1669
1601
  "test/prefer-lowercase-title": "error",
1670
1602
  ...overrides
@@ -2074,15 +2006,18 @@ async function astro(options) {
2074
2006
  a11y = false,
2075
2007
  files = [GLOB_ASTRO],
2076
2008
  overrides = {},
2077
- typescript: typescript2 = true
2009
+ typescript: typescript2 = true,
2010
+ stylistic: stylistic2 = true
2078
2011
  } = options;
2079
2012
  const [
2080
2013
  pluginAstro,
2081
2014
  parserAstro,
2015
+ parserTs,
2082
2016
  pluginA11y
2083
2017
  ] = await Promise.all([
2084
2018
  interop(import("eslint-plugin-astro")),
2085
2019
  interop(import("astro-eslint-parser")),
2020
+ interop(import("@typescript-eslint/parser")),
2086
2021
  ...a11y ? [interop(import("eslint-plugin-jsx-a11y"))] : []
2087
2022
  ]);
2088
2023
  return [
@@ -2097,15 +2032,10 @@ async function astro(options) {
2097
2032
  name: "luxass:astro:rules",
2098
2033
  files,
2099
2034
  languageOptions: {
2100
- globals: {
2101
- "astro/astro": true,
2102
- "es2020": true,
2103
- "node": true
2104
- },
2105
2035
  parser: parserAstro,
2106
2036
  parserOptions: {
2107
2037
  extraFileExtensions: [".astro"],
2108
- parser: typescript2 ? await interop(import("@typescript-eslint/parser")) : null,
2038
+ parser: typescript2 ? parserTs : null,
2109
2039
  sourceType: "module"
2110
2040
  }
2111
2041
  },
@@ -2113,28 +2043,16 @@ async function astro(options) {
2113
2043
  // Disallow conflicting set directives and child contents
2114
2044
  // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-conflict-set-directives/
2115
2045
  "astro/no-conflict-set-directives": "error",
2116
- // Disallow using deprecated Astro.canonicalURL
2117
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-canonicalurl/
2118
- "astro/no-deprecated-astro-canonicalurl": "error",
2119
- // Disallow using deprecated Astro.fetchContent()
2120
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-fetchcontent/
2121
- "astro/no-deprecated-astro-fetchcontent": "error",
2122
- // Disallow using deprecated Astro.resolve()
2123
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-resolve/
2124
- "astro/no-deprecated-astro-resolve": "error",
2125
- // Disallow using deprecated getEntryBySlug()
2126
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-getentrybyslug/
2127
- "astro/no-deprecated-getentrybyslug": "error",
2128
- // Disallow unused define:vars={...} in style tag
2129
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-unused-define-vars-in-style/
2130
- "astro/no-unused-define-vars-in-style": "error",
2131
- // Disallow warnings when compiling
2132
- // https://ota-meshi.github.io/eslint-plugin-astro/rules/valid-compile/
2133
- "astro/valid-compile": "error",
2134
- "style/jsx-closing-tag-location": "off",
2135
- "style/jsx-indent": "off",
2136
- "style/jsx-one-expression-per-line": "off",
2137
- "style/multiline-ternary": ["error", "never"],
2046
+ // Disallow use of `set:html` directive
2047
+ // https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-html-directive/
2048
+ "astro/no-set-html-directive": "off",
2049
+ ...stylistic2 ? {
2050
+ "style/indent": "off",
2051
+ "style/jsx-indent": "off",
2052
+ "style/jsx-closing-tag-location": "off",
2053
+ "style/jsx-one-expression-per-line": "off",
2054
+ "style/no-multiple-empty-lines": "off"
2055
+ } : {},
2138
2056
  ...overrides
2139
2057
  }
2140
2058
  },
@@ -2165,7 +2083,7 @@ async function astro(options) {
2165
2083
  browser: true,
2166
2084
  es2020: true
2167
2085
  },
2168
- parser: typescript2 ? await interop(import("@typescript-eslint/parser")) : null,
2086
+ parser: typescript2 ? parserTs : null,
2169
2087
  parserOptions: {
2170
2088
  project: null,
2171
2089
  sourceType: "module"
@@ -2451,268 +2369,6 @@ async function toml(options = {}) {
2451
2369
  ];
2452
2370
  }
2453
2371
 
2454
- // src/configs/frameworks/solid.ts
2455
- async function solid(options = {}) {
2456
- const {
2457
- a11y = false,
2458
- files = [GLOB_JSX, GLOB_TSX],
2459
- overrides = {},
2460
- typescript: typescript2 = true
2461
- } = options;
2462
- await ensure([
2463
- "eslint-plugin-solid"
2464
- ]);
2465
- const [
2466
- pluginSolid
2467
- ] = await Promise.all([
2468
- interop(import("eslint-plugin-solid"))
2469
- ]);
2470
- return [
2471
- {
2472
- name: "luxass:solid:setup",
2473
- plugins: {
2474
- solid: pluginSolid
2475
- }
2476
- },
2477
- {
2478
- name: "luxass:solid:rules",
2479
- files,
2480
- languageOptions: {
2481
- parserOptions: {
2482
- ecmaFeatures: {
2483
- jsx: true
2484
- }
2485
- },
2486
- sourceType: "module"
2487
- },
2488
- rules: {
2489
- ...a11y ? {
2490
- // recommended rules for jsx-a11y
2491
- "jsx-a11y/alt-text": "error",
2492
- "jsx-a11y/anchor-ambiguous-text": "off",
2493
- "jsx-a11y/anchor-has-content": "error",
2494
- "jsx-a11y/anchor-is-valid": "error",
2495
- "jsx-a11y/aria-activedescendant-has-tabindex": "error",
2496
- "jsx-a11y/aria-props": "error",
2497
- "jsx-a11y/aria-proptypes": "error",
2498
- "jsx-a11y/aria-role": "error",
2499
- "jsx-a11y/aria-unsupported-elements": "error",
2500
- "jsx-a11y/autocomplete-valid": "error",
2501
- "jsx-a11y/click-events-have-key-events": "error",
2502
- "jsx-a11y/control-has-associated-label": [
2503
- "off",
2504
- {
2505
- ignoreElements: [
2506
- "audio",
2507
- "canvas",
2508
- "embed",
2509
- "input",
2510
- "textarea",
2511
- "tr",
2512
- "video"
2513
- ],
2514
- ignoreRoles: [
2515
- "grid",
2516
- "listbox",
2517
- "menu",
2518
- "menubar",
2519
- "radiogroup",
2520
- "row",
2521
- "tablist",
2522
- "toolbar",
2523
- "tree",
2524
- "treegrid"
2525
- ],
2526
- includeRoles: [
2527
- "alert",
2528
- "dialog"
2529
- ]
2530
- }
2531
- ],
2532
- "jsx-a11y/heading-has-content": "error",
2533
- "jsx-a11y/html-has-lang": "error",
2534
- "jsx-a11y/iframe-has-title": "error",
2535
- "jsx-a11y/img-redundant-alt": "error",
2536
- "jsx-a11y/interactive-supports-focus": [
2537
- "error",
2538
- {
2539
- tabbable: [
2540
- "button",
2541
- "checkbox",
2542
- "link",
2543
- "searchbox",
2544
- "spinbutton",
2545
- "switch",
2546
- "textbox"
2547
- ]
2548
- }
2549
- ],
2550
- "jsx-a11y/label-has-associated-control": "error",
2551
- "jsx-a11y/label-has-for": "off",
2552
- "jsx-a11y/media-has-caption": "error",
2553
- "jsx-a11y/mouse-events-have-key-events": "error",
2554
- "jsx-a11y/no-access-key": "error",
2555
- "jsx-a11y/no-autofocus": "error",
2556
- "jsx-a11y/no-distracting-elements": "error",
2557
- "jsx-a11y/no-interactive-element-to-noninteractive-role": [
2558
- "error",
2559
- {
2560
- canvas: [
2561
- "img"
2562
- ],
2563
- tr: [
2564
- "none",
2565
- "presentation"
2566
- ]
2567
- }
2568
- ],
2569
- "jsx-a11y/no-noninteractive-element-interactions": [
2570
- "error",
2571
- {
2572
- alert: [
2573
- "onKeyUp",
2574
- "onKeyDown",
2575
- "onKeyPress"
2576
- ],
2577
- body: [
2578
- "onError",
2579
- "onLoad"
2580
- ],
2581
- dialog: [
2582
- "onKeyUp",
2583
- "onKeyDown",
2584
- "onKeyPress"
2585
- ],
2586
- handlers: [
2587
- "onClick",
2588
- "onError",
2589
- "onLoad",
2590
- "onMouseDown",
2591
- "onMouseUp",
2592
- "onKeyPress",
2593
- "onKeyDown",
2594
- "onKeyUp"
2595
- ],
2596
- iframe: [
2597
- "onError",
2598
- "onLoad"
2599
- ],
2600
- img: [
2601
- "onError",
2602
- "onLoad"
2603
- ]
2604
- }
2605
- ],
2606
- "jsx-a11y/no-noninteractive-element-to-interactive-role": [
2607
- "error",
2608
- {
2609
- fieldset: [
2610
- "radiogroup",
2611
- "presentation"
2612
- ],
2613
- li: [
2614
- "menuitem",
2615
- "option",
2616
- "row",
2617
- "tab",
2618
- "treeitem"
2619
- ],
2620
- ol: [
2621
- "listbox",
2622
- "menu",
2623
- "menubar",
2624
- "radiogroup",
2625
- "tablist",
2626
- "tree",
2627
- "treegrid"
2628
- ],
2629
- table: [
2630
- "grid"
2631
- ],
2632
- td: [
2633
- "gridcell"
2634
- ],
2635
- ul: [
2636
- "listbox",
2637
- "menu",
2638
- "menubar",
2639
- "radiogroup",
2640
- "tablist",
2641
- "tree",
2642
- "treegrid"
2643
- ]
2644
- }
2645
- ],
2646
- "jsx-a11y/no-noninteractive-tabindex": [
2647
- "error",
2648
- {
2649
- allowExpressionValues: true,
2650
- roles: [
2651
- "tabpanel"
2652
- ],
2653
- tags: []
2654
- }
2655
- ],
2656
- "jsx-a11y/no-redundant-roles": "error",
2657
- "jsx-a11y/no-static-element-interactions": [
2658
- "error",
2659
- {
2660
- allowExpressionValues: true,
2661
- handlers: [
2662
- "onClick",
2663
- "onMouseDown",
2664
- "onMouseUp",
2665
- "onKeyPress",
2666
- "onKeyDown",
2667
- "onKeyUp"
2668
- ]
2669
- }
2670
- ],
2671
- "jsx-a11y/role-has-required-aria-props": "error",
2672
- "jsx-a11y/role-supports-aria-props": "error",
2673
- "jsx-a11y/scope": "error",
2674
- "jsx-a11y/tabindex-no-positive": "error"
2675
- } : {},
2676
- // solid recommended rules
2677
- // reactivity
2678
- "solid/components-return-once": 1,
2679
- "solid/event-handlers": 1,
2680
- // these rules are mostly style suggestions
2681
- "solid/imports": 1,
2682
- // identifier usage is important
2683
- "solid/jsx-no-duplicate-props": 2,
2684
- "solid/jsx-no-script-url": 2,
2685
- "solid/jsx-no-undef": 2,
2686
- "solid/jsx-uses-vars": 2,
2687
- "solid/no-array-handlers": 0,
2688
- "solid/no-destructure": 2,
2689
- // security problems
2690
- "solid/no-innerhtml": 2,
2691
- // only necessary for resource-constrained environments
2692
- "solid/no-proxy-apis": 0,
2693
- "solid/no-react-deps": 1,
2694
- "solid/no-react-specific-props": 1,
2695
- "solid/no-unknown-namespaces": 2,
2696
- // deprecated
2697
- "solid/prefer-classlist": 0,
2698
- "solid/prefer-for": 2,
2699
- // handled by Solid compiler, opt-in style suggestion
2700
- "solid/prefer-show": 0,
2701
- "solid/reactivity": 1,
2702
- "solid/self-closing-comp": 1,
2703
- "solid/style-prop": 1,
2704
- ...typescript2 ? {
2705
- "solid/jsx-no-undef": [2, { typescriptEnabled: true }],
2706
- // namespaces taken care of by TS
2707
- "solid/no-unknown-namespaces": 0
2708
- } : {},
2709
- // overrides
2710
- ...overrides
2711
- }
2712
- }
2713
- ];
2714
- }
2715
-
2716
2372
  // src/factory.ts
2717
2373
  var FLAT_CONFIG_PROPS = [
2718
2374
  "name",
@@ -2725,6 +2381,12 @@ var FLAT_CONFIG_PROPS = [
2725
2381
  "rules",
2726
2382
  "settings"
2727
2383
  ];
2384
+ var VuePackages = [
2385
+ "vue",
2386
+ "nuxt",
2387
+ "vitepress",
2388
+ "@slidev/cli"
2389
+ ];
2728
2390
  async function luxass(options = {}, ...userConfigs) {
2729
2391
  const {
2730
2392
  astro: enableAstro = false,
@@ -2733,11 +2395,10 @@ async function luxass(options = {}, ...userConfigs) {
2733
2395
  gitignore: enableGitignore = true,
2734
2396
  nextjs: enableNextJS = false,
2735
2397
  react: enableReact = false,
2736
- solid: enableSolid = false,
2737
2398
  tailwindcss: enableTailwindCSS = false,
2738
2399
  typescript: enableTypeScript = (0, import_local_pkg3.isPackageExists)("typescript"),
2739
2400
  unocss: enableUnoCSS = false,
2740
- vue: enableVue = false
2401
+ vue: enableVue = VuePackages.some((i) => (0, import_local_pkg3.isPackageExists)(i))
2741
2402
  } = options;
2742
2403
  const stylisticOptions = options.stylistic === false ? false : typeof options.stylistic === "object" ? options.stylistic : {};
2743
2404
  if (stylisticOptions && !("jsx" in stylisticOptions)) {
@@ -2805,21 +2466,6 @@ async function luxass(options = {}, ...userConfigs) {
2805
2466
  })
2806
2467
  );
2807
2468
  }
2808
- if (enableSolid) {
2809
- configs.push(
2810
- // TODO: Analyze if this way is better for performance
2811
- // await interop(import("./configs/solid")).then((plugin) => plugin.solid({
2812
- // ...resolveSubOptions(options, "solid"),
2813
- // overrides: getOverrides(options, "solid"),
2814
- // typescript: !!enableTypeScript,
2815
- // })),
2816
- solid({
2817
- ...resolveSubOptions(options, "solid"),
2818
- overrides: getOverrides(options, "solid"),
2819
- typescript: !!enableTypeScript
2820
- })
2821
- );
2822
- }
2823
2469
  if (enableVue) {
2824
2470
  configs.push(
2825
2471
  vue({
@@ -2902,10 +2548,63 @@ async function luxass(options = {}, ...userConfigs) {
2902
2548
  );
2903
2549
  return merged;
2904
2550
  }
2905
-
2906
- // src/index.ts
2907
- var src_default = luxass;
2908
2551
  // Annotate the CommonJS export names for ESM import in node:
2909
2552
  0 && (module.exports = {
2910
- luxass
2553
+ GLOB_ASTRO,
2554
+ GLOB_CSS,
2555
+ GLOB_EXCLUDE,
2556
+ GLOB_HTML,
2557
+ GLOB_JS,
2558
+ GLOB_JSON,
2559
+ GLOB_JSON5,
2560
+ GLOB_JSONC,
2561
+ GLOB_JSX,
2562
+ GLOB_LESS,
2563
+ GLOB_MARKDOWN,
2564
+ GLOB_MARKDOWN_CODE,
2565
+ GLOB_MARKDOWN_IN_MARKDOWN,
2566
+ GLOB_NEXTJS_OG,
2567
+ GLOB_NEXTJS_ROUTES,
2568
+ GLOB_POSTCSS,
2569
+ GLOB_SCSS,
2570
+ GLOB_SRC,
2571
+ GLOB_SRC_EXT,
2572
+ GLOB_STYLE,
2573
+ GLOB_TESTS,
2574
+ GLOB_TOML,
2575
+ GLOB_TS,
2576
+ GLOB_TSX,
2577
+ GLOB_VUE,
2578
+ GLOB_YAML,
2579
+ astro,
2580
+ combine,
2581
+ comments,
2582
+ ensure,
2583
+ formatters,
2584
+ getOverrides,
2585
+ ignores,
2586
+ imports,
2587
+ interop,
2588
+ javascript,
2589
+ jsdoc,
2590
+ jsonc,
2591
+ luxass,
2592
+ markdown,
2593
+ nextjs,
2594
+ node,
2595
+ react,
2596
+ renameRules,
2597
+ resolveSubOptions,
2598
+ sortPackageJson,
2599
+ sortTsconfig,
2600
+ stylistic,
2601
+ tailwindcss,
2602
+ test,
2603
+ toArray,
2604
+ toml,
2605
+ typescript,
2606
+ unicorn,
2607
+ unocss,
2608
+ vue,
2609
+ yaml
2911
2610
  });