@formigio/fazemos-cli 0.10.10 → 0.10.12
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/dist/index.js +164 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest/checks.d.ts +6 -0
- package/dist/manifest/checks.js +356 -0
- package/dist/manifest/checks.js.map +1 -0
- package/dist/manifest/schema.d.ts +314 -0
- package/dist/manifest/schema.js +208 -0
- package/dist/manifest/schema.js.map +1 -0
- package/dist/yaml/format.d.ts +5 -0
- package/dist/yaml/format.js +41 -0
- package/dist/yaml/format.js.map +1 -0
- package/dist/yaml/load.d.ts +28 -0
- package/dist/yaml/load.js +74 -0
- package/dist/yaml/load.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { readFileSync, existsSync, statSync } from 'fs';
|
|
2
|
+
import yaml from 'js-yaml';
|
|
3
|
+
/**
|
|
4
|
+
* Load and parse a YAML file. Returns a LoadResult; non-throwing.
|
|
5
|
+
*
|
|
6
|
+
* On parse failure, populates `findings` with a single error carrying the
|
|
7
|
+
* line/column from js-yaml's mark when available. On read failure (missing
|
|
8
|
+
* file, not a regular file), returns ok: false with a `read.*` rule.
|
|
9
|
+
*/
|
|
10
|
+
export function loadYaml(filePath) {
|
|
11
|
+
const findings = [];
|
|
12
|
+
if (!existsSync(filePath)) {
|
|
13
|
+
findings.push({
|
|
14
|
+
severity: 'error',
|
|
15
|
+
rule: 'read.not_found',
|
|
16
|
+
message: `File not found: ${filePath}`,
|
|
17
|
+
path: filePath,
|
|
18
|
+
});
|
|
19
|
+
return { ok: false, source: filePath, findings };
|
|
20
|
+
}
|
|
21
|
+
if (!statSync(filePath).isFile()) {
|
|
22
|
+
findings.push({
|
|
23
|
+
severity: 'error',
|
|
24
|
+
rule: 'read.not_a_file',
|
|
25
|
+
message: `Not a regular file: ${filePath}`,
|
|
26
|
+
path: filePath,
|
|
27
|
+
});
|
|
28
|
+
return { ok: false, source: filePath, findings };
|
|
29
|
+
}
|
|
30
|
+
let raw;
|
|
31
|
+
try {
|
|
32
|
+
raw = readFileSync(filePath, 'utf-8');
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
findings.push({
|
|
36
|
+
severity: 'error',
|
|
37
|
+
rule: 'read.io_error',
|
|
38
|
+
message: `Failed to read file: ${err?.message ?? String(err)}`,
|
|
39
|
+
path: filePath,
|
|
40
|
+
});
|
|
41
|
+
return { ok: false, source: filePath, findings };
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const value = yaml.load(raw, { filename: filePath });
|
|
45
|
+
return { ok: true, value, source: filePath, findings };
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const finding = {
|
|
49
|
+
severity: 'error',
|
|
50
|
+
rule: 'yaml.parse_error',
|
|
51
|
+
message: err?.reason || err?.message || String(err),
|
|
52
|
+
path: filePath,
|
|
53
|
+
};
|
|
54
|
+
if (err?.mark && typeof err.mark === 'object') {
|
|
55
|
+
finding.line = (err.mark.line ?? 0) + 1;
|
|
56
|
+
finding.column = (err.mark.column ?? 0) + 1;
|
|
57
|
+
}
|
|
58
|
+
findings.push(finding);
|
|
59
|
+
return { ok: false, source: filePath, findings };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function summarize(findings) {
|
|
63
|
+
let errors = 0, warnings = 0, infos = 0;
|
|
64
|
+
for (const f of findings) {
|
|
65
|
+
if (f.severity === 'error')
|
|
66
|
+
errors++;
|
|
67
|
+
else if (f.severity === 'warning')
|
|
68
|
+
warnings++;
|
|
69
|
+
else
|
|
70
|
+
infos++;
|
|
71
|
+
}
|
|
72
|
+
return { errors, warnings, infos };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/yaml/load.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formigio/fazemos-cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.12",
|
|
4
4
|
"description": "CLI for the Fazemos Team Accomplishment Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,11 +31,14 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@aws-sdk/client-cognito-identity-provider": "^3.700.0",
|
|
34
|
+
"ajv": "^8.20.0",
|
|
34
35
|
"chalk": "^5.3.0",
|
|
35
36
|
"commander": "^12.1.0",
|
|
36
|
-
"conf": "^13.0.1"
|
|
37
|
+
"conf": "^13.0.1",
|
|
38
|
+
"js-yaml": "^4.1.1"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
41
|
+
"@types/js-yaml": "^4.0.9",
|
|
39
42
|
"@types/node": "^20.17.0",
|
|
40
43
|
"@vitest/coverage-v8": "^4.1.0",
|
|
41
44
|
"tsx": "^4.19.2",
|