@code-pushup/models 0.8.9 → 0.8.11
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/index.js +97 -72
- package/package.json +1 -1
- package/src/lib/audit-output.d.ts +6 -6
- package/src/lib/audit.d.ts +6 -6
- package/src/lib/category-config.d.ts +32 -32
- package/src/lib/core-config.d.ts +456 -456
- package/src/lib/group.d.ts +6 -6
- package/src/lib/implementation/schemas.d.ts +37 -31
- package/src/lib/implementation/utils.d.ts +11 -0
- package/src/lib/plugin-config.d.ts +131 -131
- package/src/lib/report.d.ts +371 -69
- package/src/lib/runner-config.d.ts +28 -28
package/index.js
CHANGED
|
@@ -32,6 +32,46 @@ function errorItems(items, transform = (items2) => items2.join(", ")) {
|
|
|
32
32
|
function exists(value) {
|
|
33
33
|
return value != null;
|
|
34
34
|
}
|
|
35
|
+
function getMissingRefsForCategories(categories, plugins) {
|
|
36
|
+
const missingRefs = [];
|
|
37
|
+
const auditRefsFromCategory = categories.flatMap(
|
|
38
|
+
({ refs }) => refs.filter(({ type }) => type === "audit").map(({ plugin, slug }) => `${plugin}/${slug}`)
|
|
39
|
+
);
|
|
40
|
+
const auditRefsFromPlugins = plugins.flatMap(
|
|
41
|
+
({ audits, slug: pluginSlug }) => {
|
|
42
|
+
return audits.map(({ slug }) => `${pluginSlug}/${slug}`);
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
const missingAuditRefs = hasMissingStrings(
|
|
46
|
+
auditRefsFromCategory,
|
|
47
|
+
auditRefsFromPlugins
|
|
48
|
+
);
|
|
49
|
+
if (Array.isArray(missingAuditRefs) && missingAuditRefs.length > 0) {
|
|
50
|
+
missingRefs.push(...missingAuditRefs);
|
|
51
|
+
}
|
|
52
|
+
const groupRefsFromCategory = categories.flatMap(
|
|
53
|
+
({ refs }) => refs.filter(({ type }) => type === "group").map(({ plugin, slug }) => `${plugin}#${slug} (group)`)
|
|
54
|
+
);
|
|
55
|
+
const groupRefsFromPlugins = plugins.flatMap(
|
|
56
|
+
({ groups, slug: pluginSlug }) => {
|
|
57
|
+
return Array.isArray(groups) ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) : [];
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
const missingGroupRefs = hasMissingStrings(
|
|
61
|
+
groupRefsFromCategory,
|
|
62
|
+
groupRefsFromPlugins
|
|
63
|
+
);
|
|
64
|
+
if (Array.isArray(missingGroupRefs) && missingGroupRefs.length > 0) {
|
|
65
|
+
missingRefs.push(...missingGroupRefs);
|
|
66
|
+
}
|
|
67
|
+
return missingRefs.length ? missingRefs : false;
|
|
68
|
+
}
|
|
69
|
+
function missingRefsForCategoriesErrorMsg(categories, plugins) {
|
|
70
|
+
const missingRefs = getMissingRefsForCategories(categories, plugins);
|
|
71
|
+
return `The following category references need to point to an audit or group: ${errorItems(
|
|
72
|
+
missingRefs
|
|
73
|
+
)}`;
|
|
74
|
+
}
|
|
35
75
|
|
|
36
76
|
// packages/models/src/lib/implementation/schemas.ts
|
|
37
77
|
function executionMetaSchema(options = {
|
|
@@ -90,15 +130,13 @@ function positiveIntSchema(description) {
|
|
|
90
130
|
return z.number({ description }).int().nonnegative();
|
|
91
131
|
}
|
|
92
132
|
function packageVersionSchema(options) {
|
|
93
|
-
|
|
94
|
-
versionDescription = versionDescription || "NPM version of the package";
|
|
95
|
-
optional = !!optional;
|
|
133
|
+
const { versionDescription = "NPM version of the package", required } = options ?? {};
|
|
96
134
|
const packageSchema = z.string({ description: "NPM package name" });
|
|
97
135
|
const versionSchema = z.string({ description: versionDescription });
|
|
98
136
|
return z.object(
|
|
99
137
|
{
|
|
100
|
-
packageName:
|
|
101
|
-
version:
|
|
138
|
+
packageName: required ? packageSchema : packageSchema.optional(),
|
|
139
|
+
version: required ? versionSchema : versionSchema.optional()
|
|
102
140
|
},
|
|
103
141
|
{ description: "NPM package name and version of a published package" }
|
|
104
142
|
);
|
|
@@ -160,7 +198,7 @@ var pluginAuditsSchema = z2.array(auditSchema, {
|
|
|
160
198
|
);
|
|
161
199
|
function duplicateSlugsInAuditsErrorMsg(audits) {
|
|
162
200
|
const duplicateRefs = getDuplicateSlugsInAudits(audits);
|
|
163
|
-
return `In plugin audits the slugs are not unique: ${errorItems(
|
|
201
|
+
return `In plugin audits the following slugs are not unique: ${errorItems(
|
|
164
202
|
duplicateRefs
|
|
165
203
|
)}`;
|
|
166
204
|
}
|
|
@@ -349,7 +387,9 @@ function getDuplicateRefsInGroups(groups) {
|
|
|
349
387
|
}
|
|
350
388
|
function duplicateSlugsInGroupsErrorMsg(groups) {
|
|
351
389
|
const duplicateRefs = getDuplicateSlugsInGroups(groups);
|
|
352
|
-
return `In groups the slugs are not unique: ${errorItems(
|
|
390
|
+
return `In groups the following slugs are not unique: ${errorItems(
|
|
391
|
+
duplicateRefs
|
|
392
|
+
)}`;
|
|
353
393
|
}
|
|
354
394
|
function getDuplicateSlugsInGroups(groups) {
|
|
355
395
|
return Array.isArray(groups) ? hasDuplicateStrings(groups.map(({ slug }) => slug)) : false;
|
|
@@ -375,9 +415,7 @@ var onProgressSchema = z8.function().args(z8.unknown()).returns(z8.void());
|
|
|
375
415
|
var runnerFunctionSchema = z8.function().args(onProgressSchema.optional()).returns(z8.union([auditOutputsSchema, z8.promise(auditOutputsSchema)]));
|
|
376
416
|
|
|
377
417
|
// packages/models/src/lib/plugin-config.ts
|
|
378
|
-
var pluginMetaSchema = packageVersionSchema(
|
|
379
|
-
optional: true
|
|
380
|
-
}).merge(
|
|
418
|
+
var pluginMetaSchema = packageVersionSchema().merge(
|
|
381
419
|
metaSchema({
|
|
382
420
|
titleDescription: "Descriptive name",
|
|
383
421
|
descriptionDescription: "Description (markdown)",
|
|
@@ -386,7 +424,7 @@ var pluginMetaSchema = packageVersionSchema({
|
|
|
386
424
|
})
|
|
387
425
|
).merge(
|
|
388
426
|
z9.object({
|
|
389
|
-
slug: slugSchema("
|
|
427
|
+
slug: slugSchema("Unique plugin slug within core config"),
|
|
390
428
|
icon: materialIconSchema
|
|
391
429
|
})
|
|
392
430
|
);
|
|
@@ -403,20 +441,17 @@ var pluginConfigSchema = pluginMetaSchema.merge(pluginDataSchema).refine(
|
|
|
403
441
|
);
|
|
404
442
|
function missingRefsFromGroupsErrorMsg(pluginCfg) {
|
|
405
443
|
const missingRefs = getMissingRefsFromGroups(pluginCfg);
|
|
406
|
-
return `
|
|
444
|
+
return `The following group references need to point to an existing audit in this plugin config: ${errorItems(
|
|
407
445
|
missingRefs
|
|
408
446
|
)}`;
|
|
409
447
|
}
|
|
410
448
|
function getMissingRefsFromGroups(pluginCfg) {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
);
|
|
418
|
-
}
|
|
419
|
-
return false;
|
|
449
|
+
return hasMissingStrings(
|
|
450
|
+
pluginCfg.groups?.flatMap(
|
|
451
|
+
({ refs: audits }) => audits.map(({ slug: ref }) => ref)
|
|
452
|
+
) ?? [],
|
|
453
|
+
pluginCfg.audits.map(({ slug }) => slug)
|
|
454
|
+
);
|
|
420
455
|
}
|
|
421
456
|
|
|
422
457
|
// packages/models/src/lib/upload-config.ts
|
|
@@ -426,19 +461,15 @@ var uploadConfigSchema = z10.object({
|
|
|
426
461
|
apiKey: z10.string({
|
|
427
462
|
description: "API key with write access to portal (use `process.env` for security)"
|
|
428
463
|
}),
|
|
429
|
-
organization:
|
|
430
|
-
|
|
431
|
-
}),
|
|
432
|
-
project: z10.string({
|
|
433
|
-
description: "Project in code versioning system"
|
|
434
|
-
})
|
|
464
|
+
organization: slugSchema("Organization slug from Code PushUp portal"),
|
|
465
|
+
project: slugSchema("Project slug from Code PushUp portal")
|
|
435
466
|
});
|
|
436
467
|
|
|
437
468
|
// packages/models/src/lib/core-config.ts
|
|
438
469
|
var unrefinedCoreConfigSchema = z11.object({
|
|
439
470
|
plugins: z11.array(pluginConfigSchema, {
|
|
440
471
|
description: "List of plugins to be used (official, community-provided, or custom)"
|
|
441
|
-
}),
|
|
472
|
+
}).min(1),
|
|
442
473
|
/** portal configuration for persisting results */
|
|
443
474
|
persist: persistConfigSchema.optional(),
|
|
444
475
|
/** portal configuration for uploading results */
|
|
@@ -448,52 +479,15 @@ var unrefinedCoreConfigSchema = z11.object({
|
|
|
448
479
|
var coreConfigSchema = refineCoreConfig(unrefinedCoreConfigSchema);
|
|
449
480
|
function refineCoreConfig(schema) {
|
|
450
481
|
return schema.refine(
|
|
451
|
-
(coreCfg) => !getMissingRefsForCategories(coreCfg),
|
|
482
|
+
(coreCfg) => !getMissingRefsForCategories(coreCfg.categories, coreCfg.plugins),
|
|
452
483
|
(coreCfg) => ({
|
|
453
|
-
message: missingRefsForCategoriesErrorMsg(
|
|
484
|
+
message: missingRefsForCategoriesErrorMsg(
|
|
485
|
+
coreCfg.categories,
|
|
486
|
+
coreCfg.plugins
|
|
487
|
+
)
|
|
454
488
|
})
|
|
455
489
|
);
|
|
456
490
|
}
|
|
457
|
-
function missingRefsForCategoriesErrorMsg(coreCfg) {
|
|
458
|
-
const missingRefs = getMissingRefsForCategories(coreCfg);
|
|
459
|
-
return `In the categories, the following plugin refs do not exist in the provided plugins: ${errorItems(
|
|
460
|
-
missingRefs
|
|
461
|
-
)}`;
|
|
462
|
-
}
|
|
463
|
-
function getMissingRefsForCategories(coreCfg) {
|
|
464
|
-
const missingRefs = [];
|
|
465
|
-
const auditRefsFromCategory = coreCfg.categories.flatMap(
|
|
466
|
-
({ refs }) => refs.filter(({ type }) => type === "audit").map(({ plugin, slug }) => `${plugin}/${slug}`)
|
|
467
|
-
);
|
|
468
|
-
const auditRefsFromPlugins = coreCfg.plugins.flatMap(
|
|
469
|
-
({ audits, slug: pluginSlug }) => {
|
|
470
|
-
return audits.map(({ slug }) => `${pluginSlug}/${slug}`);
|
|
471
|
-
}
|
|
472
|
-
);
|
|
473
|
-
const missingAuditRefs = hasMissingStrings(
|
|
474
|
-
auditRefsFromCategory,
|
|
475
|
-
auditRefsFromPlugins
|
|
476
|
-
);
|
|
477
|
-
if (Array.isArray(missingAuditRefs) && missingAuditRefs.length > 0) {
|
|
478
|
-
missingRefs.push(...missingAuditRefs);
|
|
479
|
-
}
|
|
480
|
-
const groupRefsFromCategory = coreCfg.categories.flatMap(
|
|
481
|
-
({ refs }) => refs.filter(({ type }) => type === "group").map(({ plugin, slug }) => `${plugin}#${slug} (group)`)
|
|
482
|
-
);
|
|
483
|
-
const groupRefsFromPlugins = coreCfg.plugins.flatMap(
|
|
484
|
-
({ groups, slug: pluginSlug }) => {
|
|
485
|
-
return Array.isArray(groups) ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) : [];
|
|
486
|
-
}
|
|
487
|
-
);
|
|
488
|
-
const missingGroupRefs = hasMissingStrings(
|
|
489
|
-
groupRefsFromCategory,
|
|
490
|
-
groupRefsFromPlugins
|
|
491
|
-
);
|
|
492
|
-
if (Array.isArray(missingGroupRefs) && missingGroupRefs.length > 0) {
|
|
493
|
-
missingRefs.push(...missingGroupRefs);
|
|
494
|
-
}
|
|
495
|
-
return missingRefs.length ? missingRefs : false;
|
|
496
|
-
}
|
|
497
491
|
|
|
498
492
|
// packages/models/src/lib/implementation/constants.ts
|
|
499
493
|
var PERSIST_OUTPUT_DIR = ".code-pushup";
|
|
@@ -513,9 +507,32 @@ var pluginReportSchema = pluginMetaSchema.merge(
|
|
|
513
507
|
audits: z12.array(auditReportSchema),
|
|
514
508
|
groups: z12.array(groupSchema).optional()
|
|
515
509
|
})
|
|
510
|
+
).refine(
|
|
511
|
+
(pluginReport) => !getMissingRefsFromGroups2(pluginReport.audits, pluginReport.groups ?? []),
|
|
512
|
+
(pluginReport) => ({
|
|
513
|
+
message: missingRefsFromGroupsErrorMsg2(
|
|
514
|
+
pluginReport.audits,
|
|
515
|
+
pluginReport.groups ?? []
|
|
516
|
+
)
|
|
517
|
+
})
|
|
516
518
|
);
|
|
519
|
+
function missingRefsFromGroupsErrorMsg2(audits, groups) {
|
|
520
|
+
const missingRefs = getMissingRefsFromGroups2(audits, groups);
|
|
521
|
+
return `group references need to point to an existing audit in this plugin report: ${errorItems(
|
|
522
|
+
missingRefs
|
|
523
|
+
)}`;
|
|
524
|
+
}
|
|
525
|
+
function getMissingRefsFromGroups2(audits, groups) {
|
|
526
|
+
return hasMissingStrings(
|
|
527
|
+
groups.flatMap(
|
|
528
|
+
({ refs: auditRefs }) => auditRefs.map(({ slug: ref }) => ref)
|
|
529
|
+
),
|
|
530
|
+
audits.map(({ slug }) => slug)
|
|
531
|
+
);
|
|
532
|
+
}
|
|
517
533
|
var reportSchema = packageVersionSchema({
|
|
518
|
-
versionDescription: "NPM version of the CLI"
|
|
534
|
+
versionDescription: "NPM version of the CLI",
|
|
535
|
+
required: true
|
|
519
536
|
}).merge(
|
|
520
537
|
executionMetaSchema({
|
|
521
538
|
descriptionDate: "Start date and time of the collect run",
|
|
@@ -525,10 +542,18 @@ var reportSchema = packageVersionSchema({
|
|
|
525
542
|
z12.object(
|
|
526
543
|
{
|
|
527
544
|
categories: z12.array(categoryConfigSchema),
|
|
528
|
-
plugins: z12.array(pluginReportSchema)
|
|
545
|
+
plugins: z12.array(pluginReportSchema).min(1)
|
|
529
546
|
},
|
|
530
547
|
{ description: "Collect output data" }
|
|
531
548
|
)
|
|
549
|
+
).refine(
|
|
550
|
+
(report) => !getMissingRefsForCategories(report.categories, report.plugins),
|
|
551
|
+
(report) => ({
|
|
552
|
+
message: missingRefsForCategoriesErrorMsg(
|
|
553
|
+
report.categories,
|
|
554
|
+
report.plugins
|
|
555
|
+
)
|
|
556
|
+
})
|
|
532
557
|
);
|
|
533
558
|
export {
|
|
534
559
|
MAX_DESCRIPTION_LENGTH,
|
package/package.json
CHANGED
|
@@ -98,8 +98,8 @@ export declare const auditOutputSchema: z.ZodObject<{
|
|
|
98
98
|
}[];
|
|
99
99
|
}>>;
|
|
100
100
|
}, "strip", z.ZodTypeAny, {
|
|
101
|
-
value: number;
|
|
102
101
|
slug: string;
|
|
102
|
+
value: number;
|
|
103
103
|
score: number;
|
|
104
104
|
displayValue?: string | undefined;
|
|
105
105
|
details?: {
|
|
@@ -118,8 +118,8 @@ export declare const auditOutputSchema: z.ZodObject<{
|
|
|
118
118
|
}[];
|
|
119
119
|
} | undefined;
|
|
120
120
|
}, {
|
|
121
|
-
value: number;
|
|
122
121
|
slug: string;
|
|
122
|
+
value: number;
|
|
123
123
|
score: number;
|
|
124
124
|
displayValue?: string | undefined;
|
|
125
125
|
details?: {
|
|
@@ -238,8 +238,8 @@ export declare const auditOutputsSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
|
238
238
|
}[];
|
|
239
239
|
}>>;
|
|
240
240
|
}, "strip", z.ZodTypeAny, {
|
|
241
|
-
value: number;
|
|
242
241
|
slug: string;
|
|
242
|
+
value: number;
|
|
243
243
|
score: number;
|
|
244
244
|
displayValue?: string | undefined;
|
|
245
245
|
details?: {
|
|
@@ -258,8 +258,8 @@ export declare const auditOutputsSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
|
258
258
|
}[];
|
|
259
259
|
} | undefined;
|
|
260
260
|
}, {
|
|
261
|
-
value: number;
|
|
262
261
|
slug: string;
|
|
262
|
+
value: number;
|
|
263
263
|
score: number;
|
|
264
264
|
displayValue?: string | undefined;
|
|
265
265
|
details?: {
|
|
@@ -278,8 +278,8 @@ export declare const auditOutputsSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
|
278
278
|
}[];
|
|
279
279
|
} | undefined;
|
|
280
280
|
}>, "many">, {
|
|
281
|
-
value: number;
|
|
282
281
|
slug: string;
|
|
282
|
+
value: number;
|
|
283
283
|
score: number;
|
|
284
284
|
displayValue?: string | undefined;
|
|
285
285
|
details?: {
|
|
@@ -298,8 +298,8 @@ export declare const auditOutputsSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
|
298
298
|
}[];
|
|
299
299
|
} | undefined;
|
|
300
300
|
}[], {
|
|
301
|
-
value: number;
|
|
302
301
|
slug: string;
|
|
302
|
+
value: number;
|
|
303
303
|
score: number;
|
|
304
304
|
displayValue?: string | undefined;
|
|
305
305
|
details?: {
|
package/src/lib/audit.d.ts
CHANGED
|
@@ -5,13 +5,13 @@ export declare const auditSchema: z.ZodObject<{
|
|
|
5
5
|
description: z.ZodOptional<z.ZodString>;
|
|
6
6
|
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
title: string;
|
|
9
8
|
slug: string;
|
|
9
|
+
title: string;
|
|
10
10
|
description?: string | undefined;
|
|
11
11
|
docsUrl?: string | undefined;
|
|
12
12
|
}, {
|
|
13
|
-
title: string;
|
|
14
13
|
slug: string;
|
|
14
|
+
title: string;
|
|
15
15
|
description?: string | undefined;
|
|
16
16
|
docsUrl?: string | undefined;
|
|
17
17
|
}>;
|
|
@@ -22,23 +22,23 @@ export declare const pluginAuditsSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
|
22
22
|
description: z.ZodOptional<z.ZodString>;
|
|
23
23
|
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
|
-
title: string;
|
|
26
25
|
slug: string;
|
|
26
|
+
title: string;
|
|
27
27
|
description?: string | undefined;
|
|
28
28
|
docsUrl?: string | undefined;
|
|
29
29
|
}, {
|
|
30
|
-
title: string;
|
|
31
30
|
slug: string;
|
|
31
|
+
title: string;
|
|
32
32
|
description?: string | undefined;
|
|
33
33
|
docsUrl?: string | undefined;
|
|
34
34
|
}>, "many">, {
|
|
35
|
-
title: string;
|
|
36
35
|
slug: string;
|
|
36
|
+
title: string;
|
|
37
37
|
description?: string | undefined;
|
|
38
38
|
docsUrl?: string | undefined;
|
|
39
39
|
}[], {
|
|
40
|
-
title: string;
|
|
41
40
|
slug: string;
|
|
41
|
+
title: string;
|
|
42
42
|
description?: string | undefined;
|
|
43
43
|
docsUrl?: string | undefined;
|
|
44
44
|
}[]>;
|
|
@@ -5,80 +5,80 @@ export declare const categoryRefSchema: z.ZodObject<{
|
|
|
5
5
|
type: z.ZodEnum<["audit", "group"]>;
|
|
6
6
|
plugin: z.ZodString;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
type: "audit" | "group";
|
|
9
8
|
slug: string;
|
|
10
9
|
weight: number;
|
|
10
|
+
type: "audit" | "group";
|
|
11
11
|
plugin: string;
|
|
12
12
|
}, {
|
|
13
|
-
type: "audit" | "group";
|
|
14
13
|
slug: string;
|
|
15
14
|
weight: number;
|
|
15
|
+
type: "audit" | "group";
|
|
16
16
|
plugin: string;
|
|
17
17
|
}>;
|
|
18
18
|
export type CategoryRef = z.infer<typeof categoryRefSchema>;
|
|
19
19
|
export declare const categoryConfigSchema: z.ZodObject<{
|
|
20
|
-
description: z.ZodOptional<z.ZodString>;
|
|
21
|
-
title: z.ZodString;
|
|
22
|
-
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
23
20
|
slug: z.ZodString;
|
|
21
|
+
description: z.ZodOptional<z.ZodString>;
|
|
24
22
|
refs: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
25
23
|
slug: z.ZodString;
|
|
26
24
|
weight: z.ZodNumber;
|
|
27
25
|
type: z.ZodEnum<["audit", "group"]>;
|
|
28
26
|
plugin: z.ZodString;
|
|
29
27
|
}, "strip", z.ZodTypeAny, {
|
|
30
|
-
type: "audit" | "group";
|
|
31
28
|
slug: string;
|
|
32
29
|
weight: number;
|
|
30
|
+
type: "audit" | "group";
|
|
33
31
|
plugin: string;
|
|
34
32
|
}, {
|
|
35
|
-
type: "audit" | "group";
|
|
36
33
|
slug: string;
|
|
37
34
|
weight: number;
|
|
35
|
+
type: "audit" | "group";
|
|
38
36
|
plugin: string;
|
|
39
37
|
}>, "many">, {
|
|
40
|
-
type: "audit" | "group";
|
|
41
38
|
slug: string;
|
|
42
39
|
weight: number;
|
|
40
|
+
type: "audit" | "group";
|
|
43
41
|
plugin: string;
|
|
44
42
|
}[], {
|
|
45
|
-
type: "audit" | "group";
|
|
46
43
|
slug: string;
|
|
47
44
|
weight: number;
|
|
45
|
+
type: "audit" | "group";
|
|
48
46
|
plugin: string;
|
|
49
47
|
}[]>, {
|
|
50
|
-
type: "audit" | "group";
|
|
51
48
|
slug: string;
|
|
52
49
|
weight: number;
|
|
50
|
+
type: "audit" | "group";
|
|
53
51
|
plugin: string;
|
|
54
52
|
}[], {
|
|
55
|
-
type: "audit" | "group";
|
|
56
53
|
slug: string;
|
|
57
54
|
weight: number;
|
|
55
|
+
type: "audit" | "group";
|
|
58
56
|
plugin: string;
|
|
59
57
|
}[]>;
|
|
58
|
+
title: z.ZodString;
|
|
59
|
+
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
60
60
|
isBinary: z.ZodOptional<z.ZodBoolean>;
|
|
61
61
|
}, "strip", z.ZodTypeAny, {
|
|
62
|
-
title: string;
|
|
63
62
|
slug: string;
|
|
64
63
|
refs: {
|
|
65
|
-
type: "audit" | "group";
|
|
66
64
|
slug: string;
|
|
67
65
|
weight: number;
|
|
66
|
+
type: "audit" | "group";
|
|
68
67
|
plugin: string;
|
|
69
68
|
}[];
|
|
69
|
+
title: string;
|
|
70
70
|
description?: string | undefined;
|
|
71
71
|
docsUrl?: string | undefined;
|
|
72
72
|
isBinary?: boolean | undefined;
|
|
73
73
|
}, {
|
|
74
|
-
title: string;
|
|
75
74
|
slug: string;
|
|
76
75
|
refs: {
|
|
77
|
-
type: "audit" | "group";
|
|
78
76
|
slug: string;
|
|
79
77
|
weight: number;
|
|
78
|
+
type: "audit" | "group";
|
|
80
79
|
plugin: string;
|
|
81
80
|
}[];
|
|
81
|
+
title: string;
|
|
82
82
|
description?: string | undefined;
|
|
83
83
|
docsUrl?: string | undefined;
|
|
84
84
|
isBinary?: boolean | undefined;
|
|
@@ -86,92 +86,92 @@ export declare const categoryConfigSchema: z.ZodObject<{
|
|
|
86
86
|
export type CategoryConfig = z.infer<typeof categoryConfigSchema>;
|
|
87
87
|
export declare function duplicateRefsInCategoryMetricsErrorMsg(metrics: CategoryRef[]): string;
|
|
88
88
|
export declare const categoriesSchema: z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
89
|
-
description: z.ZodOptional<z.ZodString>;
|
|
90
|
-
title: z.ZodString;
|
|
91
|
-
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
92
89
|
slug: z.ZodString;
|
|
90
|
+
description: z.ZodOptional<z.ZodString>;
|
|
93
91
|
refs: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
|
|
94
92
|
slug: z.ZodString;
|
|
95
93
|
weight: z.ZodNumber;
|
|
96
94
|
type: z.ZodEnum<["audit", "group"]>;
|
|
97
95
|
plugin: z.ZodString;
|
|
98
96
|
}, "strip", z.ZodTypeAny, {
|
|
99
|
-
type: "audit" | "group";
|
|
100
97
|
slug: string;
|
|
101
98
|
weight: number;
|
|
99
|
+
type: "audit" | "group";
|
|
102
100
|
plugin: string;
|
|
103
101
|
}, {
|
|
104
|
-
type: "audit" | "group";
|
|
105
102
|
slug: string;
|
|
106
103
|
weight: number;
|
|
104
|
+
type: "audit" | "group";
|
|
107
105
|
plugin: string;
|
|
108
106
|
}>, "many">, {
|
|
109
|
-
type: "audit" | "group";
|
|
110
107
|
slug: string;
|
|
111
108
|
weight: number;
|
|
109
|
+
type: "audit" | "group";
|
|
112
110
|
plugin: string;
|
|
113
111
|
}[], {
|
|
114
|
-
type: "audit" | "group";
|
|
115
112
|
slug: string;
|
|
116
113
|
weight: number;
|
|
114
|
+
type: "audit" | "group";
|
|
117
115
|
plugin: string;
|
|
118
116
|
}[]>, {
|
|
119
|
-
type: "audit" | "group";
|
|
120
117
|
slug: string;
|
|
121
118
|
weight: number;
|
|
119
|
+
type: "audit" | "group";
|
|
122
120
|
plugin: string;
|
|
123
121
|
}[], {
|
|
124
|
-
type: "audit" | "group";
|
|
125
122
|
slug: string;
|
|
126
123
|
weight: number;
|
|
124
|
+
type: "audit" | "group";
|
|
127
125
|
plugin: string;
|
|
128
126
|
}[]>;
|
|
127
|
+
title: z.ZodString;
|
|
128
|
+
docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodString]>;
|
|
129
129
|
isBinary: z.ZodOptional<z.ZodBoolean>;
|
|
130
130
|
}, "strip", z.ZodTypeAny, {
|
|
131
|
-
title: string;
|
|
132
131
|
slug: string;
|
|
133
132
|
refs: {
|
|
134
|
-
type: "audit" | "group";
|
|
135
133
|
slug: string;
|
|
136
134
|
weight: number;
|
|
135
|
+
type: "audit" | "group";
|
|
137
136
|
plugin: string;
|
|
138
137
|
}[];
|
|
138
|
+
title: string;
|
|
139
139
|
description?: string | undefined;
|
|
140
140
|
docsUrl?: string | undefined;
|
|
141
141
|
isBinary?: boolean | undefined;
|
|
142
142
|
}, {
|
|
143
|
-
title: string;
|
|
144
143
|
slug: string;
|
|
145
144
|
refs: {
|
|
146
|
-
type: "audit" | "group";
|
|
147
145
|
slug: string;
|
|
148
146
|
weight: number;
|
|
147
|
+
type: "audit" | "group";
|
|
149
148
|
plugin: string;
|
|
150
149
|
}[];
|
|
150
|
+
title: string;
|
|
151
151
|
description?: string | undefined;
|
|
152
152
|
docsUrl?: string | undefined;
|
|
153
153
|
isBinary?: boolean | undefined;
|
|
154
154
|
}>, "many">, {
|
|
155
|
-
title: string;
|
|
156
155
|
slug: string;
|
|
157
156
|
refs: {
|
|
158
|
-
type: "audit" | "group";
|
|
159
157
|
slug: string;
|
|
160
158
|
weight: number;
|
|
159
|
+
type: "audit" | "group";
|
|
161
160
|
plugin: string;
|
|
162
161
|
}[];
|
|
162
|
+
title: string;
|
|
163
163
|
description?: string | undefined;
|
|
164
164
|
docsUrl?: string | undefined;
|
|
165
165
|
isBinary?: boolean | undefined;
|
|
166
166
|
}[], {
|
|
167
|
-
title: string;
|
|
168
167
|
slug: string;
|
|
169
168
|
refs: {
|
|
170
|
-
type: "audit" | "group";
|
|
171
169
|
slug: string;
|
|
172
170
|
weight: number;
|
|
171
|
+
type: "audit" | "group";
|
|
173
172
|
plugin: string;
|
|
174
173
|
}[];
|
|
174
|
+
title: string;
|
|
175
175
|
description?: string | undefined;
|
|
176
176
|
docsUrl?: string | undefined;
|
|
177
177
|
isBinary?: boolean | undefined;
|