eslint-config-typed 3.1.2 → 3.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-without-rules.d.mts","sourceRoot":"","sources":["../../src/configs/typescript-without-rules.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,eAAO,MAAM,qCAAqC,GAAI,wCAGnD,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,KAAG,SAAS,UAAU,EA0FZ,CAAC"}
1
+ {"version":3,"file":"typescript-without-rules.d.mts","sourceRoot":"","sources":["../../src/configs/typescript-without-rules.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,eAAO,MAAM,qCAAqC,GAAI,wCAGnD,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,KAAG,SAAS,UAAU,EA0CZ,CAAC"}
@@ -40,58 +40,55 @@ const eslintConfigForTypeScriptWithoutRules = ({ tsconfigFileName, tsconfigRootD
40
40
  },
41
41
  plugins,
42
42
  settings: {
43
- 'import-x/parsers': {
44
- '@typescript-eslint/parser': [
45
- '.test.ts',
46
- '.js',
47
- '.ts',
48
- '.mjs',
49
- '.mts',
50
- '.cjs',
51
- '.cts',
52
- '.jsx',
53
- '.tsx',
54
- ],
55
- },
56
- 'import-x/resolver': {
57
- typescript: {
58
- alwaysTryTypes: true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
59
- // project: ['packages/**/tsconfig.json', 'config/tsconfig.json'],
60
- project: ['packages/**/tsconfig.json'],
61
- },
62
- // copied from default config
63
- node: {
64
- extensions: [
65
- '.test.ts',
66
- '.js',
67
- '.ts',
68
- '.mjs',
69
- '.mts',
70
- '.cjs',
71
- '.cts',
72
- '.jsx',
73
- '.tsx',
74
- ],
75
- },
76
- },
77
- // copied from default config
78
- 'import-x/extensions': [
79
- '.js',
80
- '.ts',
81
- '.mjs',
82
- '.mts',
83
- '.cjs',
84
- '.cts',
85
- '.jsx',
86
- '.tsx',
87
- ],
88
- 'import-x/external-module-folders': [
89
- 'node_modules',
90
- 'node_modules/@types',
91
- ],
43
+ ...eslintPluginImportXSettings,
92
44
  },
93
45
  },
94
46
  ];
47
+ // Omit `.d.ts` because 1) TypeScript compilation already confirms that
48
+ // types are resolved, and 2) it would mask an unresolved
49
+ // `.ts`/`.tsx`/`.js`/`.jsx` implementation.
50
+ const typeScriptExtensions = ['.ts', '.tsx', '.cts', '.mts'];
51
+ const allExtensions = [
52
+ ...typeScriptExtensions,
53
+ '.js',
54
+ '.jsx',
55
+ '.cjs',
56
+ '.mjs',
57
+ ];
58
+ /**
59
+ * This config:
60
+ *
61
+ * 1. Adds `.jsx`, `.ts`, `.cts`, `.mts`, and `.tsx` as an extension
62
+ * 2. Enables JSX/TSX parsing
63
+ */
64
+ const eslintPluginImportXSettings = {
65
+ 'import-x/extensions': allExtensions,
66
+ 'import-x/external-module-folders': ['node_modules', 'node_modules/@types'],
67
+ 'import-x/parsers': {
68
+ '@typescript-eslint/parser': typeScriptExtensions,
69
+ },
70
+ 'import-x/resolver': {
71
+ typescript: true,
72
+ // typescript: {
73
+ // alwaysTryTypes: true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
74
+ // project: ['packages/**/tsconfig.json', 'config/tsconfig.json'],
75
+ // project: ['packages/**/tsconfig.json'],
76
+ // },
77
+ // node: {
78
+ // extensions: [
79
+ // '.test.ts',
80
+ // '.js',
81
+ // '.ts',
82
+ // '.mjs',
83
+ // '.mts',
84
+ // '.cjs',
85
+ // '.cts',
86
+ // '.jsx',
87
+ // '.tsx',
88
+ // ],
89
+ // },
90
+ },
91
+ };
95
92
 
96
93
  export { eslintConfigForTypeScriptWithoutRules };
97
94
  //# sourceMappingURL=typescript-without-rules.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-without-rules.mjs","sources":["../../src/configs/typescript-without-rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKO,MAAM,qCAAqC,GAAG,CAAC,EACpD,gBAAgB,EAChB,eAAe,GAIf,KACA;AACE,IAAA;AACE,QAAA,OAAO,EAAE;YACP,0CAA0C;YAC1C,4CAA4C;YAC5C,4CAA4C;YAC5C,iBAAiB;YACjB,SAAS;YACT,UAAU;YACV,aAAa;AACd,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,eAAe,EAAE;AACf,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE,gBAAgB;gBACzB,eAAe;AACf,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,GAAG,EAAE,IAAI;AACV,iBAAA;gBACD,SAAS,EAAE,IAAI;AACf,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,MAAM;AAClB,aAAA;AACF,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,6BAA6B,EAAE,IAAI;AACpC,SAAA;QACD,OAAO;AACP,QAAA,QAAQ,EAAE;AACR,YAAA,kBAAkB,EAAE;AAClB,gBAAA,2BAA2B,EAAE;oBAC3B,UAAU;oBACV,KAAK;oBACL,KAAK;oBACL,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,MAAM;AACP,iBAAA;AACF,aAAA;AACD,YAAA,mBAAmB,EAAE;AACnB,gBAAA,UAAU,EAAE;oBACV,cAAc,EAAE,IAAI;;oBAEpB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;AAED,gBAAA,IAAI,EAAE;AACJ,oBAAA,UAAU,EAAE;wBACV,UAAU;wBACV,KAAK;wBACL,KAAK;wBACL,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;;AAED,YAAA,qBAAqB,EAAE;gBACrB,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;AACP,aAAA;AACD,YAAA,kCAAkC,EAAE;gBAClC,cAAc;gBACd,qBAAqB;AACtB,aAAA;AACF,SAAA;AACF,KAAA;;;;;"}
1
+ {"version":3,"file":"typescript-without-rules.mjs","sources":["../../src/configs/typescript-without-rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKO,MAAM,qCAAqC,GAAG,CAAC,EACpD,gBAAgB,EAChB,eAAe,GAIf,KACA;AACE,IAAA;AACE,QAAA,OAAO,EAAE;YACP,0CAA0C;YAC1C,4CAA4C;YAC5C,4CAA4C;YAC5C,iBAAiB;YACjB,SAAS;YACT,UAAU;YACV,aAAa;AACd,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,eAAe,EAAE;AACf,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE,gBAAgB;gBACzB,eAAe;AACf,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,GAAG,EAAE,IAAI;AACV,iBAAA;gBACD,SAAS,EAAE,IAAI;AACf,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,MAAM;AAClB,aAAA;AACF,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,6BAA6B,EAAE,IAAI;AACpC,SAAA;QACD,OAAO;AACP,QAAA,QAAQ,EAAE;AACR,YAAA,GAAG,2BAA2B;AAC/B,SAAA;AACF,KAAA;;AAGL;AACA;AACA;AACA,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU;AAErE,MAAM,aAAa,GAAG;AACpB,IAAA,GAAG,oBAAoB;IACvB,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACE;AAEV;;;;;AAKG;AACH,MAAM,2BAA2B,GAAG;AAClC,IAAA,qBAAqB,EAAE,aAAa;AACpC,IAAA,kCAAkC,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC;AAC3E,IAAA,kBAAkB,EAAE;AAClB,QAAA,2BAA2B,EAAE,oBAAoB;AAClD,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,UAAU,EAAE,IAAI;;;;;;;;;;;;;;;;;;;AAoBjB,KAAA;CACO;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-import-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-import-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+G7B;;;OAGG;;;;;;;;;;;;CAiBkC,CAAC"}
1
+ {"version":3,"file":"eslint-import-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-import-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiH7B;;;OAGG;;;;;;;;;;;;CAiBkC,CAAC"}
@@ -3,6 +3,7 @@ import { withDefaultOption } from '../types/rule-severity-with-default-option.mj
3
3
  const eslintImportsRules = {
4
4
  // Not needed when using TypeScript.
5
5
  'import-x/no-unresolved': 'off',
6
+ // TypeScript compilation already ensures that named imports exist in the referenced module
6
7
  'import-x/named': 'off',
7
8
  'import-x/default': 'error',
8
9
  'import-x/namespace': withDefaultOption('error'),
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-import-rules.mjs","sources":["../../src/rules/eslint-import-rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,GAAG;;AAEhC,IAAA,wBAAwB,EAAE,KAAK;AAE/B,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChD,8BAA8B,EAAE,KAAK;AACrC,IAAA,2BAA2B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACvD,IAAA,6BAA6B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACzD,IAAA,8BAA8B,EAAE;QAC9B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,kDAAkD;gBAClD,kDAAkD;gBAClD,gBAAgB;gBAChB,cAAc;gBACd,8BAA8B;gBAC9B,kBAAkB;gBAClB,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,uBAAuB;gBACvB,gBAAgB;gBAChB,iBAAiB;gBACjB,eAAe;gBACf,gBAAgB;gBAChB,yCAAyC;gBACzC,eAAe;gBACf,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,mCAAmC,EAAE,OAAO;AAC5C,IAAA,yBAAyB,EAAE,OAAO;AAClC,IAAA,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/C,IAAA,mCAAmC,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/D,IAAA,qCAAqC,EAAE,KAAK;;AAG5C,IAAA,0CAA0C,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AAEtE,IAAA,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAAC;;AAG3D,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,8BAA8B,EAAE,OAAO;AACvC,IAAA,qCAAqC,EAAE,OAAO;;AAG9C,IAAA,wBAAwB,EAAE,KAAK;AAE/B,IAAA,qCAAqC,EAAE,KAAK;AAC5C,IAAA,6BAA6B,EAAE,OAAO;;;AAItC,IAAA,4BAA4B,EAAE,KAAK;;AAGnC,IAAA,sBAAsB,EAAE,OAAO;AAC/B,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,4BAA4B,EAAE,KAAK;AACnC,IAAA,mCAAmC,EAAE,KAAK;;AAG1C,IAAA,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAC7C,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACpD,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,qBAAqB,EAAE;QACrB,OAAO;QACP,OAAO;AACP,QAAA;YACE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC3C,SAAA;AACF,KAAA;AAED,IAAA,gBAAgB,EAAE,KAAK;;;;;;;;AASvB,IAAA,+BAA+B,EAAE;QAC/B,OAAO;AACP,QAAA;AACE,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;AACF,KAAA;AACD,IAAA,gCAAgC,EAAE,KAAK;AACvC,IAAA,2BAA2B,EAAE,KAAK;AAClC,IAAA,+BAA+B,EAAE;QAC/B,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE;gBACL,UAAU;gBACV,8BAA8B;gBAC9B,UAAU;gBACV,YAAY;AACb,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,2BAA2B,EAAE,KAAK;AAElC;;;AAGG;AACH,IAAA,4BAA4B,EAAE,OAAO;AAErC,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,sCAAsC,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAClE,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,mCAAmC,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/D,IAAA,gCAAgC,EAAE,OAAO;;;AAKzC,IAAA,4BAA4B,EAAE,iBAAiB,CAAC,OAAO,CAAC;IACxD,kCAAkC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;;AAGtE,IAAA,wBAAwB,EAAE,CAAC;;;;;"}
1
+ {"version":3,"file":"eslint-import-rules.mjs","sources":["../../src/rules/eslint-import-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-typed",
3
- "version": "3.1.2",
3
+ "version": "3.1.4",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -72,7 +72,7 @@
72
72
  "@typescript-eslint/parser": "8.46.2",
73
73
  "@typescript-eslint/type-utils": "8.46.2",
74
74
  "@typescript-eslint/utils": "8.46.2",
75
- "eslint": "9.38.0",
75
+ "eslint": "9.39.1",
76
76
  "eslint-import-resolver-typescript": "4.4.4",
77
77
  "eslint-plugin-array-func": "5.1.0",
78
78
  "eslint-plugin-cypress": "5.2.0",
@@ -48,55 +48,56 @@ export const eslintConfigForTypeScriptWithoutRules = ({
48
48
  },
49
49
  plugins,
50
50
  settings: {
51
- 'import-x/parsers': {
52
- '@typescript-eslint/parser': [
53
- '.test.ts',
54
- '.js',
55
- '.ts',
56
- '.mjs',
57
- '.mts',
58
- '.cjs',
59
- '.cts',
60
- '.jsx',
61
- '.tsx',
62
- ],
63
- },
64
- 'import-x/resolver': {
65
- typescript: {
66
- alwaysTryTypes: true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
67
- // project: ['packages/**/tsconfig.json', 'config/tsconfig.json'],
68
- project: ['packages/**/tsconfig.json'],
69
- },
70
- // copied from default config
71
- node: {
72
- extensions: [
73
- '.test.ts',
74
- '.js',
75
- '.ts',
76
- '.mjs',
77
- '.mts',
78
- '.cjs',
79
- '.cts',
80
- '.jsx',
81
- '.tsx',
82
- ],
83
- },
84
- },
85
- // copied from default config
86
- 'import-x/extensions': [
87
- '.js',
88
- '.ts',
89
- '.mjs',
90
- '.mts',
91
- '.cjs',
92
- '.cts',
93
- '.jsx',
94
- '.tsx',
95
- ],
96
- 'import-x/external-module-folders': [
97
- 'node_modules',
98
- 'node_modules/@types',
99
- ],
51
+ ...eslintPluginImportXSettings,
100
52
  },
101
53
  },
102
54
  ] as const;
55
+
56
+ // Omit `.d.ts` because 1) TypeScript compilation already confirms that
57
+ // types are resolved, and 2) it would mask an unresolved
58
+ // `.ts`/`.tsx`/`.js`/`.jsx` implementation.
59
+ const typeScriptExtensions = ['.ts', '.tsx', '.cts', '.mts'] as const;
60
+
61
+ const allExtensions = [
62
+ ...typeScriptExtensions,
63
+ '.js',
64
+ '.jsx',
65
+ '.cjs',
66
+ '.mjs',
67
+ ] as const;
68
+
69
+ /**
70
+ * This config:
71
+ *
72
+ * 1. Adds `.jsx`, `.ts`, `.cts`, `.mts`, and `.tsx` as an extension
73
+ * 2. Enables JSX/TSX parsing
74
+ */
75
+ const eslintPluginImportXSettings = {
76
+ 'import-x/extensions': allExtensions,
77
+ 'import-x/external-module-folders': ['node_modules', 'node_modules/@types'],
78
+ 'import-x/parsers': {
79
+ '@typescript-eslint/parser': typeScriptExtensions,
80
+ },
81
+ 'import-x/resolver': {
82
+ typescript: true,
83
+ // typescript: {
84
+ // alwaysTryTypes: true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
85
+ // project: ['packages/**/tsconfig.json', 'config/tsconfig.json'],
86
+ // project: ['packages/**/tsconfig.json'],
87
+ // },
88
+
89
+ // node: {
90
+ // extensions: [
91
+ // '.test.ts',
92
+ // '.js',
93
+ // '.ts',
94
+ // '.mjs',
95
+ // '.mts',
96
+ // '.cjs',
97
+ // '.cts',
98
+ // '.jsx',
99
+ // '.tsx',
100
+ // ],
101
+ // },
102
+ },
103
+ } as const;
@@ -4,7 +4,9 @@ export const eslintImportsRules = {
4
4
  // Not needed when using TypeScript.
5
5
  'import-x/no-unresolved': 'off',
6
6
 
7
+ // TypeScript compilation already ensures that named imports exist in the referenced module
7
8
  'import-x/named': 'off',
9
+
8
10
  'import-x/default': 'error',
9
11
  'import-x/namespace': withDefaultOption('error'),
10
12
  'import-x/no-restricted-paths': 'off', // TODO