@solvro/config 1.6.1 → 1.8.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.
@@ -27,19 +27,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // eslint/index.ts
30
+ // src/eslint/index.ts
31
31
  var eslint_exports = {};
32
32
  __export(eslint_exports, {
33
33
  solvro: () => solvro
34
34
  });
35
35
  module.exports = __toCommonJS(eslint_exports);
36
- var import_eslint_config = require("@adonisjs/eslint-config");
37
36
  var import_find_up_simple = require("find-up-simple");
38
37
  var import_local_pkg2 = require("local-pkg");
39
38
  var import_node_path = __toESM(require("path"), 1);
40
39
  var import_typescript_eslint4 = __toESM(require("typescript-eslint"), 1);
40
+ var import_eslint_config = require("@adonisjs/eslint-config");
41
41
 
42
- // eslint/configs/a11y.ts
42
+ // src/eslint/configs/a11y.ts
43
43
  var import_eslint_plugin_jsx_a11y = __toESM(require("eslint-plugin-jsx-a11y"), 1);
44
44
  var import_globals = __toESM(require("globals"), 1);
45
45
  function a11y() {
@@ -76,7 +76,7 @@ function a11y() {
76
76
  ];
77
77
  }
78
78
 
79
- // eslint/plugins.ts
79
+ // src/eslint/plugins.ts
80
80
  var import_eslint_plugin_eslint_comments = __toESM(require("@eslint-community/eslint-plugin-eslint-comments"), 1);
81
81
  var import_eslint_plugin_antfu = __toESM(require("eslint-plugin-antfu"), 1);
82
82
  var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
@@ -84,7 +84,7 @@ var import_eslint_plugin_n = __toESM(require("eslint-plugin-n"), 1);
84
84
  var import_eslint_plugin_unicorn = __toESM(require("eslint-plugin-unicorn"), 1);
85
85
  var import_eslint_plugin_unused_imports = __toESM(require("eslint-plugin-unused-imports"), 1);
86
86
 
87
- // eslint/configs/comments.ts
87
+ // src/eslint/configs/comments.ts
88
88
  function comments() {
89
89
  return [
90
90
  {
@@ -103,10 +103,10 @@ function comments() {
103
103
  ];
104
104
  }
105
105
 
106
- // eslint/configs/disables.ts
106
+ // src/eslint/configs/disables.ts
107
107
  var import_typescript_eslint = __toESM(require("typescript-eslint"), 1);
108
108
 
109
- // eslint/globs.ts
109
+ // src/eslint/globs.ts
110
110
  var GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
111
111
  var GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
112
112
  var GLOB_EXCLUDE = [
@@ -144,7 +144,7 @@ var GLOB_EXCLUDE = [
144
144
  "**/components.d.ts"
145
145
  ];
146
146
 
147
- // eslint/configs/disables.ts
147
+ // src/eslint/configs/disables.ts
148
148
  function disables() {
149
149
  return [
150
150
  {
@@ -210,7 +210,7 @@ function disables() {
210
210
  ];
211
211
  }
212
212
 
213
- // eslint/configs/formatters.ts
213
+ // src/eslint/configs/formatters.ts
214
214
  var import_eslint_config_prettier = __toESM(require("eslint-config-prettier"), 1);
215
215
  function formatters() {
216
216
  return [
@@ -224,7 +224,7 @@ function formatters() {
224
224
  ];
225
225
  }
226
226
 
227
- // eslint/configs/ignores.ts
227
+ // src/eslint/configs/ignores.ts
228
228
  function ignores() {
229
229
  return [
230
230
  {
@@ -234,7 +234,7 @@ function ignores() {
234
234
  ];
235
235
  }
236
236
 
237
- // eslint/configs/imports.ts
237
+ // src/eslint/configs/imports.ts
238
238
  function imports(options = { forbidDefaultExport: false }) {
239
239
  const config = [
240
240
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
@@ -294,7 +294,7 @@ function imports(options = { forbidDefaultExport: false }) {
294
294
  return config;
295
295
  }
296
296
 
297
- // eslint/configs/javascript.ts
297
+ // src/eslint/configs/javascript.ts
298
298
  var import_js = __toESM(require("@eslint/js"), 1);
299
299
  var import_globals2 = __toESM(require("globals"), 1);
300
300
  function javascript() {
@@ -516,7 +516,7 @@ function javascript() {
516
516
  ];
517
517
  }
518
518
 
519
- // eslint/configs/jsdoc.ts
519
+ // src/eslint/configs/jsdoc.ts
520
520
  var import_eslint_plugin_jsdoc = __toESM(require("eslint-plugin-jsdoc"), 1);
521
521
  function jsdoc() {
522
522
  return [
@@ -546,7 +546,7 @@ function jsdoc() {
546
546
  ];
547
547
  }
548
548
 
549
- // eslint/configs/node.ts
549
+ // src/eslint/configs/node.ts
550
550
  function node() {
551
551
  return [
552
552
  {
@@ -568,12 +568,12 @@ function node() {
568
568
  ];
569
569
  }
570
570
 
571
- // eslint/configs/react.ts
571
+ // src/eslint/configs/react.ts
572
572
  var import_eslint_plugin_next = __toESM(require("@next/eslint-plugin-next"), 1);
573
573
  var import_eslint_plugin_react = __toESM(require("eslint-plugin-react"), 1);
574
574
  var import_eslint_plugin_react_hooks = __toESM(require("eslint-plugin-react-hooks"), 1);
575
575
  var import_local_pkg = require("local-pkg");
576
- var NextJsPackages = ["next"];
576
+ var nextJsPackages = ["next"];
577
577
  var forbiddenLibraries = [
578
578
  "@headlessui/react",
579
579
  "@mui/material",
@@ -584,7 +584,7 @@ var forbiddenLibraries = [
584
584
  "antd"
585
585
  ];
586
586
  function react() {
587
- const isUsingNext = NextJsPackages.some((index) => (0, import_local_pkg.isPackageExists)(index));
587
+ const isUsingNext = nextJsPackages.some((index) => (0, import_local_pkg.isPackageExists)(index));
588
588
  const nextjsConfig2 = [];
589
589
  if (isUsingNext) {
590
590
  nextjsConfig2.push(
@@ -686,7 +686,7 @@ function react() {
686
686
  ];
687
687
  }
688
688
 
689
- // eslint/configs/typescript-relaxed.ts
689
+ // src/eslint/configs/typescript-relaxed.ts
690
690
  var import_typescript_eslint2 = __toESM(require("typescript-eslint"), 1);
691
691
  function typescriptRelaxed() {
692
692
  return [
@@ -721,7 +721,7 @@ function typescriptRelaxed() {
721
721
  ];
722
722
  }
723
723
 
724
- // eslint/configs/typescript-strict.ts
724
+ // src/eslint/configs/typescript-strict.ts
725
725
  var import_typescript_eslint3 = __toESM(require("typescript-eslint"), 1);
726
726
  function typescriptStrict() {
727
727
  return [
@@ -755,16 +755,11 @@ function typescriptStrict() {
755
755
  "@typescript-eslint/method-signature-style": ["error", "property"],
756
756
  // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
757
757
  "@typescript-eslint/no-dupe-class-members": "error",
758
- "@typescript-eslint/no-dynamic-delete": "off",
759
758
  "@typescript-eslint/no-empty-object-type": [
760
759
  "error",
761
760
  { allowInterfaces: "always" }
762
761
  ],
763
- "@typescript-eslint/no-explicit-any": "off",
764
- "@typescript-eslint/no-extraneous-class": "off",
765
762
  "@typescript-eslint/no-import-type-side-effects": "error",
766
- "@typescript-eslint/no-invalid-void-type": "off",
767
- "@typescript-eslint/no-non-null-assertion": "off",
768
763
  "@typescript-eslint/no-redeclare": ["error", { builtinGlobals: false }],
769
764
  "@typescript-eslint/no-require-imports": "error",
770
765
  "@typescript-eslint/no-unused-expressions": [
@@ -779,10 +774,7 @@ function typescriptStrict() {
779
774
  "error",
780
775
  { classes: false, functions: false, variables: true }
781
776
  ],
782
- "@typescript-eslint/no-useless-constructor": "off",
783
777
  "@typescript-eslint/no-wrapper-object-types": "error",
784
- "@typescript-eslint/triple-slash-reference": "off",
785
- "@typescript-eslint/unified-signatures": "off",
786
778
  // prevent unnecessary use of void operator
787
779
  "@typescript-eslint/no-meaningless-void-operator": "error",
788
780
  // "using non-null assertions cancels the benefits of the strict
@@ -868,7 +860,7 @@ function typescriptStrict() {
868
860
  ];
869
861
  }
870
862
 
871
- // eslint/configs/unicorn.ts
863
+ // src/eslint/configs/unicorn.ts
872
864
  function unicorn() {
873
865
  return [
874
866
  {
@@ -899,12 +891,33 @@ function unicorn() {
899
891
  ];
900
892
  }
901
893
 
902
- // eslint/index.ts
894
+ // src/eslint/index.ts
903
895
  var builtinAdonisConfig = (0, import_eslint_config.configApp)();
904
896
  var adonisConfig = [
905
897
  ...builtinAdonisConfig,
906
898
  ...node(),
907
- ...imports()
899
+ ...imports(),
900
+ {
901
+ rules: {
902
+ "@typescript-eslint/naming-convention": [
903
+ "error",
904
+ {
905
+ selector: ["enum", "enumMember", "class", "interface", "typeLike"],
906
+ format: ["PascalCase"]
907
+ },
908
+ {
909
+ selector: ["classProperty", "classMethod", "method", "variableLike"],
910
+ format: ["camelCase"]
911
+ },
912
+ {
913
+ selector: "variable",
914
+ format: ["camelCase", "UPPER_CASE"],
915
+ leadingUnderscore: "allow",
916
+ trailingUnderscore: "allow"
917
+ }
918
+ ]
919
+ }
920
+ }
908
921
  ];
909
922
  var nextjsConfig = [
910
923
  ...a11y(),
@@ -913,31 +926,27 @@ var nextjsConfig = [
913
926
  ...react(),
914
927
  ...imports({ forbidDefaultExport: true })
915
928
  ];
929
+ var configs = [
930
+ ...javascript(),
931
+ ...jsdoc(),
932
+ ...comments(),
933
+ ...typescriptRelaxed()
934
+ ];
935
+ var defaultOverrides = [...ignores(), ...formatters(), ...disables()];
916
936
  var solvro = (...overrides) => {
917
937
  const isAdonis = (0, import_local_pkg2.isPackageExists)("@adonisjs/core");
918
938
  const isNext = (0, import_local_pkg2.isPackageExists)("next");
919
- const configs = [
920
- ...javascript(),
921
- ...jsdoc(),
922
- ...comments(),
923
- ...typescriptRelaxed()
924
- ];
925
- const defaultOverrides = [
926
- ...ignores(),
927
- ...formatters(),
928
- ...disables(),
929
- ...overrides
930
- ];
931
939
  if (isNext && isAdonis) {
932
940
  throw new Error(
933
941
  "You can't use both Adonis and Next.js in the same project"
934
942
  );
935
943
  }
944
+ const newConfig = [];
936
945
  if (isAdonis) {
937
- configs.push(...adonisConfig);
946
+ newConfig.push(...adonisConfig);
938
947
  }
939
948
  if (isNext) {
940
- configs.push(...nextjsConfig);
949
+ newConfig.push(...nextjsConfig);
941
950
  }
942
951
  const tsConfigPath = (0, import_find_up_simple.findUpSync)("tsconfig.json", {
943
952
  cwd: process.cwd()
@@ -945,16 +954,21 @@ var solvro = (...overrides) => {
945
954
  if (tsConfigPath == null) {
946
955
  throw new Error("No tsconfig.json found");
947
956
  }
948
- const rootDir = import_node_path.default.dirname(tsConfigPath);
957
+ const rootDirectory = import_node_path.default.dirname(tsConfigPath);
949
958
  configs.push({
950
959
  languageOptions: {
951
960
  parserOptions: {
952
961
  projectService: true,
953
- tsconfigRootDir: rootDir
962
+ tsconfigRootDir: rootDirectory
954
963
  }
955
964
  }
956
965
  });
957
- return import_typescript_eslint4.default.config(configs, ...defaultOverrides);
966
+ return import_typescript_eslint4.default.config(
967
+ ...configs,
968
+ ...newConfig,
969
+ ...defaultOverrides,
970
+ ...overrides
971
+ );
958
972
  };
959
973
  // Annotate the CommonJS export names for ESM import in node:
960
974
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../eslint/index.ts","../../eslint/configs/a11y.ts","../../eslint/plugins.ts","../../eslint/configs/comments.ts","../../eslint/configs/disables.ts","../../eslint/globs.ts","../../eslint/configs/formatters.ts","../../eslint/configs/ignores.ts","../../eslint/configs/imports.ts","../../eslint/configs/javascript.ts","../../eslint/configs/jsdoc.ts","../../eslint/configs/node.ts","../../eslint/configs/react.ts","../../eslint/configs/typescript-relaxed.ts","../../eslint/configs/typescript-strict.ts","../../eslint/configs/unicorn.ts"],"sourcesContent":["import { configApp } from \"@adonisjs/eslint-config\";\nimport { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n const configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n ];\n\n const defaultOverrides = [\n ...ignores(),\n ...formatters(),\n ...disables(),\n ...overrides,\n ];\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n if (isAdonis) {\n configs.push(...adonisConfig);\n }\n\n if (isNext) {\n configs.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDir = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDir,\n },\n },\n });\n\n return tseslint.config(configs, ...defaultOverrides);\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_EXCLUDE = [\n \"**/node_modules\",\n \"**/dist\",\n \"**/package-lock.json\",\n \"**/yarn.lock\",\n \"**/pnpm-lock.yaml\",\n \"**/bun.lockb\",\n \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\n {\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: \"readonly\",\n navigator: \"readonly\",\n window: \"readonly\",\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: \"module\",\n },\n sourceType: \"module\",\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\n \"array-callback-return\": \"error\",\n \"block-scoped-var\": \"error\",\n \"constructor-super\": \"error\",\n \"default-case-last\": \"error\",\n \"dot-notation\": [\"error\", { allowKeywords: true }],\n eqeqeq: [\"error\", \"smart\"],\n \"new-cap\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\n \"no-alert\": \"error\",\n \"no-array-constructor\": \"error\",\n \"no-async-promise-executor\": \"error\",\n \"no-caller\": \"error\",\n \"no-case-declarations\": \"error\",\n \"no-class-assign\": \"error\",\n \"no-compare-neg-zero\": \"error\",\n \"no-cond-assign\": [\"error\", \"always\"],\n \"no-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\n \"no-const-assign\": \"error\",\n \"no-control-regex\": \"error\",\n \"no-debugger\": \"error\",\n \"no-delete-var\": \"error\",\n \"no-dupe-args\": \"error\",\n \"no-dupe-class-members\": \"error\",\n \"no-dupe-keys\": \"error\",\n \"no-duplicate-case\": \"error\",\n \"no-empty\": [\"error\", { allowEmptyCatch: true }],\n \"no-empty-character-class\": \"error\",\n \"no-empty-pattern\": \"error\",\n \"no-eval\": \"error\",\n \"no-ex-assign\": \"error\",\n \"no-extend-native\": \"error\",\n \"no-extra-bind\": \"error\",\n \"no-extra-boolean-cast\": \"error\",\n \"no-fallthrough\": \"error\",\n \"no-func-assign\": \"error\",\n \"no-global-assign\": \"error\",\n \"no-implied-eval\": \"error\",\n \"no-import-assign\": \"error\",\n \"no-invalid-regexp\": \"error\",\n \"no-irregular-whitespace\": \"error\",\n \"no-iterator\": \"error\",\n \"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n \"no-lone-blocks\": \"error\",\n \"no-loss-of-precision\": \"error\",\n \"no-misleading-character-class\": \"error\",\n \"no-multi-str\": \"error\",\n \"no-new\": \"error\",\n \"no-new-func\": \"error\",\n \"no-new-native-nonconstructor\": \"error\",\n \"no-new-wrappers\": \"error\",\n \"no-obj-calls\": \"error\",\n \"no-octal\": \"error\",\n \"no-octal-escape\": \"error\",\n \"no-proto\": \"error\",\n \"no-prototype-builtins\": \"error\",\n \"no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"no-regex-spaces\": \"error\",\n \"no-restricted-globals\": [\n \"error\",\n { message: \"Use `globalThis` instead.\", name: \"global\" },\n { message: \"Use `globalThis` instead.\", name: \"self\" },\n ],\n \"no-restricted-properties\": [\n \"error\",\n {\n message:\n \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n property: \"__proto__\",\n },\n {\n message: \"Use `Object.defineProperty` instead.\",\n property: \"__defineGetter__\",\n },\n {\n message: \"Use `Object.defineProperty` instead.\",\n property: \"__defineSetter__\",\n },\n {\n message: \"Use `Object.getOwnPropertyDescriptor` instead.\",\n property: \"__lookupGetter__\",\n },\n {\n message: \"Use `Object.getOwnPropertyDescriptor` instead.\",\n property: \"__lookupSetter__\",\n },\n ],\n \"no-restricted-syntax\": [\n \"error\",\n \"TSEnumDeclaration[const=true]\",\n \"TSExportAssignment\",\n ],\n \"no-self-assign\": [\"error\", { props: true }],\n \"no-self-compare\": \"error\",\n \"no-sequences\": \"error\",\n \"no-shadow-restricted-names\": \"error\",\n \"no-sparse-arrays\": \"error\",\n \"no-template-curly-in-string\": \"error\",\n \"no-this-before-super\": \"error\",\n \"no-throw-literal\": \"error\",\n \"no-undef-init\": \"error\",\n \"no-unexpected-multiline\": \"error\",\n \"no-unmodified-loop-condition\": \"error\",\n \"no-unneeded-ternary\": [\"error\", { defaultAssignment: false }],\n \"no-unreachable\": \"error\",\n \"no-unreachable-loop\": \"error\",\n \"no-unsafe-finally\": \"error\",\n \"no-unsafe-negation\": \"error\",\n \"no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n\n \"no-useless-backreference\": \"error\",\n \"no-useless-call\": \"error\",\n \"no-useless-catch\": \"error\",\n \"no-useless-computed-key\": \"error\",\n \"no-useless-constructor\": \"error\",\n \"no-useless-rename\": \"error\",\n \"no-useless-return\": \"error\",\n \"no-var\": \"error\",\n \"no-with\": \"error\",\n \"object-shorthand\": [\n \"error\",\n \"always\",\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n \"one-var\": [\"error\", { initialized: \"never\" }],\n \"prefer-arrow-callback\": [\n \"error\",\n {\n allowNamedFunctions: false,\n allowUnboundThis: true,\n },\n ],\n \"prefer-const\": [\n \"error\",\n {\n destructuring: \"all\",\n ignoreReadBeforeAssign: true,\n },\n ],\n \"prefer-exponentiation-operator\": \"error\",\n \"prefer-promise-reject-errors\": \"error\",\n \"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n \"prefer-rest-params\": \"error\",\n \"prefer-spread\": \"error\",\n \"prefer-template\": \"error\",\n \"symbol-description\": \"error\",\n \"unicode-bom\": [\"error\", \"never\"],\n \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\n plugins: {\n node: pluginNode,\n },\n rules: {\n \"node/handle-callback-err\": [\"error\", \"^(err|error)$\"],\n \"node/no-deprecated-api\": \"error\",\n \"node/no-exports-assign\": \"error\",\n \"node/no-new-require\": \"error\",\n \"node/no-path-concat\": \"error\",\n \"node/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst NextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = NextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-dynamic-delete\": \"off\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-explicit-any\": \"off\",\n \"@typescript-eslint/no-extraneous-class\": \"off\",\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-invalid-void-type\": \"off\",\n \"@typescript-eslint/no-non-null-assertion\": \"off\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-useless-constructor\": \"off\",\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n \"@typescript-eslint/triple-slash-reference\": \"off\",\n \"@typescript-eslint/unified-signatures\": \"off\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA0B;AAC1B,4BAA2B;AAC3B,IAAAA,oBAAgC;AAChC,uBAAiB;AACjB,IAAAC,4BAAqB;;;ACJrB,oCAAoB;AACpB,qBAAoB;AAGb,SAAS,OAA4B;AAC1C,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,wCAAwC;AAAA;AAAA,MAEhD,GAAG,8BAAAC,QAAQ,YAAY;AAAA;AAAA,MAEvB,iBAAiB;AAAA;AAAA,QAEf,GAAG,8BAAAA,QAAQ,YAAY,YAAY;AAAA,QACnC,SAAS;AAAA,UACP,GAAG,eAAAC,QAAQ;AAAA,UACX,GAAG,eAAAA,QAAQ;AAAA,QACb;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR,YAAY;AAAA,UACV,YAAY;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,UACZ;AAAA,UACA,YAAY;AAAA,YACV,KAAK,CAAC,WAAW,KAAK;AAAA,UACxB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACnCA,2CAA0C;AAC1C,iCAAuC;AAEvC,kCAAwC;AACxC,6BAAsC;AACtC,mCAAyC;AACzC,0CAA+C;;;ACHxC,SAAS,WAAgC;AAC9C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,QAEP,mBAAmB;AAAA,MACrB;AAAA,MACA,OAAO;AAAA,QACL,yCAAyC;AAAA,QACzC,wCAAwC;AAAA,QACxC,wCAAwC;AAAA,QACxC,oCAAoC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACF;;;ACpBA,+BAAiD;;;ACA1C,IAAM,eAAe;AACrB,IAAM,WAAW;AAQjB,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADvCO,SAAS,WAAgC;AAC9C,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,cAAc,QAAQ,EAAE;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,QACL,4BAA4B;AAAA,QAC5B,cAAc;AAAA,QACd,oDAAoD;AAAA,MACtD;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO;AAAA,QACL,qBAAqB;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,UAAU,QAAQ,IAAI,UAAU,YAAY,EAAE;AAAA,MACtD,MAAM;AAAA,MACN,OAAO;AAAA,QACL,4BAA4B;AAAA,QAC5B,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,eAAe,UAAU,YAAY,EAAE;AAAA,MAC/C,MAAM;AAAA,MACN,OAAO;AAAA,QACL,wBAAwB;AAAA,QACxB,wCAAwC;AAAA,MAC1C;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,kBAAkB;AAAA,MAC1B,MAAM;AAAA,MACN,OAAO;AAAA,QACL,wCAAwC;AAAA,QACxC,0BAA0B;AAAA,QAC1B,wBAAwB;AAAA,QACxB,iCAAiC;AAAA,MACnC;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,WAAW,UAAU;AAAA,MAC7B,MAAM;AAAA,MACN,OAAO;AAAA,QACL,yCAAyC;AAAA,MAC3C;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,eAAe,YAAY,IAAI,iBAAiB,YAAY,EAAE;AAAA,MACtE,MAAM;AAAA,MACN,OAAO;AAAA,QACL,4BAA4B;AAAA,QAC5B,cAAc;AAAA,QACd,oDAAoD;AAAA,MACtD;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,SAAS,CAAC,yBAAAC,QAAS,QAAQ,kBAAkB;AAAA,IAC/C;AAAA,EACF;AACF;;;AEnEA,oCAA2B;AAGpB,SAAS,aAAkC;AAChD,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,QACL,GAAG,8BAAAC,QAAe;AAAA,QAClB,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;ACTO,SAAS,UAA+B;AAC7C,SAAO;AAAA,IACL;AAAA,MACE,SAAS,CAAC,GAAG,YAAY;AAAA,MACzB,MAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACPO,SAAS,QACd,UAA4C,EAAE,qBAAqB,MAAM,GACpD;AACrB,QAAM,SAAS;AAAA;AAAA,IAEb,oCAAa,YAAY;AAAA,IACzB;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,OAAO;AAAA;AAAA,QAEP,QAAQ;AAAA,MACV;AAAA;AAAA,MAEA,OAAO;AAAA,QACL,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,wCAAwC;AAAA;AAAA,QAExC,GAAG,oCAAa,YAAY,YAAY;AAAA,QACxC,6BAA6B;AAAA,QAC7B,wBAAwB;AAAA,QACxB,0CAA0C;AAAA,QAC1C,4CAA4C;AAAA,UAC1C;AAAA,UACA;AAAA,YACE,OAAO;AAAA,cACL;AAAA,gBACE,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,qBAAqB;AAC/B,WAAO;AAAA,MACL;AAAA,QACE,4BAA4B;AAAA,MAC9B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,4BAA4B;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;ACjEA,gBAAmB;AACnB,IAAAC,kBAAoB;AAKb,SAAS,aAAkC;AAChD,SAAO;AAAA,IACL;AAAA,MACE,iBAAiB;AAAA,QACf,aAAa;AAAA,QACb,SAAS;AAAA,UACP,GAAG,gBAAAC,QAAQ;AAAA,UACX,GAAG,gBAAAA,QAAQ;AAAA,UACX,GAAG,gBAAAA,QAAQ;AAAA,UACX,UAAU;AAAA,UACV,WAAW;AAAA,UACX,QAAQ;AAAA,QACV;AAAA,QACA,eAAe;AAAA,UACb,cAAc;AAAA,YACZ,KAAK;AAAA,UACP;AAAA,UACA,aAAa;AAAA,UACb,YAAY;AAAA,QACd;AAAA,QACA,YAAY;AAAA,MACd;AAAA,MACA,eAAe;AAAA,QACb,+BAA+B;AAAA,MACjC;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,OAAO;AAAA,QACP,kBAAkB;AAAA,MACpB;AAAA,MACA,OAAO;AAAA,QACL,GAAG,UAAAC,QAAO,QAAQ,YAAY;AAAA,QAC9B,kBAAkB;AAAA,UAChB;AAAA,UACA,EAAE,wBAAwB,MAAM,eAAe,KAAK;AAAA,QACtD;AAAA,QACA,OAAO;AAAA,QACP,yBAAyB;AAAA,QACzB,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,QACrB,qBAAqB;AAAA,QACrB,gBAAgB,CAAC,SAAS,EAAE,eAAe,KAAK,CAAC;AAAA,QACjD,QAAQ,CAAC,SAAS,OAAO;AAAA,QACzB,WAAW;AAAA,UACT;AAAA,UACA,EAAE,UAAU,OAAO,UAAU,MAAM,YAAY,KAAK;AAAA,QACtD;AAAA,QACA,YAAY;AAAA,QACZ,wBAAwB;AAAA,QACxB,6BAA6B;AAAA,QAC7B,aAAa;AAAA,QACb,wBAAwB;AAAA,QACxB,mBAAmB;AAAA,QACnB,uBAAuB;AAAA,QACvB,kBAAkB,CAAC,SAAS,QAAQ;AAAA,QACpC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,OAAO,EAAE,CAAC;AAAA,QACpD,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,yBAAyB;AAAA,QACzB,gBAAgB;AAAA,QAChB,qBAAqB;AAAA,QACrB,YAAY,CAAC,SAAS,EAAE,iBAAiB,KAAK,CAAC;AAAA,QAC/C,4BAA4B;AAAA,QAC5B,oBAAoB;AAAA,QACpB,WAAW;AAAA,QACX,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,QACjB,yBAAyB;AAAA,QACzB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,QACrB,2BAA2B;AAAA,QAC3B,eAAe;AAAA,QACf,aAAa,CAAC,SAAS,EAAE,WAAW,OAAO,aAAa,MAAM,CAAC;AAAA,QAC/D,kBAAkB;AAAA,QAClB,wBAAwB;AAAA,QACxB,iCAAiC;AAAA,QACjC,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,eAAe;AAAA,QACf,gCAAgC;AAAA,QAChC,mBAAmB;AAAA,QACnB,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,yBAAyB;AAAA,QACzB,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,MAAM,CAAC;AAAA,QACnD,mBAAmB;AAAA,QACnB,yBAAyB;AAAA,UACvB;AAAA,UACA,EAAE,SAAS,6BAA6B,MAAM,SAAS;AAAA,UACvD,EAAE,SAAS,6BAA6B,MAAM,OAAO;AAAA,QACvD;AAAA,QACA,4BAA4B;AAAA,UAC1B;AAAA,UACA;AAAA,YACE,SACE;AAAA,YACF,UAAU;AAAA,UACZ;AAAA,UACA;AAAA,YACE,SAAS;AAAA,YACT,UAAU;AAAA,UACZ;AAAA,UACA;AAAA,YACE,SAAS;AAAA,YACT,UAAU;AAAA,UACZ;AAAA,UACA;AAAA,YACE,SAAS;AAAA,YACT,UAAU;AAAA,UACZ;AAAA,UACA;AAAA,YACE,SAAS;AAAA,YACT,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,kBAAkB,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;AAAA,QAC3C,mBAAmB;AAAA,QACnB,gBAAgB;AAAA,QAChB,8BAA8B;AAAA,QAC9B,oBAAoB;AAAA,QACpB,+BAA+B;AAAA,QAC/B,wBAAwB;AAAA,QACxB,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,gCAAgC;AAAA,QAChC,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,MAAM,CAAC;AAAA,QAC7D,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,QACvB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,yBAAyB;AAAA,UACvB;AAAA,UACA;AAAA,YACE,mBAAmB;AAAA,YACnB,sBAAsB;AAAA,YACtB,cAAc;AAAA,UAChB;AAAA,QACF;AAAA,QAEA,4BAA4B;AAAA,QAC5B,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,0BAA0B;AAAA,QAC1B,qBAAqB;AAAA,QACrB,qBAAqB;AAAA,QACrB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,oBAAoB;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,oBAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACA,WAAW,CAAC,SAAS,EAAE,aAAa,QAAQ,CAAC;AAAA,QAC7C,yBAAyB;AAAA,UACvB;AAAA,UACA;AAAA,YACE,qBAAqB;AAAA,YACrB,kBAAkB;AAAA,UACpB;AAAA,QACF;AAAA,QACA,gBAAgB;AAAA,UACd;AAAA,UACA;AAAA,YACE,eAAe;AAAA,YACf,wBAAwB;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,kCAAkC;AAAA,QAClC,gCAAgC;AAAA,QAChC,yBAAyB,CAAC,SAAS,EAAE,2BAA2B,KAAK,CAAC;AAAA,QACtE,sBAAsB;AAAA,QACtB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,eAAe,CAAC,SAAS,OAAO;AAAA,QAChC,oCAAoC;AAAA,QACpC,iCAAiC;AAAA,UAC/B;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB,oBAAoB;AAAA,YACpB,MAAM;AAAA,YACN,mBAAmB;AAAA,UACrB;AAAA,QACF;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA,EAAE,mBAAmB,MAAM,sBAAsB,KAAK;AAAA,QACxD;AAAA,QACA,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,KAAK,CAAC;AAAA,QACzD,eAAe;AAAA,QACf,MAAM,CAAC,SAAS,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACF;;;ACjOA,iCAAwB;AAGjB,SAAS,QAA6B;AAC3C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,OAAO,2BAAAC;AAAA,MACT;AAAA,MACA,OAAO;AAAA,QACL,sBAAsB;AAAA,QACtB,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,qBAAqB;AAAA,QACrB,oBAAoB;AAAA,QACpB,+BAA+B;AAAA,QAC/B,qBAAqB;AAAA,QACrB,4BAA4B;AAAA,QAC5B,4BAA4B;AAAA,QAC5B,0BAA0B;AAAA,QAC1B,sCAAsC;AAAA,QACtC,+BAA+B;AAAA,QAC/B,+BAA+B;AAAA,QAC/B,qCAAqC;AAAA,QACrC,8BAA8B;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;;;ACzBO,SAAS,OAA4B;AAC1C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,OAAO;AAAA,QACL,4BAA4B,CAAC,SAAS,eAAe;AAAA,QACrD,0BAA0B;AAAA,QAC1B,0BAA0B;AAAA,QAC1B,uBAAuB;AAAA,QACvB,uBAAuB;AAAA,QACvB,6BAA6B,CAAC,OAAO;AAAA,QACrC,8BAA8B,CAAC,OAAO;AAAA,QACtC,8BAA8B;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;;;ACtBA,gCAAuB;AACvB,iCAAwB;AACxB,uCAA6B;AAC7B,uBAAgC;AAGhC,IAAM,iBAAiB,CAAC,MAAM;AAE9B,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,QAA6B;AAC3C,QAAM,cAAc,eAAe,KAAK,CAAC,cAAU,kCAAgB,KAAK,CAAC;AAEzE,QAAMC,gBAAoC,CAAC;AAE3C,MAAI,aAAa;AACf,IAAAA,cAAa;AAAA,MACX;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA;AAAA,UAEP,cAAc,0BAAAC;AAAA,QAChB;AAAA;AAAA,QAEA,OAAO,0BAAAA,QAAW,QAAQ,YAAY;AAAA,MACxC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,UACL,4BAA4B;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,QAEP,OAAO,2BAAAC;AAAA;AAAA,QAEP,eAAe,iCAAAC;AAAA,MACjB;AAAA,IACF;AAAA,IACA,GAAGH;AAAA,IACH;AAAA,MACE,OAAO,CAAC,8BAA8B;AAAA,MACtC,iBAAiB;AAAA,QACf,eAAe;AAAA,UACb,cAAc;AAAA,YACZ,KAAK;AAAA,UACP;AAAA,QACF;AAAA,QACA,YAAY;AAAA,MACd;AAAA,MACA,UAAU;AAAA,QACR,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,MAAM;AAAA,MACN,OAAO;AAAA,QACL,GAAG,2BAAAE,QAAY,QAAQ,MAAM,YAAY;AAAA,QACzC,GAAG,2BAAAA,QAAY,QAAQ,OAAO,aAAa,EAAE;AAAA,QAC7C,mBAAmB;AAAA,QACnB,8BAA8B;AAAA;AAAA,QAE9B,+BAA+B;AAAA,QAC/B,8BAA8B;AAAA,QAC9B,iCAAiC;AAAA,QACjC,uCAAuC;AAAA,UACrC;AAAA,UACA;AAAA,YACE,mBAAmB;AAAA,YACnB,iBAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACA,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,YACE,wBAAwB;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,4BAA4B;AAAA,QAC5B,4CAA4C;AAAA,UAC1C;AAAA,UACA;AAAA,YACE,OAAO,mBAAmB,IAAI,CAAC,aAAa;AAAA,cAC1C,MAAM;AAAA,cACN,SAAS;AAAA,YACX,EAAE;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO,CAAC,8BAA8B;AAAA,MACtC,OAAO;AAAA,QACL,oBAAoB;AAAA,QACpB,aAAa;AAAA,QACb,gCAAgC;AAAA,QAChC,oDAAoD;AAAA,QACpD,8BAA8B;AAAA,QAC9B,mCAAmC;AAAA,QACnC,oCAAoC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACF;;;AC3HA,IAAAE,4BAAiD;AAE1C,SAAS,oBAAyC;AACvD,SAAO;AAAA,IACL,GAAG,0BAAAC,QAAS,QAAQ;AAAA,IACpB,GAAG,0BAAAA,QAAS,QAAQ;AAAA,IACpB;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,QACL,uCAAuC;AAAA,QACvC,oCAAoC;AAAA,QACpC,0CAA0C;AAAA,UACxC;AAAA,UACA;AAAA,YACE,kBAAkB;AAAA,UACpB;AAAA,QACF;AAAA,QACA,iCAAiC;AAAA,QACjC,qCAAqC;AAAA,UACnC;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,mBAAmB;AAAA,YACnB,gCAAgC;AAAA,YAChC,mBAAmB;AAAA,YACnB,oBAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACA,2CAA2C;AAAA,QAC3C,+CAA+C;AAAA,MACjD;AAAA,IACF;AAAA,EACF;AACF;;;ACjCA,IAAAC,4BAAqB;AAKd,SAAS,mBAAwC;AACtD,SAAO;AAAA,IACL,GAAG,0BAAAC,QAAS,QAAQ;AAAA,IACpB,GAAG,0BAAAA,QAAS,QAAQ;AAAA,IACpB;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,eAAe;AAAA,MACvB,MAAM;AAAA,MACN,OAAO;AAAA,QACL,qCAAqC;AAAA,UACnC;AAAA,UACA,EAAE,mBAAmB,yBAAyB;AAAA,QAChD;AAAA,QACA,kDAAkD;AAAA,UAChD;AAAA,UACA;AAAA,QACF;AAAA,QACA,8CAA8C;AAAA,UAC5C;AAAA,UACA;AAAA,YACE,yBAAyB;AAAA,YACzB,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,6CAA6C,CAAC,SAAS,UAAU;AAAA;AAAA,QACjE,4CAA4C;AAAA,QAC5C,wCAAwC;AAAA,QACxC,2CAA2C;AAAA,UACzC;AAAA,UACA,EAAE,iBAAiB,SAAS;AAAA,QAC9B;AAAA,QACA,sCAAsC;AAAA,QACtC,0CAA0C;AAAA,QAC1C,kDAAkD;AAAA,QAClD,2CAA2C;AAAA,QAC3C,4CAA4C;AAAA,QAC5C,mCAAmC,CAAC,SAAS,EAAE,gBAAgB,MAAM,CAAC;AAAA,QACtE,yCAAyC;AAAA,QACzC,4CAA4C;AAAA,UAC1C;AAAA,UACA;AAAA,YACE,mBAAmB;AAAA,YACnB,sBAAsB;AAAA,YACtB,cAAc;AAAA,UAChB;AAAA,QACF;AAAA,QACA,2CAA2C;AAAA,UACzC;AAAA,UACA,EAAE,SAAS,OAAO,WAAW,OAAO,WAAW,KAAK;AAAA,QACtD;AAAA,QACA,6CAA6C;AAAA,QAC7C,8CAA8C;AAAA,QAC9C,6CAA6C;AAAA,QAC7C,yCAAyC;AAAA;AAAA,QAEzC,mDAAmD;AAAA;AAAA;AAAA;AAAA,QAInD,qDAAqD;AAAA;AAAA,QAErD,aAAa;AAAA,QACb,gCAAgC;AAAA;AAAA,QAEhC,oCAAoC;AAAA;AAAA,QAEpC,oBAAoB;AAAA;AAAA,QAGpB,oDAAoD;AAAA;AAAA,QAEpD,oDAAoD;AAAA;AAAA,QAEpD,qDAAqD;AAAA;AAAA,QAErD,yCAAyC;AAAA;AAAA,QAEzC,2CAA2C;AAAA;AAAA,QAE3C,qCAAqC;AAAA;AAAA,QAErC,8CAA8C;AAAA;AAAA,QAE9C,uCAAuC;AAAA;AAAA,QAEvC,yBAAyB;AAAA;AAAA,QAEzB,sCAAsC;AAAA;AAAA,QAEtC,+CAA+C;AAAA;AAAA,QAE/C,oCAAoC;AAAA;AAAA,QAEpC,sCAAsC;AAAA;AAAA,QAEtC,iDAAiD;AAAA;AAAA,QAEjD,gDAAgD;AAAA;AAAA,QAEhD,4CAA4C;AAAA;AAAA,QAE5C,mDAAmD;AAAA;AAAA,QAEnD,yCAAyC;AAAA;AAAA,QAEzC,8CAA8C;AAAA;AAAA,QAE9C,qDAAqD;AAAA;AAAA,QAErD,iDAAiD;AAAA;AAAA,QAEjD,iBAAiB;AAAA,QACjB,oCAAoC;AAAA;AAAA,QAEpC,6CAA6C;AAAA;AAAA,QAE7C,oDAAoD;AAAA;AAAA,QAEpD,mBAAmB;AAAA,QACnB,mCAAmC;AAAA;AAAA,QAEnC,iDAAiD;AAAA;AAAA,QAEjD,kDAAkD;AAAA,QAClD,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,QACnB,qCAAqC;AAAA,QACrC,mCAAmC,CAAC,SAAS,EAAE,eAAe,KAAK,CAAC;AAAA,QACpE,2CAA2C;AAAA,QAC3C,sCAAsC;AAAA,QACtC,sCAAsC;AAAA,QACtC,0CAA0C;AAAA,QAC1C,6CAA6C;AAAA,QAC7C,qCAAqC;AAAA,QACrC,yBAAyB;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AACF;;;AChJO,SAAS,UAA+B;AAC7C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,GAAG,qCAAc,QAAQ,kBAAkB,EAAE;AAAA,QAC7C,2BAA2B;AAAA,QAC3B,mBAAmB;AAAA,QACnB,kCAAkC;AAAA,QAClC,8BAA8B;AAAA,QAC9B,iCAAiC;AAAA,UAC/B;AAAA,UACA;AAAA,YACE,cAAc;AAAA,cACZ,KAAK;AAAA,cACL,MAAM;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AfVA,IAAM,0BAA2C,gCAAU;AAE3D,IAAM,eAAoC;AAAA,EACxC,GAAG;AAAA,EACH,GAAG,KAAK;AAAA,EACR,GAAG,QAAQ;AACb;AAEA,IAAM,eAAoC;AAAA,EACxC,GAAG,KAAK;AAAA,EACR,GAAG,QAAQ;AAAA,EACX,GAAG,iBAAiB;AAAA,EACpB,GAAG,MAAM;AAAA,EACT,GAAG,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAC1C;AAEO,IAAM,SAAS,IAAI,cAAmC;AAC3D,QAAM,eAAW,mCAAgB,gBAAgB;AACjD,QAAM,aAAS,mCAAgB,MAAM;AAErC,QAAM,UAA+B;AAAA,IACnC,GAAG,WAAW;AAAA,IACd,GAAG,MAAM;AAAA,IACT,GAAG,SAAS;AAAA,IACZ,GAAG,kBAAkB;AAAA,EACvB;AAEA,QAAM,mBAAmB;AAAA,IACvB,GAAG,QAAQ;AAAA,IACX,GAAG,WAAW;AAAA,IACd,GAAG,SAAS;AAAA,IACZ,GAAG;AAAA,EACL;AAEA,MAAI,UAAU,UAAU;AACtB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,UAAU;AACZ,YAAQ,KAAK,GAAG,YAAY;AAAA,EAC9B;AAEA,MAAI,QAAQ;AACV,YAAQ,KAAK,GAAG,YAAY;AAAA,EAC9B;AAEA,QAAM,mBAAe,kCAAW,iBAAiB;AAAA,IAC/C,KAAK,QAAQ,IAAI;AAAA,EACnB,CAAC;AAED,MAAI,gBAAgB,MAAM;AACxB,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,UAAU,iBAAAC,QAAK,QAAQ,YAAY;AAEzC,UAAQ,KAAK;AAAA,IACX,iBAAiB;AAAA,MACf,eAAe;AAAA,QACb,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,0BAAAC,QAAS,OAAO,SAAS,GAAG,gBAAgB;AACrD;","names":["import_local_pkg","import_typescript_eslint","jsxA11y","globals","tseslint","prettierConfig","import_globals","globals","eslint","jsdocPlugin","nextjsConfig","nextPlugin","pluginReact","pluginReactHooks","import_typescript_eslint","tseslint","import_typescript_eslint","tseslint","path","tseslint"]}
1
+ {"version":3,"sources":["../../src/eslint/index.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/comments.ts","../../src/eslint/configs/disables.ts","../../src/eslint/globs.ts","../../src/eslint/configs/formatters.ts","../../src/eslint/configs/ignores.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/typescript-relaxed.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts"],"sourcesContent":["import { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n {\n rules: {\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: [\"enum\", \"enumMember\", \"class\", \"interface\", \"typeLike\"],\n format: [\"PascalCase\"],\n },\n {\n selector: [\"classProperty\", \"classMethod\", \"method\", \"variableLike\"],\n format: [\"camelCase\"],\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\n },\n },\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nconst configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nconst defaultOverrides = [...ignores(), ...formatters(), ...disables()];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n const newConfig: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n newConfig.push(...adonisConfig);\n }\n\n if (isNext) {\n newConfig.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDirectory = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n });\n\n return tseslint.config(\n ...configs,\n ...newConfig,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_EXCLUDE = [\n \"**/node_modules\",\n \"**/dist\",\n \"**/package-lock.json\",\n \"**/yarn.lock\",\n \"**/pnpm-lock.yaml\",\n \"**/bun.lockb\",\n \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\n {\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: \"readonly\",\n navigator: \"readonly\",\n window: \"readonly\",\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: \"module\",\n },\n sourceType: \"module\",\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\n \"array-callback-return\": \"error\",\n \"block-scoped-var\": \"error\",\n \"constructor-super\": \"error\",\n \"default-case-last\": \"error\",\n \"dot-notation\": [\"error\", { allowKeywords: true }],\n eqeqeq: [\"error\", \"smart\"],\n \"new-cap\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\n \"no-alert\": \"error\",\n \"no-array-constructor\": \"error\",\n \"no-async-promise-executor\": \"error\",\n \"no-caller\": \"error\",\n \"no-case-declarations\": \"error\",\n \"no-class-assign\": \"error\",\n \"no-compare-neg-zero\": \"error\",\n \"no-cond-assign\": [\"error\", \"always\"],\n \"no-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\n \"no-const-assign\": \"error\",\n \"no-control-regex\": \"error\",\n \"no-debugger\": \"error\",\n \"no-delete-var\": \"error\",\n \"no-dupe-args\": \"error\",\n \"no-dupe-class-members\": \"error\",\n \"no-dupe-keys\": \"error\",\n \"no-duplicate-case\": \"error\",\n \"no-empty\": [\"error\", { allowEmptyCatch: true }],\n \"no-empty-character-class\": \"error\",\n \"no-empty-pattern\": \"error\",\n \"no-eval\": \"error\",\n \"no-ex-assign\": \"error\",\n \"no-extend-native\": \"error\",\n \"no-extra-bind\": \"error\",\n \"no-extra-boolean-cast\": \"error\",\n \"no-fallthrough\": \"error\",\n \"no-func-assign\": \"error\",\n \"no-global-assign\": \"error\",\n \"no-implied-eval\": \"error\",\n \"no-import-assign\": \"error\",\n \"no-invalid-regexp\": \"error\",\n \"no-irregular-whitespace\": \"error\",\n \"no-iterator\": \"error\",\n \"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n \"no-lone-blocks\": \"error\",\n \"no-loss-of-precision\": \"error\",\n \"no-misleading-character-class\": \"error\",\n \"no-multi-str\": \"error\",\n \"no-new\": \"error\",\n \"no-new-func\": \"error\",\n \"no-new-native-nonconstructor\": \"error\",\n \"no-new-wrappers\": \"error\",\n \"no-obj-calls\": \"error\",\n \"no-octal\": \"error\",\n \"no-octal-escape\": \"error\",\n \"no-proto\": \"error\",\n \"no-prototype-builtins\": \"error\",\n \"no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"no-regex-spaces\": \"error\",\n \"no-restricted-globals\": [\n \"error\",\n { message: \"Use `globalThis` instead.\", name: \"global\" },\n { message: \"Use `globalThis` instead.\", name: \"self\" },\n ],\n \"no-restricted-properties\": [\n \"error\",\n {\n message:\n \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n property: \"__proto__\",\n },\n {\n message: \"Use `Object.defineProperty` instead.\",\n property: \"__defineGetter__\",\n },\n {\n message: \"Use `Object.defineProperty` instead.\",\n property: \"__defineSetter__\",\n },\n {\n message: \"Use `Object.getOwnPropertyDescriptor` instead.\",\n property: \"__lookupGetter__\",\n },\n {\n message: \"Use `Object.getOwnPropertyDescriptor` instead.\",\n property: \"__lookupSetter__\",\n },\n ],\n \"no-restricted-syntax\": [\n \"error\",\n \"TSEnumDeclaration[const=true]\",\n \"TSExportAssignment\",\n ],\n \"no-self-assign\": [\"error\", { props: true }],\n \"no-self-compare\": \"error\",\n \"no-sequences\": \"error\",\n \"no-shadow-restricted-names\": \"error\",\n \"no-sparse-arrays\": \"error\",\n \"no-template-curly-in-string\": \"error\",\n \"no-this-before-super\": \"error\",\n \"no-throw-literal\": \"error\",\n \"no-undef-init\": \"error\",\n \"no-unexpected-multiline\": \"error\",\n \"no-unmodified-loop-condition\": \"error\",\n \"no-unneeded-ternary\": [\"error\", { defaultAssignment: false }],\n \"no-unreachable\": \"error\",\n \"no-unreachable-loop\": \"error\",\n \"no-unsafe-finally\": \"error\",\n \"no-unsafe-negation\": \"error\",\n \"no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n\n \"no-useless-backreference\": \"error\",\n \"no-useless-call\": \"error\",\n \"no-useless-catch\": \"error\",\n \"no-useless-computed-key\": \"error\",\n \"no-useless-constructor\": \"error\",\n \"no-useless-rename\": \"error\",\n \"no-useless-return\": \"error\",\n \"no-var\": \"error\",\n \"no-with\": \"error\",\n \"object-shorthand\": [\n \"error\",\n \"always\",\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n \"one-var\": [\"error\", { initialized: \"never\" }],\n \"prefer-arrow-callback\": [\n \"error\",\n {\n allowNamedFunctions: false,\n allowUnboundThis: true,\n },\n ],\n \"prefer-const\": [\n \"error\",\n {\n destructuring: \"all\",\n ignoreReadBeforeAssign: true,\n },\n ],\n \"prefer-exponentiation-operator\": \"error\",\n \"prefer-promise-reject-errors\": \"error\",\n \"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n \"prefer-rest-params\": \"error\",\n \"prefer-spread\": \"error\",\n \"prefer-template\": \"error\",\n \"symbol-description\": \"error\",\n \"unicode-bom\": [\"error\", \"never\"],\n \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\n plugins: {\n node: pluginNode,\n },\n rules: {\n \"node/handle-callback-err\": [\"error\", \"^(err|error)$\"],\n \"node/no-deprecated-api\": \"error\",\n \"node/no-exports-assign\": \"error\",\n \"node/no-new-require\": \"error\",\n \"node/no-path-concat\": \"error\",\n \"node/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = nextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["import_local_pkg","import_typescript_eslint","jsxA11y","globals","tseslint","prettierConfig","import_globals","globals","eslint","jsdocPlugin","nextjsConfig","nextPlugin","pluginReact","pluginReactHooks","import_typescript_eslint","tseslint","import_typescript_eslint","tseslint","path","tseslint"]}