@boehringer-ingelheim/eslint-config 9.4.0 → 9.5.0-typescript-migration.1

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 (61) hide show
  1. package/dist/configs/base.d.ts +3 -0
  2. package/dist/configs/base.d.ts.map +1 -0
  3. package/dist/configs/base.js +125 -0
  4. package/dist/configs/base.js.map +1 -0
  5. package/dist/configs/experimental-naming-convention.d.ts +3 -0
  6. package/dist/configs/experimental-naming-convention.d.ts.map +1 -0
  7. package/dist/configs/experimental-naming-convention.js +68 -0
  8. package/dist/configs/experimental-naming-convention.js.map +1 -0
  9. package/dist/configs/local.d.ts +3 -0
  10. package/dist/configs/local.d.ts.map +1 -0
  11. package/dist/configs/local.js +14 -0
  12. package/dist/configs/local.js.map +1 -0
  13. package/dist/configs/nextjs.d.ts +3 -0
  14. package/dist/configs/nextjs.d.ts.map +1 -0
  15. package/dist/configs/nextjs.js +122 -0
  16. package/dist/configs/nextjs.js.map +1 -0
  17. package/dist/configs/playwright.d.ts +3 -0
  18. package/dist/configs/playwright.d.ts.map +1 -0
  19. package/dist/configs/playwright.js +26 -0
  20. package/dist/configs/playwright.js.map +1 -0
  21. package/dist/configs/prettier-disable.d.ts +3 -0
  22. package/dist/configs/prettier-disable.d.ts.map +1 -0
  23. package/dist/configs/prettier-disable.js +10 -0
  24. package/dist/configs/prettier-disable.js.map +1 -0
  25. package/dist/configs/react.d.ts +3 -0
  26. package/dist/configs/react.d.ts.map +1 -0
  27. package/dist/configs/react.js +105 -0
  28. package/dist/configs/react.js.map +1 -0
  29. package/dist/configs/strict.d.ts +3 -0
  30. package/dist/configs/strict.d.ts.map +1 -0
  31. package/dist/configs/strict.js +24 -0
  32. package/dist/configs/strict.js.map +1 -0
  33. package/dist/lib/eslint-plugin-perfectionist.d.ts +30 -0
  34. package/dist/lib/eslint-plugin-perfectionist.d.ts.map +1 -0
  35. package/dist/lib/eslint-plugin-perfectionist.js +78 -0
  36. package/dist/lib/eslint-plugin-perfectionist.js.map +1 -0
  37. package/dist/lib/include-ignore-file.d.ts +10 -0
  38. package/dist/lib/include-ignore-file.d.ts.map +1 -0
  39. package/dist/lib/include-ignore-file.js +22 -0
  40. package/dist/lib/include-ignore-file.js.map +1 -0
  41. package/{lib/nextjs.utils.js → dist/lib/nextjs.utils.d.ts} +2 -15
  42. package/dist/lib/nextjs.utils.d.ts.map +1 -0
  43. package/dist/lib/nextjs.utils.js +21 -0
  44. package/dist/lib/nextjs.utils.js.map +1 -0
  45. package/dist/main.d.ts +12 -0
  46. package/dist/main.d.ts.map +1 -0
  47. package/dist/main.js +20 -0
  48. package/dist/main.js.map +1 -0
  49. package/package.json +26 -10
  50. package/configs/base.js +0 -145
  51. package/configs/experimental-naming-convention.js +0 -68
  52. package/configs/local.js +0 -16
  53. package/configs/nextjs.js +0 -137
  54. package/configs/playwright.js +0 -26
  55. package/configs/prettier-disable.js +0 -10
  56. package/configs/react.js +0 -110
  57. package/configs/strict.js +0 -22
  58. package/index.d.ts +0 -24
  59. package/index.js +0 -26
  60. package/lib/eslint-plugin-perfectionist.js +0 -87
  61. package/lib/include-ignore-file.js +0 -28
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";AAaA,wBAkIE"}
@@ -0,0 +1,125 @@
1
+ import * as eslint from '@eslint/js';
2
+ import * as importPlugin from 'eslint-plugin-import';
3
+ import * as perfectionist from 'eslint-plugin-perfectionist';
4
+ import * as sonarjs from 'eslint-plugin-sonarjs';
5
+ import { defineConfig } from 'eslint/config';
6
+ import * as tseslint from 'typescript-eslint';
7
+ import { PERFECTIONIST_SETTINGS, SORT_CLASSES_GROUPS, SORT_IMPORTS_GROUPS, SORT_INTERSECTION_TYPES_GROUPS, } from '../lib/eslint-plugin-perfectionist.js';
8
+ export default defineConfig(eslint.configs.recommended, tseslint.configs.recommendedTypeChecked, tseslint.configs.stylisticTypeChecked, importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.typescript, perfectionist.configs['recommended-natural'], sonarjs.configs.recommended, {
9
+ languageOptions: {
10
+ parserOptions: {
11
+ // find the tsconfig.json nearest each source file
12
+ projectService: true,
13
+ },
14
+ },
15
+ linterOptions: {
16
+ reportUnusedDisableDirectives: 'error',
17
+ },
18
+ rules: {
19
+ // @typescript-eslint: https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules
20
+ '@typescript-eslint/adjacent-overload-signatures': 'off', // disabled due to conflict with eslint-plugin-perfectionist
21
+ '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }],
22
+ '@typescript-eslint/no-misused-promises': [
23
+ 'error',
24
+ {
25
+ checksVoidReturn: false,
26
+ },
27
+ ],
28
+ '@typescript-eslint/no-unused-vars': [
29
+ 'error',
30
+ {
31
+ argsIgnorePattern: '^_',
32
+ caughtErrorsIgnorePattern: '^_',
33
+ varsIgnorePattern: '^_',
34
+ },
35
+ ],
36
+ '@typescript-eslint/sort-type-constituents': 'off', // disabled due to conflict with eslint-plugin-perfectionist
37
+ // eslint: https://github.com/eslint/eslint/tree/main/lib/rules
38
+ '@typescript-eslint/dot-notation': ['error', { allowPattern: '^[a-z]+(_[a-z]+)+$' }],
39
+ 'arrow-body-style': ['error', 'as-needed'],
40
+ camelcase: 'warn',
41
+ curly: 'error',
42
+ 'default-case': 'error',
43
+ eqeqeq: 'error',
44
+ 'logical-assignment-operators': ['error', 'never'],
45
+ 'no-console': ['warn', { allow: ['warn', 'error'] }],
46
+ 'no-else-return': ['error', { allowElseIf: false }],
47
+ 'no-lonely-if': 'error',
48
+ 'no-negated-condition': 'error',
49
+ 'no-nested-ternary': 'error',
50
+ 'no-plusplus': ['error', { allowForLoopAfterthoughts: true }],
51
+ 'no-unneeded-ternary': 'error',
52
+ 'no-useless-concat': 'error',
53
+ 'operator-assignment': ['error', 'never'],
54
+ 'prefer-template': 'error',
55
+ 'sort-imports': 'off', // disabled due to conflict with eslint-plugin-perfectionist
56
+ 'sort-keys': 'off', // disabled due to conflict with eslint-plugin-perfectionist
57
+ // eslint-plugin-import: https://github.com/import-js/eslint-plugin-import/tree/main/docs/rules
58
+ 'import/no-cycle': 'error',
59
+ /**
60
+ * The rule is disabled for now as it is not compatible with flat-configs, without adding an artifical `.eslintrc` file.
61
+ *
62
+ * @see: https://github.com/import-js/eslint-plugin-import/issues/3079#issuecomment-2557191925
63
+ * @todo Enable rule, as soon as fix is available: https://github.com/Boehringer-Ingelheim/eslint-config/blob/9f028ed43bb5db11082a2982f249ddfe7eaf5c13/configs/base.js#L77
64
+ */
65
+ 'import/no-unused-modules': 'off',
66
+ 'import/order': 'off', // disabled due to conflict with eslint-plugin-perfectionist
67
+ 'import/prefer-default-export': 'off',
68
+ // Deactivated as TypeScript provides the same checks as part of standard type checking: https://typescript-eslint.io/linting/troubleshooting/performance-troubleshooting
69
+ 'import/default': 'off',
70
+ 'import/named': 'off',
71
+ 'import/namespace': 'off',
72
+ 'import/no-named-as-default-member': 'off',
73
+ 'import/no-unresolved': 'off',
74
+ // eslint-plugin-perfectionist: https://github.com/azat-io/eslint-plugin-perfectionist
75
+ 'perfectionist/sort-classes': [
76
+ 'error',
77
+ {
78
+ groups: SORT_CLASSES_GROUPS,
79
+ },
80
+ ],
81
+ 'perfectionist/sort-imports': [
82
+ 'error',
83
+ {
84
+ groups: SORT_IMPORTS_GROUPS,
85
+ newlinesBetween: 0, // No newlines are allowed between groups
86
+ },
87
+ ],
88
+ 'perfectionist/sort-intersection-types': [
89
+ 'error',
90
+ {
91
+ groups: SORT_INTERSECTION_TYPES_GROUPS,
92
+ },
93
+ ],
94
+ 'perfectionist/sort-named-imports': [
95
+ 'error',
96
+ {
97
+ ignoreAlias: true,
98
+ },
99
+ ],
100
+ 'perfectionist/sort-objects': [
101
+ 'error',
102
+ {
103
+ partitionByComment: true,
104
+ },
105
+ ],
106
+ },
107
+ settings: {
108
+ 'import/resolver': {
109
+ typescript: true,
110
+ },
111
+ perfectionist: {
112
+ ...PERFECTIONIST_SETTINGS,
113
+ },
114
+ },
115
+ }, {
116
+ files: [
117
+ '**/*.d.ts', // TypeScript declaration files
118
+ '**/*.{spec,test}.{js,cjs,mjs,jsx,ts,cts,mts,tsx}', // Usually test files
119
+ './*.{js,cjs,mjs,ts,cts,mts}', // Mostly configuration files on root level
120
+ ],
121
+ rules: {
122
+ 'import/no-unused-modules': 'off',
123
+ },
124
+ });
125
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=experimental-naming-convention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimental-naming-convention.d.ts","sourceRoot":"","sources":["../../src/configs/experimental-naming-convention.ts"],"names":[],"mappings":";AAEA,wBAiEG"}
@@ -0,0 +1,68 @@
1
+ import { defineConfig } from 'eslint/config';
2
+ export default defineConfig({
3
+ rules: {
4
+ '@typescript-eslint/naming-convention': [
5
+ 'error',
6
+ {
7
+ // Enforce that interface names do not start with an 'I'
8
+ custom: {
9
+ match: false,
10
+ regex: '^I[A-Z]',
11
+ },
12
+ format: ['StrictPascalCase'],
13
+ leadingUnderscore: 'forbid',
14
+ selector: 'interface',
15
+ trailingUnderscore: 'forbid',
16
+ },
17
+ {
18
+ // Enforce that type alias names do not start with an 'T'
19
+ custom: {
20
+ match: false,
21
+ regex: '^T[A-Z]',
22
+ },
23
+ format: ['StrictPascalCase'],
24
+ leadingUnderscore: 'forbid',
25
+ selector: 'typeAlias',
26
+ trailingUnderscore: 'forbid',
27
+ },
28
+ {
29
+ // Enforce that all top-level variables are in UPPER_CASE
30
+ format: ['UPPER_CASE'],
31
+ leadingUnderscore: 'forbid',
32
+ modifiers: ['global'],
33
+ selector: 'variable',
34
+ trailingUnderscore: 'forbid',
35
+ types: ['boolean', 'number', 'string'],
36
+ },
37
+ {
38
+ // Enforce that all top-level array variables are in UPPER_CASE and are suffixed with a 'S' to indicate plural form
39
+ format: ['UPPER_CASE'],
40
+ leadingUnderscore: 'forbid',
41
+ modifiers: ['global'],
42
+ selector: 'variable',
43
+ suffix: ['S'],
44
+ trailingUnderscore: 'forbid',
45
+ types: ['array'],
46
+ },
47
+ {
48
+ // Enforce that array variables are suffixed with a 's' to indicate plural form
49
+ format: ['strictCamelCase'],
50
+ leadingUnderscore: 'forbid',
51
+ selector: 'variable',
52
+ suffix: ['s'],
53
+ trailingUnderscore: 'forbid',
54
+ types: ['array'],
55
+ },
56
+ {
57
+ // Enforce that boolean variables are prefixed with an allowed verb
58
+ format: ['StrictPascalCase'],
59
+ leadingUnderscore: 'forbid',
60
+ prefix: ['is', 'has', 'should', 'can'],
61
+ selector: 'variable',
62
+ trailingUnderscore: 'forbid',
63
+ types: ['boolean'],
64
+ },
65
+ ],
66
+ },
67
+ });
68
+ //# sourceMappingURL=experimental-naming-convention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimental-naming-convention.js","sourceRoot":"","sources":["../../src/configs/experimental-naming-convention.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,KAAK,EAAE;QACL,sCAAsC,EAAE;YACtC,OAAO;YACP;gBACE,wDAAwD;gBACxD,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,SAAS;iBACjB;gBACD,MAAM,EAAE,CAAC,kBAAkB,CAAC;gBAC5B,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,WAAW;gBACrB,kBAAkB,EAAE,QAAQ;aAC7B;YACD;gBACE,yDAAyD;gBACzD,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,SAAS;iBACjB;gBACD,MAAM,EAAE,CAAC,kBAAkB,CAAC;gBAC5B,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,WAAW;gBACrB,kBAAkB,EAAE,QAAQ;aAC7B;YACD;gBACE,yDAAyD;gBACzD,MAAM,EAAE,CAAC,YAAY,CAAC;gBACtB,iBAAiB,EAAE,QAAQ;gBAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,QAAQ,EAAE,UAAU;gBACpB,kBAAkB,EAAE,QAAQ;gBAC5B,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACvC;YACD;gBACE,mHAAmH;gBACnH,MAAM,EAAE,CAAC,YAAY,CAAC;gBACtB,iBAAiB,EAAE,QAAQ;gBAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,CAAC,GAAG,CAAC;gBACb,kBAAkB,EAAE,QAAQ;gBAC5B,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB;YACD;gBACE,+EAA+E;gBAC/E,MAAM,EAAE,CAAC,iBAAiB,CAAC;gBAC3B,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,CAAC,GAAG,CAAC;gBACb,kBAAkB,EAAE,QAAQ;gBAC5B,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB;YACD;gBACE,mEAAmE;gBACnE,MAAM,EAAE,CAAC,kBAAkB,CAAC;gBAC5B,iBAAiB,EAAE,QAAQ;gBAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;gBACtC,QAAQ,EAAE,UAAU;gBACpB,kBAAkB,EAAE,QAAQ;gBAC5B,KAAK,EAAE,CAAC,SAAS,CAAC;aACnB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/configs/local.ts"],"names":[],"mappings":";AAGA,wBAYE"}
@@ -0,0 +1,14 @@
1
+ import { defineConfig } from 'eslint/config';
2
+ import isCI from 'is-ci';
3
+ export default defineConfig(isCI
4
+ ? {}
5
+ : {
6
+ rules: {
7
+ // Only activate in CI, as suggested here: https://typescript-eslint.io/linting/troubleshooting/performance-troubleshooting#eslint-plugin-import
8
+ 'import/no-cycle': 'off',
9
+ 'import/no-deprecated': 'off',
10
+ 'import/no-named-as-default': 'off',
11
+ 'import/no-unused-modules': 'off',
12
+ },
13
+ });
14
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/configs/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,IAAI,MAAM,OAAO,CAAC;AAEzB,eAAe,YAAY,CACzB,IAAI;IACF,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACE,KAAK,EAAE;YACL,gJAAgJ;YAChJ,iBAAiB,EAAE,KAAK;YACxB,sBAAsB,EAAE,KAAK;YAC7B,4BAA4B,EAAE,KAAK;YACnC,0BAA0B,EAAE,KAAK;SAClC;KACF,CACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=nextjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../../src/configs/nextjs.ts"],"names":[],"mappings":";AAKA,wBAkIE"}
@@ -0,0 +1,122 @@
1
+ import * as nextPlugin from '@next/eslint-plugin-next';
2
+ import { defineConfig } from 'eslint/config';
3
+ import { NEXTJS_ROUTING_FILES } from '../lib/nextjs.utils.js';
4
+ import react from './react.js';
5
+ export default defineConfig(...react, {
6
+ plugins: {
7
+ '@next/next': nextPlugin,
8
+ },
9
+ rules: {
10
+ ...nextPlugin.configs.recommended.rules,
11
+ ...nextPlugin.configs['core-web-vitals'].rules,
12
+ },
13
+ }, {
14
+ files: [`{app,src/app}/**/{${NEXTJS_ROUTING_FILES.join(',')}}.{ts,tsx}`],
15
+ rules: {
16
+ 'import/no-unused-modules': ['off'],
17
+ // eslint-plugin-react-refresh: https://github.com/ArnaudBarre/eslint-plugin-react-refresh
18
+ 'react-refresh/only-export-components': [
19
+ 'warn',
20
+ {
21
+ allowExportNames: [
22
+ /**
23
+ * Next.js allows exporting the following options in pages, layouts and route handlers
24
+ *
25
+ * @see https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
26
+ */
27
+ 'dynamic',
28
+ 'dynamicParams',
29
+ 'fetchCache',
30
+ 'maxDuration',
31
+ 'preferredRegion',
32
+ 'revalidate',
33
+ 'runtime',
34
+ /**
35
+ * Next.js allows exporting the following metadata options in layouts and pages
36
+ *
37
+ * @link https://nextjs.org/docs/app/api-reference/functions/generate-metadata
38
+ */
39
+ 'generateMetadata',
40
+ 'metadata',
41
+ /**
42
+ * Next.js allows exporting the following static params functions in pages
43
+ *
44
+ * @link https://nextjs.org/docs/app/api-reference/functions/generate-static-params
45
+ */
46
+ 'generateStaticParams',
47
+ /**
48
+ * Next.js allows exporting the following viewport options in layouts and pages
49
+ *
50
+ * @link https://nextjs.org/docs/app/api-reference/functions/generate-viewport
51
+ */
52
+ 'generateViewport',
53
+ 'viewport',
54
+ ],
55
+ },
56
+ ],
57
+ },
58
+ }, {
59
+ files: [`{instrumentation,src/instrumentation}.{ts,tsx}`],
60
+ rules: {
61
+ 'import/no-unused-modules': ['off'],
62
+ // eslint-plugin-react-refresh: https://github.com/ArnaudBarre/eslint-plugin-react-refresh
63
+ 'react-refresh/only-export-components': [
64
+ 'warn',
65
+ {
66
+ allowExportNames: [
67
+ /**
68
+ * Next.js allows exporting the following exports in instrumentation files
69
+ *
70
+ * @link https://nextjs.org/docs/app/guides/instrumentation#convention
71
+ */
72
+ 'register',
73
+ ],
74
+ },
75
+ ],
76
+ },
77
+ }, {
78
+ /**
79
+ * Next.js 'middleware' files are beeing deprecated in favor of the new proxy files with v16+
80
+ *
81
+ * @link https://nextjs.org/blog/next-16#proxyts-formerly-middlewarets
82
+ */
83
+ files: [`{middleware,src/middleware}.{ts,tsx}`],
84
+ rules: {
85
+ 'import/no-unused-modules': ['off'],
86
+ // eslint-plugin-react-refresh: https://github.com/ArnaudBarre/eslint-plugin-react-refresh
87
+ 'react-refresh/only-export-components': [
88
+ 'warn',
89
+ {
90
+ allowExportNames: [
91
+ /**
92
+ * Next.js allows exporting the following config options in middleware
93
+ *
94
+ * @link https://nextjs.org/docs/app/api-reference/file-conventions/middleware#config-object-optional
95
+ */
96
+ 'config',
97
+ ],
98
+ },
99
+ ],
100
+ },
101
+ }, {
102
+ files: [`{proxy,src/proxy}.{ts,tsx}`],
103
+ rules: {
104
+ 'import/no-unused-modules': ['off'],
105
+ // eslint-plugin-react-refresh: https://github.com/ArnaudBarre/eslint-plugin-react-refresh
106
+ 'react-refresh/only-export-components': [
107
+ 'warn',
108
+ {
109
+ allowExportNames: [
110
+ /**
111
+ * Next.js allows exporting the following exports in proxy files
112
+ *
113
+ * @link https://nextjs.org/docs/app/api-reference/file-conventions/proxy#config-object-optional
114
+ */
115
+ 'config',
116
+ 'proxy',
117
+ ],
118
+ },
119
+ ],
120
+ },
121
+ });
122
+ //# sourceMappingURL=nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../src/configs/nextjs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,eAAe,YAAY,CACzB,GAAG,KAAK,EACR;IACE,OAAO,EAAE;QACP,YAAY,EAAE,UAAU;KACzB;IACD,KAAK,EAAE;QACL,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;QACvC,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK;KAC/C;CACF,EACD;IACE,KAAK,EAAE,CAAC,qBAAqB,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IACxE,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,KAAK,CAAC;QAEnC,0FAA0F;QAC1F,sCAAsC,EAAE;YACtC,MAAM;YACN;gBACE,gBAAgB,EAAE;oBAChB;;;;uBAIG;oBACH,SAAS;oBACT,eAAe;oBACf,YAAY;oBACZ,aAAa;oBACb,iBAAiB;oBACjB,YAAY;oBACZ,SAAS;oBAET;;;;uBAIG;oBACH,kBAAkB;oBAClB,UAAU;oBAEV;;;;uBAIG;oBACH,sBAAsB;oBAEtB;;;;uBAIG;oBACH,kBAAkB;oBAClB,UAAU;iBACX;aACF;SACF;KACF;CACF,EACD;IACE,KAAK,EAAE,CAAC,gDAAgD,CAAC;IACzD,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,KAAK,CAAC;QAEnC,0FAA0F;QAC1F,sCAAsC,EAAE;YACtC,MAAM;YACN;gBACE,gBAAgB,EAAE;oBAChB;;;;uBAIG;oBACH,UAAU;iBACX;aACF;SACF;KACF;CACF,EACD;IACE;;;;OAIG;IACH,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,KAAK,CAAC;QAEnC,0FAA0F;QAC1F,sCAAsC,EAAE;YACtC,MAAM;YACN;gBACE,gBAAgB,EAAE;oBAChB;;;;uBAIG;oBACH,QAAQ;iBACT;aACF;SACF;KACF;CACF,EACD;IACE,KAAK,EAAE,CAAC,4BAA4B,CAAC;IACrC,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,KAAK,CAAC;QAEnC,0FAA0F;QAC1F,sCAAsC,EAAE;YACtC,MAAM;YACN;gBACE,gBAAgB,EAAE;oBAChB;;;;uBAIG;oBACH,QAAQ;oBACR,OAAO;iBACR;aACF;SACF;KACF;CACF,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=playwright.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../src/configs/playwright.ts"],"names":[],"mappings":";AAWA,wBAsBG"}
@@ -0,0 +1,26 @@
1
+ import * as playwright from 'eslint-plugin-playwright';
2
+ import { defineConfig } from 'eslint/config';
3
+ const playwrightPlugin = playwright;
4
+ export default defineConfig({
5
+ ...playwrightPlugin.configs['flat/recommended'],
6
+ rules: {
7
+ /**
8
+ * At the moment, `eslint-plugin-playwright` does not fully support component testing with type information.
9
+ * https://github.com/playwright-community/eslint-plugin-playwright/issues/298
10
+ *
11
+ * The `mount` function is flagged as an error by the `@typescript-eslint/unbound-method` rule.
12
+ * But it is okay to use `mount` in this context for test files.
13
+ * https://typescript-eslint.io/rules/unbound-method/#when-not-to-use-it
14
+ *
15
+ * Hint: `eslint-plugin-jest` has already a customized version of this rule.
16
+ * https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/unbound-method.md
17
+ */
18
+ '@typescript-eslint/unbound-method': 'off',
19
+ // eslint-plugin-playwright: https://github.com/playwright-community/eslint-plugin-playwright
20
+ ...playwrightPlugin.configs['flat/recommended'].rules,
21
+ 'playwright/prefer-to-be': 'error',
22
+ 'playwright/prefer-to-have-length': 'error',
23
+ 'playwright/require-top-level-describe': 'error',
24
+ },
25
+ });
26
+ //# sourceMappingURL=playwright.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../src/configs/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,gBAAgB,GAAG,UAMxB,CAAC;AAEF,eAAe,YAAY,CAAC;IAC1B,GAAG,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC/C,KAAK,EAAE;QACL;;;;;;;;;;WAUG;QACH,mCAAmC,EAAE,KAAK;QAE1C,6FAA6F;QAC7F,GAAG,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK;QACrD,yBAAyB,EAAE,OAAO;QAClC,kCAAkC,EAAE,OAAO;QAC3C,uCAAuC,EAAE,OAAO;KACjD;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=prettier-disable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-disable.d.ts","sourceRoot":"","sources":["../../src/configs/prettier-disable.ts"],"names":[],"mappings":";AAGA,wBAMG"}
@@ -0,0 +1,10 @@
1
+ import * as prettier from 'eslint-config-prettier';
2
+ import { defineConfig } from 'eslint/config';
3
+ export default defineConfig({
4
+ ...prettier,
5
+ rules: {
6
+ ...prettier.rules,
7
+ curly: 'error',
8
+ },
9
+ });
10
+ //# sourceMappingURL=prettier-disable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-disable.js","sourceRoot":"","sources":["../../src/configs/prettier-disable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,GAAG,QAAQ;IACX,KAAK,EAAE;QACL,GAAG,QAAQ,CAAC,KAAK;QACjB,KAAK,EAAE,OAAO;KACf;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/configs/react.ts"],"names":[],"mappings":";AAyBA,wBAqGE"}
@@ -0,0 +1,105 @@
1
+ import jsxA11y from 'eslint-plugin-jsx-a11y';
2
+ import react from 'eslint-plugin-react';
3
+ import reactHooks from 'eslint-plugin-react-hooks';
4
+ import reactRefresh from 'eslint-plugin-react-refresh';
5
+ import { defineConfig } from 'eslint/config';
6
+ import globals from 'globals';
7
+ import { PERFECTIONIST_SETTINGS, SORT_IMPORTS_GROUPS } from '../lib/eslint-plugin-perfectionist.js';
8
+ import base from './base.js';
9
+ const reactRecommendedConfig = react.configs.flat.recommended;
10
+ if (!reactRecommendedConfig) {
11
+ throw new Error('Expected to find the "flat/recommended" configuration in the eslint-plugin-react plugin, but it was not found.');
12
+ }
13
+ const reactJsxRuntimeConfig = react.configs.flat['jsx-runtime'];
14
+ if (!reactJsxRuntimeConfig) {
15
+ throw new Error('Expected to find the "flat/jsx-runtime" configuration in the eslint-plugin-react plugin, but it was not found.');
16
+ }
17
+ export default defineConfig(...base, jsxA11y.flatConfigs.recommended, reactRecommendedConfig, reactJsxRuntimeConfig, reactRefresh.configs.recommended, {
18
+ languageOptions: {
19
+ globals: {
20
+ ...globals.browser,
21
+ },
22
+ parserOptions: {
23
+ ecmaFeatures: {
24
+ jsx: true,
25
+ },
26
+ },
27
+ },
28
+ plugins: {
29
+ // @ts-expect-error -- This is as per documentation of eslint-plugin-react, see: https://www.npmjs.com/package/eslint-plugin-react-hooks
30
+ 'react-hooks': reactHooks,
31
+ },
32
+ rules: {
33
+ // @typescript-eslint: https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules
34
+ '@typescript-eslint/consistent-type-definitions': ['error', 'type'],
35
+ '@typescript-eslint/no-restricted-types': [
36
+ 'error',
37
+ {
38
+ types: {
39
+ 'React.FC': {
40
+ message: 'Please use object type destructure declaration, see: https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components',
41
+ },
42
+ 'React.FunctionalComponent': {
43
+ message: 'Please use object type destructure declaration, see: https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components',
44
+ },
45
+ },
46
+ },
47
+ ],
48
+ // eslint-plugin-react: https://github.com/jsx-eslint/eslint-plugin-react/tree/master/lib/rules
49
+ 'react/jsx-pascal-case': 'error',
50
+ 'react/jsx-sort-props': 'off', // disabled due to conflict with eslint-plugin-perfectionist
51
+ 'react/sort-default-props': 'error',
52
+ // eslint-plugin-react-hooks: https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/README.md
53
+ 'react-hooks/exhaustive-deps': 'error',
54
+ 'react-hooks/rules-of-hooks': 'error',
55
+ // eslint-plugin-perfectionist: https://github.com/azat-io/eslint-plugin-perfectionist
56
+ 'perfectionist/sort-imports': [
57
+ 'error',
58
+ {
59
+ customGroups: [
60
+ {
61
+ elementNamePattern: ['^react$'],
62
+ groupName: 'react',
63
+ },
64
+ ],
65
+ groups: ['react', ...SORT_IMPORTS_GROUPS],
66
+ newlinesBetween: 0, // No newlines are allowed between groups
67
+ },
68
+ ],
69
+ 'perfectionist/sort-jsx-props': [
70
+ 'error',
71
+ {
72
+ customGroups: [
73
+ {
74
+ elementNamePattern: '^on.+',
75
+ groupName: 'callback',
76
+ },
77
+ {
78
+ elementNamePattern: ['children', 'dangerouslySetInnerHTML', 'key', 'ref'], // Reserved props from: https://github.com/jsx-eslint/eslint-plugin-react/blob/master/lib/rules/jsx-sort-props.js#L41-L46
79
+ groupName: 'reservedProps',
80
+ },
81
+ ],
82
+ groups: ['reservedProps', 'unknown', 'callback'],
83
+ },
84
+ ],
85
+ // eslint-plugin-react-refresh: https://github.com/ArnaudBarre/eslint-plugin-react-refresh
86
+ 'react-refresh/only-export-components': 'warn',
87
+ // Forbid enum declaration
88
+ 'no-restricted-syntax': [
89
+ 'error',
90
+ {
91
+ message: "Don't declare enums",
92
+ selector: 'TSEnumDeclaration',
93
+ },
94
+ ],
95
+ },
96
+ settings: {
97
+ perfectionist: {
98
+ ...PERFECTIONIST_SETTINGS,
99
+ },
100
+ react: {
101
+ version: 'detect',
102
+ },
103
+ },
104
+ });
105
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/configs/react.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("eslint/config").Config[];
2
+ export default _default;
3
+ //# sourceMappingURL=strict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":";AAgBA,wBAgBG"}
@@ -0,0 +1,24 @@
1
+ import { defineConfig } from 'eslint/config';
2
+ import * as tseslint from 'typescript-eslint';
3
+ import base from './base.js';
4
+ const strictTemplateExpressionsRule = tseslint.plugin.rules['restrict-template-expressions'];
5
+ if (!strictTemplateExpressionsRule) {
6
+ throw new Error('Expected to find the "restrict-template-expressions" rule in the typescript-eslint plugin, but it was not found.');
7
+ }
8
+ export default defineConfig(...base, tseslint.configs.strictTypeChecked, {
9
+ rules: {
10
+ // @typescript-eslint: https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules
11
+ '@typescript-eslint/consistent-type-imports': 'error',
12
+ '@typescript-eslint/no-import-type-side-effects': 'error',
13
+ '@typescript-eslint/restrict-template-expressions': [
14
+ 'error',
15
+ {
16
+ ...strictTemplateExpressionsRule.meta.docs.recommended.strict[0],
17
+ allowNumber: true,
18
+ },
19
+ ],
20
+ // eslint-plugin-import: https://github.com/import-js/eslint-plugin-import/tree/main/docs/rules
21
+ 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
22
+ },
23
+ });
24
+ //# sourceMappingURL=strict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,6BAA6B,GACjC,QAAQ,CAAC,MAGV,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAEzC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACnC,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACvE,KAAK,EAAE;QACL,yHAAyH;QACzH,4CAA4C,EAAE,OAAO;QACrD,gDAAgD,EAAE,OAAO;QACzD,kDAAkD,EAAE;YAClD,OAAO;YACP;gBACE,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChE,WAAW,EAAE,IAAI;aAClB;SACF;QAED,+FAA+F;QAC/F,wCAAwC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC;KACxE;CACF,CAAC,CAAC"}