@code-pushup/eslint-plugin 0.76.0 → 0.78.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.76.0",
3
+ "version": "0.78.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",
@@ -38,9 +38,9 @@
38
38
  },
39
39
  "type": "module",
40
40
  "dependencies": {
41
- "@code-pushup/utils": "0.76.0",
42
- "@code-pushup/models": "0.76.0",
43
- "yargs": "^17.7.2",
41
+ "glob": "^11.0.0",
42
+ "@code-pushup/utils": "0.78.0",
43
+ "@code-pushup/models": "0.78.0",
44
44
  "zod": "^4.0.5"
45
45
  },
46
46
  "peerDependencies": {
@@ -56,7 +56,7 @@
56
56
  "src",
57
57
  "!**/*.tsbuildinfo"
58
58
  ],
59
+ "types": "./src/index.d.ts",
59
60
  "module": "./src/index.js",
60
- "main": "./src/index.js",
61
- "types": "./src/index.d.ts"
61
+ "main": "./src/index.js"
62
62
  }
package/src/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { eslintPlugin } from './lib/eslint-plugin.js';
2
2
  export default eslintPlugin;
3
3
  export type { ESLintPluginConfig } from './lib/config.js';
4
+ export { ESLINT_PLUGIN_SLUG } from './lib/constants.js';
4
5
  export { eslintConfigFromAllNxProjects, eslintConfigFromNxProject, eslintConfigFromNxProjectAndDeps, eslintConfigFromNxProjects, } from './lib/nx/index.js';
package/src/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { eslintPlugin } from './lib/eslint-plugin.js';
2
2
  export default eslintPlugin;
3
+ export { ESLINT_PLUGIN_SLUG } from './lib/constants.js';
3
4
  export { eslintConfigFromAllNxProjects, eslintConfigFromNxProject, eslintConfigFromNxProjectAndDeps, eslintConfigFromNxProjects, } from './lib/nx/index.js';
4
5
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,eAAe,YAAY,CAAC;AAI5B,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,eAAe,YAAY,CAAC;AAG5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC"}
@@ -59,6 +59,13 @@ export declare const eslintPluginOptionsSchema: z.ZodObject<{
59
59
  docsUrl: z.ZodOptional<z.ZodString>;
60
60
  rules: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodNumber>]>;
61
61
  }, z.core.$strip>>>;
62
+ artifacts: z.ZodOptional<z.ZodObject<{
63
+ generateArtifactsCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
64
+ command: z.ZodString;
65
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ }, z.core.$strip>]>>;
67
+ artifactsPaths: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
68
+ }, z.core.$strip>>;
62
69
  }, z.core.$strip>;
63
70
  export type ESLintPluginOptions = z.infer<typeof eslintPluginOptionsSchema>;
64
71
  export {};
package/src/lib/config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { pluginArtifactOptionsSchema } from '@code-pushup/models';
2
3
  import { toArray } from '@code-pushup/utils';
3
4
  const patternsSchema = z
4
5
  .union([z.string(), z.array(z.string()).min(1)])
@@ -37,5 +38,6 @@ const customGroupSchema = z.object({
37
38
  });
38
39
  export const eslintPluginOptionsSchema = z.object({
39
40
  groups: z.array(customGroupSchema).optional(),
41
+ artifacts: pluginArtifactOptionsSchema.optional(),
40
42
  });
41
43
  //# 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,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;CAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,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;CAClD,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const ESLINT_PLUGIN_SLUG = "eslint";
@@ -0,0 +1,2 @@
1
+ export const ESLINT_PLUGIN_SLUG = 'eslint';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { createRequire } from 'node:module';
2
- import path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
2
  import { parseSchema } from '@code-pushup/utils';
5
3
  import { eslintPluginConfigSchema, eslintPluginOptionsSchema, } from './config.js';
4
+ import { ESLINT_PLUGIN_SLUG } from './constants.js';
6
5
  import { listAuditsAndGroups } from './meta/index.js';
7
- import { createRunnerConfig } from './runner/index.js';
6
+ import { createRunnerFunction } from './runner/index.js';
8
7
  /**
9
8
  * Instantiates Code PushUp ESLint plugin for use in core config.
10
9
  *
@@ -30,16 +29,15 @@ export async function eslintPlugin(config, options) {
30
29
  const targets = parseSchema(eslintPluginConfigSchema, config, {
31
30
  schemaType: 'ESLint plugin config',
32
31
  });
33
- const customGroups = options
32
+ const { groups: customGroups, artifacts } = options
34
33
  ? parseSchema(eslintPluginOptionsSchema, options, {
35
34
  schemaType: 'ESLint plugin options',
36
- }).groups
37
- : undefined;
35
+ })
36
+ : {};
38
37
  const { audits, groups } = await listAuditsAndGroups(targets, customGroups);
39
- const runnerScriptPath = path.join(fileURLToPath(path.dirname(import.meta.url)), '..', 'bin.js');
40
38
  const packageJson = createRequire(import.meta.url)('../../package.json');
41
39
  return {
42
- slug: 'eslint',
40
+ slug: ESLINT_PLUGIN_SLUG,
43
41
  title: 'ESLint',
44
42
  icon: 'eslint',
45
43
  description: 'Official Code PushUp ESLint plugin',
@@ -48,7 +46,11 @@ export async function eslintPlugin(config, options) {
48
46
  version: packageJson.version,
49
47
  audits,
50
48
  groups,
51
- runner: await createRunnerConfig(runnerScriptPath, audits, targets),
49
+ runner: await createRunnerFunction({
50
+ audits,
51
+ targets,
52
+ ...(artifacts ? { artifacts } : {}),
53
+ }),
52
54
  };
53
55
  }
54
56
  //# sourceMappingURL=eslint-plugin.js.map
@@ -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;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAGL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;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,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,WAAW,CAAC,yBAAyB,EAAE,OAAO,EAAE;YAC9C,UAAU,EAAE,uBAAuB;SACpC,CAAC,CAAC,MAAM;QACX,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,QAAQ,CACT,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,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,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;KACpE,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;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,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO;QACjD,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;KACH,CAAC;AACJ,CAAC"}
@@ -1,5 +1,21 @@
1
+ import { stringifyError, ui } from '@code-pushup/utils';
1
2
  import { filterProjectGraph } from './filter-project-graph.js';
2
3
  import { nxProjectsToConfig } from './projects-to-config.js';
4
+ /**
5
+ * Resolves the cached project graph for the current Nx workspace.
6
+ * First tries to read cache and if not possible, go for the async creation.
7
+ */
8
+ async function resolveCachedProjectGraph() {
9
+ const { readCachedProjectGraph, createProjectGraphAsync } = await import('@nx/devkit');
10
+ try {
11
+ return readCachedProjectGraph();
12
+ }
13
+ catch (error) {
14
+ ui().logger.info(`Could not read cached project graph, falling back to async creation.
15
+ ${stringifyError(error)}`);
16
+ return await createProjectGraphAsync({ exitOnError: false });
17
+ }
18
+ }
3
19
  /**
4
20
  * Finds all Nx projects in workspace and converts their lint configurations to Code PushUp ESLint plugin parameters.
5
21
  *
@@ -27,8 +43,7 @@ import { nxProjectsToConfig } from './projects-to-config.js';
27
43
  * @returns ESLint config and patterns, intended to be passed to {@link eslintPlugin}
28
44
  */
29
45
  export async function eslintConfigFromAllNxProjects(options = {}) {
30
- const { createProjectGraphAsync } = await import('@nx/devkit');
31
- const projectGraph = await createProjectGraphAsync({ exitOnError: false });
46
+ const projectGraph = await resolveCachedProjectGraph();
32
47
  const filteredProjectGraph = filterProjectGraph(projectGraph, options.exclude);
33
48
  return nxProjectsToConfig(filteredProjectGraph);
34
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find-all-projects.js","sourceRoot":"","sources":["../../../../src/lib/nx/find-all-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,UAAkC,EAAE;IAEpC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,kBAAkB,CAC7C,YAAY,EACZ,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"find-all-projects.js","sourceRoot":"","sources":["../../../../src/lib/nx/find-all-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,KAAK,UAAU,yBAAyB;IACtC,MAAM,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CACtE,YAAY,CACb,CAAC;IACF,IAAI,CAAC;QACH,OAAO,sBAAsB,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACd;QACE,cAAc,CAAC,KAAK,CAAC,EAAE,CAC1B,CAAC;QACF,OAAO,MAAM,uBAAuB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,UAAkC,EAAE;IAEpC,MAAM,YAAY,GAAG,MAAM,yBAAyB,EAAE,CAAC;IACvD,MAAM,oBAAoB,GAAG,kBAAkB,CAC7C,YAAY,EACZ,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC"}
@@ -1,4 +1,7 @@
1
- import type { Audit, RunnerConfig, RunnerFilesPaths } from '@code-pushup/models';
1
+ import type { Audit, PluginArtifactOptions, RunnerFunction } from '@code-pushup/models';
2
2
  import type { ESLintTarget } from '../config.js';
3
- export declare function executeRunner({ runnerConfigPath, runnerOutputPath, }: RunnerFilesPaths): Promise<void>;
4
- export declare function createRunnerConfig(scriptPath: string, audits: Audit[], targets: ESLintTarget[]): Promise<RunnerConfig>;
3
+ export declare function createRunnerFunction(options: {
4
+ audits: Audit[];
5
+ targets: ESLintTarget[];
6
+ artifacts?: PluginArtifactOptions;
7
+ }): RunnerFunction;
@@ -1,38 +1,27 @@
1
- import { writeFile } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { asyncSequential, createRunnerFiles, ensureDirectoryExists, filePathToCliArg, objectToCliArgs, readJsonFile, ui, } from '@code-pushup/utils';
1
+ import { asyncSequential, ui } from '@code-pushup/utils';
4
2
  import { lint } from './lint.js';
5
3
  import { lintResultsToAudits, mergeLinterOutputs } from './transform.js';
6
- export async function executeRunner({ runnerConfigPath, runnerOutputPath, }) {
7
- const { slugs, targets } = await readJsonFile(runnerConfigPath);
8
- ui().logger.log(`ESLint plugin executing ${targets.length} lint targets`);
9
- const linterOutputs = await asyncSequential(targets, lint);
10
- const lintResults = mergeLinterOutputs(linterOutputs);
11
- const failedAudits = lintResultsToAudits(lintResults);
12
- const audits = slugs.map((slug) => failedAudits.find(audit => audit.slug === slug) ?? {
13
- slug,
14
- score: 1,
15
- value: 0,
16
- displayValue: 'passed',
17
- details: { issues: [] },
18
- });
19
- await ensureDirectoryExists(path.dirname(runnerOutputPath));
20
- await writeFile(runnerOutputPath, JSON.stringify(audits));
21
- }
22
- export async function createRunnerConfig(scriptPath, audits, targets) {
4
+ import { loadArtifacts } from './utils.js';
5
+ export function createRunnerFunction(options) {
6
+ const { audits, targets, artifacts } = options;
23
7
  const config = {
24
8
  targets,
25
9
  slugs: audits.map(audit => audit.slug),
26
10
  };
27
- const { runnerConfigPath, runnerOutputPath } = await createRunnerFiles('eslint', JSON.stringify(config));
28
- return {
29
- command: 'node',
30
- args: [
31
- filePathToCliArg(scriptPath),
32
- ...objectToCliArgs({ runnerConfigPath, runnerOutputPath }),
33
- ],
34
- configFile: runnerConfigPath,
35
- outputFile: runnerOutputPath,
11
+ return async ({ outputDir }) => {
12
+ ui().logger.log(`ESLint plugin executing ${targets.length} lint targets`);
13
+ const linterOutputs = artifacts
14
+ ? await loadArtifacts(artifacts)
15
+ : await asyncSequential(targets.map(target => ({ ...target, outputDir })), lint);
16
+ const lintResults = mergeLinterOutputs(linterOutputs);
17
+ const failedAudits = lintResultsToAudits(lintResults);
18
+ return config.slugs.map((slug) => failedAudits.find(audit => audit.slug === slug) ?? {
19
+ slug,
20
+ score: 1,
21
+ value: 0,
22
+ displayValue: 'passed',
23
+ details: { issues: [] },
24
+ });
36
25
  };
37
26
  }
38
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,EAAE,GACH,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,gBAAgB,EAChB,gBAAgB,GACC;IACjB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GACtB,MAAM,YAAY,CAA2B,gBAAgB,CAAC,CAAC;IAEjE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC;IAE1E,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CACtB,CAAC,IAAI,EAAe,EAAE,CACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;QACjD,IAAI;QACJ,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KACxB,CACJ,CAAC;IAEF,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,MAAe,EACf,OAAuB;IAEvB,MAAM,MAAM,GAA6B;QACvC,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,iBAAiB,CACpE,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,MAAM;QACf,IAAI,EAAE;YACJ,gBAAgB,CAAC,UAAU,CAAC;YAC5B,GAAG,eAAe,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;SAC3D;QACD,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,gBAAgB;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/runner/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,oBAAoB,CAAC,OAIpC;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,MAAM,GAA6B;QACvC,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KACvC,CAAC;IAEF,OAAO,KAAK,EAAE,EAAE,SAAS,EAAiB,EAAyB,EAAE;QACnE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC;QAE1E,MAAM,aAAa,GAAG,SAAS;YAC7B,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC;YAChC,CAAC,CAAC,MAAM,eAAe,CACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EACjD,IAAI,CACL,CAAC;QACN,MAAM,WAAW,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,CAAC,IAAI,EAAe,EAAE,CACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACjD,IAAI;YACJ,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SACxB,CACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ export async function lint({ eslintrc, patterns, }) {
9
9
  }
10
10
  async function executeLint({ eslintrc, patterns, }) {
11
11
  // running as CLI because ESLint#lintFiles() runs out of memory
12
- const { stdout } = await executeProcess({
12
+ const { stdout, stderr, code } = await executeProcess({
13
13
  command: 'npx',
14
14
  args: [
15
15
  'eslint',
@@ -24,6 +24,9 @@ async function executeLint({ eslintrc, patterns, }) {
24
24
  ignoreExitCode: true,
25
25
  cwd: process.cwd(),
26
26
  });
27
+ if (!stdout.trim()) {
28
+ throw new Error(`ESLint produced empty output. Exit code: ${code}, STDERR: ${stderr}`);
29
+ }
27
30
  return JSON.parse(stdout);
28
31
  }
29
32
  function loadRuleOptionsPerFile(eslint, results) {
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../../src/lib/runner/lint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,OAAO,GACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EACzB,QAAQ,EACR,QAAQ,GACK;IACb,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EACzB,QAAQ,EACR,QAAQ,GACK;IACb,+DAA+D;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QACtC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE;YACJ,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,iCAAiC;YACjC,eAAe;YACf,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACjC,mCAAmC;YACnC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAClD;SACF;QACD,cAAc,EAAE,IAAI;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAwB,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAc,EACd,OAA4B;IAE5B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CACjD,QAAQ,CACT,CAAkB,CAAC;QACpB,MAAM,OAAO,GAAG,QAAQ,CACtB,QAAQ;aACL,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CACxD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CACjC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,MAAM;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/C,CAAC,CACH,CAAC;QACF,OAAO;YACL,GAAG,QAAQ;YACX,CAAC,QAAQ,CAAC,EAAE;gBACV,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACrB,GAAG,QAAQ;aACZ;SACF,CAAC;IACJ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAqB,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../../src/lib/runner/lint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PluginArtifactOptions } from '@code-pushup/models';
2
+ import type { LinterOutput } from './types.js';
3
+ export declare function loadArtifacts(artifacts: PluginArtifactOptions): Promise<LinterOutput[]>;
@@ -0,0 +1,27 @@
1
+ import { glob } from 'glob';
2
+ import { executeProcess, readJsonFile } from '@code-pushup/utils';
3
+ export async function loadArtifacts(artifacts) {
4
+ if (artifacts.generateArtifactsCommand) {
5
+ const { command, args = [] } = typeof artifacts.generateArtifactsCommand === 'string'
6
+ ? { command: artifacts.generateArtifactsCommand }
7
+ : artifacts.generateArtifactsCommand;
8
+ await executeProcess({
9
+ command,
10
+ args,
11
+ ignoreExitCode: true,
12
+ });
13
+ }
14
+ const initialArtifactPaths = Array.isArray(artifacts.artifactsPaths)
15
+ ? artifacts.artifactsPaths
16
+ : [artifacts.artifactsPaths];
17
+ const artifactPaths = await glob(initialArtifactPaths);
18
+ return await Promise.all(artifactPaths.map(async (artifactPath) => {
19
+ // ESLint CLI outputs raw ESLint.LintResult[], but we need LinterOutput format
20
+ const results = await readJsonFile(artifactPath);
21
+ return {
22
+ results,
23
+ ruleOptionsPerFile: {}, // TODO
24
+ };
25
+ }));
26
+ }
27
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAgC;IAEhC,IAAI,SAAS,CAAC,wBAAwB,EAAE,CAAC;QACvC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,GAC1B,OAAO,SAAS,CAAC,wBAAwB,KAAK,QAAQ;YACpD,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,wBAAwB,EAAE;YACjD,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAEzC,MAAM,cAAc,CAAC;YACnB,OAAO;YACP,IAAI;YACJ,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC,cAAc;QAC1B,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEvD,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;QACrC,8EAA8E;QAC9E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAsB,YAAY,CAAC,CAAC;QACtE,OAAO;YACL,OAAO;YACP,kBAAkB,EAAE,EAAE,EAAE,OAAO;SAChC,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
package/src/bin.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/src/bin.js DELETED
@@ -1,6 +0,0 @@
1
- import process from 'node:process';
2
- import { Parser } from 'yargs/helpers';
3
- import { executeRunner } from './lib/runner/index.js';
4
- const { runnerConfigPath, runnerOutputPath } = Parser(process.argv);
5
- await executeRunner({ runnerConfigPath, runnerOutputPath });
6
- //# sourceMappingURL=bin.js.map
package/src/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,aAAa,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC"}