@code-pushup/models 0.69.4 → 0.70.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 +2 -2
- package/src/index.d.ts +2 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/audit-output.d.ts +108 -1188
- package/src/lib/audit-output.js +18 -24
- package/src/lib/audit-output.js.map +1 -1
- package/src/lib/audit.d.ts +4 -42
- package/src/lib/audit.js +4 -17
- package/src/lib/audit.js.map +1 -1
- package/src/lib/category-config.d.ts +22 -169
- package/src/lib/category-config.js +21 -28
- package/src/lib/category-config.js.map +1 -1
- package/src/lib/commit.d.ts +2 -12
- package/src/lib/commit.js +10 -13
- package/src/lib/commit.js.map +1 -1
- package/src/lib/configuration.d.ts +24 -0
- package/src/lib/configuration.js +16 -0
- package/src/lib/configuration.js.map +1 -0
- package/src/lib/core-config.d.ts +3104 -14160
- package/src/lib/core-config.js +6 -8
- package/src/lib/core-config.js.map +1 -1
- package/src/lib/group.d.ts +10 -124
- package/src/lib/group.js +6 -27
- package/src/lib/group.js.map +1 -1
- package/src/lib/implementation/checks.d.ts +8 -0
- package/src/lib/implementation/checks.js +28 -0
- package/src/lib/implementation/checks.js.map +1 -0
- package/src/lib/implementation/function.d.ts +22 -0
- package/src/lib/implementation/function.js +53 -0
- package/src/lib/implementation/function.js.map +1 -0
- package/src/lib/implementation/schemas.d.ts +868 -47
- package/src/lib/implementation/schemas.js +48 -41
- package/src/lib/implementation/schemas.js.map +1 -1
- package/src/lib/implementation/utils.d.ts +13 -2
- package/src/lib/implementation/utils.js +15 -11
- package/src/lib/implementation/utils.js.map +1 -1
- package/src/lib/issue.d.ts +13 -55
- package/src/lib/issue.js +10 -7
- package/src/lib/issue.js.map +1 -1
- package/src/lib/persist-config.d.ts +9 -11
- package/src/lib/plugin-config.d.ts +2057 -6578
- package/src/lib/plugin-config.js +16 -11
- package/src/lib/plugin-config.js.map +1 -1
- package/src/lib/report.d.ts +1859 -2580
- package/src/lib/report.js +7 -17
- package/src/lib/report.js.map +1 -1
- package/src/lib/reports-diff.d.ts +105 -2641
- package/src/lib/reports-diff.js +4 -2
- package/src/lib/reports-diff.js.map +1 -1
- package/src/lib/runner-config.d.ts +223 -3393
- package/src/lib/runner-config.js +15 -16
- package/src/lib/runner-config.js.map +1 -1
- package/src/lib/source.d.ts +2 -28
- package/src/lib/source.js +4 -2
- package/src/lib/source.js.map +1 -1
- package/src/lib/table.d.ts +39 -57
- package/src/lib/table.js +18 -16
- package/src/lib/table.js.map +1 -1
- package/src/lib/tree.d.ts +17 -211
- package/src/lib/tree.js +13 -7
- package/src/lib/tree.js.map +1 -1
- package/src/lib/upload-config.d.ts +1 -13
- package/src/lib/upload-config.js +6 -5
- package/src/lib/upload-config.js.map +1 -1
package/src/lib/audit-output.js
CHANGED
|
@@ -1,41 +1,35 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { createDuplicateSlugsCheck } from './implementation/checks.js';
|
|
2
3
|
import { nonnegativeNumberSchema, scoreSchema, slugSchema, } from './implementation/schemas.js';
|
|
3
|
-
import { errorItems, hasDuplicateStrings } from './implementation/utils.js';
|
|
4
4
|
import { issueSchema } from './issue.js';
|
|
5
5
|
import { tableSchema } from './table.js';
|
|
6
6
|
import { treeSchema } from './tree.js';
|
|
7
7
|
export const auditValueSchema = nonnegativeNumberSchema.describe('Raw numeric value');
|
|
8
8
|
export const auditDisplayValueSchema = z
|
|
9
|
-
.string(
|
|
10
|
-
.optional()
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
.string()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe("Formatted value (e.g. '0.9 s', '2.1 MB')");
|
|
12
|
+
export const auditDetailsSchema = z
|
|
13
|
+
.object({
|
|
14
|
+
issues: z.array(issueSchema).describe('List of findings').optional(),
|
|
15
15
|
table: tableSchema('Table of related findings').optional(),
|
|
16
16
|
trees: z
|
|
17
|
-
.array(treeSchema
|
|
17
|
+
.array(treeSchema)
|
|
18
|
+
.describe('Findings in tree structure')
|
|
18
19
|
.optional(),
|
|
19
|
-
}
|
|
20
|
-
|
|
20
|
+
})
|
|
21
|
+
.describe('Detailed information');
|
|
22
|
+
export const auditOutputSchema = z
|
|
23
|
+
.object({
|
|
21
24
|
slug: slugSchema.describe('Reference to audit'),
|
|
22
25
|
displayValue: auditDisplayValueSchema,
|
|
23
26
|
value: auditValueSchema,
|
|
24
27
|
score: scoreSchema,
|
|
25
28
|
details: auditDetailsSchema.optional(),
|
|
26
|
-
}, { description: 'Audit information' });
|
|
27
|
-
export const auditOutputsSchema = z
|
|
28
|
-
.array(auditOutputSchema, {
|
|
29
|
-
description: 'List of JSON formatted audit output emitted by the runner process of a plugin',
|
|
30
29
|
})
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return `In plugin audits the slugs are not unique: ${errorItems(duplicateRefs)}`;
|
|
37
|
-
}
|
|
38
|
-
function getDuplicateSlugsInAudits(audits) {
|
|
39
|
-
return hasDuplicateStrings(audits.map(({ slug }) => slug));
|
|
40
|
-
}
|
|
30
|
+
.describe('Audit information');
|
|
31
|
+
export const auditOutputsSchema = z
|
|
32
|
+
.array(auditOutputSchema)
|
|
33
|
+
.check(createDuplicateSlugsCheck('Audit'))
|
|
34
|
+
.describe('List of JSON formatted audit output emitted by the runner process of a plugin');
|
|
41
35
|
//# sourceMappingURL=audit-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-output.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/audit-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"audit-output.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/audit-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAC3B,uBAAuB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,0CAA0C,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACpE,KAAK,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAC1D,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,UAAU,CAAC;SACjB,QAAQ,CAAC,4BAA4B,CAAC;SACtC,QAAQ,EAAE;CACd,CAAC;KACD,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAGpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC/C,YAAY,EAAE,uBAAuB;IACrC,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAIjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,KAAK,CAAC,iBAAiB,CAAC;KACxB,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;KACzC,QAAQ,CACP,+EAA+E,CAChF,CAAC"}
|
package/src/lib/audit.d.ts
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const auditSchema: z.ZodObject<
|
|
2
|
+
export declare const auditSchema: z.ZodObject<{
|
|
3
3
|
slug: z.ZodString;
|
|
4
|
-
}, {
|
|
5
4
|
title: z.ZodString;
|
|
6
5
|
description: z.ZodOptional<z.ZodString>;
|
|
7
6
|
docsUrl: z.ZodCatch<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
8
7
|
isSkipped: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
-
}
|
|
10
|
-
slug: string;
|
|
11
|
-
title: string;
|
|
12
|
-
description?: string | undefined;
|
|
13
|
-
docsUrl?: string | undefined;
|
|
14
|
-
isSkipped?: boolean | undefined;
|
|
15
|
-
}, {
|
|
16
|
-
slug: string;
|
|
17
|
-
title: string;
|
|
18
|
-
description?: string | undefined;
|
|
19
|
-
docsUrl?: unknown;
|
|
20
|
-
isSkipped?: boolean | undefined;
|
|
21
|
-
}>;
|
|
8
|
+
}, z.core.$strip>;
|
|
22
9
|
/**
|
|
23
10
|
* Type Definition: `Audit`
|
|
24
11
|
*
|
|
@@ -28,35 +15,10 @@ export declare const auditSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
28
15
|
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#audit}
|
|
29
16
|
*/
|
|
30
17
|
export type Audit = z.infer<typeof auditSchema>;
|
|
31
|
-
export declare const pluginAuditsSchema: z.
|
|
18
|
+
export declare const pluginAuditsSchema: z.ZodArray<z.ZodObject<{
|
|
32
19
|
slug: z.ZodString;
|
|
33
|
-
}, {
|
|
34
20
|
title: z.ZodString;
|
|
35
21
|
description: z.ZodOptional<z.ZodString>;
|
|
36
22
|
docsUrl: z.ZodCatch<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
37
23
|
isSkipped: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
-
}
|
|
39
|
-
slug: string;
|
|
40
|
-
title: string;
|
|
41
|
-
description?: string | undefined;
|
|
42
|
-
docsUrl?: string | undefined;
|
|
43
|
-
isSkipped?: boolean | undefined;
|
|
44
|
-
}, {
|
|
45
|
-
slug: string;
|
|
46
|
-
title: string;
|
|
47
|
-
description?: string | undefined;
|
|
48
|
-
docsUrl?: unknown;
|
|
49
|
-
isSkipped?: boolean | undefined;
|
|
50
|
-
}>, "many">, {
|
|
51
|
-
slug: string;
|
|
52
|
-
title: string;
|
|
53
|
-
description?: string | undefined;
|
|
54
|
-
docsUrl?: string | undefined;
|
|
55
|
-
isSkipped?: boolean | undefined;
|
|
56
|
-
}[], {
|
|
57
|
-
slug: string;
|
|
58
|
-
title: string;
|
|
59
|
-
description?: string | undefined;
|
|
60
|
-
docsUrl?: unknown;
|
|
61
|
-
isSkipped?: boolean | undefined;
|
|
62
|
-
}[]>;
|
|
24
|
+
}, z.core.$strip>>;
|
package/src/lib/audit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { createDuplicateSlugsCheck } from './implementation/checks.js';
|
|
2
3
|
import { metaSchema, slugSchema } from './implementation/schemas.js';
|
|
3
|
-
import { errorItems, hasDuplicateStrings } from './implementation/utils.js';
|
|
4
4
|
export const auditSchema = z
|
|
5
5
|
.object({
|
|
6
6
|
slug: slugSchema.describe('ID (unique within plugin)'),
|
|
@@ -13,21 +13,8 @@ export const auditSchema = z
|
|
|
13
13
|
isSkippedDescription: 'Indicates whether the audit is skipped',
|
|
14
14
|
}));
|
|
15
15
|
export const pluginAuditsSchema = z
|
|
16
|
-
.array(auditSchema
|
|
17
|
-
description: 'List of audits maintained in a plugin',
|
|
18
|
-
})
|
|
16
|
+
.array(auditSchema)
|
|
19
17
|
.min(1)
|
|
20
|
-
|
|
21
|
-
.
|
|
22
|
-
message: duplicateSlugsInAuditsErrorMsg(auditMetadata),
|
|
23
|
-
}));
|
|
24
|
-
// =======================
|
|
25
|
-
// helper for validator: audit slugs are unique
|
|
26
|
-
function duplicateSlugsInAuditsErrorMsg(audits) {
|
|
27
|
-
const duplicateRefs = getDuplicateSlugsInAudits(audits);
|
|
28
|
-
return `In plugin audits the following slugs are not unique: ${errorItems(duplicateRefs)}`;
|
|
29
|
-
}
|
|
30
|
-
function getDuplicateSlugsInAudits(audits) {
|
|
31
|
-
return hasDuplicateStrings(audits.map(({ slug }) => slug));
|
|
32
|
-
}
|
|
18
|
+
.check(createDuplicateSlugsCheck('Audit'))
|
|
19
|
+
.describe('List of audits maintained in a plugin');
|
|
33
20
|
//# sourceMappingURL=audit.js.map
|
package/src/lib/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACvD,CAAC;KACD,KAAK,CACJ,UAAU,CAAC;IACT,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,mCAAmC;IACvD,WAAW,EAAE,+CAA+C;IAC5D,oBAAoB,EAAE,wCAAwC;CAC/D,CAAC,CACH,CAAC;AAGJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,KAAK,CAAC,WAAW,CAAC;KAClB,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;KACzC,QAAQ,CAAC,uCAAuC,CAAC,CAAC"}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const categoryRefSchema: z.ZodObject<
|
|
2
|
+
export declare const categoryRefSchema: z.ZodObject<{
|
|
3
3
|
slug: z.ZodString;
|
|
4
4
|
weight: z.ZodNumber;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
type: z.ZodEnum<{
|
|
6
|
+
audit: "audit";
|
|
7
|
+
group: "group";
|
|
8
|
+
}>;
|
|
7
9
|
plugin: z.ZodString;
|
|
8
|
-
}
|
|
9
|
-
slug: string;
|
|
10
|
-
weight: number;
|
|
11
|
-
type: "audit" | "group";
|
|
12
|
-
plugin: string;
|
|
13
|
-
}, {
|
|
14
|
-
slug: string;
|
|
15
|
-
weight: number;
|
|
16
|
-
type: "audit" | "group";
|
|
17
|
-
plugin: string;
|
|
18
|
-
}>;
|
|
10
|
+
}, z.core.$strip>;
|
|
19
11
|
/**
|
|
20
12
|
* Type Definition: `CategoryRef`
|
|
21
13
|
*
|
|
@@ -25,79 +17,23 @@ export declare const categoryRefSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
25
17
|
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#categoryref}
|
|
26
18
|
*/
|
|
27
19
|
export type CategoryRef = z.infer<typeof categoryRefSchema>;
|
|
28
|
-
export declare const categoryConfigSchema: z.ZodObject<
|
|
20
|
+
export declare const categoryConfigSchema: z.ZodObject<{
|
|
29
21
|
slug: z.ZodString;
|
|
30
|
-
refs: z.
|
|
22
|
+
refs: z.ZodArray<z.ZodObject<{
|
|
31
23
|
slug: z.ZodString;
|
|
32
24
|
weight: z.ZodNumber;
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
type: z.ZodEnum<{
|
|
26
|
+
audit: "audit";
|
|
27
|
+
group: "group";
|
|
28
|
+
}>;
|
|
35
29
|
plugin: z.ZodString;
|
|
36
|
-
}
|
|
37
|
-
slug: string;
|
|
38
|
-
weight: number;
|
|
39
|
-
type: "audit" | "group";
|
|
40
|
-
plugin: string;
|
|
41
|
-
}, {
|
|
42
|
-
slug: string;
|
|
43
|
-
weight: number;
|
|
44
|
-
type: "audit" | "group";
|
|
45
|
-
plugin: string;
|
|
46
|
-
}>, "many">, {
|
|
47
|
-
slug: string;
|
|
48
|
-
weight: number;
|
|
49
|
-
type: "audit" | "group";
|
|
50
|
-
plugin: string;
|
|
51
|
-
}[], {
|
|
52
|
-
slug: string;
|
|
53
|
-
weight: number;
|
|
54
|
-
type: "audit" | "group";
|
|
55
|
-
plugin: string;
|
|
56
|
-
}[]>, {
|
|
57
|
-
slug: string;
|
|
58
|
-
weight: number;
|
|
59
|
-
type: "audit" | "group";
|
|
60
|
-
plugin: string;
|
|
61
|
-
}[], {
|
|
62
|
-
slug: string;
|
|
63
|
-
weight: number;
|
|
64
|
-
type: "audit" | "group";
|
|
65
|
-
plugin: string;
|
|
66
|
-
}[]>;
|
|
67
|
-
}, {
|
|
30
|
+
}, z.core.$strip>>;
|
|
68
31
|
title: z.ZodString;
|
|
69
32
|
description: z.ZodOptional<z.ZodString>;
|
|
70
33
|
docsUrl: z.ZodCatch<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
71
34
|
isSkipped: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
-
}>, {
|
|
73
35
|
isBinary: z.ZodOptional<z.ZodBoolean>;
|
|
74
|
-
}
|
|
75
|
-
slug: string;
|
|
76
|
-
refs: {
|
|
77
|
-
slug: string;
|
|
78
|
-
weight: number;
|
|
79
|
-
type: "audit" | "group";
|
|
80
|
-
plugin: string;
|
|
81
|
-
}[];
|
|
82
|
-
title: string;
|
|
83
|
-
description?: string | undefined;
|
|
84
|
-
docsUrl?: string | undefined;
|
|
85
|
-
isSkipped?: boolean | undefined;
|
|
86
|
-
isBinary?: boolean | undefined;
|
|
87
|
-
}, {
|
|
88
|
-
slug: string;
|
|
89
|
-
refs: {
|
|
90
|
-
slug: string;
|
|
91
|
-
weight: number;
|
|
92
|
-
type: "audit" | "group";
|
|
93
|
-
plugin: string;
|
|
94
|
-
}[];
|
|
95
|
-
title: string;
|
|
96
|
-
description?: string | undefined;
|
|
97
|
-
docsUrl?: unknown;
|
|
98
|
-
isSkipped?: boolean | undefined;
|
|
99
|
-
isBinary?: boolean | undefined;
|
|
100
|
-
}>;
|
|
36
|
+
}, z.core.$strip>;
|
|
101
37
|
/**
|
|
102
38
|
* Type Definition: `CategoryConfig`
|
|
103
39
|
*
|
|
@@ -107,103 +43,20 @@ export declare const categoryConfigSchema: z.ZodObject<z.objectUtil.extendShape<
|
|
|
107
43
|
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#categoryconfig}
|
|
108
44
|
*/
|
|
109
45
|
export type CategoryConfig = z.infer<typeof categoryConfigSchema>;
|
|
110
|
-
export declare
|
|
111
|
-
export declare const categoriesSchema: z.ZodEffects<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
|
|
46
|
+
export declare const categoriesSchema: z.ZodArray<z.ZodObject<{
|
|
112
47
|
slug: z.ZodString;
|
|
113
|
-
refs: z.
|
|
48
|
+
refs: z.ZodArray<z.ZodObject<{
|
|
114
49
|
slug: z.ZodString;
|
|
115
50
|
weight: z.ZodNumber;
|
|
116
|
-
|
|
117
|
-
|
|
51
|
+
type: z.ZodEnum<{
|
|
52
|
+
audit: "audit";
|
|
53
|
+
group: "group";
|
|
54
|
+
}>;
|
|
118
55
|
plugin: z.ZodString;
|
|
119
|
-
}
|
|
120
|
-
slug: string;
|
|
121
|
-
weight: number;
|
|
122
|
-
type: "audit" | "group";
|
|
123
|
-
plugin: string;
|
|
124
|
-
}, {
|
|
125
|
-
slug: string;
|
|
126
|
-
weight: number;
|
|
127
|
-
type: "audit" | "group";
|
|
128
|
-
plugin: string;
|
|
129
|
-
}>, "many">, {
|
|
130
|
-
slug: string;
|
|
131
|
-
weight: number;
|
|
132
|
-
type: "audit" | "group";
|
|
133
|
-
plugin: string;
|
|
134
|
-
}[], {
|
|
135
|
-
slug: string;
|
|
136
|
-
weight: number;
|
|
137
|
-
type: "audit" | "group";
|
|
138
|
-
plugin: string;
|
|
139
|
-
}[]>, {
|
|
140
|
-
slug: string;
|
|
141
|
-
weight: number;
|
|
142
|
-
type: "audit" | "group";
|
|
143
|
-
plugin: string;
|
|
144
|
-
}[], {
|
|
145
|
-
slug: string;
|
|
146
|
-
weight: number;
|
|
147
|
-
type: "audit" | "group";
|
|
148
|
-
plugin: string;
|
|
149
|
-
}[]>;
|
|
150
|
-
}, {
|
|
56
|
+
}, z.core.$strip>>;
|
|
151
57
|
title: z.ZodString;
|
|
152
58
|
description: z.ZodOptional<z.ZodString>;
|
|
153
59
|
docsUrl: z.ZodCatch<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
154
60
|
isSkipped: z.ZodOptional<z.ZodBoolean>;
|
|
155
|
-
}>, {
|
|
156
61
|
isBinary: z.ZodOptional<z.ZodBoolean>;
|
|
157
|
-
}
|
|
158
|
-
slug: string;
|
|
159
|
-
refs: {
|
|
160
|
-
slug: string;
|
|
161
|
-
weight: number;
|
|
162
|
-
type: "audit" | "group";
|
|
163
|
-
plugin: string;
|
|
164
|
-
}[];
|
|
165
|
-
title: string;
|
|
166
|
-
description?: string | undefined;
|
|
167
|
-
docsUrl?: string | undefined;
|
|
168
|
-
isSkipped?: boolean | undefined;
|
|
169
|
-
isBinary?: boolean | undefined;
|
|
170
|
-
}, {
|
|
171
|
-
slug: string;
|
|
172
|
-
refs: {
|
|
173
|
-
slug: string;
|
|
174
|
-
weight: number;
|
|
175
|
-
type: "audit" | "group";
|
|
176
|
-
plugin: string;
|
|
177
|
-
}[];
|
|
178
|
-
title: string;
|
|
179
|
-
description?: string | undefined;
|
|
180
|
-
docsUrl?: unknown;
|
|
181
|
-
isSkipped?: boolean | undefined;
|
|
182
|
-
isBinary?: boolean | undefined;
|
|
183
|
-
}>, "many">, {
|
|
184
|
-
slug: string;
|
|
185
|
-
refs: {
|
|
186
|
-
slug: string;
|
|
187
|
-
weight: number;
|
|
188
|
-
type: "audit" | "group";
|
|
189
|
-
plugin: string;
|
|
190
|
-
}[];
|
|
191
|
-
title: string;
|
|
192
|
-
description?: string | undefined;
|
|
193
|
-
docsUrl?: string | undefined;
|
|
194
|
-
isSkipped?: boolean | undefined;
|
|
195
|
-
isBinary?: boolean | undefined;
|
|
196
|
-
}[], {
|
|
197
|
-
slug: string;
|
|
198
|
-
refs: {
|
|
199
|
-
slug: string;
|
|
200
|
-
weight: number;
|
|
201
|
-
type: "audit" | "group";
|
|
202
|
-
plugin: string;
|
|
203
|
-
}[];
|
|
204
|
-
title: string;
|
|
205
|
-
description?: string | undefined;
|
|
206
|
-
docsUrl?: unknown;
|
|
207
|
-
isSkipped?: boolean | undefined;
|
|
208
|
-
isBinary?: boolean | undefined;
|
|
209
|
-
}[]>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { createDuplicateSlugsCheck, createDuplicatesCheck, } from './implementation/checks.js';
|
|
2
3
|
import { metaSchema, scorableSchema, slugSchema, weightedRefSchema, } from './implementation/schemas.js';
|
|
3
|
-
import {
|
|
4
|
+
import { formatRef } from './implementation/utils.js';
|
|
4
5
|
export const categoryRefSchema = weightedRefSchema('Weighted references to audits and/or groups for the category', 'Slug of an audit or group (depending on `type`)').merge(z.object({
|
|
5
|
-
type: z
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
type: z
|
|
7
|
+
.enum(['audit', 'group'])
|
|
8
|
+
.describe('Discriminant for reference kind, affects where `slug` is looked up'),
|
|
8
9
|
plugin: slugSchema.describe('Plugin slug (plugin should contain referenced audit or group)'),
|
|
9
10
|
}));
|
|
10
|
-
export const categoryConfigSchema = scorableSchema('Category with a score calculated from audits and groups from various plugins', categoryRefSchema,
|
|
11
|
+
export const categoryConfigSchema = scorableSchema('Category with a score calculated from audits and groups from various plugins', categoryRefSchema, createDuplicatesCheck(serializeCategoryRefTarget, duplicates => `Category has duplicate references: ${formatSerializedCategoryRefTargets(duplicates)}`))
|
|
11
12
|
.merge(metaSchema({
|
|
12
13
|
titleDescription: 'Category Title',
|
|
13
14
|
docsUrlDescription: 'Category docs URL',
|
|
@@ -16,32 +17,24 @@ export const categoryConfigSchema = scorableSchema('Category with a score calcul
|
|
|
16
17
|
}))
|
|
17
18
|
.merge(z.object({
|
|
18
19
|
isBinary: z
|
|
19
|
-
.boolean(
|
|
20
|
-
|
|
21
|
-
})
|
|
20
|
+
.boolean()
|
|
21
|
+
.describe('Is this a binary category (i.e. only a perfect score considered a "pass")?')
|
|
22
22
|
.optional(),
|
|
23
23
|
}));
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return `In the categories, the following audit or group refs are duplicates: ${errorItems(duplicateRefs)}`;
|
|
24
|
+
const CATEGORY_REF_SEP = '||';
|
|
25
|
+
function serializeCategoryRefTarget(ref) {
|
|
26
|
+
return [ref.type, ref.plugin, ref.slug].join(CATEGORY_REF_SEP);
|
|
28
27
|
}
|
|
29
|
-
function
|
|
30
|
-
return
|
|
28
|
+
function formatSerializedCategoryRefTargets(keys) {
|
|
29
|
+
return keys
|
|
30
|
+
.map(key => {
|
|
31
|
+
const [type, plugin, slug] = key.split(CATEGORY_REF_SEP);
|
|
32
|
+
return formatRef({ type, plugin, slug });
|
|
33
|
+
})
|
|
34
|
+
.join(', ');
|
|
31
35
|
}
|
|
32
36
|
export const categoriesSchema = z
|
|
33
|
-
.array(categoryConfigSchema
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.refine(categoryCfg => !getDuplicateSlugCategories(categoryCfg), categoryCfg => ({
|
|
37
|
-
message: duplicateSlugCategoriesErrorMsg(categoryCfg),
|
|
38
|
-
}));
|
|
39
|
-
// helper for validator: categories slugs are unique
|
|
40
|
-
function duplicateSlugCategoriesErrorMsg(categories) {
|
|
41
|
-
const duplicateStringSlugs = getDuplicateSlugCategories(categories);
|
|
42
|
-
return `In the categories, the following slugs are duplicated: ${errorItems(duplicateStringSlugs)}`;
|
|
43
|
-
}
|
|
44
|
-
function getDuplicateSlugCategories(categories) {
|
|
45
|
-
return hasDuplicateStrings(categories.map(({ slug }) => slug));
|
|
46
|
-
}
|
|
37
|
+
.array(categoryConfigSchema)
|
|
38
|
+
.check(createDuplicateSlugsCheck('Category'))
|
|
39
|
+
.describe('Categorization of individual audits');
|
|
47
40
|
//# sourceMappingURL=category-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-config.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/category-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"category-config.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/category-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAChD,8DAA8D,EAC9D,iDAAiD,CAClD,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACxB,QAAQ,CACP,oEAAoE,CACrE;IACH,MAAM,EAAE,UAAU,CAAC,QAAQ,CACzB,+DAA+D,CAChE;CACF,CAAC,CACH,CAAC;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAChD,8EAA8E,EAC9E,iBAAiB,EACjB,qBAAqB,CACnB,0BAA0B,EAC1B,UAAU,CAAC,EAAE,CACX,sCAAsC,kCAAkC,CAAC,UAAU,CAAC,EAAE,CACzF,CACF;KACE,KAAK,CACJ,UAAU,CAAC;IACT,gBAAgB,EAAE,gBAAgB;IAClC,kBAAkB,EAAE,mBAAmB;IACvC,sBAAsB,EAAE,sBAAsB;IAC9C,WAAW,EAAE,wBAAwB;CACtC,CAAC,CACH;KACA,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,CACP,4EAA4E,CAC7E;SACA,QAAQ,EAAE;CACd,CAAC,CACH,CAAC;AAIJ,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,SAAS,0BAA0B,CAAC,GAAgB;IAClD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAc;IACxD,OAAO,IAAI;SACR,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAItD,CAAC;QACF,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,KAAK,CAAC,oBAAoB,CAAC;KAC3B,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;KAC5C,QAAQ,CAAC,qCAAqC,CAAC,CAAC"}
|
package/src/lib/commit.d.ts
CHANGED
|
@@ -2,19 +2,9 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const commitSchema: z.ZodObject<{
|
|
3
3
|
hash: z.ZodString;
|
|
4
4
|
message: z.ZodString;
|
|
5
|
-
date: z.
|
|
5
|
+
date: z.ZodCoercedDate<unknown>;
|
|
6
6
|
author: z.ZodString;
|
|
7
|
-
},
|
|
8
|
-
message: string;
|
|
9
|
-
date: Date;
|
|
10
|
-
hash: string;
|
|
11
|
-
author: string;
|
|
12
|
-
}, {
|
|
13
|
-
message: string;
|
|
14
|
-
date: Date;
|
|
15
|
-
hash: string;
|
|
16
|
-
author: string;
|
|
17
|
-
}>;
|
|
7
|
+
}, z.core.$strip>;
|
|
18
8
|
/**
|
|
19
9
|
* Type Definition: `Commit`
|
|
20
10
|
*
|
package/src/lib/commit.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export const commitSchema = z
|
|
2
|
+
export const commitSchema = z
|
|
3
|
+
.object({
|
|
3
4
|
hash: z
|
|
4
|
-
.string(
|
|
5
|
-
.regex(/^[\da-f]{40}$/, 'Commit SHA should be a 40-character hexadecimal string')
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
description: 'Commit author name',
|
|
13
|
-
})
|
|
14
|
-
.trim(),
|
|
15
|
-
}, { description: 'Git commit' });
|
|
5
|
+
.string()
|
|
6
|
+
.regex(/^[\da-f]{40}$/, 'Commit SHA should be a 40-character hexadecimal string')
|
|
7
|
+
.describe('Commit SHA (full)'),
|
|
8
|
+
message: z.string().describe('Commit message'),
|
|
9
|
+
date: z.coerce.date().describe('Date and time when commit was authored'),
|
|
10
|
+
author: z.string().trim().describe('Commit author name'),
|
|
11
|
+
})
|
|
12
|
+
.describe('Git commit');
|
|
16
13
|
//# sourceMappingURL=commit.js.map
|
package/src/lib/commit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,KAAK,CACJ,eAAe,EACf,wDAAwD,CACzD;SACA,QAAQ,CAAC,mBAAmB,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACxE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CACzD,CAAC;KACD,QAAQ,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Generic schema for a tool command configuration, reusable across plugins.
|
|
4
|
+
*/
|
|
5
|
+
export declare const artifactGenerationCommandSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
6
|
+
command: z.ZodString;
|
|
7
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
8
|
+
}, z.core.$strip>]>;
|
|
9
|
+
export declare const pluginArtifactOptionsSchema: z.ZodObject<{
|
|
10
|
+
generateArtifactsCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
11
|
+
command: z.ZodString;
|
|
12
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
}, z.core.$strip>]>>;
|
|
14
|
+
artifactsPaths: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
/**
|
|
17
|
+
* Type Definition: `PluginArtifactOptions`
|
|
18
|
+
*
|
|
19
|
+
* This type is derived from a Zod schema and represents
|
|
20
|
+
* the validated structure of `PluginArtifactOptions` used within the application.
|
|
21
|
+
*
|
|
22
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#pluginartifactoptions}
|
|
23
|
+
*/
|
|
24
|
+
export type PluginArtifactOptions = z.infer<typeof pluginArtifactOptionsSchema>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Generic schema for a tool command configuration, reusable across plugins.
|
|
4
|
+
*/
|
|
5
|
+
export const artifactGenerationCommandSchema = z.union([
|
|
6
|
+
z.string().min(1).describe('Generate artifact files'),
|
|
7
|
+
z.object({
|
|
8
|
+
command: z.string().min(1).describe('Generate artifact files'),
|
|
9
|
+
args: z.array(z.string()).optional(),
|
|
10
|
+
}),
|
|
11
|
+
]);
|
|
12
|
+
export const pluginArtifactOptionsSchema = z.object({
|
|
13
|
+
generateArtifactsCommand: artifactGenerationCommandSchema.optional(),
|
|
14
|
+
artifactsPaths: z.union([z.string(), z.array(z.string()).min(1)]),
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC9D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,wBAAwB,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IACpE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC,CAAC"}
|