@code-pushup/models 0.56.0 → 0.58.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 +6 -5
- package/src/index.d.ts +21 -21
- package/src/index.js +22 -0
- package/src/index.js.map +1 -0
- package/src/lib/audit-output.d.ts +24 -0
- package/src/lib/audit-output.js +37 -0
- package/src/lib/audit-output.js.map +1 -0
- package/src/lib/audit.d.ts +16 -0
- package/src/lib/audit.js +33 -0
- package/src/lib/audit.js.map +1 -0
- package/src/lib/category-config.d.ts +24 -0
- package/src/lib/category-config.js +47 -0
- package/src/lib/category-config.js.map +1 -0
- package/src/lib/commit.d.ts +8 -0
- package/src/lib/commit.js +16 -0
- package/src/lib/commit.js.map +1 -0
- package/src/lib/core-config.d.ts +1785 -866
- package/src/lib/core-config.js +31 -0
- package/src/lib/core-config.js.map +1 -0
- package/src/lib/group.d.ts +35 -0
- package/src/lib/group.js +41 -0
- package/src/lib/group.js.map +1 -0
- package/src/lib/implementation/configuration.js +3 -0
- package/src/lib/implementation/configuration.js.map +1 -0
- package/src/lib/implementation/constants.d.ts +1 -1
- package/src/lib/implementation/constants.js +4 -0
- package/src/lib/implementation/constants.js.map +1 -0
- package/src/lib/implementation/limits.js +5 -0
- package/src/lib/implementation/limits.js.map +1 -0
- package/src/lib/implementation/schemas.d.ts +31 -13
- package/src/lib/implementation/schemas.js +133 -0
- package/src/lib/implementation/schemas.js.map +1 -0
- package/src/lib/implementation/utils.d.ts +3 -3
- package/src/lib/implementation/utils.js +72 -0
- package/src/lib/implementation/utils.js.map +1 -0
- package/src/lib/issue.d.ts +16 -0
- package/src/lib/issue.js +14 -0
- package/src/lib/issue.js.map +1 -0
- package/src/lib/persist-config.d.ts +16 -0
- package/src/lib/persist-config.js +11 -0
- package/src/lib/persist-config.js.map +1 -0
- package/src/lib/plugin-config.d.ts +68 -0
- package/src/lib/plugin-config.js +37 -0
- package/src/lib/plugin-config.js.map +1 -0
- package/src/lib/report.d.ts +84 -0
- package/src/lib/report.js +49 -0
- package/src/lib/report.js.map +1 -0
- package/src/lib/reports-diff.d.ts +68 -0
- package/src/lib/reports-diff.js +79 -0
- package/src/lib/reports-diff.js.map +1 -0
- package/src/lib/runner-config.d.ts +54 -0
- package/src/lib/runner-config.js +31 -0
- package/src/lib/runner-config.js.map +1 -0
- package/src/lib/source.d.ts +8 -0
- package/src/lib/source.js +14 -0
- package/src/lib/source.js.map +1 -0
- package/src/lib/table.d.ts +48 -0
- package/src/lib/table.js +37 -0
- package/src/lib/table.js.map +1 -0
- package/src/lib/upload-config.d.ts +8 -0
- package/src/lib/upload-config.js +16 -0
- package/src/lib/upload-config.js.map +1 -0
- package/index.js +0 -753
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regular expression to validate a slug for categories, plugins and audits.
|
|
3
|
+
* - audit (e.g. 'max-lines')
|
|
4
|
+
* - category (e.g. 'performance')
|
|
5
|
+
* Also validates ``and ` `
|
|
6
|
+
*/
|
|
7
|
+
export const slugRegex = /^[a-z\d]+(?:-[a-z\d]+)*$/;
|
|
8
|
+
/**
|
|
9
|
+
* Regular expression to validate a filename.
|
|
10
|
+
*/
|
|
11
|
+
export const filenameRegex = /^(?!.*[ \\/:*?"<>|]).+$/;
|
|
12
|
+
/**
|
|
13
|
+
* helper function to validate string arrays
|
|
14
|
+
*
|
|
15
|
+
* @param strings
|
|
16
|
+
*/
|
|
17
|
+
export function hasDuplicateStrings(strings) {
|
|
18
|
+
const sortedStrings = strings.toSorted();
|
|
19
|
+
const duplStrings = sortedStrings.filter((item, index) => index !== 0 && item === sortedStrings[index - 1]);
|
|
20
|
+
return duplStrings.length === 0 ? false : [...new Set(duplStrings)];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* helper function to validate string arrays
|
|
24
|
+
*
|
|
25
|
+
* @param toCheck
|
|
26
|
+
* @param existing
|
|
27
|
+
*/
|
|
28
|
+
export function hasMissingStrings(toCheck, existing) {
|
|
29
|
+
const nonExisting = toCheck.filter(s => !existing.includes(s));
|
|
30
|
+
return nonExisting.length === 0 ? false : nonExisting;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* helper for error items
|
|
34
|
+
*/
|
|
35
|
+
export function errorItems(items, transform = itemArr => itemArr.join(', ')) {
|
|
36
|
+
return transform(items || []);
|
|
37
|
+
}
|
|
38
|
+
export function exists(value) {
|
|
39
|
+
return value != null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get category references that do not point to any audit or group
|
|
43
|
+
* @param categories
|
|
44
|
+
* @param plugins
|
|
45
|
+
* @returns Array of missing references.
|
|
46
|
+
*/
|
|
47
|
+
export function getMissingRefsForCategories(categories, plugins) {
|
|
48
|
+
if (!categories || categories.length === 0) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const auditRefsFromCategory = categories.flatMap(({ refs }) => refs
|
|
52
|
+
.filter(({ type }) => type === 'audit')
|
|
53
|
+
.map(({ plugin, slug }) => `${plugin}/${slug}`));
|
|
54
|
+
const auditRefsFromPlugins = plugins.flatMap(({ audits, slug: pluginSlug }) => audits.map(({ slug }) => `${pluginSlug}/${slug}`));
|
|
55
|
+
const missingAuditRefs = hasMissingStrings(auditRefsFromCategory, auditRefsFromPlugins);
|
|
56
|
+
const groupRefsFromCategory = categories.flatMap(({ refs }) => refs
|
|
57
|
+
.filter(({ type }) => type === 'group')
|
|
58
|
+
.map(({ plugin, slug }) => `${plugin}#${slug} (group)`));
|
|
59
|
+
const groupRefsFromPlugins = plugins.flatMap(({ groups, slug: pluginSlug }) => Array.isArray(groups)
|
|
60
|
+
? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`)
|
|
61
|
+
: []);
|
|
62
|
+
const missingGroupRefs = hasMissingStrings(groupRefsFromCategory, groupRefsFromPlugins);
|
|
63
|
+
const missingRefs = [missingAuditRefs, missingGroupRefs]
|
|
64
|
+
.filter((refs) => Array.isArray(refs) && refs.length > 0)
|
|
65
|
+
.flat();
|
|
66
|
+
return missingRefs.length > 0 ? missingRefs : false;
|
|
67
|
+
}
|
|
68
|
+
export function missingRefsForCategoriesErrorMsg(categories, plugins) {
|
|
69
|
+
const missingRefs = getMissingRefsForCategories(categories, plugins);
|
|
70
|
+
return `The following category references need to point to an audit or group: ${errorItems(missingRefs)}`;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../packages/models/src/lib/implementation/utils.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAiB;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAClE,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAiB,EACjB,QAAkB;IAElB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAuB,EACvB,YAA2C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAExE,OAAO,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,KAAQ;IAChC,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAwC,EACxC,OAAwC;IAExC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5D,IAAI;SACD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAClD,CAAC;IACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC,CAClD,CAAC;IACF,MAAM,gBAAgB,GAAG,iBAAiB,CACxC,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;IAEF,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5D,IAAI;SACD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,IAAI,UAAU,CAAC,CAC1D,CAAC;IACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAC1C,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,IAAI,UAAU,CAAC;QAC3D,CAAC,CAAC,EAAE,CACT,CAAC;IACF,MAAM,gBAAgB,GAAG,iBAAiB,CACxC,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;SACrD,MAAM,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAC1E,IAAI,EAAE,CAAC;IAEV,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAAwC,EACxC,OAAwC;IAExC,MAAM,WAAW,GAAG,2BAA2B,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,yEAAyE,UAAU,CACxF,WAAW,CACZ,EAAE,CAAC;AACN,CAAC"}
|
package/src/lib/issue.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const issueSeveritySchema: z.ZodEnum<["info", "warning", "error"]>;
|
|
3
|
+
/**
|
|
4
|
+
* Type Definition: `IssueSeverity`
|
|
5
|
+
*
|
|
6
|
+
* This type is derived from a Zod schema and represents
|
|
7
|
+
* the validated structure of `IssueSeverity` used within the application.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#issueseverity}
|
|
10
|
+
*/
|
|
3
11
|
export type IssueSeverity = z.infer<typeof issueSeveritySchema>;
|
|
4
12
|
export declare const issueSchema: z.ZodObject<{
|
|
5
13
|
message: z.ZodString;
|
|
@@ -64,4 +72,12 @@ export declare const issueSchema: z.ZodObject<{
|
|
|
64
72
|
} | undefined;
|
|
65
73
|
} | undefined;
|
|
66
74
|
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Type Definition: `Issue`
|
|
77
|
+
*
|
|
78
|
+
* This type is derived from a Zod schema and represents
|
|
79
|
+
* the validated structure of `Issue` used within the application.
|
|
80
|
+
*
|
|
81
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#issue}
|
|
82
|
+
*/
|
|
67
83
|
export type Issue = z.infer<typeof issueSchema>;
|
package/src/lib/issue.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MAX_ISSUE_MESSAGE_LENGTH } from './implementation/limits.js';
|
|
3
|
+
import { sourceFileLocationSchema } from './source.js';
|
|
4
|
+
export const issueSeveritySchema = z.enum(['info', 'warning', 'error'], {
|
|
5
|
+
description: 'Severity level',
|
|
6
|
+
});
|
|
7
|
+
export const issueSchema = z.object({
|
|
8
|
+
message: z
|
|
9
|
+
.string({ description: 'Descriptive error message' })
|
|
10
|
+
.max(MAX_ISSUE_MESSAGE_LENGTH),
|
|
11
|
+
severity: issueSeveritySchema,
|
|
12
|
+
source: sourceFileLocationSchema.optional(),
|
|
13
|
+
}, { description: 'Issue information' });
|
|
14
|
+
//# sourceMappingURL=issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../../../packages/models/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,EAAE;IACtE,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CACjC;IACE,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;SACpD,GAAG,CAAC,wBAAwB,CAAC;IAChC,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC5C,EACD,EAAE,WAAW,EAAE,mBAAmB,EAAE,CACrC,CAAC"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const formatSchema: z.ZodEnum<["json", "md"]>;
|
|
3
|
+
/**
|
|
4
|
+
* Type Definition: `Format`
|
|
5
|
+
*
|
|
6
|
+
* This type is derived from a Zod schema and represents
|
|
7
|
+
* the validated structure of `Format` used within the application.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#format}
|
|
10
|
+
*/
|
|
3
11
|
export type Format = z.infer<typeof formatSchema>;
|
|
4
12
|
export declare const persistConfigSchema: z.ZodObject<{
|
|
5
13
|
outputDir: z.ZodOptional<z.ZodString>;
|
|
@@ -14,4 +22,12 @@ export declare const persistConfigSchema: z.ZodObject<{
|
|
|
14
22
|
filename?: string | undefined;
|
|
15
23
|
format?: ("json" | "md")[] | undefined;
|
|
16
24
|
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Type Definition: `PersistConfig`
|
|
27
|
+
*
|
|
28
|
+
* This type is derived from a Zod schema and represents
|
|
29
|
+
* the validated structure of `PersistConfig` used within the application.
|
|
30
|
+
*
|
|
31
|
+
* @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#persistconfig}
|
|
32
|
+
*/
|
|
17
33
|
export type PersistConfig = z.infer<typeof persistConfigSchema>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { fileNameSchema, filePathSchema } from './implementation/schemas.js';
|
|
3
|
+
export const formatSchema = z.enum(['json', 'md']);
|
|
4
|
+
export const persistConfigSchema = z.object({
|
|
5
|
+
outputDir: filePathSchema.describe('Artifacts folder').optional(),
|
|
6
|
+
filename: fileNameSchema
|
|
7
|
+
.describe('Artifacts file name (without extension)')
|
|
8
|
+
.optional(),
|
|
9
|
+
format: z.array(formatSchema).optional(),
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=persist-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persist-config.js","sourceRoot":"","sources":["../../../../../packages/models/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;AAGnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACjE,QAAQ,EAAE,cAAc;SACrB,QAAQ,CAAC,yCAAyC,CAAC;SACnD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
|