@slango.configs/oxlint 0.0.0 → 0.1.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 (56) hide show
  1. package/README.md +30 -24
  2. package/dist/common.d.ts +32 -0
  3. package/dist/common.d.ts.map +1 -0
  4. package/dist/common.js +99 -0
  5. package/dist/common.js.map +1 -0
  6. package/dist/presets/javascript-node.d.ts +7 -0
  7. package/dist/presets/javascript-node.d.ts.map +1 -0
  8. package/dist/presets/javascript-node.js +7 -0
  9. package/dist/presets/javascript-node.js.map +1 -0
  10. package/dist/presets/typescript-browser.d.ts +7 -0
  11. package/dist/presets/typescript-browser.d.ts.map +1 -0
  12. package/dist/presets/typescript-browser.js +8 -0
  13. package/dist/presets/typescript-browser.js.map +1 -0
  14. package/dist/presets/typescript-isomorphic.d.ts +7 -0
  15. package/dist/presets/typescript-isomorphic.d.ts.map +1 -0
  16. package/{src → dist}/presets/typescript-isomorphic.js +5 -9
  17. package/dist/presets/typescript-isomorphic.js.map +1 -0
  18. package/dist/presets/typescript-next.d.ts +7 -0
  19. package/dist/presets/typescript-next.d.ts.map +1 -0
  20. package/dist/presets/typescript-next.js +40 -0
  21. package/dist/presets/typescript-next.js.map +1 -0
  22. package/dist/presets/typescript-node.d.ts +7 -0
  23. package/dist/presets/typescript-node.d.ts.map +1 -0
  24. package/dist/presets/typescript-node.js +7 -0
  25. package/dist/presets/typescript-node.js.map +1 -0
  26. package/dist/presets/typescript-react.d.ts +9 -0
  27. package/dist/presets/typescript-react.d.ts.map +1 -0
  28. package/dist/presets/typescript-react.js +17 -0
  29. package/dist/presets/typescript-react.js.map +1 -0
  30. package/dist/presets/typescript.d.ts +7 -0
  31. package/dist/presets/typescript.d.ts.map +1 -0
  32. package/dist/presets/typescript.js +7 -0
  33. package/dist/presets/typescript.js.map +1 -0
  34. package/package.json +13 -9
  35. package/src/common.js +0 -135
  36. package/src/presets/javascript-node.d.ts +0 -8
  37. package/src/presets/javascript-node.js +0 -11
  38. package/src/presets/options.d.ts +0 -6
  39. package/src/presets/typescript-browser.d.ts +0 -8
  40. package/src/presets/typescript-browser.js +0 -12
  41. package/src/presets/typescript-isomorphic.d.ts +0 -8
  42. package/src/presets/typescript-next.d.ts +0 -8
  43. package/src/presets/typescript-next.js +0 -14
  44. package/src/presets/typescript-node.d.ts +0 -8
  45. package/src/presets/typescript-node.js +0 -11
  46. package/src/presets/typescript-react.d.ts +0 -8
  47. package/src/presets/typescript-react.js +0 -12
  48. package/src/presets/typescript.d.ts +0 -8
  49. package/src/presets/typescript.js +0 -11
  50. package/src/rules/javascript-node.js +0 -143
  51. package/src/rules/typescript-browser.js +0 -214
  52. package/src/rules/typescript-isomorphic.js +0 -214
  53. package/src/rules/typescript-next.js +0 -361
  54. package/src/rules/typescript-node.js +0 -214
  55. package/src/rules/typescript-react.js +0 -320
  56. package/src/rules/typescript.js +0 -214
package/src/common.js DELETED
@@ -1,135 +0,0 @@
1
- import { fileURLToPath } from 'node:url';
2
-
3
- export const globs = {
4
- javascript: ['**/*.{js,cjs,mjs,jsx}'],
5
- typescript: ['**/*.{ts,tsx}'],
6
- };
7
-
8
- export const ignorePatterns = ['**/dist/**', '**/coverage/**'];
9
-
10
- const resolvePlugin = (name) => fileURLToPath(import.meta.resolve(name));
11
-
12
- // ESLint plugins oxlint has no native port for, loaded through oxlint's JS
13
- // plugin bridge. Resolved from this package so consumers need no extra deps.
14
- export const jsPlugins = () => [
15
- resolvePlugin('eslint-plugin-perfectionist'),
16
- resolvePlugin('eslint-plugin-regexp'),
17
- ];
18
-
19
- const naturalSort = { type: 'natural', order: 'asc' };
20
- const sortModulesRule = ['error', { ...naturalSort, partitionByNewLine: true }];
21
- const sortRule = ['error', naturalSort];
22
-
23
- const tier1 = [
24
- 'sort-imports',
25
- 'sort-named-imports',
26
- 'sort-named-exports',
27
- 'sort-exports',
28
- 'sort-import-attributes',
29
- 'sort-export-attributes',
30
- 'sort-modules',
31
- ];
32
- const tier2 = [
33
- 'sort-union-types',
34
- 'sort-intersection-types',
35
- 'sort-heritage-clauses',
36
- 'sort-object-types',
37
- 'sort-interfaces',
38
- 'sort-enums',
39
- ];
40
- const tier3 = [
41
- 'sort-objects',
42
- 'sort-classes',
43
- 'sort-jsx-props',
44
- 'sort-decorators',
45
- 'sort-switch-case',
46
- 'sort-variable-declarations',
47
- 'sort-array-includes',
48
- 'sort-sets',
49
- 'sort-maps',
50
- ];
51
-
52
- const tierRules = (names, enabled) =>
53
- Object.fromEntries(
54
- names.map((name) => [
55
- `perfectionist/${name}`,
56
- enabled ? (name === 'sort-modules' ? sortModulesRule : sortRule) : 'off',
57
- ]),
58
- );
59
-
60
- /**
61
- * Perfectionist strictness levels (same tiers as @slango.configs/eslint):
62
- *
63
- * - off: all perfectionist rules disabled
64
- * - relaxed (default): import/export sorting only
65
- * - moderate: adds type sorting (interfaces, unions, enums)
66
- * - strict: full sorting (objects, classes, JSX props, switch cases, ...)
67
- */
68
- export const perfectionistLevels = {
69
- off: { ...tierRules(tier1, false), ...tierRules(tier2, false), ...tierRules(tier3, false) },
70
- relaxed: { ...tierRules(tier1, true), ...tierRules(tier2, false), ...tierRules(tier3, false) },
71
- moderate: { ...tierRules(tier1, true), ...tierRules(tier2, true), ...tierRules(tier3, false) },
72
- strict: { ...tierRules(tier1, true), ...tierRules(tier2, true), ...tierRules(tier3, true) },
73
- };
74
-
75
- const defaultOptions = { perfectionist: 'relaxed' };
76
-
77
- export const normalizeOptions = (options = {}) => {
78
- if (options === null || typeof options !== 'object' || Array.isArray(options)) {
79
- throw new Error('options must be an object');
80
- }
81
-
82
- const { perfectionist = defaultOptions.perfectionist, ...rest } = options;
83
-
84
- if (!Object.hasOwn(perfectionistLevels, perfectionist)) {
85
- throw new Error(
86
- `Invalid perfectionist level "${perfectionist}". Expected one of: ${Object.keys(perfectionistLevels).join(', ')}`,
87
- );
88
- }
89
-
90
- const unknown = Object.keys(rest);
91
- if (unknown.length > 0) {
92
- throw new Error(`Unknown option(s): ${unknown.join(', ')}`);
93
- }
94
-
95
- return { perfectionist };
96
- };
97
-
98
- /**
99
- * Builds an oxlint config from a generated rule table (src/rules/*.js).
100
- *
101
- * `rules` apply to every file, `typescriptRules` only to TypeScript files, so
102
- * the split mirrors the ESLint presets where type-aware rules are scoped to
103
- * `*.ts` / `*.tsx`.
104
- */
105
- export const buildConfig = ({
106
- generated,
107
- options,
108
- env = {},
109
- globals = {},
110
- typescriptEnv,
111
- typescriptGlobals,
112
- rules = {},
113
- typescriptRules = {},
114
- ignores = [],
115
- }) => {
116
- const { perfectionist } = normalizeOptions(options);
117
- const typescriptOverride = {
118
- files: globs.typescript,
119
- ...(typescriptEnv ? { env: typescriptEnv } : {}),
120
- ...(typescriptGlobals ? { globals: typescriptGlobals } : {}),
121
- rules: { ...generated.typescriptRules, ...typescriptRules },
122
- };
123
-
124
- return {
125
- plugins: generated.plugins,
126
- jsPlugins: jsPlugins(),
127
- // Only rules listed explicitly are enabled, never a whole category.
128
- categories: { correctness: 'off' },
129
- env: { builtin: true, ...env },
130
- globals,
131
- ignorePatterns: [...ignorePatterns, ...ignores],
132
- rules: { ...generated.rules, ...perfectionistLevels[perfectionist], ...rules },
133
- overrides: [typescriptOverride],
134
- };
135
- };
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createJavascriptNodeConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,11 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/javascript-node.js';
3
-
4
- export const createJavascriptNodeConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- });
10
-
11
- export default createJavascriptNodeConfig();
@@ -1,6 +0,0 @@
1
- export type PerfectionistLevel = 'off' | 'relaxed' | 'moderate' | 'strict';
2
-
3
- export interface PresetOptions {
4
- /** Perfectionist sorting strictness. Default: `'relaxed'`. */
5
- perfectionist?: PerfectionistLevel;
6
- }
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptBrowserConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,12 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript-browser.js';
3
-
4
- export const createTypescriptBrowserConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- typescriptEnv: { node: false, browser: true, es2022: true },
10
- });
11
-
12
- export default createTypescriptBrowserConfig();
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptIsomorphicConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptNextConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,14 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript-next.js';
3
-
4
- export const createTypescriptNextConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- typescriptEnv: { node: false, browser: true, es2022: true },
10
- typescriptGlobals: { process: 'readonly', NodeJS: 'readonly' },
11
- ignores: ['**/.next/**'],
12
- });
13
-
14
- export default createTypescriptNextConfig();
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptNodeConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,11 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript-node.js';
3
-
4
- export const createTypescriptNodeConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- });
10
-
11
- export default createTypescriptNodeConfig();
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptReactConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,12 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript-react.js';
3
-
4
- export const createTypescriptReactConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- typescriptEnv: { node: false, browser: true, es2022: true },
10
- });
11
-
12
- export default createTypescriptReactConfig();
@@ -1,8 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
-
3
- import type { PresetOptions } from './options.js';
4
-
5
- export declare const createTypescriptConfig: (options?: PresetOptions) => OxlintConfig;
6
-
7
- declare const config: OxlintConfig;
8
- export default config;
@@ -1,11 +0,0 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript.js';
3
-
4
- export const createTypescriptConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
8
- env: { node: true, es2025: true },
9
- });
10
-
11
- export default createTypescriptConfig();
@@ -1,143 +0,0 @@
1
- // Generated by scripts/generate-rules.js from @slango.configs/eslint/javascript-node.js — do not edit.
2
-
3
- const rules = {
4
- plugins: ['import'],
5
- rules: {
6
- 'constructor-super': 'error',
7
- 'for-direction': 'error',
8
- 'getter-return': 'error',
9
- 'no-async-promise-executor': 'error',
10
- 'no-case-declarations': 'error',
11
- 'no-class-assign': 'error',
12
- 'no-compare-neg-zero': 'error',
13
- 'no-cond-assign': 'error',
14
- 'no-const-assign': 'error',
15
- 'no-constant-binary-expression': 'error',
16
- 'no-constant-condition': 'error',
17
- 'no-control-regex': 'error',
18
- 'no-debugger': 'error',
19
- 'no-delete-var': 'error',
20
- 'no-dupe-class-members': 'error',
21
- 'no-dupe-else-if': 'error',
22
- 'no-dupe-keys': 'error',
23
- 'no-duplicate-case': 'error',
24
- 'no-empty': 'error',
25
- 'no-empty-pattern': 'error',
26
- 'no-empty-static-block': 'error',
27
- 'no-ex-assign': 'error',
28
- 'no-extra-boolean-cast': 'error',
29
- 'no-fallthrough': 'error',
30
- 'no-func-assign': 'error',
31
- 'no-global-assign': 'error',
32
- 'no-import-assign': 'error',
33
- 'no-irregular-whitespace': 'error',
34
- 'no-loss-of-precision': 'error',
35
- 'no-misleading-character-class': 'error',
36
- 'no-new-native-nonconstructor': 'error',
37
- 'no-nonoctal-decimal-escape': 'error',
38
- 'no-obj-calls': 'error',
39
- 'no-prototype-builtins': 'error',
40
- 'no-redeclare': 'error',
41
- 'no-regex-spaces': 'error',
42
- 'no-self-assign': 'error',
43
- 'no-setter-return': 'error',
44
- 'no-shadow-restricted-names': 'error',
45
- 'no-sparse-arrays': 'error',
46
- 'no-this-before-super': 'error',
47
- 'no-unassigned-vars': 'error',
48
- 'no-unreachable': 'error',
49
- 'no-unsafe-finally': 'error',
50
- 'no-unsafe-negation': 'error',
51
- 'no-unsafe-optional-chaining': 'error',
52
- 'no-unused-labels': 'error',
53
- 'no-unused-private-class-members': 'error',
54
- 'no-unused-vars': 'error',
55
- 'no-useless-catch': 'error',
56
- 'no-useless-escape': 'error',
57
- 'no-with': 'error',
58
- 'preserve-caught-error': 'error',
59
- 'require-yield': 'error',
60
- 'use-isnan': 'error',
61
- 'valid-typeof': 'error',
62
- 'import/namespace': 'error',
63
- 'import/default': 'error',
64
- 'import/no-named-as-default': 'warn',
65
- 'import/no-named-as-default-member': 'warn',
66
- 'import/no-duplicates': 'warn',
67
- 'prefer-regex-literals': 'error',
68
- 'regexp/confusing-quantifier': 'warn',
69
- 'regexp/control-character-escape': 'error',
70
- 'regexp/match-any': 'error',
71
- 'regexp/negation': 'error',
72
- 'regexp/no-contradiction-with-assertion': 'error',
73
- 'regexp/no-dupe-characters-character-class': 'error',
74
- 'regexp/no-dupe-disjunctions': 'error',
75
- 'regexp/no-empty-alternative': 'warn',
76
- 'regexp/no-empty-capturing-group': 'error',
77
- 'regexp/no-empty-character-class': 'error',
78
- 'regexp/no-empty-group': 'error',
79
- 'regexp/no-empty-lookarounds-assertion': 'error',
80
- 'regexp/no-empty-string-literal': 'error',
81
- 'regexp/no-escape-backspace': 'error',
82
- 'regexp/no-extra-lookaround-assertions': 'error',
83
- 'regexp/no-invalid-regexp': 'error',
84
- 'regexp/no-invisible-character': 'error',
85
- 'regexp/no-lazy-ends': 'warn',
86
- 'regexp/no-legacy-features': 'error',
87
- 'regexp/no-misleading-capturing-group': 'error',
88
- 'regexp/no-misleading-unicode-character': 'error',
89
- 'regexp/no-missing-g-flag': 'error',
90
- 'regexp/no-non-standard-flag': 'error',
91
- 'regexp/no-obscure-range': 'error',
92
- 'regexp/no-optional-assertion': 'error',
93
- 'regexp/no-potentially-useless-backreference': 'warn',
94
- 'regexp/no-super-linear-backtracking': 'error',
95
- 'regexp/no-trivially-nested-assertion': 'error',
96
- 'regexp/no-trivially-nested-quantifier': 'error',
97
- 'regexp/no-unused-capturing-group': 'error',
98
- 'regexp/no-useless-assertions': 'error',
99
- 'regexp/no-useless-backreference': 'error',
100
- 'regexp/no-useless-character-class': 'error',
101
- 'regexp/no-useless-dollar-replacements': 'error',
102
- 'regexp/no-useless-escape': 'error',
103
- 'regexp/no-useless-flag': 'warn',
104
- 'regexp/no-useless-lazy': 'error',
105
- 'regexp/no-useless-non-capturing-group': 'error',
106
- 'regexp/no-useless-quantifier': 'error',
107
- 'regexp/no-useless-range': 'error',
108
- 'regexp/no-useless-set-operand': 'error',
109
- 'regexp/no-useless-string-literal': 'error',
110
- 'regexp/no-useless-two-nums-quantifier': 'error',
111
- 'regexp/no-zero-quantifier': 'error',
112
- 'regexp/optimal-lookaround-quantifier': 'warn',
113
- 'regexp/optimal-quantifier-concatenation': 'error',
114
- 'regexp/prefer-character-class': 'error',
115
- 'regexp/prefer-d': 'error',
116
- 'regexp/prefer-plus-quantifier': 'error',
117
- 'regexp/prefer-predefined-assertion': 'error',
118
- 'regexp/prefer-question-quantifier': 'error',
119
- 'regexp/prefer-range': 'error',
120
- 'regexp/prefer-set-operation': 'error',
121
- 'regexp/prefer-star-quantifier': 'error',
122
- 'regexp/prefer-unicode-codepoint-escapes': 'error',
123
- 'regexp/prefer-w': 'error',
124
- 'regexp/simplify-set-operations': 'error',
125
- 'regexp/sort-flags': 'error',
126
- 'regexp/strict': 'error',
127
- 'regexp/use-ignore-case': 'error',
128
- 'import/first': 'error',
129
- 'import/no-anonymous-default-export': 'error',
130
- },
131
- typescriptRules: {},
132
- dropped: [
133
- 'import-x/export',
134
- 'import-x/named',
135
- 'import-x/no-unresolved',
136
- 'no-dupe-args',
137
- 'no-octal',
138
- 'no-undef',
139
- 'no-useless-assignment',
140
- ],
141
- };
142
-
143
- export default rules;
@@ -1,214 +0,0 @@
1
- // Generated by scripts/generate-rules.js from @slango.configs/eslint/typescript-browser.js — do not edit.
2
-
3
- const rules = {
4
- plugins: ['import', 'typescript'],
5
- rules: {
6
- 'constructor-super': 'error',
7
- 'for-direction': 'error',
8
- 'getter-return': 'error',
9
- 'no-async-promise-executor': 'error',
10
- 'no-case-declarations': 'error',
11
- 'no-class-assign': 'error',
12
- 'no-compare-neg-zero': 'error',
13
- 'no-cond-assign': 'error',
14
- 'no-const-assign': 'error',
15
- 'no-constant-binary-expression': 'error',
16
- 'no-constant-condition': 'error',
17
- 'no-control-regex': 'error',
18
- 'no-debugger': 'error',
19
- 'no-delete-var': 'error',
20
- 'no-dupe-class-members': 'error',
21
- 'no-dupe-else-if': 'error',
22
- 'no-dupe-keys': 'error',
23
- 'no-duplicate-case': 'error',
24
- 'no-empty': 'error',
25
- 'no-empty-pattern': 'error',
26
- 'no-empty-static-block': 'error',
27
- 'no-ex-assign': 'error',
28
- 'no-extra-boolean-cast': 'error',
29
- 'no-fallthrough': 'error',
30
- 'no-func-assign': 'error',
31
- 'no-global-assign': 'error',
32
- 'no-import-assign': 'error',
33
- 'no-irregular-whitespace': 'error',
34
- 'no-loss-of-precision': 'error',
35
- 'no-misleading-character-class': 'error',
36
- 'no-new-native-nonconstructor': 'error',
37
- 'no-nonoctal-decimal-escape': 'error',
38
- 'no-obj-calls': 'error',
39
- 'no-prototype-builtins': 'error',
40
- 'no-redeclare': 'error',
41
- 'no-regex-spaces': 'error',
42
- 'no-self-assign': 'error',
43
- 'no-setter-return': 'error',
44
- 'no-shadow-restricted-names': 'error',
45
- 'no-sparse-arrays': 'error',
46
- 'no-this-before-super': 'error',
47
- 'no-unassigned-vars': 'error',
48
- 'no-unreachable': 'error',
49
- 'no-unsafe-finally': 'error',
50
- 'no-unsafe-negation': 'error',
51
- 'no-unsafe-optional-chaining': 'error',
52
- 'no-unused-labels': 'error',
53
- 'no-unused-private-class-members': 'error',
54
- 'no-unused-vars': 'error',
55
- 'no-useless-catch': 'error',
56
- 'no-useless-escape': 'error',
57
- 'no-with': 'error',
58
- 'preserve-caught-error': 'error',
59
- 'require-yield': 'error',
60
- 'use-isnan': 'error',
61
- 'valid-typeof': 'error',
62
- 'import/namespace': 'error',
63
- 'import/default': 'error',
64
- 'import/no-named-as-default': 'warn',
65
- 'import/no-named-as-default-member': 'warn',
66
- 'import/no-duplicates': 'warn',
67
- 'prefer-regex-literals': 'error',
68
- 'regexp/confusing-quantifier': 'warn',
69
- 'regexp/control-character-escape': 'error',
70
- 'regexp/match-any': 'error',
71
- 'regexp/negation': 'error',
72
- 'regexp/no-contradiction-with-assertion': 'error',
73
- 'regexp/no-dupe-characters-character-class': 'error',
74
- 'regexp/no-dupe-disjunctions': 'error',
75
- 'regexp/no-empty-alternative': 'warn',
76
- 'regexp/no-empty-capturing-group': 'error',
77
- 'regexp/no-empty-character-class': 'error',
78
- 'regexp/no-empty-group': 'error',
79
- 'regexp/no-empty-lookarounds-assertion': 'error',
80
- 'regexp/no-empty-string-literal': 'error',
81
- 'regexp/no-escape-backspace': 'error',
82
- 'regexp/no-extra-lookaround-assertions': 'error',
83
- 'regexp/no-invalid-regexp': 'error',
84
- 'regexp/no-invisible-character': 'error',
85
- 'regexp/no-lazy-ends': 'warn',
86
- 'regexp/no-legacy-features': 'error',
87
- 'regexp/no-misleading-capturing-group': 'error',
88
- 'regexp/no-misleading-unicode-character': 'error',
89
- 'regexp/no-missing-g-flag': 'error',
90
- 'regexp/no-non-standard-flag': 'error',
91
- 'regexp/no-obscure-range': 'error',
92
- 'regexp/no-optional-assertion': 'error',
93
- 'regexp/no-potentially-useless-backreference': 'warn',
94
- 'regexp/no-super-linear-backtracking': 'error',
95
- 'regexp/no-trivially-nested-assertion': 'error',
96
- 'regexp/no-trivially-nested-quantifier': 'error',
97
- 'regexp/no-unused-capturing-group': 'error',
98
- 'regexp/no-useless-assertions': 'error',
99
- 'regexp/no-useless-backreference': 'error',
100
- 'regexp/no-useless-character-class': 'error',
101
- 'regexp/no-useless-dollar-replacements': 'error',
102
- 'regexp/no-useless-escape': 'error',
103
- 'regexp/no-useless-flag': 'warn',
104
- 'regexp/no-useless-lazy': 'error',
105
- 'regexp/no-useless-non-capturing-group': 'error',
106
- 'regexp/no-useless-quantifier': 'error',
107
- 'regexp/no-useless-range': 'error',
108
- 'regexp/no-useless-set-operand': 'error',
109
- 'regexp/no-useless-string-literal': 'error',
110
- 'regexp/no-useless-two-nums-quantifier': 'error',
111
- 'regexp/no-zero-quantifier': 'error',
112
- 'regexp/optimal-lookaround-quantifier': 'warn',
113
- 'regexp/optimal-quantifier-concatenation': 'error',
114
- 'regexp/prefer-character-class': 'error',
115
- 'regexp/prefer-d': 'error',
116
- 'regexp/prefer-plus-quantifier': 'error',
117
- 'regexp/prefer-predefined-assertion': 'error',
118
- 'regexp/prefer-question-quantifier': 'error',
119
- 'regexp/prefer-range': 'error',
120
- 'regexp/prefer-set-operation': 'error',
121
- 'regexp/prefer-star-quantifier': 'error',
122
- 'regexp/prefer-unicode-codepoint-escapes': 'error',
123
- 'regexp/prefer-w': 'error',
124
- 'regexp/simplify-set-operations': 'error',
125
- 'regexp/sort-flags': 'error',
126
- 'regexp/strict': 'error',
127
- 'regexp/use-ignore-case': 'error',
128
- 'import/first': 'error',
129
- 'import/no-anonymous-default-export': 'error',
130
- },
131
- typescriptRules: {
132
- 'no-var': 'error',
133
- 'prefer-const': 'error',
134
- 'prefer-rest-params': 'error',
135
- 'prefer-spread': 'error',
136
- 'typescript/await-thenable': 'error',
137
- 'typescript/ban-ts-comment': 'error',
138
- 'no-array-constructor': 'error',
139
- 'typescript/no-array-delete': 'error',
140
- 'typescript/no-base-to-string': 'error',
141
- 'typescript/no-duplicate-enum-values': 'error',
142
- 'typescript/no-duplicate-type-constituents': 'error',
143
- 'typescript/no-empty-object-type': 'error',
144
- 'typescript/no-explicit-any': 'error',
145
- 'typescript/no-extra-non-null-assertion': 'error',
146
- 'typescript/no-floating-promises': 'error',
147
- 'typescript/no-for-in-array': 'error',
148
- 'typescript/no-implied-eval': 'error',
149
- 'typescript/no-misused-new': 'error',
150
- 'typescript/no-misused-promises': 'error',
151
- 'typescript/no-namespace': 'error',
152
- 'typescript/no-non-null-asserted-optional-chain': 'error',
153
- 'typescript/no-redundant-type-constituents': 'error',
154
- 'typescript/no-require-imports': 'error',
155
- 'typescript/no-this-alias': 'error',
156
- 'typescript/no-unnecessary-type-assertion': 'error',
157
- 'typescript/no-unnecessary-type-constraint': 'error',
158
- 'typescript/no-unsafe-argument': 'error',
159
- 'typescript/no-unsafe-assignment': 'error',
160
- 'typescript/no-unsafe-call': 'error',
161
- 'typescript/no-unsafe-declaration-merging': 'error',
162
- 'typescript/no-unsafe-enum-comparison': 'error',
163
- 'typescript/no-unsafe-function-type': 'error',
164
- 'typescript/no-unsafe-member-access': 'error',
165
- 'typescript/no-unsafe-return': 'error',
166
- 'typescript/no-unsafe-unary-minus': 'error',
167
- 'no-unused-expressions': 'error',
168
- 'no-unused-vars': [
169
- 'error',
170
- {
171
- ignoreRestSiblings: true,
172
- },
173
- ],
174
- 'typescript/no-wrapper-object-types': 'error',
175
- 'typescript/only-throw-error': 'error',
176
- 'typescript/prefer-as-const': 'error',
177
- 'typescript/prefer-namespace-keyword': 'error',
178
- 'typescript/prefer-promise-reject-errors': 'error',
179
- 'typescript/require-await': 'error',
180
- 'typescript/restrict-plus-operands': 'error',
181
- 'typescript/restrict-template-expressions': 'error',
182
- 'typescript/triple-slash-reference': 'error',
183
- 'typescript/unbound-method': 'error',
184
- 'constructor-super': 'off',
185
- 'getter-return': 'off',
186
- 'no-class-assign': 'off',
187
- 'no-const-assign': 'off',
188
- 'no-dupe-class-members': 'off',
189
- 'no-dupe-keys': 'off',
190
- 'no-func-assign': 'off',
191
- 'no-import-assign': 'off',
192
- 'no-new-native-nonconstructor': 'off',
193
- 'no-obj-calls': 'off',
194
- 'no-redeclare': 'off',
195
- 'no-setter-return': 'off',
196
- 'no-this-before-super': 'off',
197
- 'no-unreachable': 'off',
198
- 'no-unsafe-negation': 'off',
199
- 'no-with': 'off',
200
- 'import/first': 'off',
201
- 'import/no-anonymous-default-export': 'off',
202
- },
203
- dropped: [
204
- 'import-x/export',
205
- 'import-x/named',
206
- 'import-x/no-unresolved',
207
- 'no-dupe-args',
208
- 'no-octal',
209
- 'no-undef',
210
- 'no-useless-assignment',
211
- ],
212
- };
213
-
214
- export default rules;