@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.
Files changed (63) hide show
  1. package/package.json +6 -5
  2. package/src/index.d.ts +21 -21
  3. package/src/index.js +22 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/audit-output.d.ts +24 -0
  6. package/src/lib/audit-output.js +37 -0
  7. package/src/lib/audit-output.js.map +1 -0
  8. package/src/lib/audit.d.ts +16 -0
  9. package/src/lib/audit.js +33 -0
  10. package/src/lib/audit.js.map +1 -0
  11. package/src/lib/category-config.d.ts +24 -0
  12. package/src/lib/category-config.js +47 -0
  13. package/src/lib/category-config.js.map +1 -0
  14. package/src/lib/commit.d.ts +8 -0
  15. package/src/lib/commit.js +16 -0
  16. package/src/lib/commit.js.map +1 -0
  17. package/src/lib/core-config.d.ts +1785 -866
  18. package/src/lib/core-config.js +31 -0
  19. package/src/lib/core-config.js.map +1 -0
  20. package/src/lib/group.d.ts +35 -0
  21. package/src/lib/group.js +41 -0
  22. package/src/lib/group.js.map +1 -0
  23. package/src/lib/implementation/configuration.js +3 -0
  24. package/src/lib/implementation/configuration.js.map +1 -0
  25. package/src/lib/implementation/constants.d.ts +1 -1
  26. package/src/lib/implementation/constants.js +4 -0
  27. package/src/lib/implementation/constants.js.map +1 -0
  28. package/src/lib/implementation/limits.js +5 -0
  29. package/src/lib/implementation/limits.js.map +1 -0
  30. package/src/lib/implementation/schemas.d.ts +31 -13
  31. package/src/lib/implementation/schemas.js +133 -0
  32. package/src/lib/implementation/schemas.js.map +1 -0
  33. package/src/lib/implementation/utils.d.ts +3 -3
  34. package/src/lib/implementation/utils.js +72 -0
  35. package/src/lib/implementation/utils.js.map +1 -0
  36. package/src/lib/issue.d.ts +16 -0
  37. package/src/lib/issue.js +14 -0
  38. package/src/lib/issue.js.map +1 -0
  39. package/src/lib/persist-config.d.ts +16 -0
  40. package/src/lib/persist-config.js +11 -0
  41. package/src/lib/persist-config.js.map +1 -0
  42. package/src/lib/plugin-config.d.ts +68 -0
  43. package/src/lib/plugin-config.js +37 -0
  44. package/src/lib/plugin-config.js.map +1 -0
  45. package/src/lib/report.d.ts +84 -0
  46. package/src/lib/report.js +49 -0
  47. package/src/lib/report.js.map +1 -0
  48. package/src/lib/reports-diff.d.ts +68 -0
  49. package/src/lib/reports-diff.js +79 -0
  50. package/src/lib/reports-diff.js.map +1 -0
  51. package/src/lib/runner-config.d.ts +54 -0
  52. package/src/lib/runner-config.js +31 -0
  53. package/src/lib/runner-config.js.map +1 -0
  54. package/src/lib/source.d.ts +8 -0
  55. package/src/lib/source.js +14 -0
  56. package/src/lib/source.js.map +1 -0
  57. package/src/lib/table.d.ts +48 -0
  58. package/src/lib/table.js +37 -0
  59. package/src/lib/table.js.map +1 -0
  60. package/src/lib/upload-config.d.ts +8 -0
  61. package/src/lib/upload-config.js +16 -0
  62. package/src/lib/upload-config.js.map +1 -0
  63. package/index.js +0 -753
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { categoriesSchema } from './category-config.js';
3
+ import { getMissingRefsForCategories, missingRefsForCategoriesErrorMsg, } from './implementation/utils.js';
4
+ import { persistConfigSchema } from './persist-config.js';
5
+ import { pluginConfigSchema } from './plugin-config.js';
6
+ import { uploadConfigSchema } from './upload-config.js';
7
+ export const unrefinedCoreConfigSchema = z.object({
8
+ plugins: z
9
+ .array(pluginConfigSchema, {
10
+ description: 'List of plugins to be used (official, community-provided, or custom)',
11
+ })
12
+ .min(1),
13
+ /** portal configuration for persisting results */
14
+ persist: persistConfigSchema.optional(),
15
+ /** portal configuration for uploading results */
16
+ upload: uploadConfigSchema.optional(),
17
+ categories: categoriesSchema.optional(),
18
+ });
19
+ export const coreConfigSchema = refineCoreConfig(unrefinedCoreConfigSchema);
20
+ /**
21
+ * Add refinements to coreConfigSchema
22
+ * workaround for zod issue: https://github.com/colinhacks/zod/issues/454
23
+ *
24
+ */
25
+ export function refineCoreConfig(schema) {
26
+ // categories point to existing audit or group refs
27
+ return schema.refine(({ categories, plugins }) => !getMissingRefsForCategories(categories, plugins), ({ categories, plugins }) => ({
28
+ message: missingRefsForCategoriesErrorMsg(categories, plugins),
29
+ }));
30
+ }
31
+ //# sourceMappingURL=core-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-config.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/core-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,kBAAkB,EAAE;QACzB,WAAW,EACT,sEAAsE;KACzE,CAAC;SACD,GAAG,CAAC,CAAC,CAAC;IACT,kDAAkD;IAClD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACvC,iDAAiD;IACjD,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwC;IACvE,mDAAmD;IACnD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAC1B,CAAC,2BAA2B,CAAC,UAAU,EAAE,OAAO,CAAC,EACnD,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC;KAC/D,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -9,20 +9,39 @@ export declare const groupRefSchema: z.ZodObject<{
9
9
  slug: string;
10
10
  weight: number;
11
11
  }>;
12
+ /**
13
+ * Type Definition: `GroupRef`
14
+ *
15
+ * This type is derived from a Zod schema and represents
16
+ * the validated structure of `GroupRef` used within the application.
17
+ *
18
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#groupref}
19
+ */
12
20
  export type GroupRef = z.infer<typeof groupRefSchema>;
13
21
  export declare const groupMetaSchema: z.ZodObject<{
14
22
  title: z.ZodString;
15
23
  description: z.ZodOptional<z.ZodString>;
16
24
  docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
25
+ isSkipped: z.ZodOptional<z.ZodBoolean>;
17
26
  }, "strip", z.ZodTypeAny, {
18
27
  title: string;
19
28
  description?: string | undefined;
20
29
  docsUrl?: string | undefined;
30
+ isSkipped?: boolean | undefined;
21
31
  }, {
22
32
  title: string;
23
33
  description?: string | undefined;
24
34
  docsUrl?: string | undefined;
35
+ isSkipped?: boolean | undefined;
25
36
  }>;
37
+ /**
38
+ * Type Definition: `GroupMeta`
39
+ *
40
+ * This type is derived from a Zod schema and represents
41
+ * the validated structure of `GroupMeta` used within the application.
42
+ *
43
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#groupmeta}
44
+ */
26
45
  export type GroupMeta = z.infer<typeof groupMetaSchema>;
27
46
  export declare const groupSchema: z.ZodObject<z.objectUtil.extendShape<{
28
47
  slug: z.ZodString;
@@ -52,6 +71,7 @@ export declare const groupSchema: z.ZodObject<z.objectUtil.extendShape<{
52
71
  title: z.ZodString;
53
72
  description: z.ZodOptional<z.ZodString>;
54
73
  docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
74
+ isSkipped: z.ZodOptional<z.ZodBoolean>;
55
75
  }>, "strip", z.ZodTypeAny, {
56
76
  slug: string;
57
77
  refs: {
@@ -61,6 +81,7 @@ export declare const groupSchema: z.ZodObject<z.objectUtil.extendShape<{
61
81
  title: string;
62
82
  description?: string | undefined;
63
83
  docsUrl?: string | undefined;
84
+ isSkipped?: boolean | undefined;
64
85
  }, {
65
86
  slug: string;
66
87
  refs: {
@@ -70,7 +91,16 @@ export declare const groupSchema: z.ZodObject<z.objectUtil.extendShape<{
70
91
  title: string;
71
92
  description?: string | undefined;
72
93
  docsUrl?: string | undefined;
94
+ isSkipped?: boolean | undefined;
73
95
  }>;
96
+ /**
97
+ * Type Definition: `Group`
98
+ *
99
+ * This type is derived from a Zod schema and represents
100
+ * the validated structure of `Group` used within the application.
101
+ *
102
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#group}
103
+ */
74
104
  export type Group = z.infer<typeof groupSchema>;
75
105
  export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
76
106
  slug: z.ZodString;
@@ -100,6 +130,7 @@ export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodOb
100
130
  title: z.ZodString;
101
131
  description: z.ZodOptional<z.ZodString>;
102
132
  docsUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
133
+ isSkipped: z.ZodOptional<z.ZodBoolean>;
103
134
  }>, "strip", z.ZodTypeAny, {
104
135
  slug: string;
105
136
  refs: {
@@ -109,6 +140,7 @@ export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodOb
109
140
  title: string;
110
141
  description?: string | undefined;
111
142
  docsUrl?: string | undefined;
143
+ isSkipped?: boolean | undefined;
112
144
  }, {
113
145
  slug: string;
114
146
  refs: {
@@ -118,6 +150,7 @@ export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodOb
118
150
  title: string;
119
151
  description?: string | undefined;
120
152
  docsUrl?: string | undefined;
153
+ isSkipped?: boolean | undefined;
121
154
  }>, "many">>, {
122
155
  slug: string;
123
156
  refs: {
@@ -127,6 +160,7 @@ export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodOb
127
160
  title: string;
128
161
  description?: string | undefined;
129
162
  docsUrl?: string | undefined;
163
+ isSkipped?: boolean | undefined;
130
164
  }[] | undefined, {
131
165
  slug: string;
132
166
  refs: {
@@ -136,4 +170,5 @@ export declare const groupsSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodOb
136
170
  title: string;
137
171
  description?: string | undefined;
138
172
  docsUrl?: string | undefined;
173
+ isSkipped?: boolean | undefined;
139
174
  }[] | undefined>;
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ import { metaSchema, scorableSchema, weightedRefSchema, } from './implementation/schemas.js';
3
+ import { errorItems, exists, hasDuplicateStrings, } from './implementation/utils.js';
4
+ export const groupRefSchema = weightedRefSchema('Weighted reference to a group', "Reference slug to a group within this plugin (e.g. 'max-lines')");
5
+ export const groupMetaSchema = metaSchema({
6
+ titleDescription: 'Descriptive name for the group',
7
+ descriptionDescription: 'Description of the group (markdown)',
8
+ docsUrlDescription: 'Group documentation site',
9
+ description: 'Group metadata',
10
+ isSkippedDescription: 'Indicates whether the group is skipped',
11
+ });
12
+ export const groupSchema = scorableSchema('A group aggregates a set of audits into a single score which can be referenced from a category. ' +
13
+ 'E.g. the group slug "performance" groups audits and can be referenced in a category', groupRefSchema, getDuplicateRefsInGroups, duplicateRefsInGroupsErrorMsg).merge(groupMetaSchema);
14
+ export const groupsSchema = z
15
+ .array(groupSchema, {
16
+ description: 'List of groups',
17
+ })
18
+ .optional()
19
+ .refine(groups => !getDuplicateSlugsInGroups(groups), groups => ({
20
+ message: duplicateSlugsInGroupsErrorMsg(groups),
21
+ }));
22
+ // ============
23
+ // helper for validator: group refs are unique
24
+ function duplicateRefsInGroupsErrorMsg(groups) {
25
+ const duplicateRefs = getDuplicateRefsInGroups(groups);
26
+ return `In plugin groups the following references are not unique: ${errorItems(duplicateRefs)}`;
27
+ }
28
+ function getDuplicateRefsInGroups(groups) {
29
+ return hasDuplicateStrings(groups.map(({ slug: ref }) => ref).filter(exists));
30
+ }
31
+ // helper for validator: group refs are unique
32
+ function duplicateSlugsInGroupsErrorMsg(groups) {
33
+ const duplicateRefs = getDuplicateSlugsInGroups(groups);
34
+ return `In groups the following slugs are not unique: ${errorItems(duplicateRefs)}`;
35
+ }
36
+ function getDuplicateSlugsInGroups(groups) {
37
+ return Array.isArray(groups)
38
+ ? hasDuplicateStrings(groups.map(({ slug }) => slug))
39
+ : false;
40
+ }
41
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../../packages/models/src/lib/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,UAAU,EACV,MAAM,EACN,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAC7C,+BAA+B,EAC/B,iEAAiE,CAClE,CAAC;AAGF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,gBAAgB,EAAE,gCAAgC;IAClD,sBAAsB,EAAE,qCAAqC;IAC7D,kBAAkB,EAAE,0BAA0B;IAC9C,WAAW,EAAE,gBAAgB;IAC7B,oBAAoB,EAAE,wCAAwC;CAC/D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CACvC,kGAAkG;IAChG,qFAAqF,EACvF,cAAc,EACd,wBAAwB,EACxB,6BAA6B,CAC9B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAIzB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,KAAK,CAAC,WAAW,EAAE;IAClB,WAAW,EAAE,gBAAgB;CAC9B,CAAC;KACD,QAAQ,EAAE;KACV,MAAM,CACL,MAAM,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAC5C,MAAM,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,8BAA8B,CAAC,MAAM,CAAC;CAChD,CAAC,CACH,CAAC;AAEJ,eAAe;AAEf,8CAA8C;AAC9C,SAAS,6BAA6B,CAAC,MAAqB;IAC1D,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,6DAA6D,UAAU,CAC5E,aAAa,CACd,EAAE,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAqB;IACrD,OAAO,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,8CAA8C;AAC9C,SAAS,8BAA8B,CAAC,MAA2B;IACjE,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,iDAAiD,UAAU,CAChE,aAAa,CACd,EAAE,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA2B;IAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const CONFIG_FILE_NAME = 'code-pushup.config';
2
+ export const SUPPORTED_CONFIG_FILE_FORMATS = ['ts', 'mjs', 'js'];
3
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../../../packages/models/src/lib/implementation/configuration.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,6BAA6B,GAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Format } from '../persist-config';
1
+ import type { Format } from '../persist-config.js';
2
2
  export declare const DEFAULT_PERSIST_OUTPUT_DIR = ".code-pushup";
3
3
  export declare const DEFAULT_PERSIST_FILENAME = "report";
4
4
  export declare const DEFAULT_PERSIST_FORMAT: Format[];
@@ -0,0 +1,4 @@
1
+ export const DEFAULT_PERSIST_OUTPUT_DIR = '.code-pushup';
2
+ export const DEFAULT_PERSIST_FILENAME = 'report';
3
+ export const DEFAULT_PERSIST_FORMAT = ['json', 'md'];
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/models/src/lib/implementation/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const MAX_SLUG_LENGTH = 128;
2
+ export const MAX_TITLE_LENGTH = 256;
3
+ export const MAX_DESCRIPTION_LENGTH = 65_536;
4
+ export const MAX_ISSUE_MESSAGE_LENGTH = 1024;
5
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../../../../packages/models/src/lib/implementation/limits.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import { type ZodObject, type ZodOptional, type ZodString, z } from 'zod';
2
2
  export declare const tableCellValueSchema: z.ZodDefault<z.ZodUnion<[ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>;
3
+ /**
4
+ * Type Definition: `TableCellValue`
5
+ *
6
+ * This type is derived from a Zod schema and represents
7
+ * the validated structure of `TableCellValue` used within the application.
8
+ *
9
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#tablecellvalue}
10
+ */
3
11
  export type TableCellValue = z.infer<typeof tableCellValueSchema>;
4
12
  /**
5
13
  * Schema for execution meta date
@@ -28,6 +36,8 @@ export declare const docsUrlSchema: z.ZodUnion<[ZodOptional<ZodString>, z.ZodLit
28
36
  export declare const titleSchema: ZodString;
29
37
  /** Schema for score of audit, category or group */
30
38
  export declare const scoreSchema: z.ZodNumber;
39
+ /** Schema for a property indicating whether an entity is filtered out */
40
+ export declare const isSkippedSchema: ZodOptional<z.ZodBoolean>;
31
41
  /**
32
42
  * Used for categories, plugins and audits
33
43
  * @param options
@@ -37,18 +47,22 @@ export declare function metaSchema(options?: {
37
47
  descriptionDescription?: string;
38
48
  docsUrlDescription?: string;
39
49
  description?: string;
50
+ isSkippedDescription?: string;
40
51
  }): ZodObject<{
41
52
  title: ZodString;
42
53
  description: ZodOptional<ZodString>;
43
54
  docsUrl: z.ZodUnion<[ZodOptional<ZodString>, z.ZodLiteral<"">]>;
55
+ isSkipped: ZodOptional<z.ZodBoolean>;
44
56
  }, "strip", z.ZodTypeAny, {
45
57
  title: string;
46
58
  description?: string | undefined;
47
59
  docsUrl?: string | undefined;
60
+ isSkipped?: boolean | undefined;
48
61
  }, {
49
62
  title: string;
50
63
  description?: string | undefined;
51
64
  docsUrl?: string | undefined;
65
+ isSkipped?: boolean | undefined;
52
66
  }>;
53
67
  /** Schema for a generalFilePath */
54
68
  export declare const filePathSchema: ZodString;
@@ -63,19 +77,7 @@ export declare function packageVersionSchema<TRequired extends boolean>(options?
63
77
  }): ZodObject<{
64
78
  packageName: TRequired extends true ? ZodString : ZodOptional<ZodString>;
65
79
  version: TRequired extends true ? ZodString : ZodOptional<ZodString>;
66
- }, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
67
- packageName: TRequired extends true ? ZodString : ZodOptional<ZodString>;
68
- version: TRequired extends true ? ZodString : ZodOptional<ZodString>;
69
- }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
70
- packageName: TRequired extends true ? ZodString : ZodOptional<ZodString>;
71
- version: TRequired extends true ? ZodString : ZodOptional<ZodString>;
72
- }>, any>[k]; } : never, z.baseObjectInputType<{
73
- packageName: TRequired extends true ? ZodString : ZodOptional<ZodString>;
74
- version: TRequired extends true ? ZodString : ZodOptional<ZodString>;
75
- }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{
76
- packageName: TRequired extends true ? ZodString : ZodOptional<ZodString>;
77
- version: TRequired extends true ? ZodString : ZodOptional<ZodString>;
78
- }>[k_1]; } : never>;
80
+ }>;
79
81
  /** Schema for a weight */
80
82
  export declare const weightSchema: z.ZodNumber;
81
83
  export declare function weightedRefSchema(description: string, slugDescription: string): ZodObject<{
@@ -88,6 +90,14 @@ export declare function weightedRefSchema(description: string, slugDescription:
88
90
  slug: string;
89
91
  weight: number;
90
92
  }>;
93
+ /**
94
+ * Type Definition: `WeightedRef`
95
+ *
96
+ * This type is derived from a Zod schema and represents
97
+ * the validated structure of `WeightedRef` used within the application.
98
+ *
99
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#weightedref}
100
+ */
91
101
  export type WeightedRef = z.infer<ReturnType<typeof weightedRefSchema>>;
92
102
  export declare function scorableSchema<T extends ReturnType<typeof weightedRefSchema>>(description: string, refSchema: T, duplicateCheckFn: (metrics: z.infer<T>[]) => false | string[], duplicateMessageFn: (metrics: z.infer<T>[]) => string): ZodObject<{
93
103
  slug: ZodString;
@@ -100,4 +110,12 @@ export declare function scorableSchema<T extends ReturnType<typeof weightedRefSc
100
110
  refs: T["_input"][];
101
111
  }>;
102
112
  export declare const materialIconSchema: z.ZodEnum<["slug" | "file" | "key" | "table" | "command" | "search" | "blink" | "folder-robot" | "folder-src" | "folder-dist" | "folder-css" | "folder-sass" | "folder-television" | "folder-desktop" | "folder-console" | "folder-images" | "folder-scripts" | "folder-node" | "folder-javascript" | "folder-json" | "folder-font" | "folder-bower" | "folder-test" | "folder-jinja" | "folder-markdown" | "folder-pdm" | "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-cloudflare" | "folder-seeders" | "folder-robot-open" | "folder-src-open" | "folder-dist-open" | "folder-css-open" | "folder-sass-open" | "folder-television-open" | "folder-desktop-open" | "folder-console-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-pdm-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" | "folder-cloudflare-open" | "folder-seeders-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" | "vscode" | "visualstudio" | "database" | "kusto" | "csharp" | "qsharp" | "zip" | "vala" | "zig" | "exe" | "hex" | "java" | "jar" | "javaclass" | "c" | "h" | "cpp" | "hpp" | "rc" | "go" | "python" | "python-misc" | "url" | "console" | "powershell" | "gradle" | "word" | "certificate" | "font" | "lib" | "dll" | "ruby" | "fsharp" | "swift" | "arduino" | "docker" | "tex" | "powerpoint" | "video" | "virtual" | "vedic" | "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" | "huff" | "crystal" | "drone" | "cuda" | "log" | "dotjs" | "ejs" | "wakatime" | "processing" | "storybook" | "wepy" | "hcl" | "san" | "quokka" | "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" | "pdm" | "coala" | "dinophp" | "teal" | "template" | "shader" | "siyuan" | "ndst" | "tobi" | "gleam" | "steadybit" | "capnp" | "tree" | "cadence" | "openapi" | "swagger" | "antlr" | "stylable" | "pinejs" | "taskfile" | "gamemaker" | "tldraw" | "typst" | "mermaid" | "mojo" | "roblox" | "spwn" | "templ" | "chrome" | "stan" | "abap" | "lottie" | "apps-script" | "pkl" | "playwright" | "go-mod" | "gemfile" | "rubocop" | "rspec" | "semgrep" | "vue-config" | "nuxt" | "vercel" | "verdaccio" | "payload" | "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" | "nx" | "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" | "knip" | "craco" | "mercurial" | "deno" | "plastic" | "unocss" | "ifanr-cloud" | "concourse" | "syncpack" | "werf" | "panda" | "biome" | "esbuild" | "puppeteer" | "kubernetes" | "matlab" | "diff" | "typescript" | "php" | "salesforce" | "objective-c" | "objective-cpp" | "blink_light" | "jinja_light" | "huff_light" | "crystal_light" | "drone_light" | "wakatime_light" | "hcl_light" | "uml_light" | "chess_light" | "openapi_light" | "tldraw_light" | "rubocop_light" | "vercel_light" | "payload_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", "slug" | "file" | "key" | "table" | "command" | "search" | "blink" | "folder-robot" | "folder-src" | "folder-dist" | "folder-css" | "folder-sass" | "folder-television" | "folder-desktop" | "folder-console" | "folder-images" | "folder-scripts" | "folder-node" | "folder-javascript" | "folder-json" | "folder-font" | "folder-bower" | "folder-test" | "folder-jinja" | "folder-markdown" | "folder-pdm" | "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-cloudflare" | "folder-seeders" | "folder-robot-open" | "folder-src-open" | "folder-dist-open" | "folder-css-open" | "folder-sass-open" | "folder-television-open" | "folder-desktop-open" | "folder-console-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-pdm-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" | "folder-cloudflare-open" | "folder-seeders-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" | "vscode" | "visualstudio" | "database" | "kusto" | "csharp" | "qsharp" | "zip" | "vala" | "zig" | "exe" | "hex" | "java" | "jar" | "javaclass" | "c" | "h" | "cpp" | "hpp" | "rc" | "go" | "python" | "python-misc" | "url" | "console" | "powershell" | "gradle" | "word" | "certificate" | "font" | "lib" | "dll" | "ruby" | "fsharp" | "swift" | "arduino" | "docker" | "tex" | "powerpoint" | "video" | "virtual" | "vedic" | "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" | "huff" | "crystal" | "drone" | "cuda" | "log" | "dotjs" | "ejs" | "wakatime" | "processing" | "storybook" | "wepy" | "hcl" | "san" | "quokka" | "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" | "pdm" | "coala" | "dinophp" | "teal" | "template" | "shader" | "siyuan" | "ndst" | "tobi" | "gleam" | "steadybit" | "capnp" | "tree" | "cadence" | "openapi" | "swagger" | "antlr" | "stylable" | "pinejs" | "taskfile" | "gamemaker" | "tldraw" | "typst" | "mermaid" | "mojo" | "roblox" | "spwn" | "templ" | "chrome" | "stan" | "abap" | "lottie" | "apps-script" | "pkl" | "playwright" | "go-mod" | "gemfile" | "rubocop" | "rspec" | "semgrep" | "vue-config" | "nuxt" | "vercel" | "verdaccio" | "payload" | "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" | "nx" | "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" | "knip" | "craco" | "mercurial" | "deno" | "plastic" | "unocss" | "ifanr-cloud" | "concourse" | "syncpack" | "werf" | "panda" | "biome" | "esbuild" | "puppeteer" | "kubernetes" | "matlab" | "diff" | "typescript" | "php" | "salesforce" | "objective-c" | "objective-cpp" | "blink_light" | "jinja_light" | "huff_light" | "crystal_light" | "drone_light" | "wakatime_light" | "hcl_light" | "uml_light" | "chess_light" | "openapi_light" | "tldraw_light" | "rubocop_light" | "vercel_light" | "payload_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", ...("slug" | "file" | "key" | "table" | "command" | "search" | "blink" | "folder-robot" | "folder-src" | "folder-dist" | "folder-css" | "folder-sass" | "folder-television" | "folder-desktop" | "folder-console" | "folder-images" | "folder-scripts" | "folder-node" | "folder-javascript" | "folder-json" | "folder-font" | "folder-bower" | "folder-test" | "folder-jinja" | "folder-markdown" | "folder-pdm" | "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-cloudflare" | "folder-seeders" | "folder-robot-open" | "folder-src-open" | "folder-dist-open" | "folder-css-open" | "folder-sass-open" | "folder-television-open" | "folder-desktop-open" | "folder-console-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-pdm-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" | "folder-cloudflare-open" | "folder-seeders-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" | "vscode" | "visualstudio" | "database" | "kusto" | "csharp" | "qsharp" | "zip" | "vala" | "zig" | "exe" | "hex" | "java" | "jar" | "javaclass" | "c" | "h" | "cpp" | "hpp" | "rc" | "go" | "python" | "python-misc" | "url" | "console" | "powershell" | "gradle" | "word" | "certificate" | "font" | "lib" | "dll" | "ruby" | "fsharp" | "swift" | "arduino" | "docker" | "tex" | "powerpoint" | "video" | "virtual" | "vedic" | "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" | "huff" | "crystal" | "drone" | "cuda" | "log" | "dotjs" | "ejs" | "wakatime" | "processing" | "storybook" | "wepy" | "hcl" | "san" | "quokka" | "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" | "pdm" | "coala" | "dinophp" | "teal" | "template" | "shader" | "siyuan" | "ndst" | "tobi" | "gleam" | "steadybit" | "capnp" | "tree" | "cadence" | "openapi" | "swagger" | "antlr" | "stylable" | "pinejs" | "taskfile" | "gamemaker" | "tldraw" | "typst" | "mermaid" | "mojo" | "roblox" | "spwn" | "templ" | "chrome" | "stan" | "abap" | "lottie" | "apps-script" | "pkl" | "playwright" | "go-mod" | "gemfile" | "rubocop" | "rspec" | "semgrep" | "vue-config" | "nuxt" | "vercel" | "verdaccio" | "payload" | "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" | "nx" | "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" | "knip" | "craco" | "mercurial" | "deno" | "plastic" | "unocss" | "ifanr-cloud" | "concourse" | "syncpack" | "werf" | "panda" | "biome" | "esbuild" | "puppeteer" | "kubernetes" | "matlab" | "diff" | "typescript" | "php" | "salesforce" | "objective-c" | "objective-cpp" | "blink_light" | "jinja_light" | "huff_light" | "crystal_light" | "drone_light" | "wakatime_light" | "hcl_light" | "uml_light" | "chess_light" | "openapi_light" | "tldraw_light" | "rubocop_light" | "vercel_light" | "payload_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")[]]>;
113
+ /**
114
+ * Type Definition: `MaterialIcon`
115
+ *
116
+ * This type is derived from a Zod schema and represents
117
+ * the validated structure of `MaterialIcon` used within the application.
118
+ *
119
+ * @see {@link https://github.com/code-pushup/cli/blob/main/packages/models/docs/models-reference.md#materialicon}
120
+ */
103
121
  export type MaterialIcon = z.infer<typeof materialIconSchema>;
@@ -0,0 +1,133 @@
1
+ import { MATERIAL_ICONS } from 'vscode-material-icons';
2
+ import { z } from 'zod';
3
+ import { MAX_DESCRIPTION_LENGTH, MAX_SLUG_LENGTH, MAX_TITLE_LENGTH, } from './limits.js';
4
+ import { filenameRegex, slugRegex } from './utils.js';
5
+ export const tableCellValueSchema = z
6
+ .union([z.string(), z.number(), z.boolean(), z.null()])
7
+ .default(null);
8
+ /**
9
+ * Schema for execution meta date
10
+ */
11
+ export function executionMetaSchema(options = {
12
+ descriptionDate: 'Execution start date and time',
13
+ descriptionDuration: 'Execution duration in ms',
14
+ }) {
15
+ return z.object({
16
+ date: z.string({ description: options.descriptionDate }),
17
+ duration: z.number({ description: options.descriptionDuration }),
18
+ });
19
+ }
20
+ /** Schema for a slug of a categories, plugins or audits. */
21
+ export const slugSchema = z
22
+ .string({ description: 'Unique ID (human-readable, URL-safe)' })
23
+ .regex(slugRegex, {
24
+ message: 'The slug has to follow the pattern [0-9a-z] followed by multiple optional groups of -[0-9a-z]. e.g. my-slug',
25
+ })
26
+ .max(MAX_SLUG_LENGTH, {
27
+ message: `The slug can be max ${MAX_SLUG_LENGTH} characters long`,
28
+ });
29
+ /** Schema for a general description property */
30
+ export const descriptionSchema = z
31
+ .string({ description: 'Description (markdown)' })
32
+ .max(MAX_DESCRIPTION_LENGTH)
33
+ .optional();
34
+ /* Schema for a URL */
35
+ export const urlSchema = z.string().url();
36
+ /** Schema for a docsUrl */
37
+ export const docsUrlSchema = urlSchema
38
+ .optional()
39
+ .or(z.literal(''))
40
+ .describe('Documentation site'); // allow empty string (no URL validation)
41
+ /** Schema for a title of a plugin, category and audit */
42
+ export const titleSchema = z
43
+ .string({ description: 'Descriptive name' })
44
+ .max(MAX_TITLE_LENGTH);
45
+ /** Schema for score of audit, category or group */
46
+ export const scoreSchema = z
47
+ .number({
48
+ description: 'Value between 0 and 1',
49
+ })
50
+ .min(0)
51
+ .max(1);
52
+ /** Schema for a property indicating whether an entity is filtered out */
53
+ export const isSkippedSchema = z.boolean().optional();
54
+ /**
55
+ * Used for categories, plugins and audits
56
+ * @param options
57
+ */
58
+ export function metaSchema(options) {
59
+ const { descriptionDescription, titleDescription, docsUrlDescription, description, isSkippedDescription, } = options ?? {};
60
+ return z.object({
61
+ title: titleDescription
62
+ ? titleSchema.describe(titleDescription)
63
+ : titleSchema,
64
+ description: descriptionDescription
65
+ ? descriptionSchema.describe(descriptionDescription)
66
+ : descriptionSchema,
67
+ docsUrl: docsUrlDescription
68
+ ? docsUrlSchema.describe(docsUrlDescription)
69
+ : docsUrlSchema,
70
+ isSkipped: isSkippedDescription
71
+ ? isSkippedSchema.describe(isSkippedDescription)
72
+ : isSkippedSchema,
73
+ }, { description });
74
+ }
75
+ /** Schema for a generalFilePath */
76
+ export const filePathSchema = z
77
+ .string()
78
+ .trim()
79
+ .min(1, { message: 'The path is invalid' });
80
+ /** Schema for a fileNameSchema */
81
+ export const fileNameSchema = z
82
+ .string()
83
+ .trim()
84
+ .regex(filenameRegex, {
85
+ message: `The filename has to be valid`,
86
+ })
87
+ .min(1, { message: 'The file name is invalid' });
88
+ /** Schema for a positiveInt */
89
+ export const positiveIntSchema = z.number().int().positive();
90
+ export const nonnegativeNumberSchema = z.number().nonnegative();
91
+ export function packageVersionSchema(options) {
92
+ const { versionDescription = 'NPM version of the package', required } = options ?? {};
93
+ const packageSchema = z.string({ description: 'NPM package name' });
94
+ const versionSchema = z.string({ description: versionDescription });
95
+ return z.object({
96
+ packageName: required ? packageSchema : packageSchema.optional(),
97
+ version: required ? versionSchema : versionSchema.optional(),
98
+ }, { description: 'NPM package name and version of a published package' });
99
+ }
100
+ /** Schema for a weight */
101
+ export const weightSchema = nonnegativeNumberSchema.describe('Coefficient for the given score (use weight 0 if only for display)');
102
+ export function weightedRefSchema(description, slugDescription) {
103
+ return z.object({
104
+ slug: slugSchema.describe(slugDescription),
105
+ weight: weightSchema.describe('Weight used to calculate score'),
106
+ }, { description });
107
+ }
108
+ export function scorableSchema(description, refSchema, duplicateCheckFn, duplicateMessageFn) {
109
+ return z.object({
110
+ slug: slugSchema.describe('Human-readable unique ID, e.g. "performance"'),
111
+ refs: z
112
+ .array(refSchema)
113
+ .min(1, { message: 'In a category, there has to be at least one ref' })
114
+ // refs are unique
115
+ .refine(refs => !duplicateCheckFn(refs), refs => ({
116
+ message: duplicateMessageFn(refs),
117
+ }))
118
+ // category weights are correct
119
+ .refine(hasNonZeroWeightedRef, refs => {
120
+ const affectedRefs = refs.map(ref => ref.slug).join(', ');
121
+ return {
122
+ message: `In a category, there has to be at least one ref with weight > 0. Affected refs: ${affectedRefs}`,
123
+ };
124
+ }),
125
+ }, { description });
126
+ }
127
+ export const materialIconSchema = z.enum(MATERIAL_ICONS, {
128
+ description: 'Icon from VSCode Material Icons extension',
129
+ });
130
+ function hasNonZeroWeightedRef(refs) {
131
+ return refs.reduce((acc, { weight }) => weight + acc, 0) !== 0;
132
+ }
133
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../../packages/models/src/lib/implementation/schemas.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { CategoryConfig } from '../category-config';
2
- import type { PluginConfig } from '../plugin-config';
3
- import type { PluginReport } from '../report';
1
+ import type { CategoryConfig } from '../category-config.js';
2
+ import type { PluginConfig } from '../plugin-config.js';
3
+ import type { PluginReport } from '../report.js';
4
4
  /**
5
5
  * Regular expression to validate a slug for categories, plugins and audits.
6
6
  * - audit (e.g. 'max-lines')