@enormora/eslint-config-typescript 0.0.36 → 0.0.38
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.
- package/package.json +10 -6
- package/{typescript.js → presets/typescript/typescript.js} +106 -60
- package/readme.md +12 -10
- package/sbom.cdx.json +152 -0
package/package.json
CHANGED
|
@@ -4,24 +4,28 @@
|
|
|
4
4
|
"Christian Rackerseder <github@echooff.de>"
|
|
5
5
|
],
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
8
|
-
"@typescript-eslint/parser": "8.
|
|
7
|
+
"@typescript-eslint/eslint-plugin": "8.59.4",
|
|
8
|
+
"@typescript-eslint/parser": "8.59.4",
|
|
9
9
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
10
10
|
"eslint-plugin-functional": "9.0.4",
|
|
11
11
|
"eslint-plugin-import-x": "4.16.2",
|
|
12
|
-
"eslint-plugin-perfectionist": "5.
|
|
12
|
+
"eslint-plugin-perfectionist": "5.9.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Enormora’s ESLint typescript configuration",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./presets/typescript/typescript.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
15
20
|
"license": "MIT",
|
|
16
|
-
"main": "typescript.js",
|
|
17
21
|
"name": "@enormora/eslint-config-typescript",
|
|
18
22
|
"peerDependencies": {
|
|
19
|
-
"@enormora/eslint-config-base": "0.0.
|
|
23
|
+
"@enormora/eslint-config-base": "0.0.33"
|
|
20
24
|
},
|
|
21
25
|
"repository": {
|
|
22
26
|
"type": "git",
|
|
23
27
|
"url": "git://github.com/enormora/eslint-config.git"
|
|
24
28
|
},
|
|
25
29
|
"type": "module",
|
|
26
|
-
"version": "0.0.
|
|
30
|
+
"version": "0.0.38"
|
|
27
31
|
}
|
|
@@ -1,28 +1,62 @@
|
|
|
1
|
-
import typescriptParser from '@typescript-eslint/parser';
|
|
2
1
|
import typescriptPlugin from '@typescript-eslint/eslint-plugin';
|
|
3
|
-
import
|
|
4
|
-
import perfectionistPlugin from 'eslint-plugin-perfectionist';
|
|
2
|
+
import typescriptParser from '@typescript-eslint/parser';
|
|
5
3
|
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
|
|
4
|
+
import functionalPlugin from 'eslint-plugin-functional';
|
|
6
5
|
import { createNodeResolver } from 'eslint-plugin-import-x';
|
|
7
|
-
import
|
|
6
|
+
import perfectionistPlugin from 'eslint-plugin-perfectionist';
|
|
8
7
|
import { javascriptExtensions, typescriptExtensions } from '@enormora/eslint-config-base/constants.js';
|
|
8
|
+
import { createRestrictedSyntaxPlugin } from '@enormora/eslint-config-base/rule-sets/restricted-syntax.js';
|
|
9
|
+
import { baseSharedConfig } from '@enormora/eslint-config-base/presets/base/base-shared.js';
|
|
10
|
+
|
|
11
|
+
export const noTsEnumDeclarationRestriction = {
|
|
12
|
+
selector: 'TSEnumDeclaration',
|
|
13
|
+
message: 'Use a string union type instead'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const functionLikeNodes = [
|
|
17
|
+
'FunctionDeclaration',
|
|
18
|
+
'FunctionExpression',
|
|
19
|
+
'ArrowFunctionExpression',
|
|
20
|
+
'TSFunctionType',
|
|
21
|
+
'TSMethodSignature',
|
|
22
|
+
'TSDeclareFunction',
|
|
23
|
+
'TSConstructorType'
|
|
24
|
+
]
|
|
25
|
+
.join(', ');
|
|
26
|
+
|
|
27
|
+
const noInlineSignatureTypeLiteralSelector = [
|
|
28
|
+
`:matches(${functionLikeNodes}) > .params TSTypeAnnotation > TSTypeLiteral`,
|
|
29
|
+
`:matches(${functionLikeNodes}) > TSTypeAnnotation.returnType > TSTypeLiteral`
|
|
30
|
+
]
|
|
31
|
+
.join(', ');
|
|
32
|
+
|
|
33
|
+
export const noInlineSignatureTypeLiteralRestriction = {
|
|
34
|
+
selector: noInlineSignatureTypeLiteralSelector,
|
|
35
|
+
message:
|
|
36
|
+
'Inline object type literals are not allowed in function parameters or return types — extract a named type.'
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const restrictedSyntaxTypescriptPlugin = createRestrictedSyntaxPlugin([
|
|
40
|
+
'no-ts-enum-declaration',
|
|
41
|
+
'no-inline-signature-type-literal'
|
|
42
|
+
]);
|
|
9
43
|
|
|
10
44
|
function asArray(value) {
|
|
11
45
|
if (Array.isArray(value)) {
|
|
12
46
|
return value;
|
|
13
47
|
}
|
|
14
48
|
|
|
15
|
-
return [value];
|
|
49
|
+
return [ value ];
|
|
16
50
|
}
|
|
17
51
|
|
|
18
52
|
function configureWrappedCoreRule(name, optionsOverrides) {
|
|
19
|
-
const coreRuleConfig = asArray(
|
|
20
|
-
const [coreRuleSeverity, ...coreRuleOptions] = coreRuleConfig;
|
|
53
|
+
const coreRuleConfig = asArray(baseSharedConfig.rules[name]);
|
|
54
|
+
const [ coreRuleSeverity, ...coreRuleOptions ] = coreRuleConfig;
|
|
21
55
|
const options = optionsOverrides === undefined ? coreRuleOptions : asArray(optionsOverrides);
|
|
22
56
|
|
|
23
57
|
return {
|
|
24
58
|
[name]: 'off',
|
|
25
|
-
[`@typescript-eslint/${name}`]: [coreRuleSeverity, ...options]
|
|
59
|
+
[`@typescript-eslint/${name}`]: [ coreRuleSeverity, ...options ]
|
|
26
60
|
};
|
|
27
61
|
}
|
|
28
62
|
|
|
@@ -45,7 +79,7 @@ export const typescriptConfig = {
|
|
|
45
79
|
},
|
|
46
80
|
'import-x/resolver-next': [
|
|
47
81
|
createNodeResolver({
|
|
48
|
-
extensions: [...javascriptExtensions, ...typescriptExtensions]
|
|
82
|
+
extensions: [ ...javascriptExtensions, ...typescriptExtensions ]
|
|
49
83
|
}),
|
|
50
84
|
createTypeScriptImportResolver()
|
|
51
85
|
]
|
|
@@ -53,9 +87,16 @@ export const typescriptConfig = {
|
|
|
53
87
|
plugins: {
|
|
54
88
|
'@typescript-eslint': typescriptPlugin,
|
|
55
89
|
perfectionist: perfectionistPlugin,
|
|
56
|
-
functional: functionalPlugin
|
|
90
|
+
functional: functionalPlugin,
|
|
91
|
+
'restricted-syntax-typescript': restrictedSyntaxTypescriptPlugin
|
|
57
92
|
},
|
|
58
93
|
rules: {
|
|
94
|
+
'restricted-syntax-typescript/no-ts-enum-declaration': [ 'error', noTsEnumDeclarationRestriction ],
|
|
95
|
+
'restricted-syntax-typescript/no-inline-signature-type-literal': [
|
|
96
|
+
'error',
|
|
97
|
+
noInlineSignatureTypeLiteralRestriction
|
|
98
|
+
],
|
|
99
|
+
|
|
59
100
|
'@typescript-eslint/no-require-imports': 'error',
|
|
60
101
|
'@typescript-eslint/adjacent-overload-signatures': 'error',
|
|
61
102
|
'@typescript-eslint/array-type': [
|
|
@@ -65,7 +106,7 @@ export const typescriptConfig = {
|
|
|
65
106
|
}
|
|
66
107
|
],
|
|
67
108
|
'@typescript-eslint/await-thenable': 'error',
|
|
68
|
-
'@typescript-eslint/no-empty-object-type': ['error', { allowInterfaces: 'never', allowObjectTypes: 'never' }],
|
|
109
|
+
'@typescript-eslint/no-empty-object-type': [ 'error', { allowInterfaces: 'never', allowObjectTypes: 'never' } ],
|
|
69
110
|
'@typescript-eslint/no-unsafe-function-type': 'error',
|
|
70
111
|
'@typescript-eslint/no-wrapper-object-types': 'error',
|
|
71
112
|
'@typescript-eslint/no-restricted-types': [
|
|
@@ -93,17 +134,17 @@ export const typescriptConfig = {
|
|
|
93
134
|
'error',
|
|
94
135
|
{
|
|
95
136
|
selector: 'parameter',
|
|
96
|
-
format: ['camelCase'],
|
|
137
|
+
format: [ 'camelCase' ],
|
|
97
138
|
leadingUnderscore: 'allow',
|
|
98
139
|
trailingUnderscore: 'forbid'
|
|
99
140
|
},
|
|
100
141
|
{
|
|
101
142
|
selector: 'typeLike',
|
|
102
|
-
format: ['PascalCase']
|
|
143
|
+
format: [ 'PascalCase' ]
|
|
103
144
|
},
|
|
104
145
|
{
|
|
105
146
|
selector: 'interface',
|
|
106
|
-
format: ['PascalCase'],
|
|
147
|
+
format: [ 'PascalCase' ],
|
|
107
148
|
custom: {
|
|
108
149
|
regex: '^I[A-Z]',
|
|
109
150
|
match: false
|
|
@@ -197,23 +238,23 @@ export const typescriptConfig = {
|
|
|
197
238
|
'@typescript-eslint/strict-void-return': 'error',
|
|
198
239
|
'@typescript-eslint/only-throw-error': 'error',
|
|
199
240
|
'@typescript-eslint/prefer-optional-chain': 'error',
|
|
200
|
-
'@typescript-eslint/prefer-nullish-coalescing': ['error', { ignoreIfStatements: true }],
|
|
201
|
-
'@typescript-eslint/class-literal-property-style': ['error', 'fields'],
|
|
202
|
-
'@typescript-eslint/consistent-type-definitions': ['error', 'type'],
|
|
241
|
+
'@typescript-eslint/prefer-nullish-coalescing': [ 'error', { ignoreIfStatements: true } ],
|
|
242
|
+
'@typescript-eslint/class-literal-property-style': [ 'error', 'fields' ],
|
|
243
|
+
'@typescript-eslint/consistent-type-definitions': [ 'error', 'type' ],
|
|
203
244
|
...configureWrappedCoreRule('default-param-last'),
|
|
204
245
|
...configureWrappedCoreRule('dot-notation'),
|
|
205
246
|
'@typescript-eslint/explicit-member-accessibility': 'off',
|
|
206
247
|
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
207
248
|
'@typescript-eslint/init-declarations': 'off',
|
|
208
|
-
'@typescript-eslint/method-signature-style': ['error', 'property'],
|
|
249
|
+
'@typescript-eslint/method-signature-style': [ 'error', 'property' ],
|
|
209
250
|
'@typescript-eslint/no-base-to-string': 'error',
|
|
210
251
|
...configureWrappedCoreRule('no-dupe-class-members'),
|
|
211
|
-
'@typescript-eslint/no-dynamic-delete': ['error'],
|
|
212
|
-
'@typescript-eslint/no-extra-non-null-assertion': ['error'],
|
|
213
|
-
'@typescript-eslint/no-floating-promises': ['error'],
|
|
214
|
-
'@typescript-eslint/no-implied-eval': ['error'],
|
|
215
|
-
'@typescript-eslint/no-invalid-this': ['error'],
|
|
216
|
-
'@typescript-eslint/no-invalid-void-type': ['error'],
|
|
252
|
+
'@typescript-eslint/no-dynamic-delete': [ 'error' ],
|
|
253
|
+
'@typescript-eslint/no-extra-non-null-assertion': [ 'error' ],
|
|
254
|
+
'@typescript-eslint/no-floating-promises': [ 'error' ],
|
|
255
|
+
'@typescript-eslint/no-implied-eval': [ 'error' ],
|
|
256
|
+
'@typescript-eslint/no-invalid-this': [ 'error' ],
|
|
257
|
+
'@typescript-eslint/no-invalid-void-type': [ 'error' ],
|
|
217
258
|
...configureWrappedCoreRule('no-magic-numbers', {
|
|
218
259
|
ignoreEnums: false,
|
|
219
260
|
ignoreNumericLiteralTypes: true,
|
|
@@ -224,22 +265,22 @@ export const typescriptConfig = {
|
|
|
224
265
|
detectObjects: false,
|
|
225
266
|
enforceConst: false,
|
|
226
267
|
ignoreClassFieldInitialValues: false,
|
|
227
|
-
ignore: [-1, 0, 1]
|
|
268
|
+
ignore: [ -1, 0, 1 ]
|
|
228
269
|
}),
|
|
229
|
-
'@typescript-eslint/no-namespace': ['error'],
|
|
230
|
-
'@typescript-eslint/no-non-null-asserted-optional-chain': ['error'],
|
|
231
|
-
'@typescript-eslint/no-non-null-assertion': ['error'],
|
|
232
|
-
'@typescript-eslint/no-unnecessary-boolean-literal-compare': ['error'],
|
|
233
|
-
'@typescript-eslint/no-unnecessary-condition': ['error'],
|
|
234
|
-
'@typescript-eslint/no-unsafe-assignment': ['error'],
|
|
235
|
-
'@typescript-eslint/no-unsafe-call': ['error'],
|
|
236
|
-
'@typescript-eslint/no-unsafe-member-access': ['error'],
|
|
237
|
-
'@typescript-eslint/no-unsafe-return': ['error'],
|
|
270
|
+
'@typescript-eslint/no-namespace': [ 'error' ],
|
|
271
|
+
'@typescript-eslint/no-non-null-asserted-optional-chain': [ 'error' ],
|
|
272
|
+
'@typescript-eslint/no-non-null-assertion': [ 'error' ],
|
|
273
|
+
'@typescript-eslint/no-unnecessary-boolean-literal-compare': [ 'error' ],
|
|
274
|
+
'@typescript-eslint/no-unnecessary-condition': [ 'error' ],
|
|
275
|
+
'@typescript-eslint/no-unsafe-assignment': [ 'error' ],
|
|
276
|
+
'@typescript-eslint/no-unsafe-call': [ 'error' ],
|
|
277
|
+
'@typescript-eslint/no-unsafe-member-access': [ 'error' ],
|
|
278
|
+
'@typescript-eslint/no-unsafe-return': [ 'error' ],
|
|
238
279
|
...configureWrappedCoreRule('no-use-before-define'),
|
|
239
|
-
'@typescript-eslint/prefer-as-const': ['error'],
|
|
280
|
+
'@typescript-eslint/prefer-as-const': [ 'error' ],
|
|
240
281
|
// disabled because we use functional/prefer-immutable-types.md
|
|
241
|
-
'@typescript-eslint/prefer-readonly-parameter-types': ['off'],
|
|
242
|
-
'@typescript-eslint/prefer-reduce-type-parameter': ['error'],
|
|
282
|
+
'@typescript-eslint/prefer-readonly-parameter-types': [ 'off' ],
|
|
283
|
+
'@typescript-eslint/prefer-reduce-type-parameter': [ 'error' ],
|
|
243
284
|
'@typescript-eslint/ban-ts-comment': [
|
|
244
285
|
'error',
|
|
245
286
|
{
|
|
@@ -250,21 +291,21 @@ export const typescriptConfig = {
|
|
|
250
291
|
minimumDescriptionLength: 10
|
|
251
292
|
}
|
|
252
293
|
],
|
|
253
|
-
'@typescript-eslint/restrict-template-expressions': ['off'],
|
|
254
|
-
'@typescript-eslint/return-await': ['off'],
|
|
255
|
-
'@typescript-eslint/switch-exhaustiveness-check': ['error'],
|
|
256
|
-
'@typescript-eslint/unbound-method': ['off'],
|
|
257
|
-
'@typescript-eslint/ban-tslint-comment': ['off'],
|
|
258
|
-
'@typescript-eslint/no-confusing-non-null-assertion': ['error'],
|
|
259
|
-
'@typescript-eslint/prefer-enum-initializers': ['off'],
|
|
260
|
-
'@typescript-eslint/prefer-literal-enum-member': ['off'],
|
|
294
|
+
'@typescript-eslint/restrict-template-expressions': [ 'off' ],
|
|
295
|
+
'@typescript-eslint/return-await': [ 'off' ],
|
|
296
|
+
'@typescript-eslint/switch-exhaustiveness-check': [ 'error' ],
|
|
297
|
+
'@typescript-eslint/unbound-method': [ 'off' ],
|
|
298
|
+
'@typescript-eslint/ban-tslint-comment': [ 'off' ],
|
|
299
|
+
'@typescript-eslint/no-confusing-non-null-assertion': [ 'error' ],
|
|
300
|
+
'@typescript-eslint/prefer-enum-initializers': [ 'off' ],
|
|
301
|
+
'@typescript-eslint/prefer-literal-enum-member': [ 'off' ],
|
|
261
302
|
...configureWrappedCoreRule('no-redeclare'),
|
|
262
303
|
...configureWrappedCoreRule('no-shadow'),
|
|
263
304
|
'@typescript-eslint/consistent-type-imports': [
|
|
264
305
|
'error',
|
|
265
306
|
{ prefer: 'type-imports', fixStyle: 'inline-type-imports', disallowTypeAnnotations: true }
|
|
266
307
|
],
|
|
267
|
-
'@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],
|
|
308
|
+
'@typescript-eslint/consistent-indexed-object-style': [ 'error', 'record' ],
|
|
268
309
|
'@typescript-eslint/no-loop-func': 'off',
|
|
269
310
|
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
|
|
270
311
|
'@typescript-eslint/no-confusing-void-expression': [
|
|
@@ -283,7 +324,7 @@ export const typescriptConfig = {
|
|
|
283
324
|
'@typescript-eslint/consistent-type-exports': 'error',
|
|
284
325
|
'@typescript-eslint/no-redundant-type-constituents': 'error',
|
|
285
326
|
'@typescript-eslint/no-useless-empty-export': 'error',
|
|
286
|
-
'@typescript-eslint/consistent-generic-constructors': ['error', 'constructor'],
|
|
327
|
+
'@typescript-eslint/consistent-generic-constructors': [ 'error', 'constructor' ],
|
|
287
328
|
'@typescript-eslint/no-duplicate-enum-values': 'error',
|
|
288
329
|
'@typescript-eslint/parameter-properties': 'off',
|
|
289
330
|
'@typescript-eslint/no-unsafe-declaration-merging': 'error',
|
|
@@ -331,12 +372,12 @@ export const typescriptConfig = {
|
|
|
331
372
|
replace: 'readonly $1'
|
|
332
373
|
},
|
|
333
374
|
{
|
|
334
|
-
pattern: '^(
|
|
335
|
-
replace: '
|
|
375
|
+
pattern: '^(\\[.+\\])$',
|
|
376
|
+
replace: 'readonly $1'
|
|
336
377
|
},
|
|
337
378
|
{
|
|
338
|
-
pattern: '^(.+)
|
|
339
|
-
replace: 'Readonly<$
|
|
379
|
+
pattern: '^(Map|Set)<(.+)>$',
|
|
380
|
+
replace: 'Readonly$1<$2>'
|
|
340
381
|
}
|
|
341
382
|
]
|
|
342
383
|
},
|
|
@@ -344,16 +385,15 @@ export const typescriptConfig = {
|
|
|
344
385
|
enforcement: 'ReadonlyShallow'
|
|
345
386
|
},
|
|
346
387
|
returnTypes: {
|
|
347
|
-
enforcement: '
|
|
388
|
+
enforcement: 'None'
|
|
348
389
|
},
|
|
349
390
|
variables: {
|
|
350
|
-
enforcement: '
|
|
351
|
-
ignoreInFunctions: true
|
|
391
|
+
enforcement: 'None'
|
|
352
392
|
}
|
|
353
393
|
}
|
|
354
394
|
],
|
|
355
395
|
'functional/prefer-tacit': 'error',
|
|
356
|
-
'functional/readonly-type': ['error', 'keyword'],
|
|
396
|
+
'functional/readonly-type': [ 'error', 'keyword' ],
|
|
357
397
|
'functional/no-class-inheritance': 'off',
|
|
358
398
|
'functional/type-declaration-immutability': [
|
|
359
399
|
'error',
|
|
@@ -365,12 +405,16 @@ export const typescriptConfig = {
|
|
|
365
405
|
comparator: 'AtLeast',
|
|
366
406
|
fixer: [
|
|
367
407
|
{
|
|
368
|
-
pattern: '^(
|
|
369
|
-
replace: '
|
|
408
|
+
pattern: '^([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\[\\])$',
|
|
409
|
+
replace: 'readonly $1'
|
|
370
410
|
},
|
|
371
411
|
{
|
|
372
|
-
pattern: '^(
|
|
373
|
-
replace: '
|
|
412
|
+
pattern: '^(\\[.+\\])$',
|
|
413
|
+
replace: 'readonly $1'
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
pattern: '^(Map|Set)<(.+)>$',
|
|
417
|
+
replace: 'Readonly$1<$2>'
|
|
374
418
|
}
|
|
375
419
|
]
|
|
376
420
|
}
|
|
@@ -387,7 +431,9 @@ export const typescriptConfig = {
|
|
|
387
431
|
ts: 'ignorePackages',
|
|
388
432
|
mts: 'ignorePackages',
|
|
389
433
|
cts: 'ignorePackages',
|
|
390
|
-
js: '
|
|
434
|
+
js: 'never',
|
|
435
|
+
mjs: 'never',
|
|
436
|
+
cjs: 'never',
|
|
391
437
|
json: 'ignorePackages'
|
|
392
438
|
}
|
|
393
439
|
],
|
package/readme.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# `@enormora/eslint-config-typescript`
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@enormora/eslint-config-typescript)
|
|
4
|
+
|
|
3
5
|
Config preset for typescript, enabling specific rules and compiler settings.
|
|
4
6
|
|
|
5
7
|
## Install & Setup
|
|
@@ -13,17 +15,17 @@ npm install --save-dev @enormora/eslint-config-base @enormora/eslint-config-type
|
|
|
13
15
|
Create an ESLint configuration file (e.g., `eslint.config.js`) in your project and add the base and node config to the configuration array:
|
|
14
16
|
|
|
15
17
|
```javascript
|
|
16
|
-
import { baseConfig } from
|
|
17
|
-
import { typescriptConfig } from
|
|
18
|
+
import { baseConfig } from "@enormora/eslint-config-base";
|
|
19
|
+
import { typescriptConfig } from "@enormora/eslint-config-typescript";
|
|
18
20
|
|
|
19
21
|
export default [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
{
|
|
23
|
+
ignores: ["dist/**/*"],
|
|
24
|
+
},
|
|
25
|
+
...baseConfig,
|
|
26
|
+
{
|
|
27
|
+
...typescriptConfig,
|
|
28
|
+
files: ["**/*.ts"],
|
|
29
|
+
},
|
|
28
30
|
];
|
|
29
31
|
```
|
package/sbom.cdx.json
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
|
|
3
|
+
"bomFormat": "CycloneDX",
|
|
4
|
+
"specVersion": "1.6",
|
|
5
|
+
"version": 1,
|
|
6
|
+
"metadata": {
|
|
7
|
+
"tools": {
|
|
8
|
+
"components": [
|
|
9
|
+
{
|
|
10
|
+
"type": "application",
|
|
11
|
+
"name": "packtory",
|
|
12
|
+
"version": "0.0.15"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"component": {
|
|
17
|
+
"type": "library",
|
|
18
|
+
"name": "@enormora/eslint-config-typescript",
|
|
19
|
+
"version": "0.0.38",
|
|
20
|
+
"bom-ref": "pkg:npm/@enormora/eslint-config-typescript@0.0.38",
|
|
21
|
+
"purl": "pkg:npm/@enormora/eslint-config-typescript@0.0.38"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"components": [
|
|
25
|
+
{
|
|
26
|
+
"type": "library",
|
|
27
|
+
"name": "@enormora/eslint-config-base",
|
|
28
|
+
"version": "0.0.33",
|
|
29
|
+
"bom-ref": "pkg:npm/@enormora/eslint-config-base@0.0.33",
|
|
30
|
+
"scope": "optional",
|
|
31
|
+
"licenses": [
|
|
32
|
+
{
|
|
33
|
+
"expression": "MIT"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"purl": "pkg:npm/@enormora/eslint-config-base@0.0.33"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "library",
|
|
40
|
+
"name": "@typescript-eslint/eslint-plugin",
|
|
41
|
+
"version": "8.59.4",
|
|
42
|
+
"bom-ref": "pkg:npm/@typescript-eslint/eslint-plugin@8.59.4",
|
|
43
|
+
"scope": "required",
|
|
44
|
+
"licenses": [
|
|
45
|
+
{
|
|
46
|
+
"expression": "MIT"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"purl": "pkg:npm/@typescript-eslint/eslint-plugin@8.59.4"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "library",
|
|
53
|
+
"name": "@typescript-eslint/parser",
|
|
54
|
+
"version": "8.59.4",
|
|
55
|
+
"bom-ref": "pkg:npm/@typescript-eslint/parser@8.59.4",
|
|
56
|
+
"scope": "required",
|
|
57
|
+
"licenses": [
|
|
58
|
+
{
|
|
59
|
+
"expression": "MIT"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"purl": "pkg:npm/@typescript-eslint/parser@8.59.4"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "library",
|
|
66
|
+
"name": "eslint-import-resolver-typescript",
|
|
67
|
+
"version": "4.4.4",
|
|
68
|
+
"bom-ref": "pkg:npm/eslint-import-resolver-typescript@4.4.4",
|
|
69
|
+
"scope": "required",
|
|
70
|
+
"licenses": [
|
|
71
|
+
{
|
|
72
|
+
"expression": "ISC"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"purl": "pkg:npm/eslint-import-resolver-typescript@4.4.4"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "library",
|
|
79
|
+
"name": "eslint-plugin-functional",
|
|
80
|
+
"version": "9.0.4",
|
|
81
|
+
"bom-ref": "pkg:npm/eslint-plugin-functional@9.0.4",
|
|
82
|
+
"scope": "required",
|
|
83
|
+
"licenses": [
|
|
84
|
+
{
|
|
85
|
+
"expression": "MIT"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"purl": "pkg:npm/eslint-plugin-functional@9.0.4"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"type": "library",
|
|
92
|
+
"name": "eslint-plugin-import-x",
|
|
93
|
+
"version": "4.16.2",
|
|
94
|
+
"bom-ref": "pkg:npm/eslint-plugin-import-x@4.16.2",
|
|
95
|
+
"scope": "required",
|
|
96
|
+
"licenses": [
|
|
97
|
+
{
|
|
98
|
+
"expression": "MIT"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"purl": "pkg:npm/eslint-plugin-import-x@4.16.2"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"type": "library",
|
|
105
|
+
"name": "eslint-plugin-perfectionist",
|
|
106
|
+
"version": "5.9.0",
|
|
107
|
+
"bom-ref": "pkg:npm/eslint-plugin-perfectionist@5.9.0",
|
|
108
|
+
"scope": "required",
|
|
109
|
+
"licenses": [
|
|
110
|
+
{
|
|
111
|
+
"expression": "MIT"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"purl": "pkg:npm/eslint-plugin-perfectionist@5.9.0"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"dependencies": [
|
|
118
|
+
{
|
|
119
|
+
"ref": "pkg:npm/@enormora/eslint-config-base@0.0.33"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"ref": "pkg:npm/@enormora/eslint-config-typescript@0.0.38",
|
|
123
|
+
"dependsOn": [
|
|
124
|
+
"pkg:npm/@enormora/eslint-config-base@0.0.33",
|
|
125
|
+
"pkg:npm/@typescript-eslint/eslint-plugin@8.59.4",
|
|
126
|
+
"pkg:npm/@typescript-eslint/parser@8.59.4",
|
|
127
|
+
"pkg:npm/eslint-import-resolver-typescript@4.4.4",
|
|
128
|
+
"pkg:npm/eslint-plugin-functional@9.0.4",
|
|
129
|
+
"pkg:npm/eslint-plugin-import-x@4.16.2",
|
|
130
|
+
"pkg:npm/eslint-plugin-perfectionist@5.9.0"
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"ref": "pkg:npm/@typescript-eslint/eslint-plugin@8.59.4"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"ref": "pkg:npm/@typescript-eslint/parser@8.59.4"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"ref": "pkg:npm/eslint-import-resolver-typescript@4.4.4"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"ref": "pkg:npm/eslint-plugin-functional@9.0.4"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"ref": "pkg:npm/eslint-plugin-import-x@4.16.2"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"ref": "pkg:npm/eslint-plugin-perfectionist@5.9.0"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|