@code-pushup/models 0.119.0 → 0.120.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/models",
3
- "version": "0.119.0",
3
+ "version": "0.120.0",
4
4
  "license": "MIT",
5
5
  "description": "Model definitions and validators for the Code PushUp CLI",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/models#readme",
package/src/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export { SchemaValidationError, validate, validateAsync, } from './lib/implement
18
18
  export { fileIssueSchema, issueSchema, issueSeveritySchema, urlIssueSchema, type FileIssue, type Issue, type IssueSeverity, type UrlIssue, } from './lib/issue.js';
19
19
  export { formatSchema, persistConfigSchema, type Format, type PersistConfig, } from './lib/persist-config.js';
20
20
  export { pluginConfigSchema, pluginContextSchema, pluginMetaSchema, pluginScoreTargetsSchema, pluginUrlsSchema, type PluginConfig, type PluginContext, type PluginMeta, type PluginScoreTargets, type PluginUrls, } from './lib/plugin-config.js';
21
+ export type { ImportDeclarationStructure, PluginAnswer, PluginCodegenResult, PluginPromptDescriptor, PluginSetupBinding, } from './lib/plugin-setup.js';
21
22
  export { auditReportSchema, pluginReportSchema, reportSchema, type AuditReport, type PluginReport, type Report, } from './lib/report.js';
22
23
  export { auditDiffSchema, auditResultSchema, categoryDiffSchema, categoryResultSchema, groupDiffSchema, groupResultSchema, reportsDiffSchema, type AuditDiff, type AuditResult, type CategoryDiff, type CategoryResult, type GroupDiff, type GroupResult, type ReportsDiff, } from './lib/reports-diff.js';
23
24
  export { runnerArgsSchema, runnerConfigSchema, runnerFilesPathsSchema, runnerFunctionSchema, type RunnerArgs, type RunnerConfig, type RunnerFilesPaths, type RunnerFunction, } from './lib/runner-config.js';
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GAIxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,WAAW,GAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,GAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,aAAa,GACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,cAAc,GAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAMjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAQlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GAKrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,GAOZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,GAOX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GAIxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,WAAW,GAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,GAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,aAAa,GACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,cAAc,GAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAMjB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAQlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GAKrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,GAOZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,GAOX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { CategoryConfig } from './category-config.js';
2
+ import type { PluginMeta } from './plugin-config.js';
3
+ type PromptBase = {
4
+ key: string;
5
+ message: string;
6
+ };
7
+ type PromptChoice<T extends string> = {
8
+ name: string;
9
+ value: T;
10
+ };
11
+ type InputPrompt = PromptBase & {
12
+ type: 'input';
13
+ default: string;
14
+ };
15
+ type SelectPrompt<T extends string = string> = PromptBase & {
16
+ type: 'select';
17
+ choices: PromptChoice<T>[];
18
+ default: T;
19
+ };
20
+ type CheckboxPrompt<T extends string = string> = PromptBase & {
21
+ type: 'checkbox';
22
+ choices: PromptChoice<T>[];
23
+ default: T[];
24
+ };
25
+ type ConfirmPrompt = PromptBase & {
26
+ type: 'confirm';
27
+ default: boolean;
28
+ };
29
+ /** Declarative prompt definition used to collect plugin-specific options. */
30
+ export type PluginPromptDescriptor = InputPrompt | SelectPrompt | CheckboxPrompt | ConfirmPrompt;
31
+ export type ImportDeclarationStructure = {
32
+ moduleSpecifier: string;
33
+ defaultImport?: string;
34
+ namedImports?: string[];
35
+ isTypeOnly?: boolean;
36
+ };
37
+ /** A single value in the answers record produced by plugin prompts. */
38
+ export type PluginAnswer = string | string[] | boolean;
39
+ /** Import declarations and plugin initialization code produced by `generateConfig`. */
40
+ export type PluginCodegenResult = {
41
+ imports: ImportDeclarationStructure[];
42
+ pluginInit: string;
43
+ categories?: CategoryConfig[];
44
+ };
45
+ /**
46
+ * Defines how a plugin integrates with the setup wizard.
47
+ *
48
+ * Each supported plugin provides a binding that controls:
49
+ * - Pre-selection: `isRecommended` detects if the plugin is relevant for the repository
50
+ * - Configuration: `prompts` collect plugin-specific options interactively
51
+ * - Code generation: `generateConfig` produces the import and initialization code
52
+ */
53
+ export type PluginSetupBinding = {
54
+ slug: PluginMeta['slug'];
55
+ title: PluginMeta['title'];
56
+ packageName: NonNullable<PluginMeta['packageName']>;
57
+ scope?: 'project' | 'root';
58
+ prompts?: (targetDir: string) => Promise<PluginPromptDescriptor[]>;
59
+ isRecommended?: (targetDir: string) => Promise<boolean>;
60
+ generateConfig: (answers: Record<string, PluginAnswer>) => PluginCodegenResult;
61
+ };
62
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-setup.js","sourceRoot":"","sources":["../../../src/lib/plugin-setup.ts"],"names":[],"mappings":""}