@code-pushup/eslint-plugin 0.81.0 → 0.83.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/eslint-plugin",
3
- "version": "0.81.0",
3
+ "version": "0.83.0",
4
4
  "license": "MIT",
5
5
  "description": "Code PushUp plugin for detecting problems in source code using ESLint.📋",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-eslint#readme",
@@ -39,8 +39,8 @@
39
39
  "type": "module",
40
40
  "dependencies": {
41
41
  "glob": "^11.0.0",
42
- "@code-pushup/utils": "0.81.0",
43
- "@code-pushup/models": "0.81.0",
42
+ "@code-pushup/utils": "0.83.0",
43
+ "@code-pushup/models": "0.83.0",
44
44
  "zod": "^4.0.5"
45
45
  },
46
46
  "peerDependencies": {
package/src/lib/config.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { z } from 'zod';
2
2
  import { pluginArtifactOptionsSchema, pluginScoreTargetsSchema, } from '@code-pushup/models';
3
3
  import { toArray } from '@code-pushup/utils';
4
- const patternsSchema = z
5
- .union([z.string(), z.array(z.string()).min(1)])
6
- .describe('Lint target files. May contain file paths, directory paths or glob patterns');
7
- const eslintrcSchema = z.string().describe('Path to ESLint config file');
4
+ const patternsSchema = z.union([z.string(), z.array(z.string()).min(1)]).meta({
5
+ description: 'Lint target files. May contain file paths, directory paths or glob patterns',
6
+ });
7
+ const eslintrcSchema = z
8
+ .string()
9
+ .meta({ description: 'Path to ESLint config file' });
8
10
  const eslintTargetObjectSchema = z.object({
9
11
  eslintrc: eslintrcSchema.optional(),
10
12
  patterns: patternsSchema,
@@ -13,10 +15,12 @@ export const eslintTargetSchema = z
13
15
  .union([patternsSchema, eslintTargetObjectSchema])
14
16
  .transform((target) => typeof target === 'string' || Array.isArray(target)
15
17
  ? { patterns: target }
16
- : target);
18
+ : target)
19
+ .meta({ title: 'ESLintTarget' });
17
20
  export const eslintPluginConfigSchema = z
18
21
  .union([eslintTargetSchema, z.array(eslintTargetSchema).min(1)])
19
- .transform(toArray);
22
+ .transform(toArray)
23
+ .meta({ title: 'ESLintPluginConfig' });
20
24
  const customGroupRulesSchema = z
21
25
  .union([
22
26
  z
@@ -28,17 +32,24 @@ const customGroupRulesSchema = z
28
32
  error: 'Custom group rules must contain at least 1 element',
29
33
  }),
30
34
  ])
31
- .describe('Array of rule IDs with equal weights or object mapping rule IDs to specific weights');
35
+ .meta({
36
+ description: 'Array of rule IDs with equal weights or object mapping rule IDs to specific weights',
37
+ });
32
38
  const customGroupSchema = z.object({
33
- slug: z.string().describe('Unique group identifier'),
34
- title: z.string().describe('Group display title'),
35
- description: z.string().describe('Group metadata').optional(),
36
- docsUrl: z.string().describe('Group documentation site').optional(),
39
+ slug: z.string().meta({ description: 'Unique group identifier' }),
40
+ title: z.string().meta({ description: 'Group display title' }),
41
+ description: z.string().meta({ description: 'Group metadata' }).optional(),
42
+ docsUrl: z
43
+ .string()
44
+ .meta({ description: 'Group documentation site' })
45
+ .optional(),
37
46
  rules: customGroupRulesSchema,
38
47
  });
39
- export const eslintPluginOptionsSchema = z.object({
48
+ export const eslintPluginOptionsSchema = z
49
+ .object({
40
50
  groups: z.array(customGroupSchema).optional(),
41
51
  artifacts: pluginArtifactOptionsSchema.optional(),
42
52
  scoreTargets: pluginScoreTargetsSchema,
43
- });
53
+ })
54
+ .meta({ title: 'ESLintPluginOptions' });
44
55
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,cAAc,GAAG,CAAC;KACrB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,QAAQ,CACP,6EAA6E,CAC9E,CAAC;AAEJ,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAEzE,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,cAAc;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,KAAK,CAAC,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;KACjD,SAAS,CACR,CAAC,MAAM,EAAsB,EAAE,CAC7B,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;IACtB,CAAC,CAAC,MAAM,CACb,CAAC;AAGJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/D,SAAS,CAAC,OAAO,CAAC,CAAC;AAQtB,MAAM,sBAAsB,GAAG,CAAC;KAC7B,KAAK,CAAC;IACL,CAAC;SACE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,oDAAoD,CAAC;IAC/D,CAAC;SACE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChD,KAAK,EAAE,oDAAoD;KAC5D,CAAC;CACL,CAAC;KACD,QAAQ,CACP,qFAAqF,CACtF,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;IACnE,KAAK,EAAE,sBAAsB;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,wBAAwB;CACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PluginConfig } from '@code-pushup/models';
1
+ import { type PluginConfig } from '@code-pushup/models';
2
2
  import { type ESLintPluginConfig, type ESLintPluginOptions } from './config.js';
3
3
  /**
4
4
  * Instantiates Code PushUp ESLint plugin for use in core config.
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'node:module';
2
- import { parseSchema } from '@code-pushup/utils';
2
+ import { validate } from '@code-pushup/models';
3
3
  import { eslintPluginConfigSchema, eslintPluginOptionsSchema, } from './config.js';
4
4
  import { ESLINT_PLUGIN_SLUG } from './constants.js';
5
5
  import { listAuditsAndGroups } from './meta/index.js';
@@ -26,14 +26,8 @@ import { createRunnerFunction } from './runner/index.js';
26
26
  * @returns Plugin configuration as a promise.
27
27
  */
28
28
  export async function eslintPlugin(config, options) {
29
- const targets = parseSchema(eslintPluginConfigSchema, config, {
30
- schemaType: 'ESLint plugin config',
31
- });
32
- const { groups: customGroups, artifacts, scoreTargets, } = options
33
- ? parseSchema(eslintPluginOptionsSchema, options, {
34
- schemaType: 'ESLint plugin options',
35
- })
36
- : {};
29
+ const targets = validate(eslintPluginConfigSchema, config);
30
+ const { groups: customGroups, artifacts, scoreTargets, } = options ? validate(eslintPluginOptionsSchema, options) : {};
37
31
  const { audits, groups } = await listAuditsAndGroups(targets, customGroups);
38
32
  const packageJson = createRequire(import.meta.url)('../../package.json');
39
33
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-plugin.js","sourceRoot":"","sources":["../../../src/lib/eslint-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAGL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,OAA6B;IAE7B,MAAM,OAAO,GAAG,WAAW,CAAC,wBAAwB,EAAE,MAAM,EAAE;QAC5D,UAAU,EAAE,sBAAsB;KACnC,CAAC,CAAC;IAEH,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,SAAS,EACT,YAAY,GACb,GAAG,OAAO;QACT,CAAC,CAAC,WAAW,CAAC,yBAAyB,EAAE,OAAO,EAAE;YAC9C,UAAU,EAAE,uBAAuB;SACpC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,0DAA0D;QACnE,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAE5B,MAAM;QACN,MAAM;QAEN,MAAM,EAAE,MAAM,oBAAoB,CAAC;YACjC,MAAM;YACN,OAAO;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC;QACF,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"eslint-plugin.js","sourceRoot":"","sources":["../../../src/lib/eslint-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAGL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,OAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAE3D,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,SAAS,EACT,YAAY,GACb,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,0DAA0D;QACnE,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAE5B,MAAM;QACN,MAAM;QAEN,MAAM,EAAE,MAAM,oBAAoB,CAAC;YACjC,MAAM;YACN,OAAO;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC;QACF,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}