@code-pushup/ci 0.71.0 → 0.72.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/README.md +28 -1
- package/package.json +3 -3
- package/src/lib/cli/commands/compare.d.ts +3 -7
- package/src/lib/cli/commands/compare.js +4 -5
- package/src/lib/cli/commands/compare.js.map +1 -1
- package/src/lib/cli/persist.js +3 -3
- package/src/lib/cli/persist.js.map +1 -1
- package/src/lib/constants.js +1 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/models.d.ts +10 -1
- package/src/lib/monorepo/handlers/nx.js +2 -2
- package/src/lib/monorepo/handlers/nx.js.map +1 -1
- package/src/lib/run-monorepo.js +66 -30
- package/src/lib/run-monorepo.js.map +1 -1
- package/src/lib/run-utils.d.ts +14 -1
- package/src/lib/run-utils.js +77 -19
- package/src/lib/run-utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -103,11 +103,12 @@ Optionally, you can override default options for further customization:
|
|
|
103
103
|
| `nxProjectsFilter` | `string \| string[]` | `'--with-target={task}'` | Arguments passed to [`nx show projects`](https://nx.dev/nx-api/nx/documents/show#projects), only relevant for Nx in [monorepo mode](#monorepo-mode) [^2] |
|
|
104
104
|
| `directory` | `string` | `process.cwd()` | Directory in which Code PushUp CLI should run |
|
|
105
105
|
| `config` | `string \| null` | `null` [^1] | Path to config file (`--config` option) |
|
|
106
|
-
| `silent` | `boolean` | `false` | Hides logs from CLI commands (
|
|
106
|
+
| `silent` | `boolean` | `false` | Hides logs from CLI commands (errors will be printed) |
|
|
107
107
|
| `bin` | `string` | `'npx --no-install code-pushup'` | Command for executing Code PushUp CLI |
|
|
108
108
|
| `detectNewIssues` | `boolean` | `true` | Toggles if new issues should be detected and returned in `newIssues` property |
|
|
109
109
|
| `logger` | `Logger` | `console` | Logger for reporting progress and encountered problems |
|
|
110
110
|
| `skipComment` | `boolean` | `false` | Toggles if comparison comment is posted to PR |
|
|
111
|
+
| `configPatterns` | `ConfigPatterns \| null` | `null` | Additional configuration which enables [faster CI runs](#faster-ci-runs-with-configpatterns) |
|
|
111
112
|
|
|
112
113
|
[^1]: By default, the `code-pushup.config` file is autodetected as described in [`@code-pushup/cli` docs](../cli/README.md#configuration).
|
|
113
114
|
|
|
@@ -216,6 +217,32 @@ await runInCI(refs, api, {
|
|
|
216
217
|
});
|
|
217
218
|
```
|
|
218
219
|
|
|
220
|
+
### Faster CI runs with `configPatterns`
|
|
221
|
+
|
|
222
|
+
By default, the `print-config` command is run sequentially for each project in order to reliably detect how `code-pushup` is configured - specifically, where to read output files from (`persist` config) and whether portal may be used as a cache (`upload` config). This allows for each project to be configured in its own way without breaking anything, but for large monorepos these extra `code-pushup print-config` executions can accumulate and significantly slow down CI pipelines.
|
|
223
|
+
|
|
224
|
+
As a more scalable alternative, `configPatterns` may be provided. A user declares upfront how every project is configured, which allows `print-config` to be skipped. It's the user's responsibility to ensure this configuration holds for every project (it won't be checked). The `configPatterns` support string interpolation, substituting `{projectName}` with each project's name. Other than that, each project's `code-pushup.config` must have exactly the same `persist` and `upload` configurations.
|
|
225
|
+
|
|
226
|
+
```ts
|
|
227
|
+
await runInCI(refs, api, {
|
|
228
|
+
monorepo: true,
|
|
229
|
+
configPatterns: {
|
|
230
|
+
persist: {
|
|
231
|
+
outputDir: '.code-pushup/{projectName}',
|
|
232
|
+
filename: 'report',
|
|
233
|
+
format: ['json', 'md'],
|
|
234
|
+
},
|
|
235
|
+
// optional: will use portal as cache when comparing reports in PRs
|
|
236
|
+
upload: {
|
|
237
|
+
server: 'https://api.code-pushup.example.com/graphql',
|
|
238
|
+
apiKey: 'cp_...',
|
|
239
|
+
organization: 'example',
|
|
240
|
+
project: '{projectName}',
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
219
246
|
### Monorepo result
|
|
220
247
|
|
|
221
248
|
In monorepo mode, the resolved object includes the merged diff at the top-level, as well as a list of projects.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/ci",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.72.0",
|
|
4
4
|
"description": "CI automation logic for Code PushUp (provider-agnostic)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
},
|
|
27
27
|
"type": "module",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@code-pushup/models": "0.
|
|
29
|
+
"@code-pushup/models": "0.72.0",
|
|
30
30
|
"@code-pushup/portal-client": "^0.14.3",
|
|
31
|
-
"@code-pushup/utils": "0.
|
|
31
|
+
"@code-pushup/utils": "0.72.0",
|
|
32
32
|
"glob": "^11.0.1",
|
|
33
33
|
"simple-git": "^3.20.0",
|
|
34
34
|
"yaml": "^2.5.1",
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { CommandContext } from '../context.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
label?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function runCompare({ before, after, label }: CompareOptions, { bin, config, directory, observer }: CommandContext): Promise<void>;
|
|
8
|
-
export {};
|
|
2
|
+
export declare function runCompare({ bin, config, directory, observer }: CommandContext, { hasFormats }: {
|
|
3
|
+
hasFormats: boolean;
|
|
4
|
+
}): Promise<void>;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { DEFAULT_PERSIST_FORMAT } from '@code-pushup/models';
|
|
2
2
|
import { executeProcess, isVerbose } from '@code-pushup/utils';
|
|
3
|
-
export async function runCompare({
|
|
3
|
+
export async function runCompare({ bin, config, directory, observer }, { hasFormats }) {
|
|
4
4
|
await executeProcess({
|
|
5
5
|
command: bin,
|
|
6
6
|
args: [
|
|
7
7
|
'compare',
|
|
8
8
|
...(isVerbose() ? ['--verbose'] : []),
|
|
9
|
-
`--before=${before}`,
|
|
10
|
-
`--after=${after}`,
|
|
11
|
-
...(label ? [`--label=${label}`] : []),
|
|
12
9
|
...(config ? [`--config=${config}`] : []),
|
|
13
|
-
...
|
|
10
|
+
...(hasFormats
|
|
11
|
+
? []
|
|
12
|
+
: DEFAULT_PERSIST_FORMAT.map(format => `--persist.format=${format}`)),
|
|
14
13
|
],
|
|
15
14
|
cwd: directory,
|
|
16
15
|
observer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/cli/commands/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/cli/commands/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAkB,EACpD,EAAE,UAAU,EAA2B;IAEvC,MAAM,cAAc,CAAC;QACnB,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE;YACJ,SAAS;YACT,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;SACxE;QACD,GAAG,EAAE,SAAS;QACd,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
|
package/src/lib/cli/persist.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { DEFAULT_PERSIST_FILENAME, DEFAULT_PERSIST_FORMAT, DEFAULT_PERSIST_OUTPUT_DIR, persistConfigSchema, uploadConfigSchema, } from '@code-pushup/models';
|
|
4
|
-
import { objectFromEntries } from '@code-pushup/utils';
|
|
4
|
+
import { createReportPath, objectFromEntries } from '@code-pushup/utils';
|
|
5
5
|
export function persistedFilesFromConfig(config, { isDiff, directory }) {
|
|
6
6
|
const { persist: { outputDir = DEFAULT_PERSIST_OUTPUT_DIR, filename = DEFAULT_PERSIST_FILENAME, } = {}, } = config;
|
|
7
7
|
const dir = path.isAbsolute(outputDir)
|
|
8
8
|
? outputDir
|
|
9
9
|
: path.join(directory, outputDir);
|
|
10
|
-
const
|
|
10
|
+
const suffix = isDiff ? 'diff' : undefined;
|
|
11
11
|
return objectFromEntries(DEFAULT_PERSIST_FORMAT.map(format => [
|
|
12
12
|
format,
|
|
13
|
-
|
|
13
|
+
createReportPath({ outputDir: dir, filename, format, suffix }),
|
|
14
14
|
]));
|
|
15
15
|
}
|
|
16
16
|
export async function parsePersistConfig(json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../../../packages/ci/src/lib/cli/persist.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAE1B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../../../packages/ci/src/lib/cli/persist.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAE1B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIzE,MAAM,UAAU,wBAAwB,CACtC,MAA6B,EAC7B,EAAE,MAAM,EAAE,SAAS,EAA2C;IAE9D,MAAM,EACJ,OAAO,EAAE,EACP,SAAS,GAAG,0BAA0B,EACtC,QAAQ,GAAG,wBAAwB,GACpC,GAAG,EAAE,GACP,GAAG,MAAM,CAAC;IAEX,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3C,OAAO,iBAAiB,CACtB,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM;QACN,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC/D,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa;IAEb,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mCAAmC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
package/src/lib/constants.js
CHANGED
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,8BAA8B;IACnC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;IACxB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,8BAA8B;IACnC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;IACxB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC"}
|
package/src/lib/models.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Format } from '@code-pushup/models';
|
|
1
|
+
import type { Format, PersistConfig, UploadConfig } from '@code-pushup/models';
|
|
2
2
|
import type { SourceFileIssue } from './issues.js';
|
|
3
3
|
import type { MonorepoTool } from './monorepo/index.js';
|
|
4
4
|
/**
|
|
@@ -19,6 +19,7 @@ export type Options = {
|
|
|
19
19
|
detectNewIssues?: boolean;
|
|
20
20
|
logger?: Logger;
|
|
21
21
|
skipComment?: boolean;
|
|
22
|
+
configPatterns?: ConfigPatterns | null;
|
|
22
23
|
};
|
|
23
24
|
/**
|
|
24
25
|
* {@link Options} with filled-in defaults.
|
|
@@ -66,6 +67,14 @@ export type Logger = {
|
|
|
66
67
|
info: (message: string) => void;
|
|
67
68
|
debug: (message: string) => void;
|
|
68
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Code PushUp config patterns which hold for every project in monorepo.
|
|
72
|
+
* Providing this information upfront makes CI runs faster (skips print-config).
|
|
73
|
+
*/
|
|
74
|
+
export type ConfigPatterns = {
|
|
75
|
+
persist: Required<PersistConfig>;
|
|
76
|
+
upload?: UploadConfig;
|
|
77
|
+
};
|
|
69
78
|
/**
|
|
70
79
|
* Resolved return value of {@link runInCI}
|
|
71
80
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { executeProcess, fileExists, stringifyError, toArray, } from '@code-pushup/utils';
|
|
2
|
+
import { executeProcess, fileExists, interpolate, stringifyError, toArray, } from '@code-pushup/utils';
|
|
3
3
|
export const nxHandler = {
|
|
4
4
|
tool: 'nx',
|
|
5
5
|
async isConfigured(options) {
|
|
@@ -19,7 +19,7 @@ export const nxHandler = {
|
|
|
19
19
|
'nx',
|
|
20
20
|
'show',
|
|
21
21
|
'projects',
|
|
22
|
-
...toArray(nxProjectsFilter).map(arg => arg
|
|
22
|
+
...toArray(nxProjectsFilter).map(arg => interpolate(arg, { task })),
|
|
23
23
|
'--json',
|
|
24
24
|
],
|
|
25
25
|
cwd,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/monorepo/handlers/nx.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,IAAI,EAAE,IAAI;IAEV,KAAK,CAAC,YAAY,CAAC,OAAO;QACxB,OAAO,CACL,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,CACE,MAAM,cAAc,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc,EAAE,IAAI;aACrB,CAAC,CACH,CAAC,IAAI,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,IAAI;gBACJ,MAAM;gBACN,UAAU;gBACV,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/monorepo/handlers/nx.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,IAAI,EAAE,IAAI;IAEV,KAAK,CAAC,YAAY,CAAC,OAAO;QACxB,OAAO,CACL,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,CACE,MAAM,cAAc,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc,EAAE,IAAI;aACrB,CAAC,CACH,CAAC,IAAI,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,IAAI;gBACJ,MAAM;gBACN,UAAU;gBACV,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,QAAQ;aACT;YACD,GAAG;YACH,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,cAAc,OAAO,IAAI,IAAI,KAAK;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oBAAoB,CAAC,OAAO,EAAE,QAAQ;QACpC,MAAM,YAAY,GAChB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO;YACL,KAAK;YACL,IAAI;YACJ,UAAU;YACV,aAAa,OAAO,CAAC,IAAI,EAAE;YAC3B,cAAc,OAAO,CAAC,QAAQ,EAAE;YAChC,cAAc,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI;SACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,MAAc;IACnC,6CAA6C;IAC7C,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qDAAqD,cAAc,CACjE,KAAK,CACN,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oFAAoF,IAAI,CAAC,SAAS,CAChG,IAAI,CACL,EAAE,CACJ,CAAC;AACJ,CAAC"}
|
package/src/lib/run-monorepo.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
1
2
|
import { readFile } from 'node:fs/promises';
|
|
2
3
|
import { asyncSequential, hasNoNullableProps, } from '@code-pushup/utils';
|
|
3
|
-
import { createCommandContext, persistedFilesFromConfig, runCollect, runMergeDiffs, } from './cli/index.js';
|
|
4
|
+
import { createCommandContext, persistedFilesFromConfig, runCollect, runCompare, runMergeDiffs, } from './cli/index.js';
|
|
4
5
|
import { commentOnPR } from './comment.js';
|
|
5
6
|
import { listMonorepoProjects, } from './monorepo/index.js';
|
|
6
7
|
import { saveOutputFiles } from './output-files.js';
|
|
7
|
-
import { checkPrintConfig,
|
|
8
|
+
import { checkPrintConfig, configFromPatterns, hasDefaultPersistFormats, loadCachedBaseReport, prepareReportFilesToCompare, printPersistConfig, runInBaseBranch, runOnProject, saveDiffFiles, saveReportFiles, } from './run-utils.js';
|
|
8
9
|
export async function runInMonorepoMode(env) {
|
|
9
10
|
const { api, settings } = env;
|
|
10
11
|
const { logger } = settings;
|
|
@@ -45,20 +46,9 @@ async function runProjectsInBulk(projects, runManyCommand, env) {
|
|
|
45
46
|
const { refs: { base }, settings, } = env;
|
|
46
47
|
const { logger } = settings;
|
|
47
48
|
logger.info(`Running on ${projects.length} projects in bulk (parallel: ${settings.parallel})`);
|
|
48
|
-
const
|
|
49
|
-
const ctx = createCommandContext(settings, project);
|
|
50
|
-
const config = await printPersistConfig(ctx);
|
|
51
|
-
return { project, config, ctx };
|
|
52
|
-
});
|
|
53
|
-
const hasFormats = allProjectsHaveDefaultPersistFormats(currProjectConfigs);
|
|
54
|
-
logger.debug([
|
|
55
|
-
`Loaded ${currProjectConfigs.length} persist and upload configs by running print-config command for each project.`,
|
|
56
|
-
hasFormats
|
|
57
|
-
? 'Every project has default persist formats.'
|
|
58
|
-
: 'Not all projects have default persist formats.',
|
|
59
|
-
].join(' '));
|
|
49
|
+
const { projectEnvs, hasFormats } = await loadProjectEnvs(projects, settings);
|
|
60
50
|
await collectMany(runManyCommand, env, { hasFormats });
|
|
61
|
-
const currProjectReports = await Promise.all(
|
|
51
|
+
const currProjectReports = await Promise.all(projectEnvs.map(async ({ project, config, ctx }) => {
|
|
62
52
|
const reports = await saveOutputFiles({
|
|
63
53
|
project,
|
|
64
54
|
type: 'current',
|
|
@@ -72,6 +62,30 @@ async function runProjectsInBulk(projects, runManyCommand, env) {
|
|
|
72
62
|
}
|
|
73
63
|
return compareProjectsInBulk(currProjectReports, base, runManyCommand, env);
|
|
74
64
|
}
|
|
65
|
+
async function loadProjectEnvs(projects, settings) {
|
|
66
|
+
const { logger, configPatterns } = settings;
|
|
67
|
+
const projectEnvs = configPatterns
|
|
68
|
+
? projects.map((project) => ({
|
|
69
|
+
project,
|
|
70
|
+
config: configFromPatterns(configPatterns, project),
|
|
71
|
+
ctx: createCommandContext(settings, project),
|
|
72
|
+
}))
|
|
73
|
+
: await asyncSequential(projects, async (project) => {
|
|
74
|
+
const ctx = createCommandContext(settings, project);
|
|
75
|
+
const config = await printPersistConfig(ctx);
|
|
76
|
+
return { project, config, ctx };
|
|
77
|
+
});
|
|
78
|
+
const hasFormats = allProjectsHaveDefaultPersistFormats(projectEnvs);
|
|
79
|
+
logger.debug([
|
|
80
|
+
configPatterns
|
|
81
|
+
? `Parsed ${projectEnvs.length} persist and upload configs by interpolating configPatterns option for each project.`
|
|
82
|
+
: `Loaded ${projectEnvs.length} persist and upload configs by running print-config command for each project.`,
|
|
83
|
+
hasFormats
|
|
84
|
+
? 'Every project has default persist formats.'
|
|
85
|
+
: 'Not all projects have default persist formats.',
|
|
86
|
+
].join(' '));
|
|
87
|
+
return { projectEnvs, hasFormats };
|
|
88
|
+
}
|
|
75
89
|
async function compareProjectsInBulk(currProjectReports, base, runManyCommand, env) {
|
|
76
90
|
const projectReportsWithCache = await Promise.all(currProjectReports.map(async ({ project, ctx, reports, config }) => {
|
|
77
91
|
const args = { project, config, base, ctx, env };
|
|
@@ -93,12 +107,19 @@ async function compareProjectsInBulk(currProjectReports, base, runManyCommand, e
|
|
|
93
107
|
prevReport: args.prevReport || collectedPrevReports[args.project.name],
|
|
94
108
|
}))
|
|
95
109
|
.filter(hasNoNullableProps);
|
|
96
|
-
const projectComparisons =
|
|
97
|
-
args.project.name,
|
|
98
|
-
await compareReports(args),
|
|
99
|
-
]));
|
|
110
|
+
const projectComparisons = await compareManyProjects(projectsToCompare, runManyCommand, env);
|
|
100
111
|
return finalizeProjectReports(currProjectReports, projectComparisons);
|
|
101
112
|
}
|
|
113
|
+
async function compareManyProjects(projectsToCompare, runManyCommand, env) {
|
|
114
|
+
await Promise.all(projectsToCompare.map(prepareReportFilesToCompare));
|
|
115
|
+
await compareMany(runManyCommand, env, {
|
|
116
|
+
hasFormats: allProjectsHaveDefaultPersistFormats(projectsToCompare),
|
|
117
|
+
});
|
|
118
|
+
return Object.fromEntries(await Promise.all(projectsToCompare.map(async (args) => [
|
|
119
|
+
args.project.name,
|
|
120
|
+
await saveDiffFiles(args),
|
|
121
|
+
])));
|
|
122
|
+
}
|
|
102
123
|
function finalizeProjectReports(projectReports, projectComparisons) {
|
|
103
124
|
return projectReports.map(({ project, reports }) => {
|
|
104
125
|
const comparison = projectComparisons?.[project.name];
|
|
@@ -111,20 +132,25 @@ function finalizeProjectReports(projectReports, projectComparisons) {
|
|
|
111
132
|
}
|
|
112
133
|
async function collectPreviousReports(base, uncachedProjectReports, runManyCommand, env) {
|
|
113
134
|
const { settings } = env;
|
|
114
|
-
const { logger } = settings;
|
|
135
|
+
const { logger, configPatterns } = settings;
|
|
115
136
|
if (uncachedProjectReports.length === 0) {
|
|
116
137
|
return {};
|
|
117
138
|
}
|
|
118
139
|
return runInBaseBranch(base, env, async () => {
|
|
119
|
-
const uncachedProjectConfigs =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
140
|
+
const uncachedProjectConfigs = configPatterns
|
|
141
|
+
? uncachedProjectReports.map(({ project, ctx }) => {
|
|
142
|
+
const config = configFromPatterns(configPatterns, project);
|
|
143
|
+
return { project, ctx, config };
|
|
144
|
+
})
|
|
145
|
+
: await asyncSequential(uncachedProjectReports, async (args) => ({
|
|
146
|
+
project: args.project,
|
|
147
|
+
ctx: args.ctx,
|
|
148
|
+
config: await checkPrintConfig(args),
|
|
149
|
+
}));
|
|
124
150
|
const validProjectConfigs = uncachedProjectConfigs.filter(hasNoNullableProps);
|
|
125
|
-
const onlyProjects = validProjectConfigs.map(({
|
|
151
|
+
const onlyProjects = validProjectConfigs.map(({ project }) => project.name);
|
|
126
152
|
const invalidProjects = uncachedProjectConfigs
|
|
127
|
-
.map(({
|
|
153
|
+
.map(({ project }) => project.name)
|
|
128
154
|
.filter(name => !onlyProjects.includes(name));
|
|
129
155
|
if (invalidProjects.length > 0) {
|
|
130
156
|
logger.debug(`Printing config failed for ${invalidProjects.length} projects - ${invalidProjects.join(', ')}`);
|
|
@@ -140,14 +166,14 @@ async function collectPreviousReports(base, uncachedProjectReports, runManyComma
|
|
|
140
166
|
});
|
|
141
167
|
}
|
|
142
168
|
async function savePreviousProjectReport(args) {
|
|
143
|
-
const {
|
|
169
|
+
const { project, ctx, config, settings } = args;
|
|
144
170
|
const files = await saveReportFiles({
|
|
145
|
-
project
|
|
171
|
+
project,
|
|
146
172
|
type: 'previous',
|
|
147
173
|
files: persistedFilesFromConfig(config, ctx),
|
|
148
174
|
settings,
|
|
149
175
|
});
|
|
150
|
-
return [name, files];
|
|
176
|
+
return [project.name, files];
|
|
151
177
|
}
|
|
152
178
|
async function collectMany(runManyCommand, env, options) {
|
|
153
179
|
const { settings } = env;
|
|
@@ -163,6 +189,16 @@ async function collectMany(runManyCommand, env, options) {
|
|
|
163
189
|
: 'all current';
|
|
164
190
|
settings.logger.debug(`Collected ${countText} reports using command \`${command}\``);
|
|
165
191
|
}
|
|
192
|
+
async function compareMany(runManyCommand, env, options) {
|
|
193
|
+
const { settings } = env;
|
|
194
|
+
const { hasFormats } = options;
|
|
195
|
+
const ctx = {
|
|
196
|
+
...createCommandContext(settings, null),
|
|
197
|
+
bin: await runManyCommand(),
|
|
198
|
+
};
|
|
199
|
+
await runCompare(ctx, { hasFormats });
|
|
200
|
+
settings.logger.debug('Compared all project reports');
|
|
201
|
+
}
|
|
166
202
|
export function allProjectsHaveDefaultPersistFormats(projects) {
|
|
167
203
|
return projects.every(({ config }) => hasDefaultPersistFormats(config));
|
|
168
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-monorepo.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-monorepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAEL,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,oBAAoB,EACpB,wBAAwB,EACxB,UAAU,EACV,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQ3C,OAAO,EAGL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"run-monorepo.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-monorepo.ts"],"names":[],"mappings":"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"}
|
package/src/lib/run-utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { SimpleGit } from 'simple-git';
|
|
2
|
+
import { type Diff } from '@code-pushup/utils';
|
|
2
3
|
import { type CommandContext, type EnhancedPersistConfig } from './cli/index.js';
|
|
3
4
|
import { type SourceFileIssue } from './issues.js';
|
|
4
|
-
import type { GitBranch, GitRefs, Options, OutputFiles, ProjectRunResult, ProviderAPIClient, Settings } from './models.js';
|
|
5
|
+
import type { ConfigPatterns, GitBranch, GitRefs, Options, OutputFiles, ProjectRunResult, ProviderAPIClient, Settings } from './models.js';
|
|
5
6
|
import type { ProjectConfig } from './monorepo/index.js';
|
|
6
7
|
export type RunEnv = {
|
|
7
8
|
refs: NormalizedGitRefs;
|
|
@@ -16,6 +17,7 @@ type NormalizedGitRefs = {
|
|
|
16
17
|
export type CompareReportsArgs = {
|
|
17
18
|
project: ProjectConfig | null;
|
|
18
19
|
env: RunEnv;
|
|
20
|
+
ctx: CommandContext;
|
|
19
21
|
base: GitBranch;
|
|
20
22
|
currReport: ReportData<'current'>;
|
|
21
23
|
prevReport: ReportData<'previous'>;
|
|
@@ -35,6 +37,16 @@ export type ReportData<T extends 'current' | 'previous'> = {
|
|
|
35
37
|
export declare function createRunEnv(refs: GitRefs, api: ProviderAPIClient, options: Options | undefined, git: SimpleGit): Promise<RunEnv>;
|
|
36
38
|
export declare function runOnProject(project: ProjectConfig | null, env: RunEnv): Promise<ProjectRunResult>;
|
|
37
39
|
export declare function compareReports(args: CompareReportsArgs): Promise<ProjectRunResult>;
|
|
40
|
+
export declare function prepareReportFilesToCompare(args: CompareReportsArgs): Promise<Diff<string>>;
|
|
41
|
+
export declare function saveDiffFiles(args: CompareReportsArgs): Promise<{
|
|
42
|
+
newIssues?: SourceFileIssue[] | undefined;
|
|
43
|
+
name: string;
|
|
44
|
+
files: {
|
|
45
|
+
current: OutputFiles;
|
|
46
|
+
previous: OutputFiles | Pick<OutputFiles, "json">;
|
|
47
|
+
comparison: Record<"json" | "md", string>;
|
|
48
|
+
};
|
|
49
|
+
}>;
|
|
38
50
|
export declare function saveReportFiles<T extends 'current' | 'previous'>(args: {
|
|
39
51
|
project: Pick<ProjectConfig, 'name'> | null;
|
|
40
52
|
type: T;
|
|
@@ -47,6 +59,7 @@ export declare function runInBaseBranch<T>(base: GitBranch, env: RunEnv, fn: ()
|
|
|
47
59
|
export declare function checkPrintConfig(args: BaseReportArgs): Promise<EnhancedPersistConfig | null>;
|
|
48
60
|
export declare function printPersistConfig(ctx: CommandContext): Promise<EnhancedPersistConfig>;
|
|
49
61
|
export declare function hasDefaultPersistFormats(config: EnhancedPersistConfig): boolean;
|
|
62
|
+
export declare function configFromPatterns(configPatterns: ConfigPatterns, project: ProjectConfig | null): ConfigPatterns;
|
|
50
63
|
export declare function findNewIssues(args: CompareReportsArgs & {
|
|
51
64
|
diffFiles: OutputFiles;
|
|
52
65
|
}): Promise<SourceFileIssue[]>;
|
package/src/lib/run-utils.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
|
-
import { readFile } from 'node:fs/promises';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { DEFAULT_PERSIST_FILENAME, DEFAULT_PERSIST_FORMAT, DEFAULT_PERSIST_OUTPUT_DIR, } from '@code-pushup/models';
|
|
5
|
+
import { createReportPath, interpolate, objectFromEntries, readJsonFile, removeUndefinedAndEmptyProps, stringifyError, } from '@code-pushup/utils';
|
|
5
6
|
import { createCommandContext, parsePersistConfig, persistedFilesFromConfig, runCollect, runCompare, runPrintConfig, } from './cli/index.js';
|
|
6
7
|
import { DEFAULT_SETTINGS } from './constants.js';
|
|
7
8
|
import { listChangedFiles, normalizeGitRef } from './git.js';
|
|
@@ -9,7 +10,7 @@ import { filterRelevantIssues } from './issues.js';
|
|
|
9
10
|
import { saveOutputFiles } from './output-files.js';
|
|
10
11
|
import { downloadReportFromPortal } from './portal/download.js';
|
|
11
12
|
export async function createRunEnv(refs, api, options, git) {
|
|
12
|
-
const inferredVerbose =
|
|
13
|
+
const inferredVerbose = options?.debug === true || options?.silent === false;
|
|
13
14
|
// eslint-disable-next-line functional/immutable-data
|
|
14
15
|
process.env['CP_VERBOSE'] = `${inferredVerbose}`;
|
|
15
16
|
const [head, base] = await Promise.all([
|
|
@@ -33,8 +34,12 @@ export async function runOnProject(project, env) {
|
|
|
33
34
|
if (project) {
|
|
34
35
|
logger.info(`Running Code PushUp on monorepo project ${project.name}`);
|
|
35
36
|
}
|
|
36
|
-
const config =
|
|
37
|
-
|
|
37
|
+
const config = settings.configPatterns
|
|
38
|
+
? configFromPatterns(settings.configPatterns, project)
|
|
39
|
+
: await printPersistConfig(ctx);
|
|
40
|
+
logger.debug(settings.configPatterns
|
|
41
|
+
? `Parsed persist and upload configs from configPatterns option - ${JSON.stringify(config)}`
|
|
42
|
+
: `Loaded persist and upload configs from print-config command - ${JSON.stringify(config)}`);
|
|
38
43
|
await runCollect(ctx, { hasFormats: hasDefaultPersistFormats(config) });
|
|
39
44
|
const currReport = await saveReportFiles({
|
|
40
45
|
project,
|
|
@@ -56,24 +61,53 @@ export async function runOnProject(project, env) {
|
|
|
56
61
|
if (!prevReport) {
|
|
57
62
|
return noDiffOutput;
|
|
58
63
|
}
|
|
59
|
-
const compareArgs = {
|
|
64
|
+
const compareArgs = { ...baseArgs, currReport, prevReport };
|
|
60
65
|
return compareReports(compareArgs);
|
|
61
66
|
}
|
|
62
67
|
export async function compareReports(args) {
|
|
63
|
-
const {
|
|
64
|
-
const logger = settings
|
|
65
|
-
|
|
66
|
-
await runCompare({
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
const { ctx, env, config } = args;
|
|
69
|
+
const { logger } = env.settings;
|
|
70
|
+
await prepareReportFilesToCompare(args);
|
|
71
|
+
await runCompare(ctx, { hasFormats: hasDefaultPersistFormats(config) });
|
|
72
|
+
logger.info('Compared reports and generated diff files');
|
|
73
|
+
return saveDiffFiles(args);
|
|
74
|
+
}
|
|
75
|
+
export async function prepareReportFilesToCompare(args) {
|
|
76
|
+
const { config, project, env, ctx } = args;
|
|
77
|
+
const { outputDir = DEFAULT_PERSIST_OUTPUT_DIR, filename = DEFAULT_PERSIST_FILENAME, } = config.persist ?? {};
|
|
78
|
+
const label = project?.name;
|
|
79
|
+
const { logger } = env.settings;
|
|
80
|
+
const originalReports = await Promise.all([args.currReport, args.prevReport].map(({ files }) => readJsonFile(files.json)));
|
|
81
|
+
const labeledReports = label
|
|
82
|
+
? originalReports.map(report => ({ ...report, label }))
|
|
83
|
+
: originalReports;
|
|
84
|
+
const reportPaths = labeledReports.map((report, idx) => {
|
|
85
|
+
const key = idx === 0 ? 'after' : 'before';
|
|
86
|
+
const filePath = createReportPath({
|
|
87
|
+
outputDir: path.resolve(ctx.directory, outputDir),
|
|
88
|
+
filename,
|
|
89
|
+
format: 'json',
|
|
90
|
+
suffix: key,
|
|
91
|
+
});
|
|
92
|
+
return { key, report, filePath };
|
|
93
|
+
});
|
|
94
|
+
await Promise.all(reportPaths.map(({ filePath, report }) => writeFile(filePath, JSON.stringify(report, null, 2))));
|
|
95
|
+
logger.debug([
|
|
96
|
+
'Prepared',
|
|
97
|
+
project && `"${project.name}" project's`,
|
|
98
|
+
'report files for comparison',
|
|
99
|
+
`at ${reportPaths.map(({ filePath }) => filePath).join(' and ')}`,
|
|
100
|
+
]
|
|
101
|
+
.filter(Boolean)
|
|
102
|
+
.join(' '));
|
|
103
|
+
return objectFromEntries(reportPaths.map(({ key, filePath }) => [key, filePath]));
|
|
104
|
+
}
|
|
105
|
+
export async function saveDiffFiles(args) {
|
|
106
|
+
const { project, ctx, env: { settings }, currReport, prevReport, config, } = args;
|
|
71
107
|
const diffFiles = persistedFilesFromConfig(config, {
|
|
72
108
|
directory: ctx.directory,
|
|
73
109
|
isDiff: true,
|
|
74
110
|
});
|
|
75
|
-
logger.info('Compared reports and generated diff files');
|
|
76
|
-
logger.debug(`Generated diff files at ${diffFiles.json} and ${diffFiles.md}`);
|
|
77
111
|
return {
|
|
78
112
|
name: projectToName(project),
|
|
79
113
|
files: {
|
|
@@ -101,13 +135,15 @@ export async function saveReportFiles(args) {
|
|
|
101
135
|
export async function collectPreviousReport(args) {
|
|
102
136
|
const { ctx, env, base, project } = args;
|
|
103
137
|
const { settings } = env;
|
|
104
|
-
const { logger } = settings;
|
|
138
|
+
const { logger, configPatterns } = settings;
|
|
105
139
|
const cachedBaseReport = await loadCachedBaseReport(args);
|
|
106
140
|
if (cachedBaseReport) {
|
|
107
141
|
return cachedBaseReport;
|
|
108
142
|
}
|
|
109
143
|
return runInBaseBranch(base, env, async () => {
|
|
110
|
-
const config =
|
|
144
|
+
const config = configPatterns
|
|
145
|
+
? configFromPatterns(configPatterns, project)
|
|
146
|
+
: await checkPrintConfig(args);
|
|
111
147
|
if (!config) {
|
|
112
148
|
return null;
|
|
113
149
|
}
|
|
@@ -213,6 +249,28 @@ export function hasDefaultPersistFormats(config) {
|
|
|
213
249
|
return (formats == null ||
|
|
214
250
|
DEFAULT_PERSIST_FORMAT.every(format => formats.includes(format)));
|
|
215
251
|
}
|
|
252
|
+
export function configFromPatterns(configPatterns, project) {
|
|
253
|
+
const { persist, upload } = configPatterns;
|
|
254
|
+
const variables = {
|
|
255
|
+
projectName: project?.name ?? '',
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
persist: {
|
|
259
|
+
outputDir: interpolate(persist.outputDir, variables),
|
|
260
|
+
filename: interpolate(persist.filename, variables),
|
|
261
|
+
format: persist.format,
|
|
262
|
+
},
|
|
263
|
+
...(upload && {
|
|
264
|
+
upload: {
|
|
265
|
+
server: upload.server,
|
|
266
|
+
apiKey: upload.apiKey,
|
|
267
|
+
organization: interpolate(upload.organization, variables),
|
|
268
|
+
project: interpolate(upload.project, variables),
|
|
269
|
+
...(upload.timeout != null && { timeout: upload.timeout }),
|
|
270
|
+
},
|
|
271
|
+
}),
|
|
272
|
+
};
|
|
273
|
+
}
|
|
216
274
|
export async function findNewIssues(args) {
|
|
217
275
|
const { base, currReport, prevReport, diffFiles, env: { git, settings: { logger }, }, } = args;
|
|
218
276
|
await git.fetch('origin', base.ref, ['--depth=1']);
|
package/src/lib/run-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-utils.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-utils.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-utils.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,GAG3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,4BAA4B,EAC5B,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAwB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAYzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAqChE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAa,EACb,GAAsB,EACtB,OAA4B,EAC5B,GAAc;IAEd,MAAM,eAAe,GACnB,OAAO,EAAE,KAAK,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACvD,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,eAAe,EAAE,CAAC;IAEjD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;KAC7C,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;QACrC,GAAG;QACH,QAAQ,EAAE;YACR,GAAG,gBAAgB;YACnB,GAAG,CAAC,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAC;SACtD;QACD,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA6B,EAC7B,GAAW;IAEX,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACpB,QAAQ,GACT,GAAG,GAAG,CAAC;IACR,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE/B,MAAM,GAAG,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,2CAA2C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc;QACpC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;QACtD,CAAC,CAAC,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,CACV,QAAQ,CAAC,cAAc;QACrB,CAAC,CAAC,kEAAkE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC5F,CAAC,CAAC,iEAAiE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAC9F,CAAC;IAEF,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;QACvC,OAAO;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC;QAC5C,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,+BAA+B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE;KACV,CAAC;IAE7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,oDAAoD,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,CACnF,CAAC;IAEF,MAAM,QAAQ,GAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC5D,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEhC,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAEzD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,MAAM,EACJ,SAAS,GAAG,0BAA0B,EACtC,QAAQ,GAAG,wBAAwB,GACpC,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEhC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACnD,YAAY,CAAS,KAAK,CAAC,IAAI,CAAC,CACjC,CACF,CAAC;IACF,MAAM,cAAc,GAAG,KAAK;QAC1B,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,eAAe,CAAC;IAEpB,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrD,MAAM,GAAG,GAAuB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;YACjD,QAAQ;YACR,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CACvC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CACrD,CACF,CAAC;IAEF,MAAM,CAAC,KAAK,CACV;QACE,UAAU;QACV,OAAO,IAAI,IAAI,OAAO,CAAC,IAAI,aAAa;QACxC,6BAA6B;QAC7B,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;KAClE;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IAEF,OAAO,iBAAiB,CACtB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAwB;IAC1D,MAAM,EACJ,OAAO,EACP,GAAG,EACH,GAAG,EAAE,EAAE,QAAQ,EAAE,EACjB,UAAU,EACV,UAAU,EACV,MAAM,GACP,GAAG,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACjD,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE;YACL,OAAO,EAAE,UAAU,CAAC,KAAK;YACzB,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC1B,UAAU,EAAE,MAAM,eAAe,CAAC;gBAChC,OAAO;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,SAAS;gBAChB,QAAQ;aACT,CAAC;SACH;QACD,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI;YAC9B,SAAS,EAAE,MAAM,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;SACvD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAmC,IAKvE;IACC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC;KACtB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAoB;IAEpB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;IAE5C,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,cAAc;YAC3B,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC;YAC7C,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC;YAC5C,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAoB;IAEpB,MAAM,EACJ,OAAO,EACP,GAAG,EAAE,EAAE,QAAQ,EAAE,GAClB,GAAG,IAAI,CAAC;IAET,MAAM,gBAAgB,GACpB,CAAC,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,MAAM,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,OAAO;QACP,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACjC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,IAAoB;IAEpB,MAAM,EACJ,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EACtB,OAAO,GACR,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,IAAI,GAAG,CAAC,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,GAAG;SACzB,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC;SACrC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CACT,+DAA+D,cAAc,CAAC,KAAK,CAAC,EAAE,CACvF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,CAAC,IAAI,CAAC,4BAA4B,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,IAAoB;IAEpB,MAAM,EACJ,MAAM,EACN,GAAG,EAAE,EAAE,QAAQ,EAAE,GAClB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAC5B,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YACxC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;SAC/B;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CACT,kEAAkE,cAAc,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,mBAAmB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,wBAAwB,CAC9E,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6CAA6C,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAe,EACf,GAAW,EACX,EAAoB;IAEpB,MAAM,EACJ,GAAG,EACH,QAAQ,EAAE,EAAE,MAAM,EAAE,GACrB,GAAG,GAAG,CAAC;IAER,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;IAE1B,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAoB;IAEpB,MAAM,EACJ,OAAO,EACP,GAAG,EACH,IAAI,EACJ,GAAG,EAAE,EAAE,QAAQ,EAAE,GAClB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,SAAS,GAAG,OAAO;QACvB,CAAC,CAAC,sCAAsC,OAAO,CAAC,IAAI,EAAE;QACtD,CAAC,CAAC,wBAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CACV,GAAG,SAAS,kDAAkD,IAAI,CAAC,GAAG,EAAE,CACzE,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CACT,GAAG,SAAS,8DAA8D,IAAI,CAAC,GAAG,0BAA0B,CAC7G,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA6B;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IACvC,OAAO,CACL,OAAO,IAAI,IAAI;QACf,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,cAA8B,EAC9B,OAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;KACjC,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;YACpD,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;YAClD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;QACD,GAAG,CAAC,MAAM,IAAI;YACZ,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC;gBACzD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aAC3D;SACF,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAqD;IAErD,MAAM,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,EAAE,EACH,GAAG,EACH,QAAQ,EAAE,EAAE,MAAM,EAAE,GACrB,GACF,GAAG,IAAI,CAAC;IAET,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CACzC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EACpC,GAAG,CACJ,CAAC;IACF,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAW;QACpD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAW;QACpD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAgB;QACnD,YAAY;KACb,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CACV,SAAS,MAAM,CAAC,MAAM,wBACpB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAC5B,gBAAgB,CACjB,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAA6B;IAClD,OAAO,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;AAC9B,CAAC"}
|