@touchspot/eslint-config 5.0.8 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/chunk-D7D4PA-g.mjs +13 -0
  2. package/dist/env-P7bBQuYF.mjs +108 -0
  3. package/dist/env-P7bBQuYF.mjs.map +1 -0
  4. package/dist/frameworks/next.d.mts +7 -0
  5. package/dist/frameworks/next.d.mts.map +1 -0
  6. package/dist/frameworks/next.mjs +17 -0
  7. package/dist/frameworks/next.mjs.map +1 -0
  8. package/dist/frameworks/react.d.mts +7 -0
  9. package/dist/frameworks/react.d.mts.map +1 -0
  10. package/dist/frameworks/react.mjs +2 -0
  11. package/dist/frameworks/tailwindcss.d.mts +27 -0
  12. package/dist/frameworks/tailwindcss.d.mts.map +1 -0
  13. package/dist/frameworks/tailwindcss.mjs +39 -0
  14. package/dist/frameworks/tailwindcss.mjs.map +1 -0
  15. package/dist/functional-D_M95gZL.mjs +48 -0
  16. package/dist/functional-D_M95gZL.mjs.map +1 -0
  17. package/dist/index.d.mts +30 -0
  18. package/dist/index.d.mts.map +1 -0
  19. package/dist/index.mjs +233 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/react-DgMKdgTt.mjs +45 -0
  22. package/dist/react-DgMKdgTt.mjs.map +1 -0
  23. package/dist/types-DzD7blyE.d.mts +8 -0
  24. package/dist/types-DzD7blyE.d.mts.map +1 -0
  25. package/package.json +26 -22
  26. package/dist/lib/default.d.ts +0 -4
  27. package/dist/lib/default.d.ts.map +0 -1
  28. package/dist/lib/default.js +0 -3
  29. package/dist/lib/default.js.map +0 -1
  30. package/dist/lib/frameworks/next.d.ts +0 -2
  31. package/dist/lib/frameworks/next.d.ts.map +0 -1
  32. package/dist/lib/frameworks/next.js +0 -2
  33. package/dist/lib/frameworks/next.js.map +0 -1
  34. package/dist/lib/frameworks/react.d.ts +0 -2
  35. package/dist/lib/frameworks/react.d.ts.map +0 -1
  36. package/dist/lib/frameworks/react.js +0 -2
  37. package/dist/lib/frameworks/react.js.map +0 -1
  38. package/dist/lib/frameworks/tailwindcss.d.ts +0 -2
  39. package/dist/lib/frameworks/tailwindcss.d.ts.map +0 -1
  40. package/dist/lib/frameworks/tailwindcss.js +0 -2
  41. package/dist/lib/frameworks/tailwindcss.js.map +0 -1
  42. package/dist/src/config.d.ts +0 -13
  43. package/dist/src/config.d.ts.map +0 -1
  44. package/dist/src/config.js +0 -36
  45. package/dist/src/config.js.map +0 -1
  46. package/dist/src/env.d.ts +0 -7
  47. package/dist/src/env.d.ts.map +0 -1
  48. package/dist/src/env.js +0 -21
  49. package/dist/src/env.js.map +0 -1
  50. package/dist/src/frameworks/next.d.ts +0 -3
  51. package/dist/src/frameworks/next.d.ts.map +0 -1
  52. package/dist/src/frameworks/next.js +0 -8
  53. package/dist/src/frameworks/next.js.map +0 -1
  54. package/dist/src/frameworks/react.d.ts +0 -3
  55. package/dist/src/frameworks/react.d.ts.map +0 -1
  56. package/dist/src/frameworks/react.js +0 -6
  57. package/dist/src/frameworks/react.js.map +0 -1
  58. package/dist/src/frameworks/tailwindcss.d.ts +0 -22
  59. package/dist/src/frameworks/tailwindcss.d.ts.map +0 -1
  60. package/dist/src/frameworks/tailwindcss.js +0 -4
  61. package/dist/src/frameworks/tailwindcss.js.map +0 -1
  62. package/dist/src/rulesets/better-tailwindcss.d.ts +0 -3
  63. package/dist/src/rulesets/better-tailwindcss.d.ts.map +0 -1
  64. package/dist/src/rulesets/better-tailwindcss.js +0 -37
  65. package/dist/src/rulesets/better-tailwindcss.js.map +0 -1
  66. package/dist/src/rulesets/check-file.d.ts +0 -3
  67. package/dist/src/rulesets/check-file.d.ts.map +0 -1
  68. package/dist/src/rulesets/check-file.js +0 -38
  69. package/dist/src/rulesets/check-file.js.map +0 -1
  70. package/dist/src/rulesets/eslint.d.ts +0 -2
  71. package/dist/src/rulesets/eslint.d.ts.map +0 -1
  72. package/dist/src/rulesets/eslint.js +0 -25
  73. package/dist/src/rulesets/eslint.js.map +0 -1
  74. package/dist/src/rulesets/functional.d.ts +0 -5
  75. package/dist/src/rulesets/functional.d.ts.map +0 -1
  76. package/dist/src/rulesets/functional.js +0 -54
  77. package/dist/src/rulesets/functional.js.map +0 -1
  78. package/dist/src/rulesets/import-x.d.ts +0 -3
  79. package/dist/src/rulesets/import-x.d.ts.map +0 -1
  80. package/dist/src/rulesets/import-x.js +0 -52
  81. package/dist/src/rulesets/import-x.js.map +0 -1
  82. package/dist/src/rulesets/next.d.ts +0 -2
  83. package/dist/src/rulesets/next.d.ts.map +0 -1
  84. package/dist/src/rulesets/next.js +0 -8
  85. package/dist/src/rulesets/next.js.map +0 -1
  86. package/dist/src/rulesets/no-relative-import-paths.d.ts +0 -2
  87. package/dist/src/rulesets/no-relative-import-paths.d.ts.map +0 -1
  88. package/dist/src/rulesets/no-relative-import-paths.js +0 -14
  89. package/dist/src/rulesets/no-relative-import-paths.js.map +0 -1
  90. package/dist/src/rulesets/perfectionist.d.ts +0 -2
  91. package/dist/src/rulesets/perfectionist.d.ts.map +0 -1
  92. package/dist/src/rulesets/perfectionist.js +0 -22
  93. package/dist/src/rulesets/perfectionist.js.map +0 -1
  94. package/dist/src/rulesets/react-hooks.d.ts +0 -2
  95. package/dist/src/rulesets/react-hooks.d.ts.map +0 -1
  96. package/dist/src/rulesets/react-hooks.js +0 -13
  97. package/dist/src/rulesets/react-hooks.js.map +0 -1
  98. package/dist/src/rulesets/react.d.ts +0 -2
  99. package/dist/src/rulesets/react.d.ts.map +0 -1
  100. package/dist/src/rulesets/react.js +0 -30
  101. package/dist/src/rulesets/react.js.map +0 -1
  102. package/dist/src/rulesets/tseslint.d.ts +0 -4
  103. package/dist/src/rulesets/tseslint.d.ts.map +0 -1
  104. package/dist/src/rulesets/tseslint.js +0 -99
  105. package/dist/src/rulesets/tseslint.js.map +0 -1
  106. package/dist/src/rulesets/unicorn.d.ts +0 -2
  107. package/dist/src/rulesets/unicorn.d.ts.map +0 -1
  108. package/dist/src/rulesets/unicorn.js +0 -17
  109. package/dist/src/rulesets/unicorn.js.map +0 -1
  110. package/dist/src/rulesets/unused-imports.d.ts +0 -2
  111. package/dist/src/rulesets/unused-imports.d.ts.map +0 -1
  112. package/dist/src/rulesets/unused-imports.js +0 -18
  113. package/dist/src/rulesets/unused-imports.js.map +0 -1
  114. package/dist/src/types.d.ts +0 -4
  115. package/dist/src/types.d.ts.map +0 -1
  116. package/dist/src/types.js +0 -2
  117. package/dist/src/types.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
@@ -0,0 +1,108 @@
1
+ import { t as __exportAll } from "./chunk-D7D4PA-g.mjs";
2
+ import { defineConfig } from "eslint/config";
3
+ import CheckFile from "eslint-plugin-check-file";
4
+ import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
5
+ import ImportX from "eslint-plugin-import-x";
6
+ import Globals from "globals";
7
+ //#region src/rulesets/check-file.ts
8
+ const checkFileRuleset = () => defineConfig({
9
+ name: "@touchspot/eslint-config/rulesets/check-file",
10
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
11
+ ignores: ["**/*.d.*"],
12
+ plugins: { "check-file": CheckFile },
13
+ rules: {
14
+ "check-file/folder-naming-convention": [
15
+ "error",
16
+ { "**": "KEBAB_CASE" },
17
+ { ignoreWords: [
18
+ ".agents",
19
+ ".claude",
20
+ ".codex",
21
+ ".opencode",
22
+ "__tests__"
23
+ ] }
24
+ ],
25
+ "check-file/filename-naming-convention": [
26
+ "error",
27
+ { "**": "KEBAB_CASE" },
28
+ { ignoreMiddleExtensions: true }
29
+ ]
30
+ }
31
+ });
32
+ const checkFileRulesetNext = () => defineConfig({
33
+ name: "@touchspot/eslint-config/rulesets/check-file/next",
34
+ files: ["{src/,}app/**/*.{ts,tsx}"],
35
+ rules: { "check-file/folder-naming-convention": ["error", { "**": "NEXT_JS_APP_ROUTER_CASE" }] }
36
+ });
37
+ //#endregion
38
+ //#region src/rulesets/import-x.ts
39
+ const importXRuleset = () => defineConfig({
40
+ name: "@touchspot/eslint-config/rulesets/import-x",
41
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
42
+ extends: [ImportX.flatConfigs.recommended],
43
+ settings: {
44
+ "import-x/internal-regex": "^#.+",
45
+ "import-x/resolver-next": [createTypeScriptImportResolver()]
46
+ },
47
+ rules: {
48
+ "import-x/export": "off",
49
+ "import-x/first": "error",
50
+ "import-x/namespace": "off",
51
+ "import-x/newline-after-import": "error",
52
+ "import-x/no-anonymous-default-export": ["error", {
53
+ allowArray: true,
54
+ allowObject: true
55
+ }],
56
+ "import-x/no-duplicates": "error",
57
+ "import-x/no-named-as-default": "off",
58
+ "import-x/no-named-as-default-member": "off",
59
+ "import-x/no-unresolved": "off",
60
+ "import-x/no-useless-path-segments": "error"
61
+ }
62
+ }, {
63
+ name: "@touchspot/eslint-config/rulesets/import-x/typescript",
64
+ files: ["**/*.{ts,tsx,mts,cts}"],
65
+ extends: [ImportX.flatConfigs.typescript],
66
+ rules: {
67
+ "import-x/consistent-type-specifier-style": "error",
68
+ "import-x/no-default-export": "error"
69
+ }
70
+ }, {
71
+ name: "@touchspot/eslint-config/rulesets/import-x/typescript/allow-default-export",
72
+ files: [
73
+ "*.config.ts",
74
+ "*.config.*.ts",
75
+ "**/*.d.*",
76
+ "**/global-setup.ts"
77
+ ],
78
+ rules: { "import-x/no-default-export": "off" }
79
+ }, {
80
+ name: "@touchspot/eslint-config/rulesets/import-x/cjs",
81
+ files: ["**/*.{cjs,cts}"],
82
+ rules: { "import-x/no-import-module-exports": "error" }
83
+ });
84
+ const importXRulesetNext = () => defineConfig({
85
+ name: "@touchspot/eslint-config/rulesets/import-x/next",
86
+ files: ["{src/,}app/**/*.{ts,tsx}"],
87
+ rules: { "import-x/no-default-export": "off" }
88
+ });
89
+ //#endregion
90
+ //#region src/env.ts
91
+ var env_exports = /* @__PURE__ */ __exportAll({
92
+ browser: () => browser,
93
+ node: () => node
94
+ });
95
+ const browser = ({ files = ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"] } = {}) => defineConfig({
96
+ name: "@touchspot/eslint-config/env/browser",
97
+ files: [...files],
98
+ languageOptions: { globals: { ...Globals.browser } }
99
+ });
100
+ const node = ({ files = ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"] } = {}) => defineConfig({
101
+ name: "@touchspot/eslint-config/env/node",
102
+ files: [...files],
103
+ languageOptions: { globals: { ...Globals.node } }
104
+ });
105
+ //#endregion
106
+ export { importXRulesetNext as a, importXRuleset as i, env_exports as n, checkFileRuleset as o, node as r, checkFileRulesetNext as s, browser as t };
107
+
108
+ //# sourceMappingURL=env-P7bBQuYF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-P7bBQuYF.mjs","names":[],"sources":["../src/rulesets/check-file.ts","../src/rulesets/import-x.ts","../src/env.ts"],"sourcesContent":["import CheckFile from \"eslint-plugin-check-file\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const checkFileRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/check-file\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tignores: [\"**/*.d.*\"],\n\t\tplugins: {\n\t\t\t\"check-file\": CheckFile,\n\t\t},\n\t\trules: {\n\t\t\t\"check-file/folder-naming-convention\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\t\"**\": \"KEBAB_CASE\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tignoreWords: [\".agents\", \".claude\", \".codex\", \".opencode\", \"__tests__\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"check-file/filename-naming-convention\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\t\"**\": \"KEBAB_CASE\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tignoreMiddleExtensions: true,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t});\n\nexport const checkFileRulesetNext = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/check-file/next\",\n\t\tfiles: [\"{src/,}app/**/*.{ts,tsx}\"],\n\t\trules: {\n\t\t\t\"check-file/folder-naming-convention\": [\"error\", { \"**\": \"NEXT_JS_APP_ROUTER_CASE\" }],\n\t\t},\n\t});\n","import { createTypeScriptImportResolver } from \"eslint-import-resolver-typescript\";\nimport ImportX from \"eslint-plugin-import-x\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const importXRuleset = () =>\n\tdefineConfig(\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/import-x\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\textends: [ImportX.flatConfigs.recommended],\n\t\t\tsettings: {\n\t\t\t\t\"import-x/internal-regex\": \"^#.+\",\n\t\t\t\t\"import-x/resolver-next\": [createTypeScriptImportResolver()],\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"import-x/export\": \"off\",\n\t\t\t\t\"import-x/first\": \"error\",\n\t\t\t\t\"import-x/namespace\": \"off\",\n\t\t\t\t\"import-x/newline-after-import\": \"error\",\n\t\t\t\t\"import-x/no-anonymous-default-export\": [\"error\", { allowArray: true, allowObject: true }],\n\t\t\t\t\"import-x/no-duplicates\": \"error\",\n\t\t\t\t\"import-x/no-named-as-default\": \"off\",\n\t\t\t\t\"import-x/no-named-as-default-member\": \"off\",\n\t\t\t\t\"import-x/no-unresolved\": \"off\",\n\t\t\t\t\"import-x/no-useless-path-segments\": \"error\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/import-x/typescript\",\n\t\t\tfiles: [\"**/*.{ts,tsx,mts,cts}\"],\n\t\t\textends: [ImportX.flatConfigs.typescript],\n\t\t\trules: {\n\t\t\t\t\"import-x/consistent-type-specifier-style\": \"error\",\n\t\t\t\t\"import-x/no-default-export\": \"error\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/import-x/typescript/allow-default-export\",\n\t\t\tfiles: [\"*.config.ts\", \"*.config.*.ts\", \"**/*.d.*\", \"**/global-setup.ts\"],\n\t\t\trules: {\n\t\t\t\t\"import-x/no-default-export\": \"off\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/import-x/cjs\",\n\t\t\tfiles: [\"**/*.{cjs,cts}\"],\n\t\t\trules: {\n\t\t\t\t\"import-x/no-import-module-exports\": \"error\",\n\t\t\t},\n\t\t},\n\t);\n\nexport const importXRulesetNext = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/import-x/next\",\n\t\tfiles: [\"{src/,}app/**/*.{ts,tsx}\"],\n\t\trules: {\n\t\t\t\"import-x/no-default-export\": \"off\",\n\t\t},\n\t});\n","import { defineConfig } from \"eslint/config\";\nimport Globals from \"globals\";\n\nexport const browser = ({\n\tfiles = [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n}: {\n\treadonly files?: readonly string[];\n} = {}) =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/env/browser\",\n\t\tfiles: [...files],\n\t\tlanguageOptions: {\n\t\t\tglobals: {\n\t\t\t\t...Globals.browser,\n\t\t\t},\n\t\t},\n\t});\n\nexport const node = ({\n\tfiles = [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n}: {\n\treadonly files?: readonly string[];\n} = {}) =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/env/node\",\n\t\tfiles: [...files],\n\t\tlanguageOptions: {\n\t\t\tglobals: {\n\t\t\t\t...Globals.node,\n\t\t\t},\n\t\t},\n\t});\n"],"mappings":";;;;;;;AAGA,MAAa,yBACZ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,CAAC,UAAU;CACpB,SAAS,EACR,cAAc,UACf;CACA,OAAO;EACN,uCAAuC;GACtC;GACA,EACC,MAAM,aACP;GACA,EACC,aAAa;IAAC;IAAW;IAAW;IAAU;IAAa;GAAW,EACvE;EACD;EACA,yCAAyC;GACxC;GACA,EACC,MAAM,aACP;GACA,EACC,wBAAwB,KACzB;EACD;CACD;AACD,CAAC;AAEF,MAAa,6BACZ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,0BAA0B;CAClC,OAAO,EACN,uCAAuC,CAAC,SAAS,EAAE,MAAM,0BAA0B,CAAC,EACrF;AACD,CAAC;;;ACpCF,MAAa,uBACZ,aACC;CACC,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,CAAC,QAAQ,YAAY,WAAW;CACzC,UAAU;EACT,2BAA2B;EAC3B,0BAA0B,CAAC,+BAA+B,CAAC;CAC5D;CACA,OAAO;EACN,mBAAmB;EACnB,kBAAkB;EAClB,sBAAsB;EACtB,iCAAiC;EACjC,wCAAwC,CAAC,SAAS;GAAE,YAAY;GAAM,aAAa;EAAK,CAAC;EACzF,0BAA0B;EAC1B,gCAAgC;EAChC,uCAAuC;EACvC,0BAA0B;EAC1B,qCAAqC;CACtC;AACD,GACA;CACC,MAAM;CACN,OAAO,CAAC,uBAAuB;CAC/B,SAAS,CAAC,QAAQ,YAAY,UAAU;CACxC,OAAO;EACN,4CAA4C;EAC5C,8BAA8B;CAC/B;AACD,GACA;CACC,MAAM;CACN,OAAO;EAAC;EAAe;EAAiB;EAAY;CAAoB;CACxE,OAAO,EACN,8BAA8B,MAC/B;AACD,GACA;CACC,MAAM;CACN,OAAO,CAAC,gBAAgB;CACxB,OAAO,EACN,qCAAqC,QACtC;AACD,CACD;AAED,MAAa,2BACZ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,0BAA0B;CAClC,OAAO,EACN,8BAA8B,MAC/B;AACD,CAAC;;;;;;;ACxDF,MAAa,WAAW,EACvB,QAAQ,CAAC,sCAAsC,MAG5C,CAAC,MACJ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,GAAG,KAAK;CAChB,iBAAiB,EAChB,SAAS,EACR,GAAG,QAAQ,QACZ,EACD;AACD,CAAC;AAEF,MAAa,QAAQ,EACpB,QAAQ,CAAC,sCAAsC,MAG5C,CAAC,MACJ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,GAAG,KAAK;CAChB,iBAAiB,EAChB,SAAS,EACR,GAAG,QAAQ,KACZ,EACD;AACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { n as ConfigArray } from "../types-DzD7blyE.mjs";
2
+
3
+ //#region src/frameworks/next.d.ts
4
+ declare const next: () => ConfigArray;
5
+ //#endregion
6
+ export { next as default };
7
+ //# sourceMappingURL=next.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.d.mts","names":[],"sources":["../../src/frameworks/next.ts"],"mappings":";;;cASa,IAAA,QAAW,WACsF"}
@@ -0,0 +1,17 @@
1
+ import { a as importXRulesetNext, r as node, s as checkFileRulesetNext, t as browser } from "../env-P7bBQuYF.mjs";
2
+ import { t as react } from "../react-DgMKdgTt.mjs";
3
+ import { defineConfig, globalIgnores } from "eslint/config";
4
+ import Next from "@next/eslint-plugin-next";
5
+ //#region src/rulesets/next.ts
6
+ const nextRuleset = () => defineConfig(globalIgnores([".next/", "out/"]), {
7
+ name: "@touchspot/eslint-config/rulesets/next",
8
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
9
+ extends: [Next.configs["core-web-vitals"]]
10
+ });
11
+ //#endregion
12
+ //#region src/frameworks/next.ts
13
+ const next = () => defineConfig(browser(), node(), react(), nextRuleset(), checkFileRulesetNext(), importXRulesetNext());
14
+ //#endregion
15
+ export { next as default };
16
+
17
+ //# sourceMappingURL=next.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.mjs","names":["env.browser","env.node"],"sources":["../../src/rulesets/next.ts","../../src/frameworks/next.ts"],"sourcesContent":["import Next from \"@next/eslint-plugin-next\";\nimport { defineConfig, globalIgnores } from \"eslint/config\";\n\nexport const nextRuleset = () =>\n\tdefineConfig(globalIgnores([\".next/\", \"out/\"]), {\n\t\tname: \"@touchspot/eslint-config/rulesets/next\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\textends: [Next.configs[\"core-web-vitals\"]],\n\t});\n","import { defineConfig } from \"eslint/config\";\n\nimport * as env from \"#src/env.js\";\nimport { react } from \"#src/frameworks/react.js\";\nimport { checkFileRulesetNext } from \"#src/rulesets/check-file.js\";\nimport { importXRulesetNext } from \"#src/rulesets/import-x.js\";\nimport { nextRuleset } from \"#src/rulesets/next.js\";\nimport type { ConfigArray } from \"#src/types.js\";\n\nexport const next = (): ConfigArray =>\n\tdefineConfig(env.browser(), env.node(), react(), nextRuleset(), checkFileRulesetNext(), importXRulesetNext());\n"],"mappings":";;;;;AAGA,MAAa,oBACZ,aAAa,cAAc,CAAC,UAAU,MAAM,CAAC,GAAG;CAC/C,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,CAAC,KAAK,QAAQ,kBAAkB;AAC1C,CAAC;;;ACCF,MAAa,aACZ,aAAaA,QAAY,GAAGC,KAAS,GAAG,MAAM,GAAG,YAAY,GAAG,qBAAqB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { n as ConfigArray } from "../types-DzD7blyE.mjs";
2
+
3
+ //#region src/frameworks/react.d.ts
4
+ declare const react: () => ConfigArray;
5
+ //#endregion
6
+ export { react as default };
7
+ //# sourceMappingURL=react.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.mts","names":[],"sources":["../../src/frameworks/react.ts"],"mappings":";;;cAOa,KAAA,QAAY,WAA0F"}
@@ -0,0 +1,2 @@
1
+ import { t as react } from "../react-DgMKdgTt.mjs";
2
+ export { react as default };
@@ -0,0 +1,27 @@
1
+ import { n as ConfigArray } from "../types-DzD7blyE.mjs";
2
+ import { ObjectKeyMatcher, ObjectValueMatcher, Selector, StringMatcher } from "eslint-plugin-better-tailwindcss/api/types";
3
+
4
+ //#region src/frameworks/tailwindcss.d.ts
5
+ declare namespace tailwindcss {
6
+ type Matcher = ObjectKeyMatcher | ObjectValueMatcher | StringMatcher;
7
+ type CommonOptions = {
8
+ readonly selectors?: readonly Selector[] | undefined;
9
+ readonly attributes?: readonly Matcher[] | undefined;
10
+ readonly callees?: readonly Matcher[] | undefined;
11
+ readonly variables?: readonly Matcher[] | undefined;
12
+ readonly tags?: readonly Matcher[] | undefined;
13
+ };
14
+ type V4Options = {
15
+ readonly version?: 4;
16
+ readonly entry: string;
17
+ };
18
+ type V3Options = {
19
+ readonly version: 3;
20
+ readonly config?: string;
21
+ };
22
+ type Options = CommonOptions & (V3Options | V4Options);
23
+ }
24
+ declare const tailwindcss: (options: tailwindcss.Options) => ConfigArray;
25
+ //#endregion
26
+ export { tailwindcss as default };
27
+ //# sourceMappingURL=tailwindcss.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.d.mts","names":[],"sources":["../../src/frameworks/tailwindcss.ts"],"mappings":";;;;kBAWyB,WAAA;EAAA,KACnB,OAAA,GAAU,gBAAA,GAAmB,kBAAA,GAAqB,aAAA;EAAA,KAElD,aAAA;IAAA,SACK,SAAA,YAAqB,QAAA;IAAA,SACrB,UAAA,YAAsB,OAAA;IAAA,SACtB,OAAA,YAAmB,OAAA;IAAA,SACnB,SAAA,YAAqB,OAAA;IAAA,SACrB,IAAA,YAAgB,OAAA;EAAA;EAAA,KAGrB,SAAA;IAAA,SACK,OAAA;IAAA,SACA,KAAA;EAAA;EAAA,KAGL,SAAA;IAAA,SACK,OAAA;IAAA,SACA,MAAA;EAAA;EAAA,KAGL,OAAA,GAAU,aAAA,IAAiB,SAAA,GAAY,SAAA;AAAA;AAAA,cAGhC,WAAA,GAAe,OAAA,EAAS,WAAA,CAAY,OAAA,KAAU,WACV"}
@@ -0,0 +1,39 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import BetterTailwindCSS from "eslint-plugin-better-tailwindcss";
3
+ //#region src/rulesets/better-tailwindcss.ts
4
+ const betterTailwindCSSRulesets = ({ attributes, callees, selectors, variables, tags, ...options }) => defineConfig({
5
+ name: "@touchspot/eslint-config/rulesets/better-tailwindcss",
6
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
7
+ plugins: { "better-tailwindcss": BetterTailwindCSS },
8
+ settings: { "better-tailwindcss": {
9
+ ...options.version === 3 ? { tailwindConfig: options.config ?? "tailwind.config.js" } : { entryPoint: options.entry },
10
+ ...selectors == null ? {
11
+ ...attributes != null && { attributes },
12
+ ...callees != null && { callees },
13
+ ...variables != null && { variables },
14
+ ...tags != null && { tags }
15
+ } : { selectors }
16
+ } },
17
+ rules: {
18
+ "better-tailwindcss/enforce-logical-properties": "error",
19
+ "better-tailwindcss/enforce-shorthand-classes": "error",
20
+ "better-tailwindcss/no-deprecated-classes": "error",
21
+ "better-tailwindcss/no-duplicate-classes": "error",
22
+ "better-tailwindcss/no-unknown-classes": "error",
23
+ "better-tailwindcss/no-unnecessary-whitespace": ["error", { allowMultiline: false }],
24
+ ...options.version === 3 ? {
25
+ "better-tailwindcss/enforce-consistent-important-position": "error",
26
+ "better-tailwindcss/enforce-consistent-variable-syntax": "error"
27
+ } : {
28
+ "better-tailwindcss/enforce-canonical-classes": "error",
29
+ "better-tailwindcss/no-conflicting-classes": "error"
30
+ }
31
+ }
32
+ });
33
+ //#endregion
34
+ //#region src/frameworks/tailwindcss.ts
35
+ const tailwindcss = (options) => defineConfig(betterTailwindCSSRulesets(options));
36
+ //#endregion
37
+ export { tailwindcss as default };
38
+
39
+ //# sourceMappingURL=tailwindcss.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.mjs","names":[],"sources":["../../src/rulesets/better-tailwindcss.ts","../../src/frameworks/tailwindcss.ts"],"sourcesContent":["import BetterTailwindCSS from \"eslint-plugin-better-tailwindcss\";\nimport { defineConfig } from \"eslint/config\";\n\nimport type { tailwindcss } from \"#src/frameworks/tailwindcss.js\";\n\nexport const betterTailwindCSSRulesets = ({\n\tattributes,\n\tcallees,\n\tselectors,\n\tvariables,\n\ttags,\n\t...options\n}: tailwindcss.Options) =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/better-tailwindcss\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tplugins: {\n\t\t\t\"better-tailwindcss\": BetterTailwindCSS,\n\t\t},\n\t\tsettings: {\n\t\t\t\"better-tailwindcss\": {\n\t\t\t\t...(options.version === 3\n\t\t\t\t\t? { tailwindConfig: options.config ?? \"tailwind.config.js\" }\n\t\t\t\t\t: { entryPoint: options.entry }),\n\t\t\t\t...(selectors == null\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...(attributes != null && { attributes }),\n\t\t\t\t\t\t\t...(callees != null && { callees }),\n\t\t\t\t\t\t\t...(variables != null && { variables }),\n\t\t\t\t\t\t\t...(tags != null && { tags }),\n\t\t\t\t\t\t}\n\t\t\t\t\t: { selectors }),\n\t\t\t},\n\t\t},\n\t\trules: {\n\t\t\t\"better-tailwindcss/enforce-logical-properties\": \"error\",\n\t\t\t\"better-tailwindcss/enforce-shorthand-classes\": \"error\",\n\t\t\t\"better-tailwindcss/no-deprecated-classes\": \"error\",\n\t\t\t\"better-tailwindcss/no-duplicate-classes\": \"error\",\n\t\t\t\"better-tailwindcss/no-unknown-classes\": \"error\",\n\t\t\t\"better-tailwindcss/no-unnecessary-whitespace\": [\"error\", { allowMultiline: false }],\n\t\t\t...(options.version === 3\n\t\t\t\t? {\n\t\t\t\t\t\t\"better-tailwindcss/enforce-consistent-important-position\": \"error\",\n\t\t\t\t\t\t\"better-tailwindcss/enforce-consistent-variable-syntax\": \"error\",\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t\"better-tailwindcss/enforce-canonical-classes\": \"error\",\n\t\t\t\t\t\t\"better-tailwindcss/no-conflicting-classes\": \"error\",\n\t\t\t\t\t}),\n\t\t},\n\t});\n","import type {\n\tObjectKeyMatcher,\n\tObjectValueMatcher,\n\tSelector,\n\tStringMatcher,\n} from \"eslint-plugin-better-tailwindcss/api/types\";\nimport { defineConfig } from \"eslint/config\";\n\nimport { betterTailwindCSSRulesets } from \"#src/rulesets/better-tailwindcss.js\";\nimport type { ConfigArray } from \"#src/types.js\";\n\nexport declare namespace tailwindcss {\n\ttype Matcher = ObjectKeyMatcher | ObjectValueMatcher | StringMatcher;\n\n\ttype CommonOptions = {\n\t\treadonly selectors?: readonly Selector[] | undefined;\n\t\treadonly attributes?: readonly Matcher[] | undefined;\n\t\treadonly callees?: readonly Matcher[] | undefined;\n\t\treadonly variables?: readonly Matcher[] | undefined;\n\t\treadonly tags?: readonly Matcher[] | undefined;\n\t};\n\n\ttype V4Options = {\n\t\treadonly version?: 4;\n\t\treadonly entry: string;\n\t};\n\n\ttype V3Options = {\n\t\treadonly version: 3;\n\t\treadonly config?: string;\n\t};\n\n\ttype Options = CommonOptions & (V3Options | V4Options);\n}\n\nexport const tailwindcss = (options: tailwindcss.Options): ConfigArray =>\n\tdefineConfig(betterTailwindCSSRulesets(options));\n"],"mappings":";;;AAKA,MAAa,6BAA6B,EACzC,YACA,SACA,WACA,WACA,MACA,GAAG,cAEH,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,EACR,sBAAsB,kBACvB;CACA,UAAU,EACT,sBAAsB;EACrB,GAAI,QAAQ,YAAY,IACrB,EAAE,gBAAgB,QAAQ,UAAU,qBAAqB,IACzD,EAAE,YAAY,QAAQ,MAAM;EAC/B,GAAI,aAAa,OACd;GACA,GAAI,cAAc,QAAQ,EAAE,WAAW;GACvC,GAAI,WAAW,QAAQ,EAAE,QAAQ;GACjC,GAAI,aAAa,QAAQ,EAAE,UAAU;GACrC,GAAI,QAAQ,QAAQ,EAAE,KAAK;EAC5B,IACC,EAAE,UAAU;CAChB,EACD;CACA,OAAO;EACN,iDAAiD;EACjD,gDAAgD;EAChD,4CAA4C;EAC5C,2CAA2C;EAC3C,yCAAyC;EACzC,gDAAgD,CAAC,SAAS,EAAE,gBAAgB,MAAM,CAAC;EACnF,GAAI,QAAQ,YAAY,IACrB;GACA,4DAA4D;GAC5D,yDAAyD;EAC1D,IACC;GACA,gDAAgD;GAChD,6CAA6C;EAC9C;CACH;AACD,CAAC;;;AChBF,MAAa,eAAe,YAC3B,aAAa,0BAA0B,OAAO,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import Functional from "eslint-plugin-functional";
3
+ //#region src/rulesets/functional.ts
4
+ const functionalRuleset = () => defineConfig({
5
+ name: "@touchspot/eslint-config/rulesets/functional",
6
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
7
+ ignores: ["**/*.d.*"],
8
+ plugins: { functional: Functional },
9
+ rules: {
10
+ "functional/immutable-data": ["error", {
11
+ ignoreImmediateMutation: true,
12
+ ignoreNonConstDeclarations: { treatParametersAsConst: true }
13
+ }],
14
+ "functional/prefer-property-signatures": "error",
15
+ "functional/prefer-readonly-type": "error"
16
+ }
17
+ });
18
+ const functionalRulesetReact = () => defineConfig({
19
+ name: "@touchspot/eslint-config/rulesets/functional/react",
20
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
21
+ ignores: ["**/*.d.*"],
22
+ rules: { "functional/immutable-data": ["error", {
23
+ ignoreImmediateMutation: true,
24
+ ignoreNonConstDeclarations: { treatParametersAsConst: true },
25
+ ignoreAccessorPattern: [
26
+ "ref.current",
27
+ "*Ref.current",
28
+ "*Atom.*"
29
+ ]
30
+ }] }
31
+ });
32
+ const autoDisableTypeAwareFunctionalRules = (options) => {
33
+ if (options.enableTypeAwareRules === false) return defineConfig({
34
+ name: "@touchspot/eslint-config/rulesets/functional/disable-type-aware/all",
35
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
36
+ extends: [Functional.configs.disableTypeChecked]
37
+ });
38
+ if (options.enableTypeAwareRules?.js == null) return defineConfig({
39
+ name: "@touchspot/eslint-config/rulesets/functional/disable-type-aware/js",
40
+ files: ["**/*.{js,jsx,mjs,cjs}"],
41
+ extends: [Functional.configs.disableTypeChecked]
42
+ });
43
+ return [];
44
+ };
45
+ //#endregion
46
+ export { functionalRuleset as n, functionalRulesetReact as r, autoDisableTypeAwareFunctionalRules as t };
47
+
48
+ //# sourceMappingURL=functional-D_M95gZL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional-D_M95gZL.mjs","names":[],"sources":["../src/rulesets/functional.ts"],"sourcesContent":["import Functional from \"eslint-plugin-functional\";\nimport { defineConfig } from \"eslint/config\";\n\nimport type { config } from \"#src/config.js\";\n\nexport const functionalRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/functional\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tignores: [\"**/*.d.*\"],\n\t\tplugins: {\n\t\t\tfunctional: Functional,\n\t\t},\n\t\trules: {\n\t\t\t\"functional/immutable-data\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\tignoreImmediateMutation: true,\n\t\t\t\t\tignoreNonConstDeclarations: { treatParametersAsConst: true },\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"functional/prefer-property-signatures\": \"error\",\n\t\t\t\"functional/prefer-readonly-type\": \"error\",\n\t\t},\n\t});\n\nexport const functionalRulesetReact = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/functional/react\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tignores: [\"**/*.d.*\"],\n\t\trules: {\n\t\t\t\"functional/immutable-data\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\tignoreImmediateMutation: true,\n\t\t\t\t\tignoreNonConstDeclarations: { treatParametersAsConst: true },\n\t\t\t\t\tignoreAccessorPattern: [\"ref.current\", \"*Ref.current\", \"*Atom.*\"],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t});\n\nexport const autoDisableTypeAwareFunctionalRules = (options: config.Options) => {\n\tif (options.enableTypeAwareRules === false) {\n\t\treturn defineConfig({\n\t\t\tname: \"@touchspot/eslint-config/rulesets/functional/disable-type-aware/all\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\textends: [Functional.configs.disableTypeChecked],\n\t\t});\n\t}\n\tif (options.enableTypeAwareRules?.js == null) {\n\t\treturn defineConfig({\n\t\t\tname: \"@touchspot/eslint-config/rulesets/functional/disable-type-aware/js\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs}\"],\n\t\t\textends: [Functional.configs.disableTypeChecked],\n\t\t});\n\t}\n\treturn [];\n};\n"],"mappings":";;;AAKA,MAAa,0BACZ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,CAAC,UAAU;CACpB,SAAS,EACR,YAAY,WACb;CACA,OAAO;EACN,6BAA6B,CAC5B,SACA;GACC,yBAAyB;GACzB,4BAA4B,EAAE,wBAAwB,KAAK;EAC5D,CACD;EACA,yCAAyC;EACzC,mCAAmC;CACpC;AACD,CAAC;AAEF,MAAa,+BACZ,aAAa;CACZ,MAAM;CACN,OAAO,CAAC,sCAAsC;CAC9C,SAAS,CAAC,UAAU;CACpB,OAAO,EACN,6BAA6B,CAC5B,SACA;EACC,yBAAyB;EACzB,4BAA4B,EAAE,wBAAwB,KAAK;EAC3D,uBAAuB;GAAC;GAAe;GAAgB;EAAS;CACjE,CACD,EACD;AACD,CAAC;AAEF,MAAa,uCAAuC,YAA4B;CAC/E,IAAI,QAAQ,yBAAyB,OACpC,OAAO,aAAa;EACnB,MAAM;EACN,OAAO,CAAC,sCAAsC;EAC9C,SAAS,CAAC,WAAW,QAAQ,kBAAkB;CAChD,CAAC;CAEF,IAAI,QAAQ,sBAAsB,MAAM,MACvC,OAAO,aAAa;EACnB,MAAM;EACN,OAAO,CAAC,uBAAuB;EAC/B,SAAS,CAAC,WAAW,QAAQ,kBAAkB;CAChD,CAAC;CAEF,OAAO,CAAC;AACT"}
@@ -0,0 +1,30 @@
1
+ import { n as ConfigArray, t as Config } from "./types-DzD7blyE.mjs";
2
+ import { ConfigWithExtendsArray } from "@eslint/config-helpers";
3
+
4
+ //#region src/config.d.ts
5
+ declare namespace config {
6
+ type Options = {
7
+ readonly rootDir: string;
8
+ readonly tsconfig?: string;
9
+ readonly enableTypeAwareRules?: {
10
+ readonly js?: "all" | "auto";
11
+ } | false;
12
+ };
13
+ }
14
+ declare const config: (options: config.Options, ...addons: ConfigWithExtendsArray) => ConfigArray;
15
+ declare namespace env_d_exports {
16
+ export { browser, node };
17
+ }
18
+ declare const browser: ({
19
+ files
20
+ }?: {
21
+ readonly files?: readonly string[];
22
+ }) => import("eslint/config").Config[];
23
+ declare const node: ({
24
+ files
25
+ }?: {
26
+ readonly files?: readonly string[];
27
+ }) => import("eslint/config").Config[];
28
+ //#endregion
29
+ export { type Config, type ConfigArray, config as default, env_d_exports as env };
30
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/env.ts"],"mappings":";;;;kBAeyB,MAAA;EAAA,KACnB,OAAA;IAAA,SACK,OAAA;IAAA,SACA,QAAA;IAAA,SACA,oBAAA;MAAA,SAAkC,EAAA;IAAA;EAAA;AAAA;AAAA,cAIhC,MAAA,GAAU,OAAA,EAAS,MAAA,CAAO,OAAA,KAAY,MAAA,EAAQ,sBAAA,KAAyB,WAAA;AAAA;;;cCpBvE,OAAA;EAAW;AAAA;EAAA,SAGd,KAAA;AAAA,8BACJ,MAAA;AAAA,cAWO,IAAA;EAAQ;AAAA;EAAA,SAGX,KAAA;AAAA,8BACJ,MAAA"}
package/dist/index.mjs ADDED
@@ -0,0 +1,233 @@
1
+ import { i as importXRuleset, n as env_exports, o as checkFileRuleset } from "./env-P7bBQuYF.mjs";
2
+ import { n as functionalRuleset, t as autoDisableTypeAwareFunctionalRules } from "./functional-D_M95gZL.mjs";
3
+ import Prettier from "eslint-config-prettier";
4
+ import { defineConfig, globalIgnores } from "eslint/config";
5
+ import ESLint from "@eslint/js";
6
+ import { fixupPluginRules } from "@eslint/compat";
7
+ import NoRelativeImportPaths from "eslint-plugin-no-relative-import-paths";
8
+ import Perfectionist from "eslint-plugin-perfectionist";
9
+ import * as TSESLint from "typescript-eslint";
10
+ import Unicorn from "eslint-plugin-unicorn";
11
+ import UnusedImports from "eslint-plugin-unused-imports";
12
+ //#region src/rulesets/eslint.ts
13
+ const eslintRuleset = () => defineConfig({
14
+ name: "@touchspot/eslint-config/rulesets/eslint",
15
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
16
+ extends: [ESLint.configs.recommended],
17
+ rules: {
18
+ "arrow-body-style": ["error"],
19
+ eqeqeq: [
20
+ "error",
21
+ "always",
22
+ { null: "never" }
23
+ ],
24
+ "max-params": "error",
25
+ "no-console": ["warn", { allow: ["warn", "error"] }],
26
+ "no-lone-blocks": "error",
27
+ "no-lonely-if": "error",
28
+ "no-loop-func": "error",
29
+ "no-param-reassign": "error",
30
+ "no-restricted-imports": ["error", { patterns: [{
31
+ group: ["**/_*", "!./_*"],
32
+ message: "Do not import directory-private module."
33
+ }] }],
34
+ "no-useless-rename": "error",
35
+ "object-shorthand": "error",
36
+ "prefer-destructuring": "error"
37
+ }
38
+ });
39
+ //#endregion
40
+ //#region src/rulesets/no-relative-import-paths.ts
41
+ const noRelativeImportPathsRuleset = () => defineConfig({
42
+ name: "@touchspot/eslint-config/rulesets/no-relative-import-paths",
43
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
44
+ ignores: ["**/*.d.*"],
45
+ plugins: { "no-relative-import-paths": fixupPluginRules(NoRelativeImportPaths) },
46
+ rules: { "no-relative-import-paths/no-relative-import-paths": ["error", { allowSameFolder: true }] }
47
+ });
48
+ //#endregion
49
+ //#region src/rulesets/perfectionist.ts
50
+ const perfectionistRuleset = () => defineConfig({
51
+ name: "@touchspot/eslint-config/rulesets/perfectionist",
52
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
53
+ plugins: { perfectionist: Perfectionist },
54
+ rules: {
55
+ "perfectionist/sort-exports": ["error", { type: "natural" }],
56
+ "perfectionist/sort-imports": ["error", {
57
+ type: "natural",
58
+ groups: [
59
+ "side-effect",
60
+ "builtin",
61
+ "external",
62
+ "subpath",
63
+ [
64
+ "parent",
65
+ "sibling",
66
+ "index"
67
+ ],
68
+ "unknown"
69
+ ]
70
+ }],
71
+ "perfectionist/sort-named-exports": ["error", { type: "natural" }],
72
+ "perfectionist/sort-named-imports": ["error", { type: "natural" }]
73
+ }
74
+ });
75
+ //#endregion
76
+ //#region src/rulesets/tseslint.ts
77
+ const tseslintRuleset = (options) => defineConfig({
78
+ name: "@touchspot/eslint-config/rulesets/tseslint",
79
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
80
+ extends: [TSESLint.configs.base, TSESLint.configs.eslintRecommended],
81
+ languageOptions: { parserOptions: {
82
+ tsconfigRootDir: options.rootDir,
83
+ projectService: options.enableTypeAwareRules === false ? false : {
84
+ defaultProject: options.tsconfig ?? "tsconfig.json",
85
+ allowDefaultProject: options.enableTypeAwareRules?.js === "auto" ? ["*.{js,jsx,mjs,cjs}"] : []
86
+ }
87
+ } }
88
+ }, {
89
+ name: "@touchspot/eslint-config/rulesets/tseslint/base",
90
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
91
+ ignores: ["**/*.d.*"],
92
+ extends: [TSESLint.configs.strictTypeChecked, TSESLint.configs.stylisticTypeChecked],
93
+ rules: {
94
+ "@typescript-eslint/consistent-type-definitions": ["error", "type"],
95
+ "@typescript-eslint/consistent-type-exports": "error",
96
+ "@typescript-eslint/consistent-type-imports": "error",
97
+ "@typescript-eslint/explicit-member-accessibility": ["error", { accessibility: "no-public" }],
98
+ "@typescript-eslint/naming-convention": [
99
+ "error",
100
+ {
101
+ selector: "default",
102
+ format: [
103
+ "camelCase",
104
+ "PascalCase",
105
+ "UPPER_CASE"
106
+ ],
107
+ leadingUnderscore: "forbid",
108
+ trailingUnderscore: "forbid"
109
+ },
110
+ {
111
+ selector: ["parameter", "variable"],
112
+ format: [
113
+ "camelCase",
114
+ "PascalCase",
115
+ "UPPER_CASE"
116
+ ],
117
+ leadingUnderscore: "allow",
118
+ trailingUnderscore: "forbid"
119
+ },
120
+ {
121
+ selector: "typeLike",
122
+ format: ["PascalCase", "UPPER_CASE"],
123
+ leadingUnderscore: "forbid",
124
+ trailingUnderscore: "forbid"
125
+ },
126
+ {
127
+ selector: "default",
128
+ modifiers: ["requiresQuotes"],
129
+ format: null
130
+ },
131
+ {
132
+ selector: "property",
133
+ filter: {
134
+ regex: "^(_tag|__typename)$",
135
+ match: true
136
+ },
137
+ format: null
138
+ }
139
+ ],
140
+ "@typescript-eslint/no-namespace": ["error", { allowDeclarations: true }],
141
+ "@typescript-eslint/no-import-type-side-effects": "error",
142
+ "no-shadow": "off",
143
+ "@typescript-eslint/no-shadow": ["error", { allow: ["_", "it"] }],
144
+ "@typescript-eslint/no-unnecessary-condition": ["error", { allowConstantLoopConditions: true }],
145
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
146
+ "@typescript-eslint/no-unused-vars": "off",
147
+ "@typescript-eslint/no-useless-empty-export": "error",
148
+ "@typescript-eslint/parameter-properties": "error",
149
+ "@typescript-eslint/prefer-nullish-coalescing": ["error", { ignoreTernaryTests: true }],
150
+ "@typescript-eslint/prefer-readonly": "error",
151
+ "@typescript-eslint/restrict-template-expressions": ["error", { allowNumber: true }],
152
+ "@typescript-eslint/return-await": ["error", "always"],
153
+ "@typescript-eslint/strict-boolean-expressions": ["error", {
154
+ allowString: false,
155
+ allowNumber: false,
156
+ allowNullableObject: false
157
+ }],
158
+ "@typescript-eslint/switch-exhaustiveness-check": "error"
159
+ }
160
+ });
161
+ const autoDisableTypeAwareTseslintRules = (options) => {
162
+ if (options.enableTypeAwareRules === false) return defineConfig({
163
+ name: "@touchspot/eslint-config/rulesets/tseslint/disable-type-aware/all",
164
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
165
+ extends: [TSESLint.configs.disableTypeChecked]
166
+ });
167
+ if (options.enableTypeAwareRules?.js == null) return defineConfig({
168
+ name: "@touchspot/eslint-config/rulesets/tseslint/disable-type-aware/js",
169
+ files: ["**/*.{js,jsx,mjs,cjs}"],
170
+ extends: [TSESLint.configs.disableTypeChecked]
171
+ });
172
+ return [];
173
+ };
174
+ //#endregion
175
+ //#region src/rulesets/unicorn.ts
176
+ const unicornRuleset = () => defineConfig({
177
+ name: "@touchspot/eslint-config/rulesets/unicorn",
178
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
179
+ extends: [Unicorn.configs.recommended],
180
+ rules: {
181
+ "unicorn/consistent-function-scoping": ["error", { checkArrowFunctions: false }],
182
+ "unicorn/filename-case": "off",
183
+ "unicorn/no-array-callback-reference": "off",
184
+ "unicorn/no-array-reduce": "off",
185
+ "unicorn/no-null": "off",
186
+ "unicorn/prefer-object-from-entries": "off",
187
+ "unicorn/prevent-abbreviations": "off"
188
+ }
189
+ });
190
+ //#endregion
191
+ //#region src/rulesets/unused-imports.ts
192
+ const unusedImportsRuleset = () => defineConfig({
193
+ name: "@touchspot/eslint-config/rulesets/unused-imports",
194
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
195
+ plugins: { "unused-imports": UnusedImports },
196
+ rules: {
197
+ "no-unused-vars": "off",
198
+ "unused-imports/no-unused-imports": "error",
199
+ "unused-imports/no-unused-vars": ["error", {
200
+ args: "after-used",
201
+ argsIgnorePattern: "^_",
202
+ vars: "all",
203
+ varsIgnorePattern: "^_"
204
+ }]
205
+ }
206
+ });
207
+ //#endregion
208
+ //#region src/config.ts
209
+ const config = (options, ...addons) => defineConfig(globalIgnores([
210
+ ".cache/",
211
+ ".turbo/",
212
+ "coverage/",
213
+ "dist/"
214
+ ]), {
215
+ name: "@touchspot/eslint-config/linter",
216
+ linterOptions: { reportUnusedDisableDirectives: "error" }
217
+ }, {
218
+ name: "@touchspot/eslint-config/language",
219
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
220
+ languageOptions: { ecmaVersion: "latest" }
221
+ }, {
222
+ name: "@touchspot/eslint-config/language/esm",
223
+ files: ["**/*.{js,jsx,mjs,ts,tsx,mts}"],
224
+ languageOptions: { sourceType: "module" }
225
+ }, {
226
+ name: "@touchspot/eslint-config/language/cjs",
227
+ files: ["**/*.{cjs,cts}"],
228
+ languageOptions: { sourceType: "commonjs" }
229
+ }, eslintRuleset(), tseslintRuleset(options), unicornRuleset(), importXRuleset(), unusedImportsRuleset(), noRelativeImportPathsRuleset(), functionalRuleset(), perfectionistRuleset(), checkFileRuleset(), addons, autoDisableTypeAwareTseslintRules(options), autoDisableTypeAwareFunctionalRules(options), Prettier);
230
+ //#endregion
231
+ export { config as default, env_exports as env };
232
+
233
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/rulesets/eslint.ts","../src/rulesets/no-relative-import-paths.ts","../src/rulesets/perfectionist.ts","../src/rulesets/tseslint.ts","../src/rulesets/unicorn.ts","../src/rulesets/unused-imports.ts","../src/config.ts"],"sourcesContent":["import ESLint from \"@eslint/js\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const eslintRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/eslint\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\textends: [ESLint.configs.recommended],\n\t\trules: {\n\t\t\t\"arrow-body-style\": [\"error\"],\n\t\t\teqeqeq: [\"error\", \"always\", { null: \"never\" }],\n\t\t\t\"max-params\": \"error\",\n\t\t\t\"no-console\": [\"warn\", { allow: [\"warn\", \"error\"] }],\n\t\t\t\"no-lone-blocks\": \"error\",\n\t\t\t\"no-lonely-if\": \"error\",\n\t\t\t\"no-loop-func\": \"error\",\n\t\t\t\"no-param-reassign\": \"error\",\n\t\t\t\"no-restricted-imports\": [\n\t\t\t\t\"error\",\n\t\t\t\t{ patterns: [{ group: [\"**/_*\", \"!./_*\"], message: \"Do not import directory-private module.\" }] },\n\t\t\t],\n\t\t\t\"no-useless-rename\": \"error\",\n\t\t\t\"object-shorthand\": \"error\",\n\t\t\t\"prefer-destructuring\": \"error\",\n\t\t},\n\t});\n","import { fixupPluginRules } from \"@eslint/compat\";\nimport NoRelativeImportPaths from \"eslint-plugin-no-relative-import-paths\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const noRelativeImportPathsRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/no-relative-import-paths\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tignores: [\"**/*.d.*\"],\n\t\tplugins: {\n\t\t\t\"no-relative-import-paths\": fixupPluginRules(NoRelativeImportPaths),\n\t\t},\n\t\trules: {\n\t\t\t\"no-relative-import-paths/no-relative-import-paths\": [\"error\", { allowSameFolder: true }],\n\t\t},\n\t});\n","import Perfectionist from \"eslint-plugin-perfectionist\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const perfectionistRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/perfectionist\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tplugins: {\n\t\t\tperfectionist: Perfectionist,\n\t\t},\n\t\trules: {\n\t\t\t\"perfectionist/sort-exports\": [\"error\", { type: \"natural\" }],\n\t\t\t\"perfectionist/sort-imports\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\ttype: \"natural\",\n\t\t\t\t\tgroups: [\"side-effect\", \"builtin\", \"external\", \"subpath\", [\"parent\", \"sibling\", \"index\"], \"unknown\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"perfectionist/sort-named-exports\": [\"error\", { type: \"natural\" }],\n\t\t\t\"perfectionist/sort-named-imports\": [\"error\", { type: \"natural\" }],\n\t\t},\n\t});\n","import { defineConfig } from \"eslint/config\";\nimport * as TSESLint from \"typescript-eslint\";\n\nimport type { config } from \"#src/config.js\";\n\nexport const tseslintRuleset = (options: config.Options) =>\n\tdefineConfig(\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/tseslint\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\textends: [TSESLint.configs.base, TSESLint.configs.eslintRecommended],\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\ttsconfigRootDir: options.rootDir,\n\t\t\t\t\tprojectService:\n\t\t\t\t\t\toptions.enableTypeAwareRules === false\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tdefaultProject: options.tsconfig ?? \"tsconfig.json\",\n\t\t\t\t\t\t\t\t\tallowDefaultProject: options.enableTypeAwareRules?.js === \"auto\" ? [\"*.{js,jsx,mjs,cjs}\"] : [],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/rulesets/tseslint/base\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\tignores: [\"**/*.d.*\"],\n\t\t\textends: [TSESLint.configs.strictTypeChecked, TSESLint.configs.stylisticTypeChecked],\n\t\t\trules: {\n\t\t\t\t\"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\t\"@typescript-eslint/consistent-type-exports\": \"error\",\n\t\t\t\t\"@typescript-eslint/consistent-type-imports\": \"error\",\n\t\t\t\t\"@typescript-eslint/explicit-member-accessibility\": [\"error\", { accessibility: \"no-public\" }],\n\t\t\t\t\"@typescript-eslint/naming-convention\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: \"default\",\n\t\t\t\t\t\tformat: [\"camelCase\", \"PascalCase\", \"UPPER_CASE\"],\n\t\t\t\t\t\tleadingUnderscore: \"forbid\",\n\t\t\t\t\t\ttrailingUnderscore: \"forbid\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: [\"parameter\", \"variable\"],\n\t\t\t\t\t\tformat: [\"camelCase\", \"PascalCase\", \"UPPER_CASE\"],\n\t\t\t\t\t\tleadingUnderscore: \"allow\",\n\t\t\t\t\t\ttrailingUnderscore: \"forbid\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: \"typeLike\",\n\t\t\t\t\t\tformat: [\"PascalCase\", \"UPPER_CASE\"],\n\t\t\t\t\t\tleadingUnderscore: \"forbid\",\n\t\t\t\t\t\ttrailingUnderscore: \"forbid\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: \"default\",\n\t\t\t\t\t\tmodifiers: [\"requiresQuotes\"],\n\t\t\t\t\t\tformat: null,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: \"property\",\n\t\t\t\t\t\tfilter: {\n\t\t\t\t\t\t\tregex: \"^(_tag|__typename)$\",\n\t\t\t\t\t\t\tmatch: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tformat: null,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"@typescript-eslint/no-namespace\": [\"error\", { allowDeclarations: true }],\n\t\t\t\t\"@typescript-eslint/no-import-type-side-effects\": \"error\",\n\t\t\t\t\"no-shadow\": \"off\",\n\t\t\t\t\"@typescript-eslint/no-shadow\": [\"error\", { allow: [\"_\", \"it\"] }],\n\t\t\t\t\"@typescript-eslint/no-unnecessary-condition\": [\"error\", { allowConstantLoopConditions: true }],\n\t\t\t\t\"@typescript-eslint/no-unnecessary-qualifier\": \"error\",\n\t\t\t\t\"@typescript-eslint/no-unused-vars\": \"off\",\n\t\t\t\t\"@typescript-eslint/no-useless-empty-export\": \"error\",\n\t\t\t\t\"@typescript-eslint/parameter-properties\": \"error\",\n\t\t\t\t\"@typescript-eslint/prefer-nullish-coalescing\": [\"error\", { ignoreTernaryTests: true }],\n\t\t\t\t\"@typescript-eslint/prefer-readonly\": \"error\",\n\t\t\t\t\"@typescript-eslint/restrict-template-expressions\": [\"error\", { allowNumber: true }],\n\t\t\t\t\"@typescript-eslint/return-await\": [\"error\", \"always\"],\n\t\t\t\t\"@typescript-eslint/strict-boolean-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allowString: false, allowNumber: false, allowNullableObject: false },\n\t\t\t\t],\n\t\t\t\t\"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n\t\t\t},\n\t\t},\n\t);\n\nexport const autoDisableTypeAwareTseslintRules = (options: config.Options) => {\n\tif (options.enableTypeAwareRules === false) {\n\t\treturn defineConfig({\n\t\t\tname: \"@touchspot/eslint-config/rulesets/tseslint/disable-type-aware/all\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\textends: [TSESLint.configs.disableTypeChecked],\n\t\t});\n\t}\n\tif (options.enableTypeAwareRules?.js == null) {\n\t\treturn defineConfig({\n\t\t\tname: \"@touchspot/eslint-config/rulesets/tseslint/disable-type-aware/js\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs}\"],\n\t\t\textends: [TSESLint.configs.disableTypeChecked],\n\t\t});\n\t}\n\treturn [];\n};\n","import Unicorn from \"eslint-plugin-unicorn\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const unicornRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/unicorn\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\textends: [Unicorn.configs.recommended],\n\t\trules: {\n\t\t\t\"unicorn/consistent-function-scoping\": [\"error\", { checkArrowFunctions: false }],\n\t\t\t\"unicorn/filename-case\": \"off\",\n\t\t\t\"unicorn/no-array-callback-reference\": \"off\",\n\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\t\t\t\"unicorn/no-null\": \"off\",\n\t\t\t\"unicorn/prefer-object-from-entries\": \"off\",\n\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\t\t},\n\t});\n","import UnusedImports from \"eslint-plugin-unused-imports\";\nimport { defineConfig } from \"eslint/config\";\n\nexport const unusedImportsRuleset = () =>\n\tdefineConfig({\n\t\tname: \"@touchspot/eslint-config/rulesets/unused-imports\",\n\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\tplugins: {\n\t\t\t\"unused-imports\": UnusedImports,\n\t\t},\n\t\trules: {\n\t\t\t\"no-unused-vars\": \"off\",\n\t\t\t\"unused-imports/no-unused-imports\": \"error\",\n\t\t\t\"unused-imports/no-unused-vars\": [\n\t\t\t\t\"error\",\n\t\t\t\t{ args: \"after-used\", argsIgnorePattern: \"^_\", vars: \"all\", varsIgnorePattern: \"^_\" },\n\t\t\t],\n\t\t},\n\t});\n","import type { ConfigWithExtendsArray } from \"@eslint/config-helpers\";\nimport Prettier from \"eslint-config-prettier\";\nimport { defineConfig, globalIgnores } from \"eslint/config\";\n\nimport { checkFileRuleset } from \"#src/rulesets/check-file.js\";\nimport { eslintRuleset } from \"#src/rulesets/eslint.js\";\nimport { autoDisableTypeAwareFunctionalRules, functionalRuleset } from \"#src/rulesets/functional.js\";\nimport { importXRuleset } from \"#src/rulesets/import-x.js\";\nimport { noRelativeImportPathsRuleset } from \"#src/rulesets/no-relative-import-paths.js\";\nimport { perfectionistRuleset } from \"#src/rulesets/perfectionist.js\";\nimport { autoDisableTypeAwareTseslintRules, tseslintRuleset } from \"#src/rulesets/tseslint.js\";\nimport { unicornRuleset } from \"#src/rulesets/unicorn.js\";\nimport { unusedImportsRuleset } from \"#src/rulesets/unused-imports.js\";\nimport type { ConfigArray } from \"#src/types.js\";\n\nexport declare namespace config {\n\ttype Options = {\n\t\treadonly rootDir: string;\n\t\treadonly tsconfig?: string;\n\t\treadonly enableTypeAwareRules?: { readonly js?: \"all\" | \"auto\" } | false;\n\t};\n}\n\nexport const config = (options: config.Options, ...addons: ConfigWithExtendsArray): ConfigArray =>\n\tdefineConfig(\n\t\tglobalIgnores([\".cache/\", \".turbo/\", \"coverage/\", \"dist/\"]),\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/linter\",\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: \"error\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/language\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}\"],\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/language/esm\",\n\t\t\tfiles: [\"**/*.{js,jsx,mjs,ts,tsx,mts}\"],\n\t\t\tlanguageOptions: {\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"@touchspot/eslint-config/language/cjs\",\n\t\t\tfiles: [\"**/*.{cjs,cts}\"],\n\t\t\tlanguageOptions: {\n\t\t\t\tsourceType: \"commonjs\",\n\t\t\t},\n\t\t},\n\t\teslintRuleset(),\n\t\ttseslintRuleset(options),\n\t\tunicornRuleset(),\n\t\timportXRuleset(),\n\t\tunusedImportsRuleset(),\n\t\tnoRelativeImportPathsRuleset(),\n\t\tfunctionalRuleset(),\n\t\tperfectionistRuleset(),\n\t\tcheckFileRuleset(),\n\t\taddons,\n\t\tautoDisableTypeAwareTseslintRules(options),\n\t\tautoDisableTypeAwareFunctionalRules(options),\n\t\tPrettier,\n\t);\n"],"mappings":"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"}