@code-pushup/models 0.82.0 → 0.84.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 +2 -2
- package/package.json +4 -3
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/audit-output.js +22 -8
- package/src/lib/audit-output.js.map +1 -1
- package/src/lib/audit.js +7 -3
- package/src/lib/audit.js.map +1 -1
- package/src/lib/cache-config.js +14 -7
- package/src/lib/cache-config.js.map +1 -1
- package/src/lib/category-config.js +13 -7
- package/src/lib/category-config.js.map +1 -1
- package/src/lib/commit.js +10 -5
- package/src/lib/commit.js.map +1 -1
- package/src/lib/configuration.js +14 -7
- package/src/lib/configuration.js.map +1 -1
- package/src/lib/core-config.d.ts +3 -3
- package/src/lib/core-config.js +1 -1
- package/src/lib/core-config.js.map +1 -1
- package/src/lib/group.js +9 -4
- package/src/lib/group.js.map +1 -1
- package/src/lib/implementation/schemas.d.ts +1 -1
- package/src/lib/implementation/schemas.js +77 -47
- package/src/lib/implementation/schemas.js.map +1 -1
- package/src/lib/implementation/validate.d.ts +30 -0
- package/src/lib/implementation/validate.js +34 -0
- package/src/lib/implementation/validate.js.map +1 -0
- package/src/lib/issue.js +9 -5
- package/src/lib/issue.js.map +1 -1
- package/src/lib/persist-config.js +9 -5
- package/src/lib/persist-config.js.map +1 -1
- package/src/lib/plugin-config.d.ts +2 -2
- package/src/lib/plugin-config.js +20 -8
- package/src/lib/plugin-config.js.map +1 -1
- package/src/lib/report.d.ts +2 -2
- package/src/lib/report.js +14 -5
- package/src/lib/report.js.map +1 -1
- package/src/lib/reports-diff.js +34 -22
- package/src/lib/reports-diff.js.map +1 -1
- package/src/lib/runner-config.js +32 -12
- package/src/lib/runner-config.js.map +1 -1
- package/src/lib/source.js +7 -2
- package/src/lib/source.js.map +1 -1
- package/src/lib/table.js +26 -13
- package/src/lib/table.js.map +1 -1
- package/src/lib/tree.js +51 -30
- package/src/lib/tree.js.map +1 -1
- package/src/lib/upload-config.js +15 -9
- package/src/lib/upload-config.js.map +1 -1
|
@@ -4,7 +4,8 @@ import { MAX_DESCRIPTION_LENGTH, MAX_SLUG_LENGTH, MAX_TITLE_LENGTH, } from './li
|
|
|
4
4
|
import { filenameRegex, slugRegex } from './utils.js';
|
|
5
5
|
export const tableCellValueSchema = z
|
|
6
6
|
.union([z.string(), z.number(), z.boolean(), z.null()])
|
|
7
|
-
.default(null)
|
|
7
|
+
.default(null)
|
|
8
|
+
.meta({ title: 'TableCellValue' });
|
|
8
9
|
/**
|
|
9
10
|
* Schema for execution meta date
|
|
10
11
|
*/
|
|
@@ -26,15 +27,21 @@ export const slugSchema = z
|
|
|
26
27
|
.max(MAX_SLUG_LENGTH, {
|
|
27
28
|
message: `The slug can be max ${MAX_SLUG_LENGTH} characters long`,
|
|
28
29
|
})
|
|
29
|
-
.
|
|
30
|
+
.meta({
|
|
31
|
+
title: 'Slug',
|
|
32
|
+
description: 'Unique ID (human-readable, URL-safe)',
|
|
33
|
+
});
|
|
30
34
|
/** Schema for a general description property */
|
|
31
35
|
export const descriptionSchema = z
|
|
32
36
|
.string()
|
|
33
37
|
.max(MAX_DESCRIPTION_LENGTH)
|
|
34
|
-
.
|
|
38
|
+
.meta({
|
|
39
|
+
title: 'Description',
|
|
40
|
+
description: 'Description (markdown)',
|
|
41
|
+
})
|
|
35
42
|
.optional();
|
|
36
43
|
/* Schema for a URL */
|
|
37
|
-
export const urlSchema = z.string().url();
|
|
44
|
+
export const urlSchema = z.string().url().meta({ title: 'URL' });
|
|
38
45
|
/** Schema for a docsUrl */
|
|
39
46
|
export const docsUrlSchema = urlSchema
|
|
40
47
|
.optional()
|
|
@@ -51,20 +58,22 @@ export const docsUrlSchema = urlSchema
|
|
|
51
58
|
}
|
|
52
59
|
throw new ZodError(ctx.error.issues);
|
|
53
60
|
})
|
|
54
|
-
.
|
|
61
|
+
.meta({ title: 'DocsUrl', description: 'Documentation site' });
|
|
55
62
|
/** Schema for a title of a plugin, category and audit */
|
|
56
|
-
export const titleSchema = z
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
export const titleSchema = z.string().max(MAX_TITLE_LENGTH).meta({
|
|
64
|
+
title: 'Title',
|
|
65
|
+
description: 'Descriptive name',
|
|
66
|
+
});
|
|
60
67
|
/** Schema for score of audit, category or group */
|
|
61
|
-
export const scoreSchema = z
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
.describe('Value between 0 and 1');
|
|
68
|
+
export const scoreSchema = z.number().min(0).max(1).meta({
|
|
69
|
+
title: 'Score',
|
|
70
|
+
description: 'Value between 0 and 1',
|
|
71
|
+
});
|
|
66
72
|
/** Schema for a property indicating whether an entity is filtered out */
|
|
67
|
-
export const isSkippedSchema = z
|
|
73
|
+
export const isSkippedSchema = z
|
|
74
|
+
.boolean()
|
|
75
|
+
.optional()
|
|
76
|
+
.meta({ title: 'IsSkipped' });
|
|
68
77
|
/**
|
|
69
78
|
* Used for categories, plugins and audits
|
|
70
79
|
* @param options
|
|
@@ -91,62 +100,77 @@ export function metaSchema(options) {
|
|
|
91
100
|
export const filePathSchema = z
|
|
92
101
|
.string()
|
|
93
102
|
.trim()
|
|
94
|
-
.min(1
|
|
103
|
+
.min(1)
|
|
104
|
+
.meta({ title: 'FilePath' });
|
|
95
105
|
/**
|
|
96
106
|
* Regex for glob patterns - validates file paths and glob patterns
|
|
97
107
|
* Allows normal paths and paths with glob metacharacters: *, **, {}, [], !, ?
|
|
98
108
|
* Excludes invalid path characters: <>"|
|
|
99
109
|
*/
|
|
100
110
|
const globRegex = /^!?[^<>"|]+$/;
|
|
101
|
-
export const globPathSchema = z
|
|
102
|
-
|
|
103
|
-
.
|
|
104
|
-
|
|
105
|
-
.regex(globRegex, {
|
|
106
|
-
message: 'The path must be a valid file path or glob pattern (supports *, **, {}, [], !, ?)',
|
|
107
|
-
})
|
|
108
|
-
.describe('Schema for a glob pattern (supports wildcards like *, **, {}, !, etc.)');
|
|
111
|
+
export const globPathSchema = z.string().trim().min(1).regex(globRegex).meta({
|
|
112
|
+
title: 'GlobPath',
|
|
113
|
+
description: 'Schema for a glob pattern (supports wildcards like *, **, {}, !, etc.)',
|
|
114
|
+
});
|
|
109
115
|
/** Schema for a fileNameSchema */
|
|
110
116
|
export const fileNameSchema = z
|
|
111
117
|
.string()
|
|
112
118
|
.trim()
|
|
113
|
-
.regex(filenameRegex
|
|
114
|
-
|
|
115
|
-
})
|
|
116
|
-
.min(1, { message: 'The file name is invalid' });
|
|
119
|
+
.regex(filenameRegex)
|
|
120
|
+
.min(1)
|
|
121
|
+
.meta({ title: 'FileName' });
|
|
117
122
|
/** Schema for a positiveInt */
|
|
118
|
-
export const positiveIntSchema = z
|
|
119
|
-
|
|
123
|
+
export const positiveIntSchema = z
|
|
124
|
+
.number()
|
|
125
|
+
.int()
|
|
126
|
+
.positive()
|
|
127
|
+
.meta({ title: 'PositiveInt' });
|
|
128
|
+
export const nonnegativeNumberSchema = z
|
|
129
|
+
.number()
|
|
130
|
+
.nonnegative()
|
|
131
|
+
.meta({ title: 'NonnegativeNumber' });
|
|
120
132
|
export function packageVersionSchema(options) {
|
|
121
133
|
const { versionDescription = 'NPM version of the package', required } = options ?? {};
|
|
122
|
-
const packageSchema = z.string().
|
|
123
|
-
const versionSchema = z.string().
|
|
134
|
+
const packageSchema = z.string().meta({ description: 'NPM package name' });
|
|
135
|
+
const versionSchema = z.string().meta({ description: versionDescription });
|
|
124
136
|
return z
|
|
125
137
|
.object({
|
|
126
138
|
packageName: required ? packageSchema : packageSchema.optional(),
|
|
127
139
|
version: required ? versionSchema : versionSchema.optional(),
|
|
128
140
|
})
|
|
129
|
-
.
|
|
141
|
+
.meta({
|
|
142
|
+
description: 'NPM package name and version of a published package',
|
|
143
|
+
});
|
|
130
144
|
}
|
|
131
145
|
/** Schema for a binary score threshold */
|
|
132
146
|
export const scoreTargetSchema = nonnegativeNumberSchema
|
|
133
147
|
.max(1)
|
|
134
|
-
.
|
|
148
|
+
.meta({
|
|
149
|
+
title: 'ScoreTarget',
|
|
150
|
+
description: 'Pass/fail score threshold (0-1)',
|
|
151
|
+
})
|
|
135
152
|
.optional();
|
|
136
153
|
/** Schema for a weight */
|
|
137
|
-
export const weightSchema = nonnegativeNumberSchema.
|
|
154
|
+
export const weightSchema = nonnegativeNumberSchema.meta({
|
|
155
|
+
title: 'Weight',
|
|
156
|
+
description: 'Coefficient for the given score (use weight 0 if only for display)',
|
|
157
|
+
});
|
|
138
158
|
export function weightedRefSchema(description, slugDescription) {
|
|
139
159
|
return z
|
|
140
160
|
.object({
|
|
141
|
-
slug: slugSchema.
|
|
142
|
-
weight: weightSchema.
|
|
161
|
+
slug: slugSchema.meta({ description: slugDescription }),
|
|
162
|
+
weight: weightSchema.meta({
|
|
163
|
+
description: 'Weight used to calculate score',
|
|
164
|
+
}),
|
|
143
165
|
})
|
|
144
|
-
.
|
|
166
|
+
.meta({ description });
|
|
145
167
|
}
|
|
146
168
|
export function scorableSchema(description, refSchema, duplicateCheckFn) {
|
|
147
169
|
return z
|
|
148
170
|
.object({
|
|
149
|
-
slug: slugSchema.
|
|
171
|
+
slug: slugSchema.meta({
|
|
172
|
+
description: 'Human-readable unique ID, e.g. "performance"',
|
|
173
|
+
}),
|
|
150
174
|
refs: z
|
|
151
175
|
.array(refSchema)
|
|
152
176
|
.min(1, { message: 'In a category, there has to be at least one ref' })
|
|
@@ -159,18 +183,24 @@ export function scorableSchema(description, refSchema, duplicateCheckFn) {
|
|
|
159
183
|
})
|
|
160
184
|
.describe(description);
|
|
161
185
|
}
|
|
162
|
-
export const materialIconSchema = z
|
|
163
|
-
|
|
164
|
-
|
|
186
|
+
export const materialIconSchema = z.enum(MATERIAL_ICONS).meta({
|
|
187
|
+
title: 'MaterialIcon',
|
|
188
|
+
description: 'Icon from VSCode Material Icons extension',
|
|
189
|
+
});
|
|
165
190
|
function hasNonZeroWeightedRef(refs) {
|
|
166
191
|
return refs.reduce((acc, { weight }) => weight + acc, 0) !== 0;
|
|
167
192
|
}
|
|
168
193
|
export const filePositionSchema = z
|
|
169
194
|
.object({
|
|
170
|
-
startLine: positiveIntSchema.
|
|
171
|
-
startColumn: positiveIntSchema
|
|
172
|
-
|
|
173
|
-
|
|
195
|
+
startLine: positiveIntSchema.meta({ description: 'Start line' }),
|
|
196
|
+
startColumn: positiveIntSchema
|
|
197
|
+
.meta({ description: 'Start column' })
|
|
198
|
+
.optional(),
|
|
199
|
+
endLine: positiveIntSchema.meta({ description: 'End line' }).optional(),
|
|
200
|
+
endColumn: positiveIntSchema.meta({ description: 'End column' }).optional(),
|
|
174
201
|
})
|
|
175
|
-
.
|
|
202
|
+
.meta({
|
|
203
|
+
title: 'FilePosition',
|
|
204
|
+
description: 'Location in file',
|
|
205
|
+
});
|
|
176
206
|
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/lib/implementation/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,QAAQ,EAKR,CAAC,GACF,MAAM,KAAK,CAAC;AACb,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACtD,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/lib/implementation/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ZodError, type ZodType, z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Type Definition: `SchemaValidationContext`
|
|
4
|
+
*
|
|
5
|
+
* This type is derived from a Zod schema and represents
|
|
6
|
+
* the validated structure of `SchemaValidationContext` used within the application.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#schemavalidationcontext}
|
|
9
|
+
*/
|
|
10
|
+
type SchemaValidationContext = {
|
|
11
|
+
filePath?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Autocompletes valid Zod Schema input for convience, but will accept any other data as well
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Type Definition: `ZodInputLooseAutocomplete`
|
|
18
|
+
*
|
|
19
|
+
* This type is derived from a Zod schema and represents
|
|
20
|
+
* the validated structure of `ZodInputLooseAutocomplete` used within the application.
|
|
21
|
+
*
|
|
22
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#zodinputlooseautocomplete}
|
|
23
|
+
*/
|
|
24
|
+
type ZodInputLooseAutocomplete<T extends ZodType> = z.input<T> | {} | null | undefined;
|
|
25
|
+
export declare class SchemaValidationError extends Error {
|
|
26
|
+
constructor(error: ZodError, schema: ZodType, { filePath }: SchemaValidationContext);
|
|
27
|
+
}
|
|
28
|
+
export declare function validate<T extends ZodType>(schema: T, data: ZodInputLooseAutocomplete<T>, context?: SchemaValidationContext): z.output<T>;
|
|
29
|
+
export declare function validateAsync<T extends ZodType>(schema: T, data: ZodInputLooseAutocomplete<T>, context?: SchemaValidationContext): Promise<z.output<T>>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { ZodError, z } from 'zod';
|
|
4
|
+
export class SchemaValidationError extends Error {
|
|
5
|
+
constructor(error, schema, { filePath }) {
|
|
6
|
+
const formattedError = z.prettifyError(error);
|
|
7
|
+
const schemaTitle = z.globalRegistry.get(schema)?.title;
|
|
8
|
+
const summary = [
|
|
9
|
+
'Invalid',
|
|
10
|
+
schemaTitle ? ansis.bold(schemaTitle) : 'data',
|
|
11
|
+
filePath &&
|
|
12
|
+
`in ${ansis.bold(path.relative(process.cwd(), filePath))} file`,
|
|
13
|
+
]
|
|
14
|
+
.filter(Boolean)
|
|
15
|
+
.join(' ');
|
|
16
|
+
super(`${summary}\n${formattedError}\n`);
|
|
17
|
+
this.name = SchemaValidationError.name;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function validate(schema, data, context = {}) {
|
|
21
|
+
const result = schema.safeParse(data);
|
|
22
|
+
if (result.success) {
|
|
23
|
+
return result.data;
|
|
24
|
+
}
|
|
25
|
+
throw new SchemaValidationError(result.error, schema, context);
|
|
26
|
+
}
|
|
27
|
+
export async function validateAsync(schema, data, context = {}) {
|
|
28
|
+
const result = await schema.safeParseAsync(data);
|
|
29
|
+
if (result.success) {
|
|
30
|
+
return result.data;
|
|
31
|
+
}
|
|
32
|
+
throw new SchemaValidationError(result.error, schema, context);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/lib/implementation/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAehD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YACE,KAAe,EACf,MAAe,EACf,EAAE,QAAQ,EAA2B;QAErC,MAAM,cAAc,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QACxD,MAAM,OAAO,GAAG;YACd,SAAS;YACT,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;YAC9C,QAAQ;gBACN,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO;SAClE;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,KAAK,CAAC,GAAG,OAAO,KAAK,cAAc,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;IACzC,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CACtB,MAAS,EACT,IAAkC,EAClC,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAS,EACT,IAAkC,EAClC,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
|
package/src/lib/issue.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { MAX_ISSUE_MESSAGE_LENGTH } from './implementation/limits.js';
|
|
3
3
|
import { sourceFileLocationSchema } from './source.js';
|
|
4
|
-
export const issueSeveritySchema = z
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export const issueSeveritySchema = z.enum(['info', 'warning', 'error']).meta({
|
|
5
|
+
title: 'IssueSeverity',
|
|
6
|
+
description: 'Severity level',
|
|
7
|
+
});
|
|
7
8
|
export const issueSchema = z
|
|
8
9
|
.object({
|
|
9
10
|
message: z
|
|
10
11
|
.string()
|
|
11
12
|
.max(MAX_ISSUE_MESSAGE_LENGTH)
|
|
12
|
-
.
|
|
13
|
+
.meta({ description: 'Descriptive error message' }),
|
|
13
14
|
severity: issueSeveritySchema,
|
|
14
15
|
source: sourceFileLocationSchema.optional(),
|
|
15
16
|
})
|
|
16
|
-
.
|
|
17
|
+
.meta({
|
|
18
|
+
title: 'Issue',
|
|
19
|
+
description: 'Issue information',
|
|
20
|
+
});
|
|
17
21
|
//# sourceMappingURL=issue.js.map
|
package/src/lib/issue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/lib/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/lib/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,wBAAwB,CAAC;SAC7B,IAAI,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACrD,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,IAAI,CAAC;IACJ,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,mBAAmB;CACjC,CAAC,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { fileNameSchema, filePathSchema } from './implementation/schemas.js';
|
|
3
|
-
export const formatSchema = z.enum(['json', 'md']);
|
|
4
|
-
export const persistConfigSchema = z
|
|
5
|
-
|
|
3
|
+
export const formatSchema = z.enum(['json', 'md']).meta({ title: 'Format' });
|
|
4
|
+
export const persistConfigSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
outputDir: filePathSchema
|
|
7
|
+
.meta({ description: 'Artifacts folder' })
|
|
8
|
+
.optional(),
|
|
6
9
|
filename: fileNameSchema
|
|
7
|
-
.
|
|
10
|
+
.meta({ description: 'Artifacts file name (without extension)' })
|
|
8
11
|
.optional(),
|
|
9
12
|
format: z.array(formatSchema).optional(),
|
|
10
13
|
skipReports: z.boolean().optional(),
|
|
11
|
-
})
|
|
14
|
+
})
|
|
15
|
+
.meta({ title: 'PersistConfig' });
|
|
12
16
|
//# sourceMappingURL=persist-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist-config.js","sourceRoot":"","sources":["../../../src/lib/persist-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"persist-config.js","sourceRoot":"","sources":["../../../src/lib/persist-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAG7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,SAAS,EAAE,cAAc;SACtB,IAAI,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;SACzC,QAAQ,EAAE;IACb,QAAQ,EAAE,cAAc;SACrB,IAAI,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;SAChE,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC"}
|
|
@@ -23,6 +23,7 @@ export declare const pluginMetaSchema: z.ZodObject<{
|
|
|
23
23
|
key: "key";
|
|
24
24
|
slug: "slug";
|
|
25
25
|
file: "file";
|
|
26
|
+
url: "url";
|
|
26
27
|
search: "search";
|
|
27
28
|
blink: "blink";
|
|
28
29
|
table: "table";
|
|
@@ -447,7 +448,6 @@ export declare const pluginMetaSchema: z.ZodObject<{
|
|
|
447
448
|
go: "go";
|
|
448
449
|
python: "python";
|
|
449
450
|
"python-misc": "python-misc";
|
|
450
|
-
url: "url";
|
|
451
451
|
console: "console";
|
|
452
452
|
powershell: "powershell";
|
|
453
453
|
gradle: "gradle";
|
|
@@ -1186,6 +1186,7 @@ export declare const pluginConfigSchema: z.ZodObject<{
|
|
|
1186
1186
|
key: "key";
|
|
1187
1187
|
slug: "slug";
|
|
1188
1188
|
file: "file";
|
|
1189
|
+
url: "url";
|
|
1189
1190
|
search: "search";
|
|
1190
1191
|
blink: "blink";
|
|
1191
1192
|
table: "table";
|
|
@@ -1610,7 +1611,6 @@ export declare const pluginConfigSchema: z.ZodObject<{
|
|
|
1610
1611
|
go: "go";
|
|
1611
1612
|
python: "python";
|
|
1612
1613
|
"python-misc": "python-misc";
|
|
1613
|
-
url: "url";
|
|
1614
1614
|
console: "console";
|
|
1615
1615
|
powershell: "powershell";
|
|
1616
1616
|
gradle: "gradle";
|
package/src/lib/plugin-config.js
CHANGED
|
@@ -8,7 +8,10 @@ import { runnerConfigSchema, runnerFunctionSchema } from './runner-config.js';
|
|
|
8
8
|
export const pluginContextSchema = z
|
|
9
9
|
.record(z.string(), z.unknown())
|
|
10
10
|
.optional()
|
|
11
|
-
.
|
|
11
|
+
.meta({
|
|
12
|
+
title: 'PluginContext',
|
|
13
|
+
description: 'Plugin-specific context data for helpers',
|
|
14
|
+
});
|
|
12
15
|
export const pluginMetaSchema = packageVersionSchema()
|
|
13
16
|
.extend(metaSchema({
|
|
14
17
|
titleDescription: 'Descriptive name',
|
|
@@ -17,26 +20,35 @@ export const pluginMetaSchema = packageVersionSchema()
|
|
|
17
20
|
description: 'Plugin metadata',
|
|
18
21
|
}).shape)
|
|
19
22
|
.extend({
|
|
20
|
-
slug: slugSchema.
|
|
23
|
+
slug: slugSchema.meta({
|
|
24
|
+
description: 'Unique plugin slug within core config',
|
|
25
|
+
}),
|
|
21
26
|
icon: materialIconSchema,
|
|
22
|
-
})
|
|
27
|
+
})
|
|
28
|
+
.meta({ title: 'PluginMeta' });
|
|
23
29
|
export const pluginScoreTargetsSchema = z
|
|
24
30
|
.union([
|
|
25
31
|
scoreTargetSchema,
|
|
26
32
|
z.record(z.string(), scoreTargetSchema.nonoptional()),
|
|
27
33
|
])
|
|
28
|
-
.
|
|
29
|
-
.
|
|
30
|
-
|
|
34
|
+
.optional()
|
|
35
|
+
.meta({
|
|
36
|
+
title: 'PluginScoreTargets',
|
|
37
|
+
description: 'Score targets that trigger a perfect score. Number for all audits or record { slug: target } for specific audits',
|
|
38
|
+
});
|
|
39
|
+
export const pluginDataSchema = z
|
|
40
|
+
.object({
|
|
31
41
|
runner: z.union([runnerConfigSchema, runnerFunctionSchema]),
|
|
32
42
|
audits: pluginAuditsSchema,
|
|
33
43
|
groups: groupsSchema,
|
|
34
44
|
scoreTargets: pluginScoreTargetsSchema,
|
|
35
45
|
context: pluginContextSchema,
|
|
36
|
-
})
|
|
46
|
+
})
|
|
47
|
+
.meta({ title: 'PluginData' });
|
|
37
48
|
export const pluginConfigSchema = pluginMetaSchema
|
|
38
49
|
.extend(pluginDataSchema.shape)
|
|
39
|
-
.check(createCheck(findMissingSlugsInGroupRefs))
|
|
50
|
+
.check(createCheck(findMissingSlugsInGroupRefs))
|
|
51
|
+
.meta({ title: 'PluginConfig' });
|
|
40
52
|
// every listed group ref points to an audit within the plugin
|
|
41
53
|
export function findMissingSlugsInGroupRefs({ audits, groups = [] }) {
|
|
42
54
|
const missingSlugs = getAuditSlugsFromGroups(audits, groups);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../../src/lib/plugin-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAc,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,QAAQ,EAAE;KACV,
|
|
1
|
+
{"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../../src/lib/plugin-config.ts"],"names":[],"mappings":"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"}
|
package/src/lib/report.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ export declare const pluginReportSchema: z.ZodObject<{
|
|
|
84
84
|
key: "key";
|
|
85
85
|
slug: "slug";
|
|
86
86
|
file: "file";
|
|
87
|
+
url: "url";
|
|
87
88
|
search: "search";
|
|
88
89
|
blink: "blink";
|
|
89
90
|
table: "table";
|
|
@@ -508,7 +509,6 @@ export declare const pluginReportSchema: z.ZodObject<{
|
|
|
508
509
|
go: "go";
|
|
509
510
|
python: "python";
|
|
510
511
|
"python-misc": "python-misc";
|
|
511
|
-
url: "url";
|
|
512
512
|
console: "console";
|
|
513
513
|
powershell: "powershell";
|
|
514
514
|
gradle: "gradle";
|
|
@@ -1044,6 +1044,7 @@ export declare const reportSchema: z.ZodObject<{
|
|
|
1044
1044
|
key: "key";
|
|
1045
1045
|
slug: "slug";
|
|
1046
1046
|
file: "file";
|
|
1047
|
+
url: "url";
|
|
1047
1048
|
search: "search";
|
|
1048
1049
|
blink: "blink";
|
|
1049
1050
|
table: "table";
|
|
@@ -1468,7 +1469,6 @@ export declare const reportSchema: z.ZodObject<{
|
|
|
1468
1469
|
go: "go";
|
|
1469
1470
|
python: "python";
|
|
1470
1471
|
"python-misc": "python-misc";
|
|
1471
|
-
url: "url";
|
|
1472
1472
|
console: "console";
|
|
1473
1473
|
powershell: "powershell";
|
|
1474
1474
|
gradle: "gradle";
|
package/src/lib/report.js
CHANGED
|
@@ -8,7 +8,9 @@ import { createCheck } from './implementation/checks.js';
|
|
|
8
8
|
import { executionMetaSchema, packageVersionSchema, } from './implementation/schemas.js';
|
|
9
9
|
import { findMissingSlugsInCategoryRefs } from './implementation/utils.js';
|
|
10
10
|
import { findMissingSlugsInGroupRefs, pluginMetaSchema, } from './plugin-config.js';
|
|
11
|
-
export const auditReportSchema = auditSchema
|
|
11
|
+
export const auditReportSchema = auditSchema
|
|
12
|
+
.merge(auditOutputSchema)
|
|
13
|
+
.meta({ title: 'AuditReport' });
|
|
12
14
|
export const pluginReportSchema = pluginMetaSchema
|
|
13
15
|
.merge(executionMetaSchema({
|
|
14
16
|
descriptionDate: 'Start date and time of plugin run',
|
|
@@ -18,7 +20,8 @@ export const pluginReportSchema = pluginMetaSchema
|
|
|
18
20
|
audits: z.array(auditReportSchema).min(1),
|
|
19
21
|
groups: z.array(groupSchema).optional(),
|
|
20
22
|
}))
|
|
21
|
-
.check(createCheck(findMissingSlugsInGroupRefs))
|
|
23
|
+
.check(createCheck(findMissingSlugsInGroupRefs))
|
|
24
|
+
.meta({ title: 'PluginReport' });
|
|
22
25
|
export const reportSchema = packageVersionSchema({
|
|
23
26
|
versionDescription: 'NPM version of the CLI',
|
|
24
27
|
required: true,
|
|
@@ -31,10 +34,16 @@ export const reportSchema = packageVersionSchema({
|
|
|
31
34
|
plugins: z.array(pluginReportSchema).min(1),
|
|
32
35
|
categories: z.array(categoryConfigSchema).optional(),
|
|
33
36
|
commit: commitSchema
|
|
34
|
-
.
|
|
37
|
+
.meta({ description: 'Git commit for which report was collected' })
|
|
35
38
|
.nullable(),
|
|
36
|
-
label: z
|
|
39
|
+
label: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.meta({ description: 'Label (e.g. project name)' }),
|
|
37
43
|
}))
|
|
38
44
|
.check(createCheck(findMissingSlugsInCategoryRefs))
|
|
39
|
-
.
|
|
45
|
+
.meta({
|
|
46
|
+
title: 'Report',
|
|
47
|
+
description: 'Collect output data',
|
|
48
|
+
});
|
|
40
49
|
//# sourceMappingURL=report.js.map
|
package/src/lib/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/lib/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/lib/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW;KACzC,KAAK,CAAC,iBAAiB,CAAC;KACxB,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AAIlC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB;KAC/C,KAAK,CACJ,mBAAmB,CAAC;IAClB,eAAe,EAAE,mCAAmC;IACpD,mBAAmB,EAAE,kCAAkC;CACxD,CAAC,CACH;KACA,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CACH;KACA,KAAK,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;KAC/C,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AAInC,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;IAC/C,kBAAkB,EAAE,wBAAwB;IAC5C,QAAQ,EAAE,IAAI;CACf,CAAC;KACC,KAAK,CACJ,mBAAmB,CAAC;IAClB,eAAe,EAAE,wCAAwC;IACzD,mBAAmB,EAAE,mCAAmC;CACzD,CAAC,CACH;KACA,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,YAAY;SACjB,IAAI,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;SAClE,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;CACtD,CAAC,CACH;KACA,KAAK,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;KAClD,IAAI,CAAC;IACJ,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,qBAAqB;CACnC,CAAC,CAAC"}
|