@code-pushup/cli 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 +169 -99
- package/package.json +1 -1
- package/src/lib/implementation/config-middleware.d.ts +25 -25
package/index.js
CHANGED
|
@@ -51,6 +51,46 @@ function errorItems(items, transform = (items2) => items2.join(", ")) {
|
|
|
51
51
|
function exists(value) {
|
|
52
52
|
return value != null;
|
|
53
53
|
}
|
|
54
|
+
function getMissingRefsForCategories(categories, plugins) {
|
|
55
|
+
const missingRefs = [];
|
|
56
|
+
const auditRefsFromCategory = categories.flatMap(
|
|
57
|
+
({ refs }) => refs.filter(({ type }) => type === "audit").map(({ plugin, slug }) => `${plugin}/${slug}`)
|
|
58
|
+
);
|
|
59
|
+
const auditRefsFromPlugins = plugins.flatMap(
|
|
60
|
+
({ audits, slug: pluginSlug }) => {
|
|
61
|
+
return audits.map(({ slug }) => `${pluginSlug}/${slug}`);
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
const missingAuditRefs = hasMissingStrings(
|
|
65
|
+
auditRefsFromCategory,
|
|
66
|
+
auditRefsFromPlugins
|
|
67
|
+
);
|
|
68
|
+
if (Array.isArray(missingAuditRefs) && missingAuditRefs.length > 0) {
|
|
69
|
+
missingRefs.push(...missingAuditRefs);
|
|
70
|
+
}
|
|
71
|
+
const groupRefsFromCategory = categories.flatMap(
|
|
72
|
+
({ refs }) => refs.filter(({ type }) => type === "group").map(({ plugin, slug }) => `${plugin}#${slug} (group)`)
|
|
73
|
+
);
|
|
74
|
+
const groupRefsFromPlugins = plugins.flatMap(
|
|
75
|
+
({ groups, slug: pluginSlug }) => {
|
|
76
|
+
return Array.isArray(groups) ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) : [];
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
const missingGroupRefs = hasMissingStrings(
|
|
80
|
+
groupRefsFromCategory,
|
|
81
|
+
groupRefsFromPlugins
|
|
82
|
+
);
|
|
83
|
+
if (Array.isArray(missingGroupRefs) && missingGroupRefs.length > 0) {
|
|
84
|
+
missingRefs.push(...missingGroupRefs);
|
|
85
|
+
}
|
|
86
|
+
return missingRefs.length ? missingRefs : false;
|
|
87
|
+
}
|
|
88
|
+
function missingRefsForCategoriesErrorMsg(categories, plugins) {
|
|
89
|
+
const missingRefs = getMissingRefsForCategories(categories, plugins);
|
|
90
|
+
return `The following category references need to point to an audit or group: ${errorItems(
|
|
91
|
+
missingRefs
|
|
92
|
+
)}`;
|
|
93
|
+
}
|
|
54
94
|
|
|
55
95
|
// packages/models/src/lib/implementation/schemas.ts
|
|
56
96
|
function executionMetaSchema(options2 = {
|
|
@@ -109,15 +149,13 @@ function positiveIntSchema(description) {
|
|
|
109
149
|
return z.number({ description }).int().nonnegative();
|
|
110
150
|
}
|
|
111
151
|
function packageVersionSchema(options2) {
|
|
112
|
-
|
|
113
|
-
versionDescription = versionDescription || "NPM version of the package";
|
|
114
|
-
optional = !!optional;
|
|
152
|
+
const { versionDescription = "NPM version of the package", required } = options2 ?? {};
|
|
115
153
|
const packageSchema = z.string({ description: "NPM package name" });
|
|
116
154
|
const versionSchema = z.string({ description: versionDescription });
|
|
117
155
|
return z.object(
|
|
118
156
|
{
|
|
119
|
-
packageName:
|
|
120
|
-
version:
|
|
157
|
+
packageName: required ? packageSchema : packageSchema.optional(),
|
|
158
|
+
version: required ? versionSchema : versionSchema.optional()
|
|
121
159
|
},
|
|
122
160
|
{ description: "NPM package name and version of a published package" }
|
|
123
161
|
);
|
|
@@ -179,7 +217,7 @@ var pluginAuditsSchema = z2.array(auditSchema, {
|
|
|
179
217
|
);
|
|
180
218
|
function duplicateSlugsInAuditsErrorMsg(audits) {
|
|
181
219
|
const duplicateRefs = getDuplicateSlugsInAudits(audits);
|
|
182
|
-
return `In plugin audits the slugs are not unique: ${errorItems(
|
|
220
|
+
return `In plugin audits the following slugs are not unique: ${errorItems(
|
|
183
221
|
duplicateRefs
|
|
184
222
|
)}`;
|
|
185
223
|
}
|
|
@@ -368,7 +406,9 @@ function getDuplicateRefsInGroups(groups) {
|
|
|
368
406
|
}
|
|
369
407
|
function duplicateSlugsInGroupsErrorMsg(groups) {
|
|
370
408
|
const duplicateRefs = getDuplicateSlugsInGroups(groups);
|
|
371
|
-
return `In groups the slugs are not unique: ${errorItems(
|
|
409
|
+
return `In groups the following slugs are not unique: ${errorItems(
|
|
410
|
+
duplicateRefs
|
|
411
|
+
)}`;
|
|
372
412
|
}
|
|
373
413
|
function getDuplicateSlugsInGroups(groups) {
|
|
374
414
|
return Array.isArray(groups) ? hasDuplicateStrings(groups.map(({ slug }) => slug)) : false;
|
|
@@ -394,9 +434,7 @@ var onProgressSchema = z8.function().args(z8.unknown()).returns(z8.void());
|
|
|
394
434
|
var runnerFunctionSchema = z8.function().args(onProgressSchema.optional()).returns(z8.union([auditOutputsSchema, z8.promise(auditOutputsSchema)]));
|
|
395
435
|
|
|
396
436
|
// packages/models/src/lib/plugin-config.ts
|
|
397
|
-
var pluginMetaSchema = packageVersionSchema(
|
|
398
|
-
optional: true
|
|
399
|
-
}).merge(
|
|
437
|
+
var pluginMetaSchema = packageVersionSchema().merge(
|
|
400
438
|
metaSchema({
|
|
401
439
|
titleDescription: "Descriptive name",
|
|
402
440
|
descriptionDescription: "Description (markdown)",
|
|
@@ -405,7 +443,7 @@ var pluginMetaSchema = packageVersionSchema({
|
|
|
405
443
|
})
|
|
406
444
|
).merge(
|
|
407
445
|
z9.object({
|
|
408
|
-
slug: slugSchema("
|
|
446
|
+
slug: slugSchema("Unique plugin slug within core config"),
|
|
409
447
|
icon: materialIconSchema
|
|
410
448
|
})
|
|
411
449
|
);
|
|
@@ -422,20 +460,17 @@ var pluginConfigSchema = pluginMetaSchema.merge(pluginDataSchema).refine(
|
|
|
422
460
|
);
|
|
423
461
|
function missingRefsFromGroupsErrorMsg(pluginCfg) {
|
|
424
462
|
const missingRefs = getMissingRefsFromGroups(pluginCfg);
|
|
425
|
-
return `
|
|
463
|
+
return `The following group references need to point to an existing audit in this plugin config: ${errorItems(
|
|
426
464
|
missingRefs
|
|
427
465
|
)}`;
|
|
428
466
|
}
|
|
429
467
|
function getMissingRefsFromGroups(pluginCfg) {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
);
|
|
437
|
-
}
|
|
438
|
-
return false;
|
|
468
|
+
return hasMissingStrings(
|
|
469
|
+
pluginCfg.groups?.flatMap(
|
|
470
|
+
({ refs: audits }) => audits.map(({ slug: ref }) => ref)
|
|
471
|
+
) ?? [],
|
|
472
|
+
pluginCfg.audits.map(({ slug }) => slug)
|
|
473
|
+
);
|
|
439
474
|
}
|
|
440
475
|
|
|
441
476
|
// packages/models/src/lib/upload-config.ts
|
|
@@ -445,19 +480,15 @@ var uploadConfigSchema = z10.object({
|
|
|
445
480
|
apiKey: z10.string({
|
|
446
481
|
description: "API key with write access to portal (use `process.env` for security)"
|
|
447
482
|
}),
|
|
448
|
-
organization:
|
|
449
|
-
|
|
450
|
-
}),
|
|
451
|
-
project: z10.string({
|
|
452
|
-
description: "Project in code versioning system"
|
|
453
|
-
})
|
|
483
|
+
organization: slugSchema("Organization slug from Code PushUp portal"),
|
|
484
|
+
project: slugSchema("Project slug from Code PushUp portal")
|
|
454
485
|
});
|
|
455
486
|
|
|
456
487
|
// packages/models/src/lib/core-config.ts
|
|
457
488
|
var unrefinedCoreConfigSchema = z11.object({
|
|
458
489
|
plugins: z11.array(pluginConfigSchema, {
|
|
459
490
|
description: "List of plugins to be used (official, community-provided, or custom)"
|
|
460
|
-
}),
|
|
491
|
+
}).min(1),
|
|
461
492
|
/** portal configuration for persisting results */
|
|
462
493
|
persist: persistConfigSchema.optional(),
|
|
463
494
|
/** portal configuration for uploading results */
|
|
@@ -467,52 +498,15 @@ var unrefinedCoreConfigSchema = z11.object({
|
|
|
467
498
|
var coreConfigSchema = refineCoreConfig(unrefinedCoreConfigSchema);
|
|
468
499
|
function refineCoreConfig(schema) {
|
|
469
500
|
return schema.refine(
|
|
470
|
-
(coreCfg) => !getMissingRefsForCategories(coreCfg),
|
|
501
|
+
(coreCfg) => !getMissingRefsForCategories(coreCfg.categories, coreCfg.plugins),
|
|
471
502
|
(coreCfg) => ({
|
|
472
|
-
message: missingRefsForCategoriesErrorMsg(
|
|
503
|
+
message: missingRefsForCategoriesErrorMsg(
|
|
504
|
+
coreCfg.categories,
|
|
505
|
+
coreCfg.plugins
|
|
506
|
+
)
|
|
473
507
|
})
|
|
474
508
|
);
|
|
475
509
|
}
|
|
476
|
-
function missingRefsForCategoriesErrorMsg(coreCfg) {
|
|
477
|
-
const missingRefs = getMissingRefsForCategories(coreCfg);
|
|
478
|
-
return `In the categories, the following plugin refs do not exist in the provided plugins: ${errorItems(
|
|
479
|
-
missingRefs
|
|
480
|
-
)}`;
|
|
481
|
-
}
|
|
482
|
-
function getMissingRefsForCategories(coreCfg) {
|
|
483
|
-
const missingRefs = [];
|
|
484
|
-
const auditRefsFromCategory = coreCfg.categories.flatMap(
|
|
485
|
-
({ refs }) => refs.filter(({ type }) => type === "audit").map(({ plugin, slug }) => `${plugin}/${slug}`)
|
|
486
|
-
);
|
|
487
|
-
const auditRefsFromPlugins = coreCfg.plugins.flatMap(
|
|
488
|
-
({ audits, slug: pluginSlug }) => {
|
|
489
|
-
return audits.map(({ slug }) => `${pluginSlug}/${slug}`);
|
|
490
|
-
}
|
|
491
|
-
);
|
|
492
|
-
const missingAuditRefs = hasMissingStrings(
|
|
493
|
-
auditRefsFromCategory,
|
|
494
|
-
auditRefsFromPlugins
|
|
495
|
-
);
|
|
496
|
-
if (Array.isArray(missingAuditRefs) && missingAuditRefs.length > 0) {
|
|
497
|
-
missingRefs.push(...missingAuditRefs);
|
|
498
|
-
}
|
|
499
|
-
const groupRefsFromCategory = coreCfg.categories.flatMap(
|
|
500
|
-
({ refs }) => refs.filter(({ type }) => type === "group").map(({ plugin, slug }) => `${plugin}#${slug} (group)`)
|
|
501
|
-
);
|
|
502
|
-
const groupRefsFromPlugins = coreCfg.plugins.flatMap(
|
|
503
|
-
({ groups, slug: pluginSlug }) => {
|
|
504
|
-
return Array.isArray(groups) ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) : [];
|
|
505
|
-
}
|
|
506
|
-
);
|
|
507
|
-
const missingGroupRefs = hasMissingStrings(
|
|
508
|
-
groupRefsFromCategory,
|
|
509
|
-
groupRefsFromPlugins
|
|
510
|
-
);
|
|
511
|
-
if (Array.isArray(missingGroupRefs) && missingGroupRefs.length > 0) {
|
|
512
|
-
missingRefs.push(...missingGroupRefs);
|
|
513
|
-
}
|
|
514
|
-
return missingRefs.length ? missingRefs : false;
|
|
515
|
-
}
|
|
516
510
|
|
|
517
511
|
// packages/models/src/lib/implementation/constants.ts
|
|
518
512
|
var PERSIST_OUTPUT_DIR = ".code-pushup";
|
|
@@ -532,9 +526,32 @@ var pluginReportSchema = pluginMetaSchema.merge(
|
|
|
532
526
|
audits: z12.array(auditReportSchema),
|
|
533
527
|
groups: z12.array(groupSchema).optional()
|
|
534
528
|
})
|
|
529
|
+
).refine(
|
|
530
|
+
(pluginReport) => !getMissingRefsFromGroups2(pluginReport.audits, pluginReport.groups ?? []),
|
|
531
|
+
(pluginReport) => ({
|
|
532
|
+
message: missingRefsFromGroupsErrorMsg2(
|
|
533
|
+
pluginReport.audits,
|
|
534
|
+
pluginReport.groups ?? []
|
|
535
|
+
)
|
|
536
|
+
})
|
|
535
537
|
);
|
|
538
|
+
function missingRefsFromGroupsErrorMsg2(audits, groups) {
|
|
539
|
+
const missingRefs = getMissingRefsFromGroups2(audits, groups);
|
|
540
|
+
return `group references need to point to an existing audit in this plugin report: ${errorItems(
|
|
541
|
+
missingRefs
|
|
542
|
+
)}`;
|
|
543
|
+
}
|
|
544
|
+
function getMissingRefsFromGroups2(audits, groups) {
|
|
545
|
+
return hasMissingStrings(
|
|
546
|
+
groups.flatMap(
|
|
547
|
+
({ refs: auditRefs }) => auditRefs.map(({ slug: ref }) => ref)
|
|
548
|
+
),
|
|
549
|
+
audits.map(({ slug }) => slug)
|
|
550
|
+
);
|
|
551
|
+
}
|
|
536
552
|
var reportSchema = packageVersionSchema({
|
|
537
|
-
versionDescription: "NPM version of the CLI"
|
|
553
|
+
versionDescription: "NPM version of the CLI",
|
|
554
|
+
required: true
|
|
538
555
|
}).merge(
|
|
539
556
|
executionMetaSchema({
|
|
540
557
|
descriptionDate: "Start date and time of the collect run",
|
|
@@ -544,10 +561,18 @@ var reportSchema = packageVersionSchema({
|
|
|
544
561
|
z12.object(
|
|
545
562
|
{
|
|
546
563
|
categories: z12.array(categoryConfigSchema),
|
|
547
|
-
plugins: z12.array(pluginReportSchema)
|
|
564
|
+
plugins: z12.array(pluginReportSchema).min(1)
|
|
548
565
|
},
|
|
549
566
|
{ description: "Collect output data" }
|
|
550
567
|
)
|
|
568
|
+
).refine(
|
|
569
|
+
(report) => !getMissingRefsForCategories(report.categories, report.plugins),
|
|
570
|
+
(report) => ({
|
|
571
|
+
message: missingRefsForCategoriesErrorMsg(
|
|
572
|
+
report.categories,
|
|
573
|
+
report.plugins
|
|
574
|
+
)
|
|
575
|
+
})
|
|
551
576
|
);
|
|
552
577
|
|
|
553
578
|
// packages/utils/src/lib/constants.ts
|
|
@@ -816,13 +841,13 @@ function getGroupWithAudits(refSlug, refPlugin, plugins) {
|
|
|
816
841
|
},
|
|
817
842
|
[]
|
|
818
843
|
);
|
|
819
|
-
const audits = groupAudits.sort(
|
|
844
|
+
const audits = groupAudits.sort(compareCategoryAudits);
|
|
820
845
|
return {
|
|
821
846
|
...groupWithAudits,
|
|
822
847
|
audits
|
|
823
848
|
};
|
|
824
849
|
}
|
|
825
|
-
function
|
|
850
|
+
function compareCategoryAudits(a, b) {
|
|
826
851
|
if (a.weight !== b.weight) {
|
|
827
852
|
return b.weight - a.weight;
|
|
828
853
|
}
|
|
@@ -834,7 +859,7 @@ function sortCategoryAudits(a, b) {
|
|
|
834
859
|
}
|
|
835
860
|
return a.title.localeCompare(b.title);
|
|
836
861
|
}
|
|
837
|
-
function
|
|
862
|
+
function compareAudits(a, b) {
|
|
838
863
|
if (a.score !== b.score) {
|
|
839
864
|
return a.score - b.score;
|
|
840
865
|
}
|
|
@@ -1128,23 +1153,18 @@ function reportToCategoriesSection(report) {
|
|
|
1128
1153
|
category.score
|
|
1129
1154
|
)} Score: ${style(formatReportScore(category.score))}`;
|
|
1130
1155
|
const categoryDocs = getDocsAndDescription(category);
|
|
1131
|
-
const
|
|
1132
|
-
(
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
{ groups: [], audits: [] }
|
|
1144
|
-
);
|
|
1145
|
-
const audits = auditsAndGroups.audits.sort(sortCategoryAudits).map((audit) => auditItemToCategorySection(audit, plugins)).join(NEW_LINE);
|
|
1146
|
-
const groups = auditsAndGroups.groups.map((group) => groupItemToCategorySection(group, plugins)).join("");
|
|
1147
|
-
return acc + NEW_LINE + categoryTitle + NEW_LINE + NEW_LINE + categoryDocs + categoryScore + NEW_LINE + groups + NEW_LINE + audits;
|
|
1156
|
+
const categoryMDItems = category.refs.reduce((acc2, ref) => {
|
|
1157
|
+
if (ref.type === "group") {
|
|
1158
|
+
const group = getGroupWithAudits(ref.slug, ref.plugin, plugins);
|
|
1159
|
+
const mdGroupItem = groupItemToCategorySection(group, plugins);
|
|
1160
|
+
return acc2 + mdGroupItem + NEW_LINE;
|
|
1161
|
+
} else {
|
|
1162
|
+
const audit = getAuditByRef(ref, plugins);
|
|
1163
|
+
const mdAuditItem = auditItemToCategorySection(audit, plugins);
|
|
1164
|
+
return acc2 + mdAuditItem + NEW_LINE;
|
|
1165
|
+
}
|
|
1166
|
+
}, "");
|
|
1167
|
+
return acc + NEW_LINE + categoryTitle + NEW_LINE + NEW_LINE + categoryDocs + categoryScore + NEW_LINE + categoryMDItems;
|
|
1148
1168
|
}, "");
|
|
1149
1169
|
return h2("\u{1F3F7} Categories") + NEW_LINE + categoryDetails;
|
|
1150
1170
|
}
|
|
@@ -1183,7 +1203,7 @@ function groupItemToCategorySection(group, plugins) {
|
|
|
1183
1203
|
}
|
|
1184
1204
|
function reportToAuditsSection(report) {
|
|
1185
1205
|
const auditsSection = report.plugins.reduce((acc, plugin) => {
|
|
1186
|
-
const auditsData = plugin.audits.
|
|
1206
|
+
const auditsData = plugin.audits.reduce((acc2, audit) => {
|
|
1187
1207
|
const auditTitle = `${audit.title} (${getPluginNameFromSlug(
|
|
1188
1208
|
audit.plugin,
|
|
1189
1209
|
report.plugins
|
|
@@ -1206,7 +1226,7 @@ function reportToAuditsSection(report) {
|
|
|
1206
1226
|
}
|
|
1207
1227
|
const detailsTableData = [
|
|
1208
1228
|
detailsTableHeaders,
|
|
1209
|
-
...audit.details.issues.
|
|
1229
|
+
...audit.details.issues.map((issue) => {
|
|
1210
1230
|
const severity = `${getSeverityIcon(issue.severity)} <i>${issue.severity}</i>`;
|
|
1211
1231
|
const message = issue.message;
|
|
1212
1232
|
if (!issue.source) {
|
|
@@ -1310,7 +1330,7 @@ function reportToDetailSection(report) {
|
|
|
1310
1330
|
output += addLine(chalk3.magentaBright.bold(`${title} audits`));
|
|
1311
1331
|
output += addLine();
|
|
1312
1332
|
const ui = cliui({ width: 80 });
|
|
1313
|
-
audits.
|
|
1333
|
+
audits.forEach(({ score, title: title2, displayValue, value }) => {
|
|
1314
1334
|
ui.div(
|
|
1315
1335
|
{
|
|
1316
1336
|
text: withColor({ score, text: "\u25CF" }),
|
|
@@ -1473,6 +1493,56 @@ var verboseUtils = (verbose) => ({
|
|
|
1473
1493
|
exec: getExecVerbose(verbose)
|
|
1474
1494
|
});
|
|
1475
1495
|
|
|
1496
|
+
// packages/utils/src/lib/sort-report.ts
|
|
1497
|
+
function sortReport(report) {
|
|
1498
|
+
const { categories, plugins } = report;
|
|
1499
|
+
const sortedCategories = categories.map((category) => {
|
|
1500
|
+
const { audits, groups } = category.refs.reduce(
|
|
1501
|
+
(acc, ref) => ({
|
|
1502
|
+
...acc,
|
|
1503
|
+
...ref.type === "group" ? {
|
|
1504
|
+
groups: [
|
|
1505
|
+
...acc.groups,
|
|
1506
|
+
getGroupWithAudits(ref.slug, ref.plugin, plugins)
|
|
1507
|
+
]
|
|
1508
|
+
} : {
|
|
1509
|
+
audits: [...acc.audits, getAuditByRef(ref, plugins)]
|
|
1510
|
+
}
|
|
1511
|
+
}),
|
|
1512
|
+
{ groups: [], audits: [] }
|
|
1513
|
+
);
|
|
1514
|
+
const sortedAuditsAndGroups = [
|
|
1515
|
+
...groups,
|
|
1516
|
+
...audits.sort(compareCategoryAudits)
|
|
1517
|
+
];
|
|
1518
|
+
const sortedRefs = category.refs.slice().sort((a, b) => {
|
|
1519
|
+
const aIndex = sortedAuditsAndGroups.findIndex(
|
|
1520
|
+
(ref) => ref.slug === a.slug
|
|
1521
|
+
);
|
|
1522
|
+
const bIndex = sortedAuditsAndGroups.findIndex(
|
|
1523
|
+
(ref) => ref.slug === b.slug
|
|
1524
|
+
);
|
|
1525
|
+
return aIndex - bIndex;
|
|
1526
|
+
});
|
|
1527
|
+
return { ...category, refs: sortedRefs };
|
|
1528
|
+
});
|
|
1529
|
+
const sortedPlugins = plugins.map((plugin) => ({
|
|
1530
|
+
...plugin,
|
|
1531
|
+
audits: plugin.audits.sort(compareAudits).map((audit) => ({
|
|
1532
|
+
...audit,
|
|
1533
|
+
details: {
|
|
1534
|
+
...audit.details,
|
|
1535
|
+
issues: audit?.details?.issues.slice().sort(compareIssues) || []
|
|
1536
|
+
}
|
|
1537
|
+
}))
|
|
1538
|
+
}));
|
|
1539
|
+
return {
|
|
1540
|
+
...report,
|
|
1541
|
+
categories: sortedCategories,
|
|
1542
|
+
plugins: sortedPlugins
|
|
1543
|
+
};
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1476
1546
|
// packages/core/src/lib/implementation/persist.ts
|
|
1477
1547
|
var PersistDirError = class extends Error {
|
|
1478
1548
|
constructor(outputDir) {
|
|
@@ -1486,8 +1556,8 @@ var PersistError = class extends Error {
|
|
|
1486
1556
|
};
|
|
1487
1557
|
async function persistReport(report, options2) {
|
|
1488
1558
|
const { outputDir, filename, format } = options2;
|
|
1489
|
-
const
|
|
1490
|
-
console.info(reportToStdout(
|
|
1559
|
+
const sortedScoredReport = sortReport(scoreReport(report));
|
|
1560
|
+
console.info(reportToStdout(sortedScoredReport));
|
|
1491
1561
|
const results = [];
|
|
1492
1562
|
if (format.includes("json")) {
|
|
1493
1563
|
results.push({
|
|
@@ -1500,7 +1570,7 @@ async function persistReport(report, options2) {
|
|
|
1500
1570
|
validateCommitData(commitData);
|
|
1501
1571
|
results.push({
|
|
1502
1572
|
format: "md",
|
|
1503
|
-
content: reportToMd(
|
|
1573
|
+
content: reportToMd(sortedScoredReport, commitData)
|
|
1504
1574
|
});
|
|
1505
1575
|
}
|
|
1506
1576
|
if (!existsSync(outputDir)) {
|
|
@@ -1645,7 +1715,7 @@ function auditOutputsCorrelateWithPluginOutput(auditOutputs, pluginConfigAudits)
|
|
|
1645
1715
|
|
|
1646
1716
|
// packages/core/package.json
|
|
1647
1717
|
var name = "@code-pushup/core";
|
|
1648
|
-
var version = "0.8.
|
|
1718
|
+
var version = "0.8.11";
|
|
1649
1719
|
|
|
1650
1720
|
// packages/core/src/lib/implementation/collect.ts
|
|
1651
1721
|
async function collect(options2) {
|
package/package.json
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
import { CoreConfig } from '@code-pushup/models';
|
|
2
2
|
import { GeneralCliOptions, OnlyPluginsOptions } from './model';
|
|
3
3
|
export declare function configMiddleware<T extends Partial<GeneralCliOptions & CoreConfig & OnlyPluginsOptions>>(processArgs: T): Promise<{
|
|
4
|
-
|
|
4
|
+
categories: {
|
|
5
|
+
slug: string;
|
|
6
|
+
refs: {
|
|
7
|
+
slug: string;
|
|
8
|
+
weight: number;
|
|
9
|
+
type: "audit" | "group";
|
|
10
|
+
plugin: string;
|
|
11
|
+
}[];
|
|
5
12
|
title: string;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
docsUrl?: string | undefined;
|
|
15
|
+
isBinary?: boolean | undefined;
|
|
16
|
+
}[];
|
|
17
|
+
plugins: {
|
|
6
18
|
slug: string;
|
|
7
|
-
icon: "slug" | "search" | "blink" | "key" | "folder-robot" | "folder-src" | "folder-dist" | "folder-css" | "folder-sass" | "folder-images" | "folder-scripts" | "folder-node" | "folder-javascript" | "folder-json" | "folder-font" | "folder-bower" | "folder-test" | "folder-jinja" | "folder-markdown" | "folder-php" | "folder-phpmailer" | "folder-sublime" | "folder-docs" | "folder-git" | "folder-github" | "folder-gitlab" | "folder-vscode" | "folder-views" | "folder-vue" | "folder-vuepress" | "folder-expo" | "folder-config" | "folder-i18n" | "folder-components" | "folder-verdaccio" | "folder-aurelia" | "folder-resource" | "folder-lib" | "folder-theme" | "folder-webpack" | "folder-global" | "folder-public" | "folder-include" | "folder-docker" | "folder-database" | "folder-log" | "folder-target" | "folder-temp" | "folder-aws" | "folder-audio" | "folder-video" | "folder-kubernetes" | "folder-import" | "folder-export" | "folder-wakatime" | "folder-circleci" | "folder-wordpress" | "folder-gradle" | "folder-coverage" | "folder-class" | "folder-other" | "folder-lua" | "folder-typescript" | "folder-graphql" | "folder-routes" | "folder-ci" | "folder-benchmark" | "folder-messages" | "folder-less" | "folder-gulp" | "folder-python" | "folder-mojo" | "folder-moon" | "folder-debug" | "folder-fastlane" | "folder-plugin" | "folder-middleware" | "folder-controller" | "folder-ansible" | "folder-server" | "folder-client" | "folder-tasks" | "folder-android" | "folder-ios" | "folder-upload" | "folder-download" | "folder-tools" | "folder-helper" | "folder-serverless" | "folder-api" | "folder-app" | "folder-apollo" | "folder-archive" | "folder-batch" | "folder-buildkite" | "folder-cluster" | "folder-command" | "folder-constant" | "folder-container" | "folder-content" | "folder-context" | "folder-core" | "folder-delta" | "folder-dump" | "folder-examples" | "folder-environment" | "folder-functions" | "folder-generator" | "folder-hook" | "folder-job" | "folder-keys" | "folder-layout" | "folder-mail" | "folder-mappings" | "folder-meta" | "folder-changesets" | "folder-packages" | "folder-shared" | "folder-shader" | "folder-stack" | "folder-template" | "folder-utils" | "folder-supabase" | "folder-private" | "folder-linux" | "folder-windows" | "folder-macos" | "folder-error" | "folder-event" | "folder-secure" | "folder-custom" | "folder-mock" | "folder-syntax" | "folder-vm" | "folder-stylus" | "folder-flow" | "folder-rules" | "folder-review" | "folder-animation" | "folder-guard" | "folder-prisma" | "folder-pipe" | "folder-svg" | "folder-terraform" | "folder-mobile" | "folder-stencil" | "folder-firebase" | "folder-svelte" | "folder-update" | "folder-intellij" | "folder-azure-pipelines" | "folder-mjml" | "folder-admin" | "folder-scala" | "folder-connection" | "folder-quasar" | "folder-next" | "folder-cobol" | "folder-yarn" | "folder-husky" | "folder-storybook" | "folder-base" | "folder-cart" | "folder-home" | "folder-project" | "folder-interface" | "folder-netlify" | "folder-enum" | "folder-contract" | "folder-queue" | "folder-vercel" | "folder-cypress" | "folder-decorators" | "folder-java" | "folder-resolver" | "folder-angular" | "folder-unity" | "folder-pdf" | "folder-proto" | "folder-plastic" | "folder-gamemaker" | "folder-mercurial" | "folder-godot" | "folder-lottie" | "folder-taskfile" | "folder-robot-open" | "folder-src-open" | "folder-dist-open" | "folder-css-open" | "folder-sass-open" | "folder-images-open" | "folder-scripts-open" | "folder-node-open" | "folder-javascript-open" | "folder-json-open" | "folder-font-open" | "folder-bower-open" | "folder-test-open" | "folder-jinja-open" | "folder-markdown-open" | "folder-php-open" | "folder-phpmailer-open" | "folder-sublime-open" | "folder-docs-open" | "folder-git-open" | "folder-github-open" | "folder-gitlab-open" | "folder-vscode-open" | "folder-views-open" | "folder-vue-open" | "folder-vuepress-open" | "folder-expo-open" | "folder-config-open" | "folder-i18n-open" | "folder-components-open" | "folder-verdaccio-open" | "folder-aurelia-open" | "folder-resource-open" | "folder-lib-open" | "folder-theme-open" | "folder-webpack-open" | "folder-global-open" | "folder-public-open" | "folder-include-open" | "folder-docker-open" | "folder-database-open" | "folder-log-open" | "folder-target-open" | "folder-temp-open" | "folder-aws-open" | "folder-audio-open" | "folder-video-open" | "folder-kubernetes-open" | "folder-import-open" | "folder-export-open" | "folder-wakatime-open" | "folder-circleci-open" | "folder-wordpress-open" | "folder-gradle-open" | "folder-coverage-open" | "folder-class-open" | "folder-other-open" | "folder-lua-open" | "folder-typescript-open" | "folder-graphql-open" | "folder-routes-open" | "folder-ci-open" | "folder-benchmark-open" | "folder-messages-open" | "folder-less-open" | "folder-gulp-open" | "folder-python-open" | "folder-mojo-open" | "folder-moon-open" | "folder-debug-open" | "folder-fastlane-open" | "folder-plugin-open" | "folder-middleware-open" | "folder-controller-open" | "folder-ansible-open" | "folder-server-open" | "folder-client-open" | "folder-tasks-open" | "folder-android-open" | "folder-ios-open" | "folder-upload-open" | "folder-download-open" | "folder-tools-open" | "folder-helper-open" | "folder-serverless-open" | "folder-api-open" | "folder-app-open" | "folder-apollo-open" | "folder-archive-open" | "folder-batch-open" | "folder-buildkite-open" | "folder-cluster-open" | "folder-command-open" | "folder-constant-open" | "folder-container-open" | "folder-content-open" | "folder-context-open" | "folder-core-open" | "folder-delta-open" | "folder-dump-open" | "folder-examples-open" | "folder-environment-open" | "folder-functions-open" | "folder-generator-open" | "folder-hook-open" | "folder-job-open" | "folder-keys-open" | "folder-layout-open" | "folder-mail-open" | "folder-mappings-open" | "folder-meta-open" | "folder-changesets-open" | "folder-packages-open" | "folder-shared-open" | "folder-shader-open" | "folder-stack-open" | "folder-template-open" | "folder-utils-open" | "folder-supabase-open" | "folder-private-open" | "folder-linux-open" | "folder-windows-open" | "folder-macos-open" | "folder-error-open" | "folder-event-open" | "folder-secure-open" | "folder-custom-open" | "folder-mock-open" | "folder-syntax-open" | "folder-vm-open" | "folder-stylus-open" | "folder-flow-open" | "folder-rules-open" | "folder-review-open" | "folder-animation-open" | "folder-guard-open" | "folder-prisma-open" | "folder-pipe-open" | "folder-svg-open" | "folder-terraform-open" | "folder-mobile-open" | "folder-stencil-open" | "folder-firebase-open" | "folder-svelte-open" | "folder-update-open" | "folder-intellij-open" | "folder-azure-pipelines-open" | "folder-mjml-open" | "folder-admin-open" | "folder-scala-open" | "folder-connection-open" | "folder-quasar-open" | "folder-next-open" | "folder-cobol-open" | "folder-yarn-open" | "folder-husky-open" | "folder-storybook-open" | "folder-base-open" | "folder-cart-open" | "folder-home-open" | "folder-project-open" | "folder-interface-open" | "folder-netlify-open" | "folder-enum-open" | "folder-contract-open" | "folder-queue-open" | "folder-vercel-open" | "folder-cypress-open" | "folder-decorators-open" | "folder-java-open" | "folder-resolver-open" | "folder-angular-open" | "folder-unity-open" | "folder-pdf-open" | "folder-proto-open" | "folder-plastic-open" | "folder-gamemaker-open" | "folder-mercurial-open" | "folder-godot-open" | "folder-lottie-open" | "folder-taskfile-open" | "html" | "pug" | "markdown" | "css" | "sass" | "less" | "json" | "hjson" | "jinja" | "proto" | "sublime" | "twine" | "yaml" | "xml" | "image" | "javascript" | "react" | "react_ts" | "routing" | "settings" | "typescript-def" | "markojs" | "astro" | "pdf" | "table" | "vscode" | "visualstudio" | "database" | "kusto" | "csharp" | "qsharp" | "zip" | "vala" | "zig" | "exe" | "hex" | "java" | "jar" | "javaclass" | "c" | "h" | "cpp" | "hpp" | "objective-c" | "objective-cpp" | "rc" | "go" | "python" | "python-misc" | "url" | "console" | "powershell" | "gradle" | "word" | "certificate" | "font" | "lib" | "ruby" | "fsharp" | "swift" | "arduino" | "docker" | "tex" | "powerpoint" | "video" | "virtual" | "email" | "audio" | "coffee" | "document" | "graphql" | "rust" | "raml" | "xaml" | "haskell" | "kotlin" | "otne" | "git" | "lua" | "clojure" | "groovy" | "r" | "dart" | "dart_generated" | "actionscript" | "mxml" | "autohotkey" | "flash" | "swc" | "cmake" | "assembly" | "vue" | "ocaml" | "odin" | "javascript-map" | "css-map" | "lock" | "handlebars" | "perl" | "haxe" | "test-ts" | "test-jsx" | "test-js" | "angular" | "angular-component" | "angular-guard" | "angular-service" | "angular-pipe" | "angular-directive" | "angular-resolver" | "puppet" | "elixir" | "livescript" | "erlang" | "twig" | "julia" | "elm" | "purescript" | "smarty" | "stylus" | "reason" | "bucklescript" | "merlin" | "verilog" | "mathematica" | "wolframlanguage" | "nunjucks" | "robot" | "solidity" | "autoit" | "haml" | "yang" | "mjml" | "terraform" | "laravel" | "applescript" | "cake" | "cucumber" | "nim" | "apiblueprint" | "riot" | "vfl" | "kl" | "postcss" | "todo" | "coldfusion" | "cabal" | "nix" | "slim" | "http" | "restql" | "kivy" | "graphcool" | "sbt" | "android" | "tune" | "gitlab" | "jenkins" | "figma" | "crystal" | "drone" | "cuda" | "log" | "dotjs" | "ejs" | "wakatime" | "processing" | "storybook" | "wepy" | "hcl" | "san" | "django" | "red" | "makefile" | "foxpro" | "i18n" | "webassembly" | "jupyter" | "d" | "mdx" | "mdsvex" | "ballerina" | "racket" | "bazel" | "mint" | "velocity" | "godot" | "godot-assets" | "azure-pipelines" | "azure" | "vagrant" | "prisma" | "razor" | "abc" | "asciidoc" | "edge" | "scheme" | "lisp" | "3d" | "svg" | "svelte" | "vim" | "moonscript" | "advpl_prw" | "advpl_ptm" | "advpl_tlpp" | "advpl_include" | "disc" | "fortran" | "tcl" | "liquid" | "prolog" | "coconut" | "sketch" | "pawn" | "forth" | "uml" | "meson" | "dhall" | "sml" | "opam" | "imba" | "drawio" | "pascal" | "shaderlab" | "sas" | "nuget" | "command" | "denizenscript" | "nginx" | "minecraft" | "rescript" | "rescript-interface" | "brainfuck" | "bicep" | "cobol" | "grain" | "lolcode" | "idris" | "pipeline" | "opa" | "windicss" | "scala" | "lilypond" | "vlang" | "chess" | "gemini" | "tsconfig" | "tauri" | "jsconfig" | "ada" | "horusec" | "coala" | "dinophp" | "teal" | "template" | "shader" | "siyuan" | "ndst" | "tobi" | "gleam" | "steadybit" | "tree" | "cadence" | "antlr" | "stylable" | "pinejs" | "taskfile" | "gamemaker" | "tldraw" | "typst" | "mermaid" | "mojo" | "roblox" | "spwn" | "templ" | "chrome" | "stan" | "abap" | "lottie" | "apps-script" | "playwright" | "go-mod" | "gemfile" | "rubocop" | "rspec" | "semgrep" | "vue-config" | "nuxt" | "vercel" | "verdaccio" | "next" | "remix" | "posthtml" | "webpack" | "ionic" | "gulp" | "nodejs" | "npm" | "yarn" | "turborepo" | "babel" | "blitz" | "contributing" | "readme" | "changelog" | "architecture" | "credits" | "authors" | "flow" | "favicon" | "karma" | "bithound" | "svgo" | "appveyor" | "travis" | "codecov" | "sonarcloud" | "protractor" | "fusebox" | "heroku" | "editorconfig" | "bower" | "eslint" | "conduct" | "watchman" | "aurelia" | "auto" | "mocha" | "firebase" | "rollup" | "hack" | "hardhat" | "stylelint" | "code-climate" | "prettier" | "renovate" | "apollo" | "nodemon" | "webhint" | "browserlist" | "snyk" | "sequelize" | "gatsby" | "circleci" | "cloudfoundry" | "grunt" | "jest" | "fastlane" | "helm" | "wallaby" | "stencil" | "semantic-release" | "bitbucket" | "istanbul" | "tailwindcss" | "buildkite" | "netlify" | "nest" | "moon" | "percy" | "gitpod" | "codeowners" | "gcp" | "husky" | "tilt" | "capacitor" | "adonis" | "commitlint" | "buck" | "nrwl" | "dune" | "roadmap" | "stryker" | "modernizr" | "stitches" | "replit" | "snowpack" | "quasar" | "dependabot" | "vite" | "vitest" | "lerna" | "textlint" | "sentry" | "phpunit" | "php-cs-fixer" | "robots" | "maven" | "serverless" | "supabase" | "ember" | "poetry" | "parcel" | "astyle" | "lighthouse" | "svgr" | "rome" | "cypress" | "plop" | "tobimake" | "pnpm" | "gridsome" | "caddy" | "bun" | "nano-staged" | "craco" | "mercurial" | "deno" | "plastic" | "unocss" | "ifanr-cloud" | "concourse" | "werf" | "panda" | "biome" | "esbuild" | "puppeteer" | "kubernetes" | "matlab" | "diff" | "typescript" | "php" | "salesforce" | "blink_light" | "jinja_light" | "crystal_light" | "drone_light" | "wakatime_light" | "hcl_light" | "uml_light" | "chess_light" | "tldraw_light" | "rubocop_light" | "vercel_light" | "next_light" | "remix_light" | "turborepo_light" | "auto_light" | "stylelint_light" | "code-climate_light" | "browserlist_light" | "circleci_light" | "semantic-release_light" | "netlify_light" | "stitches_light" | "snowpack_light" | "pnpm_light" | "bun_light" | "nano-staged_light" | "deno_light" | "folder-jinja_light" | "folder-intellij_light" | "folder-jinja-open_light" | "folder-intellij-open_light" | "file" | "folder" | "folder-open" | "folder-root" | "folder-root-open" | "php_elephant" | "php_elephant_pink" | "go_gopher" | "nodejs_alt" | "silverstripe";
|
|
19
|
+
title: string;
|
|
20
|
+
icon: "slug" | "file" | "command" | "search" | "blink" | "key" | "folder-robot" | "folder-src" | "folder-dist" | "folder-css" | "folder-sass" | "folder-images" | "folder-scripts" | "folder-node" | "folder-javascript" | "folder-json" | "folder-font" | "folder-bower" | "folder-test" | "folder-jinja" | "folder-markdown" | "folder-php" | "folder-phpmailer" | "folder-sublime" | "folder-docs" | "folder-git" | "folder-github" | "folder-gitlab" | "folder-vscode" | "folder-views" | "folder-vue" | "folder-vuepress" | "folder-expo" | "folder-config" | "folder-i18n" | "folder-components" | "folder-verdaccio" | "folder-aurelia" | "folder-resource" | "folder-lib" | "folder-theme" | "folder-webpack" | "folder-global" | "folder-public" | "folder-include" | "folder-docker" | "folder-database" | "folder-log" | "folder-target" | "folder-temp" | "folder-aws" | "folder-audio" | "folder-video" | "folder-kubernetes" | "folder-import" | "folder-export" | "folder-wakatime" | "folder-circleci" | "folder-wordpress" | "folder-gradle" | "folder-coverage" | "folder-class" | "folder-other" | "folder-lua" | "folder-typescript" | "folder-graphql" | "folder-routes" | "folder-ci" | "folder-benchmark" | "folder-messages" | "folder-less" | "folder-gulp" | "folder-python" | "folder-mojo" | "folder-moon" | "folder-debug" | "folder-fastlane" | "folder-plugin" | "folder-middleware" | "folder-controller" | "folder-ansible" | "folder-server" | "folder-client" | "folder-tasks" | "folder-android" | "folder-ios" | "folder-upload" | "folder-download" | "folder-tools" | "folder-helper" | "folder-serverless" | "folder-api" | "folder-app" | "folder-apollo" | "folder-archive" | "folder-batch" | "folder-buildkite" | "folder-cluster" | "folder-command" | "folder-constant" | "folder-container" | "folder-content" | "folder-context" | "folder-core" | "folder-delta" | "folder-dump" | "folder-examples" | "folder-environment" | "folder-functions" | "folder-generator" | "folder-hook" | "folder-job" | "folder-keys" | "folder-layout" | "folder-mail" | "folder-mappings" | "folder-meta" | "folder-changesets" | "folder-packages" | "folder-shared" | "folder-shader" | "folder-stack" | "folder-template" | "folder-utils" | "folder-supabase" | "folder-private" | "folder-linux" | "folder-windows" | "folder-macos" | "folder-error" | "folder-event" | "folder-secure" | "folder-custom" | "folder-mock" | "folder-syntax" | "folder-vm" | "folder-stylus" | "folder-flow" | "folder-rules" | "folder-review" | "folder-animation" | "folder-guard" | "folder-prisma" | "folder-pipe" | "folder-svg" | "folder-terraform" | "folder-mobile" | "folder-stencil" | "folder-firebase" | "folder-svelte" | "folder-update" | "folder-intellij" | "folder-azure-pipelines" | "folder-mjml" | "folder-admin" | "folder-scala" | "folder-connection" | "folder-quasar" | "folder-next" | "folder-cobol" | "folder-yarn" | "folder-husky" | "folder-storybook" | "folder-base" | "folder-cart" | "folder-home" | "folder-project" | "folder-interface" | "folder-netlify" | "folder-enum" | "folder-contract" | "folder-queue" | "folder-vercel" | "folder-cypress" | "folder-decorators" | "folder-java" | "folder-resolver" | "folder-angular" | "folder-unity" | "folder-pdf" | "folder-proto" | "folder-plastic" | "folder-gamemaker" | "folder-mercurial" | "folder-godot" | "folder-lottie" | "folder-taskfile" | "folder-robot-open" | "folder-src-open" | "folder-dist-open" | "folder-css-open" | "folder-sass-open" | "folder-images-open" | "folder-scripts-open" | "folder-node-open" | "folder-javascript-open" | "folder-json-open" | "folder-font-open" | "folder-bower-open" | "folder-test-open" | "folder-jinja-open" | "folder-markdown-open" | "folder-php-open" | "folder-phpmailer-open" | "folder-sublime-open" | "folder-docs-open" | "folder-git-open" | "folder-github-open" | "folder-gitlab-open" | "folder-vscode-open" | "folder-views-open" | "folder-vue-open" | "folder-vuepress-open" | "folder-expo-open" | "folder-config-open" | "folder-i18n-open" | "folder-components-open" | "folder-verdaccio-open" | "folder-aurelia-open" | "folder-resource-open" | "folder-lib-open" | "folder-theme-open" | "folder-webpack-open" | "folder-global-open" | "folder-public-open" | "folder-include-open" | "folder-docker-open" | "folder-database-open" | "folder-log-open" | "folder-target-open" | "folder-temp-open" | "folder-aws-open" | "folder-audio-open" | "folder-video-open" | "folder-kubernetes-open" | "folder-import-open" | "folder-export-open" | "folder-wakatime-open" | "folder-circleci-open" | "folder-wordpress-open" | "folder-gradle-open" | "folder-coverage-open" | "folder-class-open" | "folder-other-open" | "folder-lua-open" | "folder-typescript-open" | "folder-graphql-open" | "folder-routes-open" | "folder-ci-open" | "folder-benchmark-open" | "folder-messages-open" | "folder-less-open" | "folder-gulp-open" | "folder-python-open" | "folder-mojo-open" | "folder-moon-open" | "folder-debug-open" | "folder-fastlane-open" | "folder-plugin-open" | "folder-middleware-open" | "folder-controller-open" | "folder-ansible-open" | "folder-server-open" | "folder-client-open" | "folder-tasks-open" | "folder-android-open" | "folder-ios-open" | "folder-upload-open" | "folder-download-open" | "folder-tools-open" | "folder-helper-open" | "folder-serverless-open" | "folder-api-open" | "folder-app-open" | "folder-apollo-open" | "folder-archive-open" | "folder-batch-open" | "folder-buildkite-open" | "folder-cluster-open" | "folder-command-open" | "folder-constant-open" | "folder-container-open" | "folder-content-open" | "folder-context-open" | "folder-core-open" | "folder-delta-open" | "folder-dump-open" | "folder-examples-open" | "folder-environment-open" | "folder-functions-open" | "folder-generator-open" | "folder-hook-open" | "folder-job-open" | "folder-keys-open" | "folder-layout-open" | "folder-mail-open" | "folder-mappings-open" | "folder-meta-open" | "folder-changesets-open" | "folder-packages-open" | "folder-shared-open" | "folder-shader-open" | "folder-stack-open" | "folder-template-open" | "folder-utils-open" | "folder-supabase-open" | "folder-private-open" | "folder-linux-open" | "folder-windows-open" | "folder-macos-open" | "folder-error-open" | "folder-event-open" | "folder-secure-open" | "folder-custom-open" | "folder-mock-open" | "folder-syntax-open" | "folder-vm-open" | "folder-stylus-open" | "folder-flow-open" | "folder-rules-open" | "folder-review-open" | "folder-animation-open" | "folder-guard-open" | "folder-prisma-open" | "folder-pipe-open" | "folder-svg-open" | "folder-terraform-open" | "folder-mobile-open" | "folder-stencil-open" | "folder-firebase-open" | "folder-svelte-open" | "folder-update-open" | "folder-intellij-open" | "folder-azure-pipelines-open" | "folder-mjml-open" | "folder-admin-open" | "folder-scala-open" | "folder-connection-open" | "folder-quasar-open" | "folder-next-open" | "folder-cobol-open" | "folder-yarn-open" | "folder-husky-open" | "folder-storybook-open" | "folder-base-open" | "folder-cart-open" | "folder-home-open" | "folder-project-open" | "folder-interface-open" | "folder-netlify-open" | "folder-enum-open" | "folder-contract-open" | "folder-queue-open" | "folder-vercel-open" | "folder-cypress-open" | "folder-decorators-open" | "folder-java-open" | "folder-resolver-open" | "folder-angular-open" | "folder-unity-open" | "folder-pdf-open" | "folder-proto-open" | "folder-plastic-open" | "folder-gamemaker-open" | "folder-mercurial-open" | "folder-godot-open" | "folder-lottie-open" | "folder-taskfile-open" | "html" | "pug" | "markdown" | "css" | "sass" | "less" | "json" | "hjson" | "jinja" | "proto" | "sublime" | "twine" | "yaml" | "xml" | "image" | "javascript" | "react" | "react_ts" | "routing" | "settings" | "typescript-def" | "markojs" | "astro" | "pdf" | "table" | "vscode" | "visualstudio" | "database" | "kusto" | "csharp" | "qsharp" | "zip" | "vala" | "zig" | "exe" | "hex" | "java" | "jar" | "javaclass" | "c" | "h" | "cpp" | "hpp" | "objective-c" | "objective-cpp" | "rc" | "go" | "python" | "python-misc" | "url" | "console" | "powershell" | "gradle" | "word" | "certificate" | "font" | "lib" | "ruby" | "fsharp" | "swift" | "arduino" | "docker" | "tex" | "powerpoint" | "video" | "virtual" | "email" | "audio" | "coffee" | "document" | "graphql" | "rust" | "raml" | "xaml" | "haskell" | "kotlin" | "otne" | "git" | "lua" | "clojure" | "groovy" | "r" | "dart" | "dart_generated" | "actionscript" | "mxml" | "autohotkey" | "flash" | "swc" | "cmake" | "assembly" | "vue" | "ocaml" | "odin" | "javascript-map" | "css-map" | "lock" | "handlebars" | "perl" | "haxe" | "test-ts" | "test-jsx" | "test-js" | "angular" | "angular-component" | "angular-guard" | "angular-service" | "angular-pipe" | "angular-directive" | "angular-resolver" | "puppet" | "elixir" | "livescript" | "erlang" | "twig" | "julia" | "elm" | "purescript" | "smarty" | "stylus" | "reason" | "bucklescript" | "merlin" | "verilog" | "mathematica" | "wolframlanguage" | "nunjucks" | "robot" | "solidity" | "autoit" | "haml" | "yang" | "mjml" | "terraform" | "laravel" | "applescript" | "cake" | "cucumber" | "nim" | "apiblueprint" | "riot" | "vfl" | "kl" | "postcss" | "todo" | "coldfusion" | "cabal" | "nix" | "slim" | "http" | "restql" | "kivy" | "graphcool" | "sbt" | "android" | "tune" | "gitlab" | "jenkins" | "figma" | "crystal" | "drone" | "cuda" | "log" | "dotjs" | "ejs" | "wakatime" | "processing" | "storybook" | "wepy" | "hcl" | "san" | "django" | "red" | "makefile" | "foxpro" | "i18n" | "webassembly" | "jupyter" | "d" | "mdx" | "mdsvex" | "ballerina" | "racket" | "bazel" | "mint" | "velocity" | "godot" | "godot-assets" | "azure-pipelines" | "azure" | "vagrant" | "prisma" | "razor" | "abc" | "asciidoc" | "edge" | "scheme" | "lisp" | "3d" | "svg" | "svelte" | "vim" | "moonscript" | "advpl_prw" | "advpl_ptm" | "advpl_tlpp" | "advpl_include" | "disc" | "fortran" | "tcl" | "liquid" | "prolog" | "coconut" | "sketch" | "pawn" | "forth" | "uml" | "meson" | "dhall" | "sml" | "opam" | "imba" | "drawio" | "pascal" | "shaderlab" | "sas" | "nuget" | "denizenscript" | "nginx" | "minecraft" | "rescript" | "rescript-interface" | "brainfuck" | "bicep" | "cobol" | "grain" | "lolcode" | "idris" | "pipeline" | "opa" | "windicss" | "scala" | "lilypond" | "vlang" | "chess" | "gemini" | "tsconfig" | "tauri" | "jsconfig" | "ada" | "horusec" | "coala" | "dinophp" | "teal" | "template" | "shader" | "siyuan" | "ndst" | "tobi" | "gleam" | "steadybit" | "tree" | "cadence" | "antlr" | "stylable" | "pinejs" | "taskfile" | "gamemaker" | "tldraw" | "typst" | "mermaid" | "mojo" | "roblox" | "spwn" | "templ" | "chrome" | "stan" | "abap" | "lottie" | "apps-script" | "playwright" | "go-mod" | "gemfile" | "rubocop" | "rspec" | "semgrep" | "vue-config" | "nuxt" | "vercel" | "verdaccio" | "next" | "remix" | "posthtml" | "webpack" | "ionic" | "gulp" | "nodejs" | "npm" | "yarn" | "turborepo" | "babel" | "blitz" | "contributing" | "readme" | "changelog" | "architecture" | "credits" | "authors" | "flow" | "favicon" | "karma" | "bithound" | "svgo" | "appveyor" | "travis" | "codecov" | "sonarcloud" | "protractor" | "fusebox" | "heroku" | "editorconfig" | "bower" | "eslint" | "conduct" | "watchman" | "aurelia" | "auto" | "mocha" | "firebase" | "rollup" | "hack" | "hardhat" | "stylelint" | "code-climate" | "prettier" | "renovate" | "apollo" | "nodemon" | "webhint" | "browserlist" | "snyk" | "sequelize" | "gatsby" | "circleci" | "cloudfoundry" | "grunt" | "jest" | "fastlane" | "helm" | "wallaby" | "stencil" | "semantic-release" | "bitbucket" | "istanbul" | "tailwindcss" | "buildkite" | "netlify" | "nest" | "moon" | "percy" | "gitpod" | "codeowners" | "gcp" | "husky" | "tilt" | "capacitor" | "adonis" | "commitlint" | "buck" | "nrwl" | "dune" | "roadmap" | "stryker" | "modernizr" | "stitches" | "replit" | "snowpack" | "quasar" | "dependabot" | "vite" | "vitest" | "lerna" | "textlint" | "sentry" | "phpunit" | "php-cs-fixer" | "robots" | "maven" | "serverless" | "supabase" | "ember" | "poetry" | "parcel" | "astyle" | "lighthouse" | "svgr" | "rome" | "cypress" | "plop" | "tobimake" | "pnpm" | "gridsome" | "caddy" | "bun" | "nano-staged" | "craco" | "mercurial" | "deno" | "plastic" | "unocss" | "ifanr-cloud" | "concourse" | "werf" | "panda" | "biome" | "esbuild" | "puppeteer" | "kubernetes" | "matlab" | "diff" | "typescript" | "php" | "salesforce" | "blink_light" | "jinja_light" | "crystal_light" | "drone_light" | "wakatime_light" | "hcl_light" | "uml_light" | "chess_light" | "tldraw_light" | "rubocop_light" | "vercel_light" | "next_light" | "remix_light" | "turborepo_light" | "auto_light" | "stylelint_light" | "code-climate_light" | "browserlist_light" | "circleci_light" | "semantic-release_light" | "netlify_light" | "stitches_light" | "snowpack_light" | "pnpm_light" | "bun_light" | "nano-staged_light" | "deno_light" | "folder-jinja_light" | "folder-intellij_light" | "folder-jinja-open_light" | "folder-intellij-open_light" | "folder" | "folder-open" | "folder-root" | "folder-root-open" | "php_elephant" | "php_elephant_pink" | "go_gopher" | "nodejs_alt" | "silverstripe";
|
|
8
21
|
runner: ({
|
|
9
22
|
command: string;
|
|
10
23
|
outputFile: string;
|
|
11
24
|
args?: string[] | undefined;
|
|
12
25
|
outputTransform?: ((args_0: unknown, ...args_1: unknown[]) => {
|
|
13
|
-
value: number;
|
|
14
26
|
slug: string;
|
|
27
|
+
value: number;
|
|
15
28
|
score: number;
|
|
16
29
|
displayValue?: string | undefined;
|
|
17
30
|
details?: {
|
|
@@ -30,8 +43,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
30
43
|
}[];
|
|
31
44
|
} | undefined;
|
|
32
45
|
}[] | Promise<{
|
|
33
|
-
value: number;
|
|
34
46
|
slug: string;
|
|
47
|
+
value: number;
|
|
35
48
|
score: number;
|
|
36
49
|
displayValue?: string | undefined;
|
|
37
50
|
details?: {
|
|
@@ -51,8 +64,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
51
64
|
} | undefined;
|
|
52
65
|
}[]>) | undefined;
|
|
53
66
|
} | ((args_0: ((args_0: unknown, ...args_1: unknown[]) => void) | undefined, ...args_1: unknown[]) => {
|
|
54
|
-
value: number;
|
|
55
67
|
slug: string;
|
|
68
|
+
value: number;
|
|
56
69
|
score: number;
|
|
57
70
|
displayValue?: string | undefined;
|
|
58
71
|
details?: {
|
|
@@ -71,8 +84,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
71
84
|
}[];
|
|
72
85
|
} | undefined;
|
|
73
86
|
}[] | Promise<{
|
|
74
|
-
value: number;
|
|
75
87
|
slug: string;
|
|
88
|
+
value: number;
|
|
76
89
|
score: number;
|
|
77
90
|
displayValue?: string | undefined;
|
|
78
91
|
details?: {
|
|
@@ -95,8 +108,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
95
108
|
outputFile: string;
|
|
96
109
|
args?: string[] | undefined;
|
|
97
110
|
outputTransform?: ((args_0: unknown, ...args_1: unknown[]) => {
|
|
98
|
-
value: number;
|
|
99
111
|
slug: string;
|
|
112
|
+
value: number;
|
|
100
113
|
score: number;
|
|
101
114
|
displayValue?: string | undefined;
|
|
102
115
|
details?: {
|
|
@@ -115,8 +128,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
115
128
|
}[];
|
|
116
129
|
} | undefined;
|
|
117
130
|
}[] | Promise<{
|
|
118
|
-
value: number;
|
|
119
131
|
slug: string;
|
|
132
|
+
value: number;
|
|
120
133
|
score: number;
|
|
121
134
|
displayValue?: string | undefined;
|
|
122
135
|
details?: {
|
|
@@ -136,8 +149,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
136
149
|
} | undefined;
|
|
137
150
|
}[]>) | undefined;
|
|
138
151
|
} | ((args_0: ((args_0: unknown, ...args_1: unknown[]) => void) | undefined, ...args_1: unknown[]) => {
|
|
139
|
-
value: number;
|
|
140
152
|
slug: string;
|
|
153
|
+
value: number;
|
|
141
154
|
score: number;
|
|
142
155
|
displayValue?: string | undefined;
|
|
143
156
|
details?: {
|
|
@@ -156,8 +169,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
156
169
|
}[];
|
|
157
170
|
} | undefined;
|
|
158
171
|
}[] | Promise<{
|
|
159
|
-
value: number;
|
|
160
172
|
slug: string;
|
|
173
|
+
value: number;
|
|
161
174
|
score: number;
|
|
162
175
|
displayValue?: string | undefined;
|
|
163
176
|
details?: {
|
|
@@ -177,8 +190,8 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
177
190
|
} | undefined;
|
|
178
191
|
}[]>) | undefined);
|
|
179
192
|
audits: {
|
|
180
|
-
title: string;
|
|
181
193
|
slug: string;
|
|
194
|
+
title: string;
|
|
182
195
|
description?: string | undefined;
|
|
183
196
|
docsUrl?: string | undefined;
|
|
184
197
|
}[];
|
|
@@ -187,29 +200,16 @@ export declare function configMiddleware<T extends Partial<GeneralCliOptions & C
|
|
|
187
200
|
packageName?: string | undefined;
|
|
188
201
|
version?: string | undefined;
|
|
189
202
|
groups?: {
|
|
190
|
-
title: string;
|
|
191
203
|
slug: string;
|
|
192
204
|
refs: {
|
|
193
205
|
slug: string;
|
|
194
206
|
weight: number;
|
|
195
207
|
}[];
|
|
208
|
+
title: string;
|
|
196
209
|
description?: string | undefined;
|
|
197
210
|
docsUrl?: string | undefined;
|
|
198
211
|
}[] | undefined;
|
|
199
212
|
}[];
|
|
200
|
-
categories: {
|
|
201
|
-
title: string;
|
|
202
|
-
slug: string;
|
|
203
|
-
refs: {
|
|
204
|
-
type: "audit" | "group";
|
|
205
|
-
slug: string;
|
|
206
|
-
weight: number;
|
|
207
|
-
plugin: string;
|
|
208
|
-
}[];
|
|
209
|
-
description?: string | undefined;
|
|
210
|
-
docsUrl?: string | undefined;
|
|
211
|
-
isBinary?: boolean | undefined;
|
|
212
|
-
}[];
|
|
213
213
|
persist?: {
|
|
214
214
|
outputDir?: string | undefined;
|
|
215
215
|
filename?: string | undefined;
|