@code-pushup/utils 0.57.0 → 0.59.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 +3 -2
- package/src/index.d.ts +5 -3
- package/src/index.js +4 -2
- package/src/index.js.map +1 -1
- package/src/lib/case-conversions.d.ts +32 -0
- package/src/lib/case-conversions.js +90 -0
- package/src/lib/case-conversions.js.map +1 -0
- package/src/lib/create-runner-files.d.ts +8 -0
- package/src/lib/create-runner-files.js +22 -0
- package/src/lib/create-runner-files.js.map +1 -0
- package/src/lib/execute-process.js +4 -0
- package/src/lib/execute-process.js.map +1 -1
- package/src/lib/text-formats/table.js +1 -1
- package/src/lib/text-formats/table.js.map +1 -1
- package/src/lib/transform.d.ts +1 -2
- package/src/lib/transform.js +1 -4
- package/src/lib/transform.js.map +1 -1
- package/src/lib/types.d.ts +2 -0
- package/src/lib/zod-validation.d.ts +10 -2
- package/src/lib/zod-validation.js +25 -1
- package/src/lib/zod-validation.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"description": "Low-level utilities (helper functions, etc.) used by Code PushUp CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/utils#readme",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"node": ">=17.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@code-pushup/models": "0.
|
|
30
|
+
"@code-pushup/models": "0.59.0",
|
|
31
31
|
"@isaacs/cliui": "^8.0.2",
|
|
32
32
|
"@poppinss/cliui": "^6.4.0",
|
|
33
33
|
"ansis": "^3.3.0",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"multi-progress-bars": "^5.0.3",
|
|
38
38
|
"semver": "^7.6.0",
|
|
39
39
|
"simple-git": "^3.20.0",
|
|
40
|
+
"zod": "^3.23.8",
|
|
40
41
|
"zod-validation-error": "^3.4.0"
|
|
41
42
|
},
|
|
42
43
|
"module": "./src/index.js",
|
package/src/index.d.ts
CHANGED
|
@@ -24,8 +24,10 @@ export { sortReport } from './lib/reports/sorting.js';
|
|
|
24
24
|
export type { ScoredCategoryConfig, ScoredGroup, ScoredReport, } from './lib/reports/types.js';
|
|
25
25
|
export { calcDuration, compareIssueSeverity, formatReportScore, } from './lib/reports/utils.js';
|
|
26
26
|
export { isSemver, normalizeSemver, sortSemvers } from './lib/semver.js';
|
|
27
|
+
export { camelCaseToKebabCase, kebabCaseToCamelCase, capitalize, toSentenceCase, toTitleCase, } from './lib/case-conversions.js';
|
|
27
28
|
export * from './lib/text-formats/index.js';
|
|
28
|
-
export {
|
|
29
|
-
export type { ExcludeNullableProps, ExtractArray, ExtractArrays, ItemOrArray, Prettify, WithRequired, } from './lib/types.js';
|
|
29
|
+
export { countOccurrences, distinct, factorOf, fromJsonLines, objectFromEntries, objectToCliArgs, objectToEntries, objectToKeys, toArray, toJsonLines, toNumberPrecision, toOrdinal, toUnixNewlines, toUnixPath, type CliArgsObject, } from './lib/transform.js';
|
|
30
|
+
export type { ExcludeNullableProps, ExtractArray, ExtractArrays, ItemOrArray, Prettify, WithRequired, CamelCaseToKebabCase, } from './lib/types.js';
|
|
30
31
|
export { verboseUtils } from './lib/verbose-utils.js';
|
|
31
|
-
export {
|
|
32
|
+
export { parseSchema, SchemaValidationError } from './lib/zod-validation.js';
|
|
33
|
+
export { createRunnerFiles } from './lib/create-runner-files.js';
|
package/src/index.js
CHANGED
|
@@ -23,8 +23,10 @@ export { scoreReport } from './lib/reports/scoring.js';
|
|
|
23
23
|
export { sortReport } from './lib/reports/sorting.js';
|
|
24
24
|
export { calcDuration, compareIssueSeverity, formatReportScore, } from './lib/reports/utils.js';
|
|
25
25
|
export { isSemver, normalizeSemver, sortSemvers } from './lib/semver.js';
|
|
26
|
+
export { camelCaseToKebabCase, kebabCaseToCamelCase, capitalize, toSentenceCase, toTitleCase, } from './lib/case-conversions.js';
|
|
26
27
|
export * from './lib/text-formats/index.js';
|
|
27
|
-
export {
|
|
28
|
+
export { countOccurrences, distinct, factorOf, fromJsonLines, objectFromEntries, objectToCliArgs, objectToEntries, objectToKeys, toArray, toJsonLines, toNumberPrecision, toOrdinal, toUnixNewlines, toUnixPath, } from './lib/transform.js';
|
|
28
29
|
export { verboseUtils } from './lib/verbose-utils.js';
|
|
29
|
-
export {
|
|
30
|
+
export { parseSchema, SchemaValidationError } from './lib/zod-validation.js';
|
|
31
|
+
export { createRunnerFiles } from './lib/create-runner-files.js';
|
|
30
32
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAa,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,cAAc,GAIf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,uBAAuB,GAIxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,YAAY,EACZ,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,EAAE,EAA2B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzE,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/utils/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAa,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,cAAc,GAIf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,uBAAuB,GAIxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,YAAY,EACZ,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,EAAE,EAA2B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,UAAU,GAEX,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { CamelCaseToKebabCase, KebabCaseToCamelCase } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a kebab-case string to camelCase.
|
|
4
|
+
* @param string - The kebab-case string to convert.
|
|
5
|
+
* @returns The camelCase string.
|
|
6
|
+
*/
|
|
7
|
+
export declare function kebabCaseToCamelCase<T extends string>(string: T): KebabCaseToCamelCase<T>;
|
|
8
|
+
/**
|
|
9
|
+
* Converts a camelCase string to kebab-case.
|
|
10
|
+
* @param input - The camelCase string to convert.
|
|
11
|
+
* @returns The kebab-case string.
|
|
12
|
+
*/
|
|
13
|
+
export declare function camelCaseToKebabCase<T extends string>(input: T): CamelCaseToKebabCase<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Converts a string to Title Case.
|
|
16
|
+
* - Capitalizes the first letter of each major word.
|
|
17
|
+
* - Keeps articles, conjunctions, and short prepositions in lowercase unless they are the first word.
|
|
18
|
+
*
|
|
19
|
+
* @param input - The string to convert.
|
|
20
|
+
* @returns The formatted title case string.
|
|
21
|
+
*/
|
|
22
|
+
export declare function toTitleCase(input: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Converts a string to Sentence Case.
|
|
25
|
+
* - Capitalizes only the first letter of the sentence.
|
|
26
|
+
* - Retains case of proper nouns.
|
|
27
|
+
*
|
|
28
|
+
* @param input - The string to convert.
|
|
29
|
+
* @returns The formatted sentence case string.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toSentenceCase(input: string): string;
|
|
32
|
+
export declare function capitalize<T extends string>(text: T): Capitalize<T>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a kebab-case string to camelCase.
|
|
3
|
+
* @param string - The kebab-case string to convert.
|
|
4
|
+
* @returns The camelCase string.
|
|
5
|
+
*/
|
|
6
|
+
export function kebabCaseToCamelCase(string) {
|
|
7
|
+
return string
|
|
8
|
+
.split('-')
|
|
9
|
+
.map((segment, index) => (index === 0 ? segment : capitalize(segment)))
|
|
10
|
+
.join('');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Converts a camelCase string to kebab-case.
|
|
14
|
+
* @param input - The camelCase string to convert.
|
|
15
|
+
* @returns The kebab-case string.
|
|
16
|
+
*/
|
|
17
|
+
export function camelCaseToKebabCase(input) {
|
|
18
|
+
return input
|
|
19
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2') // Insert dash before uppercase letters
|
|
20
|
+
.replace(/([A-Z])([A-Z][a-z])/g, '$1-$2') // Handle consecutive uppercase letters
|
|
21
|
+
.toLowerCase();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Converts a string to Title Case.
|
|
25
|
+
* - Capitalizes the first letter of each major word.
|
|
26
|
+
* - Keeps articles, conjunctions, and short prepositions in lowercase unless they are the first word.
|
|
27
|
+
*
|
|
28
|
+
* @param input - The string to convert.
|
|
29
|
+
* @returns The formatted title case string.
|
|
30
|
+
*/
|
|
31
|
+
export function toTitleCase(input) {
|
|
32
|
+
const minorWords = new Set([
|
|
33
|
+
'a',
|
|
34
|
+
'an',
|
|
35
|
+
'the',
|
|
36
|
+
'and',
|
|
37
|
+
'or',
|
|
38
|
+
'but',
|
|
39
|
+
'for',
|
|
40
|
+
'nor',
|
|
41
|
+
'on',
|
|
42
|
+
'in',
|
|
43
|
+
'at',
|
|
44
|
+
'to',
|
|
45
|
+
'by',
|
|
46
|
+
'of',
|
|
47
|
+
]);
|
|
48
|
+
return input
|
|
49
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2') // Split PascalCase & camelCase
|
|
50
|
+
.replace(/[_-]/g, ' ') // Replace kebab-case and snake_case with spaces
|
|
51
|
+
.replace(/(\d+)/g, ' $1 ') // Add spaces around numbers
|
|
52
|
+
.replace(/\s+/g, ' ') // Remove extra spaces
|
|
53
|
+
.trim()
|
|
54
|
+
.split(' ')
|
|
55
|
+
.map((word, index) => {
|
|
56
|
+
// Preserve uppercase acronyms (e.g., API, HTTP)
|
|
57
|
+
if (/^[A-Z]{2,}$/.test(word)) {
|
|
58
|
+
return word;
|
|
59
|
+
}
|
|
60
|
+
// Capitalize first word or non-minor words
|
|
61
|
+
if (index === 0 || !minorWords.has(word.toLowerCase())) {
|
|
62
|
+
return capitalize(word);
|
|
63
|
+
}
|
|
64
|
+
return word.toLowerCase();
|
|
65
|
+
})
|
|
66
|
+
.join(' ');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Converts a string to Sentence Case.
|
|
70
|
+
* - Capitalizes only the first letter of the sentence.
|
|
71
|
+
* - Retains case of proper nouns.
|
|
72
|
+
*
|
|
73
|
+
* @param input - The string to convert.
|
|
74
|
+
* @returns The formatted sentence case string.
|
|
75
|
+
*/
|
|
76
|
+
export function toSentenceCase(input) {
|
|
77
|
+
return input
|
|
78
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2') // Split PascalCase & camelCase
|
|
79
|
+
.replace(/[_-]/g, ' ') // Replace kebab-case and snake_case with spaces
|
|
80
|
+
.replace(/(\d+)/g, ' $1 ') // Add spaces around numbers
|
|
81
|
+
.replace(/\s+/g, ' ') // Remove extra spaces
|
|
82
|
+
.trim()
|
|
83
|
+
.toLowerCase()
|
|
84
|
+
.replace(/^(\w)/, match => match.toUpperCase()) // Capitalize first letter
|
|
85
|
+
.replace(/\b([A-Z]{2,})\b/g, match => match); // Preserve uppercase acronyms
|
|
86
|
+
}
|
|
87
|
+
export function capitalize(text) {
|
|
88
|
+
return `${text.charAt(0).toLocaleUpperCase()}${text.slice(1).toLowerCase()}`;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=case-conversions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-conversions.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/case-conversions.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAS;IAET,OAAO,MAAM;SACV,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SACtE,IAAI,CAAC,EAAE,CAA4B,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAQ;IAER,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,uCAAuC;SAC3E,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,uCAAuC;SAChF,WAAW,EAA6B,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;QACzB,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,+BAA+B;SACnE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,gDAAgD;SACtE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,4BAA4B;SACtD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,sBAAsB;SAC3C,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,gDAAgD;QAChD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACvD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,+BAA+B;SACnE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,gDAAgD;SACtE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,4BAA4B;SACtD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,sBAAsB;SAC3C,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,0BAA0B;SACzE,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B;AAChF,CAAC;AAED,MAAM,UAAU,UAAU,CAAmB,IAAO;IAClD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAmB,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RunnerFilesPaths } from '@code-pushup/models';
|
|
2
|
+
/**
|
|
3
|
+
* Function to create timestamp nested plugin runner files for config and output.
|
|
4
|
+
*
|
|
5
|
+
* @param pluginSlug - slug of the plugin name used as folder names to group same plugin configs
|
|
6
|
+
* @param configJSON - config of the plugin runner as JSON.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createRunnerFiles(pluginSlug: string, configJSON: string): Promise<RunnerFilesPaths>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { ensureDirectoryExists, pluginWorkDir } from './file-system.js';
|
|
4
|
+
/**
|
|
5
|
+
* Function to create timestamp nested plugin runner files for config and output.
|
|
6
|
+
*
|
|
7
|
+
* @param pluginSlug - slug of the plugin name used as folder names to group same plugin configs
|
|
8
|
+
* @param configJSON - config of the plugin runner as JSON.
|
|
9
|
+
*/
|
|
10
|
+
export async function createRunnerFiles(pluginSlug, configJSON) {
|
|
11
|
+
const timestamp = Date.now().toString();
|
|
12
|
+
const runnerWorkDir = path.join(pluginWorkDir(pluginSlug), timestamp);
|
|
13
|
+
const runnerConfigPath = path.join(runnerWorkDir, 'plugin-config.json');
|
|
14
|
+
const runnerOutputPath = path.join(runnerWorkDir, 'runner-output.json');
|
|
15
|
+
await ensureDirectoryExists(path.dirname(runnerOutputPath));
|
|
16
|
+
await writeFile(runnerConfigPath, configJSON);
|
|
17
|
+
return {
|
|
18
|
+
runnerConfigPath,
|
|
19
|
+
runnerOutputPath,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=create-runner-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-runner-files.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/create-runner-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,UAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAExE,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAE9C,OAAO;QACL,gBAAgB;QAChB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { gray } from 'ansis';
|
|
1
2
|
import { spawn, } from 'node:child_process';
|
|
3
|
+
import { ui } from './logging.js';
|
|
2
4
|
import { calcDuration } from './reports/utils.js';
|
|
3
5
|
/**
|
|
4
6
|
* Error class for process errors.
|
|
@@ -62,6 +64,8 @@ export function executeProcess(cfg) {
|
|
|
62
64
|
const { onStdout, onStderr, onError, onComplete } = observer ?? {};
|
|
63
65
|
const date = new Date().toISOString();
|
|
64
66
|
const start = performance.now();
|
|
67
|
+
const logCommand = [command, ...(args || [])].join(' ');
|
|
68
|
+
ui().logger.log(gray(`Executing command:\n${logCommand}\nIn working directory:\n${cfg.cwd}`));
|
|
65
69
|
return new Promise((resolve, reject) => {
|
|
66
70
|
// shell:true tells Windows to use shell command for spawning a child process
|
|
67
71
|
const spawnedProcess = spawn(command, args ?? [], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-process.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/execute-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute-process.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/execute-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { capitalize } from '../
|
|
1
|
+
import { capitalize } from '../case-conversions.js';
|
|
2
2
|
export function rowToStringArray({ rows, columns = [] }) {
|
|
3
3
|
if (Array.isArray(rows.at(0)) && typeof columns.at(0) === 'object') {
|
|
4
4
|
throw new TypeError('Column can`t be object when rows are primitive values');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../../../packages/utils/src/lib/text-formats/table.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../../../packages/utils/src/lib/text-formats/table.ts"],"names":[],"mappings":"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"}
|
package/src/lib/transform.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type CliArgsObject<T extends object = Record<string, ArgumentValue>> = T
|
|
|
14
14
|
* Converts an object with different types of values into an array of command-line arguments.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
|
-
* const args =
|
|
17
|
+
* const args = objectToCliArgs({
|
|
18
18
|
* _: ['node', 'index.js'], // node index.js
|
|
19
19
|
* name: 'Juanita', // --name=Juanita
|
|
20
20
|
* formats: ['json', 'md'] // --format=json --format=md
|
|
@@ -25,7 +25,6 @@ export declare function toUnixPath(path: string): string;
|
|
|
25
25
|
export declare function toUnixNewlines(text: string): string;
|
|
26
26
|
export declare function fromJsonLines<T = unknown>(jsonLines: string): T;
|
|
27
27
|
export declare function toJsonLines<T>(json: T[]): string;
|
|
28
|
-
export declare function capitalize<T extends string>(text: T): Capitalize<T>;
|
|
29
28
|
export declare function toNumberPrecision(value: number, decimalPlaces: number): number;
|
|
30
29
|
export declare function toOrdinal(value: number): string;
|
|
31
30
|
export {};
|
package/src/lib/transform.js
CHANGED
|
@@ -34,7 +34,7 @@ export function factorOf(items, filterFn) {
|
|
|
34
34
|
* Converts an object with different types of values into an array of command-line arguments.
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
|
-
* const args =
|
|
37
|
+
* const args = objectToCliArgs({
|
|
38
38
|
* _: ['node', 'index.js'], // node index.js
|
|
39
39
|
* name: 'Juanita', // --name=Juanita
|
|
40
40
|
* formats: ['json', 'md'] // --format=json --format=md
|
|
@@ -88,9 +88,6 @@ export function fromJsonLines(jsonLines) {
|
|
|
88
88
|
export function toJsonLines(json) {
|
|
89
89
|
return json.map(item => JSON.stringify(item)).join('\n');
|
|
90
90
|
}
|
|
91
|
-
export function capitalize(text) {
|
|
92
|
-
return `${text.charAt(0).toLocaleUpperCase()}${text.slice(1)}`;
|
|
93
|
-
}
|
|
94
91
|
export function toNumberPrecision(value, decimalPlaces) {
|
|
95
92
|
return Number(`${Math.round(Number.parseFloat(`${value}e${decimalPlaces}`))}e-${decimalPlaces}`);
|
|
96
93
|
}
|
package/src/lib/transform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,OAAO,CAAI,GAAY;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAAmB,GAAM;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAmB,GAAM;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAA4B,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAA2B,OAAiB;IAC3E,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAiB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAW;IAEX,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAC5D,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAsC,KAAU;IACtE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,GAAM;IACjC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,KAAU,EAAE,QAA2B;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,4BAA4B;IAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAClD,qEAAqE;IACrE,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;AACvE,CAAC;AAQD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAE7B,MAAyB;IACzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrD,sBAAsB;QACtB,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,8BAA8B;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,6BAA6B;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAsC,CAAC,CAAC,OAAO;YACnE,4DAA4D;YAC5D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,aAAa,CAAc,SAAiB;IAC1D,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,IAAS;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/transform.ts"],"names":[],"mappings":"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"}
|
package/src/lib/types.d.ts
CHANGED
|
@@ -10,3 +10,5 @@ export type WithRequired<T, K extends keyof T> = Prettify<Omit<T, K> & Required<
|
|
|
10
10
|
export type Prettify<T> = {
|
|
11
11
|
[K in keyof T]: T[K];
|
|
12
12
|
};
|
|
13
|
+
export type CamelCaseToKebabCase<T extends string> = T extends `${infer First}${infer Rest}` ? Rest extends Uncapitalize<Rest> ? `${Lowercase<First>}${CamelCaseToKebabCase<Rest>}` : `${Lowercase<First>}-${CamelCaseToKebabCase<Rest>}` : T;
|
|
14
|
+
export type KebabCaseToCamelCase<T extends string> = T extends `${infer First}-${infer Rest}` ? `${First}${Capitalize<KebabCaseToCamelCase<Rest>>}` : T;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
type SchemaValidationContext = {
|
|
3
|
+
schemaType: string;
|
|
4
|
+
sourcePath?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class SchemaValidationError extends Error {
|
|
7
|
+
constructor({ schemaType, sourcePath }: SchemaValidationContext, error: Error);
|
|
8
|
+
}
|
|
2
9
|
export declare function formatErrorPath(errorPath: (string | number)[]): string;
|
|
3
|
-
export declare
|
|
10
|
+
export declare function parseSchema<T extends z.ZodTypeAny>(schema: T, data: z.input<T>, { schemaType, sourcePath }: SchemaValidationContext): z.output<T>;
|
|
11
|
+
export {};
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { bold, red } from 'ansis';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fromError, isZodErrorLike, } from 'zod-validation-error';
|
|
4
|
+
export class SchemaValidationError extends Error {
|
|
5
|
+
constructor({ schemaType, sourcePath }, error) {
|
|
6
|
+
const validationError = fromError(error, {
|
|
7
|
+
messageBuilder: zodErrorMessageBuilder,
|
|
8
|
+
});
|
|
9
|
+
const pathDetails = sourcePath
|
|
10
|
+
? ` in ${bold(path.relative(process.cwd(), sourcePath))}`
|
|
11
|
+
: '';
|
|
12
|
+
super(`Failed parsing ${schemaType}${pathDetails}.\n\n${validationError.message}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
2
15
|
export function formatErrorPath(errorPath) {
|
|
3
16
|
return errorPath
|
|
4
17
|
.map((key, index) => {
|
|
@@ -9,7 +22,7 @@ export function formatErrorPath(errorPath) {
|
|
|
9
22
|
})
|
|
10
23
|
.join('');
|
|
11
24
|
}
|
|
12
|
-
|
|
25
|
+
const zodErrorMessageBuilder = issues => issues
|
|
13
26
|
.map(issue => {
|
|
14
27
|
const formattedMessage = red(`${bold(issue.code)}: ${issue.message}`);
|
|
15
28
|
const formattedPath = formatErrorPath(issue.path);
|
|
@@ -19,4 +32,15 @@ export const zodErrorMessageBuilder = issues => issues
|
|
|
19
32
|
return `${formattedMessage}\n`;
|
|
20
33
|
})
|
|
21
34
|
.join('\n');
|
|
35
|
+
export function parseSchema(schema, data, { schemaType, sourcePath }) {
|
|
36
|
+
try {
|
|
37
|
+
return schema.parse(data);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (isZodErrorLike(error)) {
|
|
41
|
+
throw new SchemaValidationError({ schemaType, sourcePath }, error);
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
22
46
|
//# sourceMappingURL=zod-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-validation.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/zod-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"zod-validation.js","sourceRoot":"","sources":["../../../../../packages/utils/src/lib/zod-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAEL,SAAS,EACT,cAAc,GACf,MAAM,sBAAsB,CAAC;AAO9B,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YACE,EAAE,UAAU,EAAE,UAAU,EAA2B,EACnD,KAAY;QAEZ,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,EAAE;YACvC,cAAc,EAAE,sBAAsB;SACvC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU;YAC5B,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CACH,kBAAkB,UAAU,GAAG,WAAW,QAAQ,eAAe,CAAC,OAAO,EAAE,CAC5E,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,SAA8B;IAC5D,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,GAAG,GAAG,CAAC;QACpB,CAAC;QACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,sBAAsB,GAAmB,MAAM,CAAC,EAAE,CACtD,MAAM;KACH,GAAG,CAAC,KAAK,CAAC,EAAE;IACX,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,uBAAuB,IAAI,CAAC,aAAa,CAAC,KAAK,gBAAgB,IAAI,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,gBAAgB,IAAI,CAAC;AACjC,CAAC,CAAC;KACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,UAAU,WAAW,CACzB,MAAS,EACT,IAAgB,EAChB,EAAE,UAAU,EAAE,UAAU,EAA2B;IAEnD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,qBAAqB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|