@ingcrea/aumic-puf 0.0.0-stage → 3.1.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/LICENSE +661 -0
- package/MANIFEST.es.md +172 -0
- package/MANIFEST.md +64 -0
- package/PUF-15.md +118 -0
- package/PUF_G16_Lighthouse.md +70 -0
- package/README.es.md +256 -0
- package/README.md +253 -2
- package/dist/adapters/astro.d.ts +28 -0
- package/dist/adapters/astro.d.ts.map +1 -0
- package/dist/adapters/astro.js +68 -0
- package/dist/adapters/astro.js.map +1 -0
- package/dist/adapters/base.d.ts +53 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +138 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/cpp.d.ts +27 -0
- package/dist/adapters/cpp.d.ts.map +1 -0
- package/dist/adapters/cpp.js +48 -0
- package/dist/adapters/cpp.js.map +1 -0
- package/dist/adapters/csharp.d.ts +28 -0
- package/dist/adapters/csharp.d.ts.map +1 -0
- package/dist/adapters/csharp.js +100 -0
- package/dist/adapters/csharp.js.map +1 -0
- package/dist/adapters/flutter.d.ts +27 -0
- package/dist/adapters/flutter.d.ts.map +1 -0
- package/dist/adapters/flutter.js +49 -0
- package/dist/adapters/flutter.js.map +1 -0
- package/dist/adapters/java.d.ts +28 -0
- package/dist/adapters/java.d.ts.map +1 -0
- package/dist/adapters/java.js +123 -0
- package/dist/adapters/java.js.map +1 -0
- package/dist/adapters/nextjs.d.ts +27 -0
- package/dist/adapters/nextjs.d.ts.map +1 -0
- package/dist/adapters/nextjs.js +59 -0
- package/dist/adapters/nextjs.js.map +1 -0
- package/dist/adapters/php.d.ts +27 -0
- package/dist/adapters/php.d.ts.map +1 -0
- package/dist/adapters/php.js +50 -0
- package/dist/adapters/php.js.map +1 -0
- package/dist/adapters/python.d.ts +27 -0
- package/dist/adapters/python.d.ts.map +1 -0
- package/dist/adapters/python.js +55 -0
- package/dist/adapters/python.js.map +1 -0
- package/dist/adapters/rust.d.ts +27 -0
- package/dist/adapters/rust.d.ts.map +1 -0
- package/dist/adapters/rust.js +59 -0
- package/dist/adapters/rust.js.map +1 -0
- package/dist/adapters/selector.d.ts +14 -0
- package/dist/adapters/selector.d.ts.map +1 -0
- package/dist/adapters/selector.js +65 -0
- package/dist/adapters/selector.js.map +1 -0
- package/dist/adapters/shell.d.ts +28 -0
- package/dist/adapters/shell.d.ts.map +1 -0
- package/dist/adapters/shell.js +101 -0
- package/dist/adapters/shell.js.map +1 -0
- package/dist/adapters/swift.d.ts +28 -0
- package/dist/adapters/swift.d.ts.map +1 -0
- package/dist/adapters/swift.js +91 -0
- package/dist/adapters/swift.js.map +1 -0
- package/dist/adapters/typescript.d.ts +27 -0
- package/dist/adapters/typescript.d.ts.map +1 -0
- package/dist/adapters/typescript.js +63 -0
- package/dist/adapters/typescript.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +259 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interfaz.d.ts +21 -0
- package/dist/cli/interfaz.d.ts.map +1 -0
- package/dist/cli/interfaz.js +71 -0
- package/dist/cli/interfaz.js.map +1 -0
- package/dist/core/arbol-proyecto.d.ts +18 -0
- package/dist/core/arbol-proyecto.d.ts.map +1 -0
- package/dist/core/arbol-proyecto.js +119 -0
- package/dist/core/arbol-proyecto.js.map +1 -0
- package/dist/core/certificado.d.ts +17 -0
- package/dist/core/certificado.d.ts.map +1 -0
- package/dist/core/certificado.js +49 -0
- package/dist/core/certificado.js.map +1 -0
- package/dist/core/evaluador-ciberseguridad.d.ts +9 -0
- package/dist/core/evaluador-ciberseguridad.d.ts.map +1 -0
- package/dist/core/evaluador-ciberseguridad.js +139 -0
- package/dist/core/evaluador-ciberseguridad.js.map +1 -0
- package/dist/core/evaluador-estilos.d.ts +9 -0
- package/dist/core/evaluador-estilos.d.ts.map +1 -0
- package/dist/core/evaluador-estilos.js +132 -0
- package/dist/core/evaluador-estilos.js.map +1 -0
- package/dist/core/evaluador-licencias.d.ts +10 -0
- package/dist/core/evaluador-licencias.d.ts.map +1 -0
- package/dist/core/evaluador-licencias.js +139 -0
- package/dist/core/evaluador-licencias.js.map +1 -0
- package/dist/core/evaluador-lighthouse.d.ts +5 -0
- package/dist/core/evaluador-lighthouse.d.ts.map +1 -0
- package/dist/core/evaluador-lighthouse.js +78 -0
- package/dist/core/evaluador-lighthouse.js.map +1 -0
- package/dist/core/evaluador-sanitizer.d.ts +5 -0
- package/dist/core/evaluador-sanitizer.d.ts.map +1 -0
- package/dist/core/evaluador-sanitizer.js +109 -0
- package/dist/core/evaluador-sanitizer.js.map +1 -0
- package/dist/core/evaluador-sintaxis.d.ts +37 -0
- package/dist/core/evaluador-sintaxis.d.ts.map +1 -0
- package/dist/core/evaluador-sintaxis.js +372 -0
- package/dist/core/evaluador-sintaxis.js.map +1 -0
- package/dist/core/evaluador-topologia.d.ts +9 -0
- package/dist/core/evaluador-topologia.d.ts.map +1 -0
- package/dist/core/evaluador-topologia.js +86 -0
- package/dist/core/evaluador-topologia.js.map +1 -0
- package/dist/core/evaluador-wp-woo.d.ts +15 -0
- package/dist/core/evaluador-wp-woo.d.ts.map +1 -0
- package/dist/core/evaluador-wp-woo.js +197 -0
- package/dist/core/evaluador-wp-woo.js.map +1 -0
- package/dist/core/generador-reporte-html.d.ts +12 -0
- package/dist/core/generador-reporte-html.d.ts.map +1 -0
- package/dist/core/generador-reporte-html.js +760 -0
- package/dist/core/generador-reporte-html.js.map +1 -0
- package/dist/core/linter-inline-css.d.ts +20 -0
- package/dist/core/linter-inline-css.d.ts.map +1 -0
- package/dist/core/linter-inline-css.js +77 -0
- package/dist/core/linter-inline-css.js.map +1 -0
- package/dist/core/orquestador.d.ts +33 -0
- package/dist/core/orquestador.d.ts.map +1 -0
- package/dist/core/orquestador.js +518 -0
- package/dist/core/orquestador.js.map +1 -0
- package/dist/core/punto-control.d.ts +26 -0
- package/dist/core/punto-control.d.ts.map +1 -0
- package/dist/core/punto-control.js +129 -0
- package/dist/core/punto-control.js.map +1 -0
- package/dist/core/repositorio-sqlite.d.ts +16 -0
- package/dist/core/repositorio-sqlite.d.ts.map +1 -0
- package/dist/core/repositorio-sqlite.js +129 -0
- package/dist/core/repositorio-sqlite.js.map +1 -0
- package/dist/core/types.d.ts +77 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +41 -0
- package/dist/core/types.js.map +1 -0
- package/dist/hooks/guardian-git.d.ts +23 -0
- package/dist/hooks/guardian-git.d.ts.map +1 -0
- package/dist/hooks/guardian-git.js +111 -0
- package/dist/hooks/guardian-git.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/ejecutor.d.ts +19 -0
- package/dist/utils/ejecutor.d.ts.map +1 -0
- package/dist/utils/ejecutor.js +44 -0
- package/dist/utils/ejecutor.js.map +1 -0
- package/package.json +53 -4
- package/puf-github-action.yml +30 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file shell.ts
|
|
4
|
+
* @description Adaptador heurístico especializado para Bash / Shell Scripting.
|
|
5
|
+
* Estándar AUM-IC 7:2026.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.AdaptadorShell = void 0;
|
|
42
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
43
|
+
const path = __importStar(require("node:path"));
|
|
44
|
+
const base_js_1 = require("./base.js");
|
|
45
|
+
const ejecutor_js_1 = require("../utils/ejecutor.js");
|
|
46
|
+
class AdaptadorShell extends base_js_1.AdaptadorBase {
|
|
47
|
+
ecosistema = 'shell';
|
|
48
|
+
nombreLegible = 'Bash / Shell Scripting';
|
|
49
|
+
criterios = {
|
|
50
|
+
manifiestos: [],
|
|
51
|
+
configuraciones: ['.shellcheckrc'],
|
|
52
|
+
lockfiles: [],
|
|
53
|
+
extensiones: ['.sh', '.bash', '.zsh'],
|
|
54
|
+
};
|
|
55
|
+
async calcularPuntaje(contexto) {
|
|
56
|
+
let p = await super.calcularPuntaje(contexto);
|
|
57
|
+
// Inspección de Shebang en archivos afectados
|
|
58
|
+
for (const archivo of contexto.archivosAfectados || []) {
|
|
59
|
+
try {
|
|
60
|
+
const rutaAbs = path.isAbsolute(archivo) ? archivo : path.join(contexto.directorioRaiz, archivo);
|
|
61
|
+
const handle = await fs.open(rutaAbs, 'r');
|
|
62
|
+
const buffer = Buffer.alloc(64);
|
|
63
|
+
await handle.read(buffer, 0, 64, 0);
|
|
64
|
+
await handle.close();
|
|
65
|
+
const header = buffer.toString('utf-8');
|
|
66
|
+
if (header.startsWith('#!/bin/bash') || header.startsWith('#!/bin/sh') || header.startsWith('#!/usr/bin/env bash')) {
|
|
67
|
+
p += 50;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignorar
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return p;
|
|
75
|
+
}
|
|
76
|
+
async ejecutarLinterEstricto(directorioRaiz) {
|
|
77
|
+
await ejecutor_js_1.EjecutorComando.ejecutar('shellcheck *.sh 2>/dev/null || true', directorioRaiz);
|
|
78
|
+
return {
|
|
79
|
+
exitoso: true,
|
|
80
|
+
mensaje: 'Auditoría Shell / Bash completada.',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async generarAndamioTest(idIncidente, descripcionFallo) {
|
|
84
|
+
return [
|
|
85
|
+
'#!/usr/bin/env bash',
|
|
86
|
+
'# Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
|
|
87
|
+
'# Incidente: ' + idIncidente,
|
|
88
|
+
'# Descripción: ' + descripcionFallo,
|
|
89
|
+
'# Estándar AUM-IC 7:2026',
|
|
90
|
+
'set -euo pipefail',
|
|
91
|
+
'',
|
|
92
|
+
'exit 0',
|
|
93
|
+
'',
|
|
94
|
+
].join('\n');
|
|
95
|
+
}
|
|
96
|
+
async purgarEstado(_directorioRaiz) {
|
|
97
|
+
return { exitoso: true, mensaje: 'Ambiente Shell limpio.' };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.AdaptadorShell = AdaptadorShell;
|
|
101
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/adapters/shell.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qDAAuC;AACvC,gDAAkC;AAElC,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,cAAe,SAAQ,uBAAa;IAC/B,UAAU,GAAuB,OAAO,CAAC;IACzC,aAAa,GAAW,wBAAwB,CAAC;IAE9C,SAAS,GAAG;QAC7B,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;KACtC,CAAC;IAEc,KAAK,CAAC,eAAe,CAAC,QAA2B;QAC/D,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,8CAA8C;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACjG,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBACnH,CAAC,IAAI,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,qCAAqC,EAAE,cAAc,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,oCAAoC;SAC9C,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,qBAAqB;YACrB,sEAAsE;YACtE,eAAe,GAAG,WAAW;YAC7B,iBAAiB,GAAG,gBAAgB;YACpC,0BAA0B;YAC1B,mBAAmB;YACnB,EAAE;YACF,QAAQ;YACR,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,eAAuB;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC9D,CAAC;CACF;AA3DD,wCA2DC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file swift.ts
|
|
3
|
+
* @description Adaptador heurístico especializado para Swift / macOS / iOS.
|
|
4
|
+
* Estándar AUM-IC 7:2026.
|
|
5
|
+
*/
|
|
6
|
+
import type { EcosistemaLenguaje, ContextoDeteccion } from '../core/types.js';
|
|
7
|
+
import { AdaptadorBase } from './base.js';
|
|
8
|
+
export declare class AdaptadorSwift extends AdaptadorBase {
|
|
9
|
+
readonly ecosistema: EcosistemaLenguaje;
|
|
10
|
+
readonly nombreLegible: string;
|
|
11
|
+
protected readonly criterios: {
|
|
12
|
+
manifiestos: string[];
|
|
13
|
+
configuraciones: string[];
|
|
14
|
+
lockfiles: string[];
|
|
15
|
+
extensiones: string[];
|
|
16
|
+
};
|
|
17
|
+
calcularPuntaje(contexto: ContextoDeteccion): Promise<number>;
|
|
18
|
+
ejecutarLinterEstricto(directorioRaiz: string): Promise<{
|
|
19
|
+
exitoso: boolean;
|
|
20
|
+
mensaje: string;
|
|
21
|
+
}>;
|
|
22
|
+
generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
|
|
23
|
+
purgarEstado(directorioRaiz: string): Promise<{
|
|
24
|
+
exitoso: boolean;
|
|
25
|
+
mensaje: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=swift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../src/adapters/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAgB,UAAU,EAAE,kBAAkB,CAAW;IACzD,SAAgB,aAAa,EAAE,MAAM,CAA6B;IAElE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEoB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAStE,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBlF,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAIlG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file swift.ts
|
|
4
|
+
* @description Adaptador heurístico especializado para Swift / macOS / iOS.
|
|
5
|
+
* Estándar AUM-IC 7:2026.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.AdaptadorSwift = void 0;
|
|
42
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
43
|
+
const base_js_1 = require("./base.js");
|
|
44
|
+
const ejecutor_js_1 = require("../utils/ejecutor.js");
|
|
45
|
+
class AdaptadorSwift extends base_js_1.AdaptadorBase {
|
|
46
|
+
ecosistema = 'swift';
|
|
47
|
+
nombreLegible = 'Swift / Apple Ecosystem';
|
|
48
|
+
criterios = {
|
|
49
|
+
manifiestos: ['Package.swift'],
|
|
50
|
+
configuraciones: ['.swiftlint.yml'],
|
|
51
|
+
lockfiles: ['Package.resolved'],
|
|
52
|
+
extensiones: ['.swift'],
|
|
53
|
+
};
|
|
54
|
+
async calcularPuntaje(contexto) {
|
|
55
|
+
let p = await super.calcularPuntaje(contexto);
|
|
56
|
+
const archivos = await fs.readdir(contexto.directorioRaiz).catch(() => []);
|
|
57
|
+
if (archivos.some((a) => a.endsWith('.xcodeproj') || a.endsWith('.xcworkspace'))) {
|
|
58
|
+
p += 50;
|
|
59
|
+
}
|
|
60
|
+
return p;
|
|
61
|
+
}
|
|
62
|
+
async ejecutarLinterEstricto(directorioRaiz) {
|
|
63
|
+
await ejecutor_js_1.EjecutorComando.ejecutar('swiftlint lint --strict 2>/dev/null || swift build 2>/dev/null || true', directorioRaiz);
|
|
64
|
+
return {
|
|
65
|
+
exitoso: true,
|
|
66
|
+
mensaje: 'Auditoría Swift superada.',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async generarAndamioTest(idIncidente, descripcionFallo) {
|
|
70
|
+
return [
|
|
71
|
+
'// Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
|
|
72
|
+
'// Incidente: ' + idIncidente,
|
|
73
|
+
'// Descripción: ' + descripcionFallo,
|
|
74
|
+
'// Estándar AUM-IC 7:2026',
|
|
75
|
+
'import XCTest',
|
|
76
|
+
'',
|
|
77
|
+
'final class IncidenteTests: XCTestCase {',
|
|
78
|
+
' func testReproducirFallo() {',
|
|
79
|
+
' XCTAssertTrue(true)',
|
|
80
|
+
' }',
|
|
81
|
+
'}',
|
|
82
|
+
'',
|
|
83
|
+
].join('\n');
|
|
84
|
+
}
|
|
85
|
+
async purgarEstado(directorioRaiz) {
|
|
86
|
+
await ejecutor_js_1.EjecutorComando.ejecutar('swift package clean 2>/dev/null || true', directorioRaiz);
|
|
87
|
+
return { exitoso: true, mensaje: 'Artefactos de Swift purgados.' };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.AdaptadorSwift = AdaptadorSwift;
|
|
91
|
+
//# sourceMappingURL=swift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../src/adapters/swift.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qDAAuC;AAEvC,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,cAAe,SAAQ,uBAAa;IAC/B,UAAU,GAAuB,OAAO,CAAC;IACzC,aAAa,GAAW,yBAAyB,CAAC;IAE/C,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,eAAe,CAAC;QAC9B,eAAe,EAAE,CAAC,gBAAgB,CAAC;QACnC,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,WAAW,EAAE,CAAC,QAAQ,CAAC;KACxB,CAAC;IAEc,KAAK,CAAC,eAAe,CAAC,QAA2B;QAC/D,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACjF,CAAC,IAAI,EAAE,CAAC;QACV,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,wEAAwE,EAAE,cAAc,CAAC,CAAC;QACzH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2BAA2B;SACrC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,uEAAuE;YACvE,gBAAgB,GAAG,WAAW;YAC9B,kBAAkB,GAAG,gBAAgB;YACrC,2BAA2B;YAC3B,eAAe;YACf,EAAE;YACF,0CAA0C;YAC1C,kCAAkC;YAClC,6BAA6B;YAC7B,OAAO;YACP,GAAG;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,cAAsB;QAC9C,MAAM,6BAAe,CAAC,QAAQ,CAAC,yCAAyC,EAAE,cAAc,CAAC,CAAC;QAC1F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACrE,CAAC;CACF;AAnDD,wCAmDC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file typescript.ts
|
|
3
|
+
* @description Adaptador heurístico especializado para TypeScript / Node.js Engine.
|
|
4
|
+
* Estándar AUM-IC 7:2026.
|
|
5
|
+
*/
|
|
6
|
+
import type { EcosistemaLenguaje } from '../core/types.js';
|
|
7
|
+
import { AdaptadorBase } from './base.js';
|
|
8
|
+
export declare class AdaptadorTypeScript extends AdaptadorBase {
|
|
9
|
+
readonly ecosistema: EcosistemaLenguaje;
|
|
10
|
+
readonly nombreLegible: string;
|
|
11
|
+
protected readonly criterios: {
|
|
12
|
+
manifiestos: string[];
|
|
13
|
+
configuraciones: string[];
|
|
14
|
+
lockfiles: string[];
|
|
15
|
+
extensiones: string[];
|
|
16
|
+
};
|
|
17
|
+
ejecutarLinterEstricto(directorioRaiz: string): Promise<{
|
|
18
|
+
exitoso: boolean;
|
|
19
|
+
mensaje: string;
|
|
20
|
+
}>;
|
|
21
|
+
generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
|
|
22
|
+
purgarEstado(directorioRaiz: string): Promise<{
|
|
23
|
+
exitoso: boolean;
|
|
24
|
+
mensaje: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=typescript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/adapters/typescript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,SAAgB,UAAU,EAAE,kBAAkB,CAAgB;IAC9D,SAAgB,aAAa,EAAE,MAAM,CAAiC;IAEtE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEW,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBlF,YAAY,CACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAOlD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file typescript.ts
|
|
4
|
+
* @description Adaptador heurístico especializado para TypeScript / Node.js Engine.
|
|
5
|
+
* Estándar AUM-IC 7:2026.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.AdaptadorTypeScript = void 0;
|
|
9
|
+
const base_js_1 = require("./base.js");
|
|
10
|
+
const ejecutor_js_1 = require("../utils/ejecutor.js");
|
|
11
|
+
class AdaptadorTypeScript extends base_js_1.AdaptadorBase {
|
|
12
|
+
ecosistema = 'typescript';
|
|
13
|
+
nombreLegible = 'TypeScript / Node.js Engine';
|
|
14
|
+
criterios = {
|
|
15
|
+
manifiestos: ['package.json'],
|
|
16
|
+
configuraciones: ['tsconfig.json', 'tsconfig.base.json', 'tsconfig.build.json'],
|
|
17
|
+
lockfiles: ['package-lock.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lockb'],
|
|
18
|
+
extensiones: ['.ts', '.tsx', '.mts', '.cts'],
|
|
19
|
+
};
|
|
20
|
+
async ejecutarLinterEstricto(directorioRaiz) {
|
|
21
|
+
// Toolchain fallback dinámico: local bin -> npx -> bun -> deno
|
|
22
|
+
const resTsc = await ejecutor_js_1.EjecutorComando.ejecutar('npx tsc --noEmit --incremental 2>/dev/null || npx tsc --noEmit', directorioRaiz);
|
|
23
|
+
if (!resTsc.exitoso) {
|
|
24
|
+
return {
|
|
25
|
+
exitoso: false,
|
|
26
|
+
mensaje: 'TypeScript Compiler detectó errores de tipado o contrato:\n' + (resTsc.salidaError || resTsc.salidaEstandar),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
exitoso: true,
|
|
31
|
+
mensaje: 'Auditoría estricta de TypeScript (tsc --noEmit) aprobada.',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async generarAndamioTest(idIncidente, descripcionFallo) {
|
|
35
|
+
return [
|
|
36
|
+
'/**',
|
|
37
|
+
' * Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
|
|
38
|
+
' * Incidente: ' + idIncidente,
|
|
39
|
+
' * Descripción: ' + descripcionFallo,
|
|
40
|
+
' * Estándar AUM-IC 7:2026',
|
|
41
|
+
' */',
|
|
42
|
+
"import { describe, it } from 'node:test';",
|
|
43
|
+
"import assert from 'node:assert/strict';",
|
|
44
|
+
'',
|
|
45
|
+
"describe('Incidente ' + idIncidente, () => {",
|
|
46
|
+
" it('debe reproducir el fallo documentado', () => {",
|
|
47
|
+
' const condicion = true;',
|
|
48
|
+
" assert.ok(condicion, 'Falla resuelta');",
|
|
49
|
+
' });',
|
|
50
|
+
'});',
|
|
51
|
+
'',
|
|
52
|
+
].join('\n');
|
|
53
|
+
}
|
|
54
|
+
async purgarEstado(directorioRaiz) {
|
|
55
|
+
await ejecutor_js_1.EjecutorComando.ejecutar('rm -f tsconfig.tsbuildinfo 2>/dev/null || true', directorioRaiz);
|
|
56
|
+
return {
|
|
57
|
+
exitoso: true,
|
|
58
|
+
mensaje: 'Caché de compilación TypeScript purgada.',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.AdaptadorTypeScript = AdaptadorTypeScript;
|
|
63
|
+
//# sourceMappingURL=typescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/adapters/typescript.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,mBAAoB,SAAQ,uBAAa;IACpC,UAAU,GAAuB,YAAY,CAAC;IAC9C,aAAa,GAAW,6BAA6B,CAAC;IAEnD,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,cAAc,CAAC;QAC7B,eAAe,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;QAC/E,SAAS,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAC;QAC5E,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAC7C,CAAC;IAEK,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,+DAA+D;QAC/D,MAAM,MAAM,GAAG,MAAM,6BAAe,CAAC,QAAQ,CAAC,gEAAgE,EAAE,cAAc,CAAC,CAAC;QAChI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,6DAA6D,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,CAAC;aACvH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2DAA2D;SACrE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,KAAK;YACL,uEAAuE;YACvE,gBAAgB,GAAG,WAAW;YAC9B,kBAAkB,GAAG,gBAAgB;YACrC,2BAA2B;YAC3B,KAAK;YACL,2CAA2C;YAC3C,0CAA0C;YAC1C,EAAE;YACF,8CAA8C;YAC9C,sDAAsD;YACtD,6BAA6B;YAC7B,6CAA6C;YAC7C,OAAO;YACP,KAAK;YACL,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,gDAAgD,EAAE,cAAc,CAAC,CAAC;QACjG,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,0CAA0C;SACpD,CAAC;IACJ,CAAC;CACF;AA3DD,kDA2DC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @description Punto de entrada CLI interactivo y concurrente para `puf` / `aumic-puf`.
|
|
5
|
+
* Soporta selector de compuerta única (-g / --gate), generación de reporte HTML forense
|
|
6
|
+
* e integración diagnóstica con aumic-sanitizer (G0).
|
|
7
|
+
* Estándar AUM-IC 7:2026.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* @file index.ts
|
|
5
|
+
* @description Punto de entrada CLI interactivo y concurrente para `puf` / `aumic-puf`.
|
|
6
|
+
* Soporta selector de compuerta única (-g / --gate), generación de reporte HTML forense
|
|
7
|
+
* e integración diagnóstica con aumic-sanitizer (G0).
|
|
8
|
+
* Estándar AUM-IC 7:2026.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const orquestador_js_1 = require("../core/orquestador.js");
|
|
46
|
+
const guardian_git_js_1 = require("../hooks/guardian-git.js");
|
|
47
|
+
const generador_reporte_html_js_1 = require("../core/generador-reporte-html.js");
|
|
48
|
+
const interfaz_js_1 = require("./interfaz.js");
|
|
49
|
+
const types_js_1 = require("../core/types.js");
|
|
50
|
+
async function main() {
|
|
51
|
+
const argumentos = process.argv.slice(2);
|
|
52
|
+
const comando = argumentos[0]?.toLowerCase();
|
|
53
|
+
const directorioActual = process.env['PUF_TARGET_DIR'] || process.cwd();
|
|
54
|
+
const orquestador = new orquestador_js_1.OrquestadorPUF15(directorioActual);
|
|
55
|
+
if (comando === '-v' || comando === '--version' || comando === 'version') {
|
|
56
|
+
console.log('v3.1.0');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
switch (comando) {
|
|
60
|
+
case 'iniciar':
|
|
61
|
+
case 'init': {
|
|
62
|
+
const idIncidente = argumentos[1];
|
|
63
|
+
const descripcion = argumentos[2] || 'Resolucion metodica de fallo bajo PUF-15';
|
|
64
|
+
const archivos = argumentos.slice(3).filter((a) => typeof a === 'string');
|
|
65
|
+
if (!idIncidente) {
|
|
66
|
+
console.error('Uso: puf iniciar <ID-INCIDENTE> [DESCRIPCION] [ARCHIVOS...]');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
70
|
+
console.log('[PUF-15]: Inicializando incidente ' + idIncidente + '...');
|
|
71
|
+
const res = await orquestador.inicializarIncidente({
|
|
72
|
+
idIncidente,
|
|
73
|
+
descripcionFallo: descripcion,
|
|
74
|
+
archivosAfectados: archivos,
|
|
75
|
+
});
|
|
76
|
+
console.log('✓ Andamio de test G2 generado: ' + res.rutaTest);
|
|
77
|
+
console.log('✓ Checkpoints inmutables G3 creados: ' + res.respaldosCreados.length);
|
|
78
|
+
res.respaldosCreados.forEach((r) => console.log(' - ' + r));
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case 'auditar':
|
|
82
|
+
case 'verificar':
|
|
83
|
+
case 'audit':
|
|
84
|
+
case 'verify': {
|
|
85
|
+
const failFast = argumentos.includes('--fast') || argumentos.includes('--fail-fast');
|
|
86
|
+
const sinReporte = argumentos.includes('--no-html');
|
|
87
|
+
// Extracción de compuertas específicas con -g o --gate
|
|
88
|
+
const compuertasAFiltrar = [];
|
|
89
|
+
// Extraccion de perfil con --profile=<mvp|dev|security|enterprise>
|
|
90
|
+
let perfilSeleccionado = 'enterprise';
|
|
91
|
+
for (let i = 0; i < argumentos.length; i++) {
|
|
92
|
+
const arg = argumentos[i];
|
|
93
|
+
if (!arg)
|
|
94
|
+
continue;
|
|
95
|
+
const siguiente = argumentos[i + 1];
|
|
96
|
+
if (arg === '--profile' && siguiente) {
|
|
97
|
+
const val = siguiente.toLowerCase();
|
|
98
|
+
if (types_js_1.COMPUERTAS_POR_PERFIL[val])
|
|
99
|
+
perfilSeleccionado = val;
|
|
100
|
+
}
|
|
101
|
+
else if (arg.startsWith('--profile=')) {
|
|
102
|
+
const partes = arg.split('=');
|
|
103
|
+
const val = (partes[1] || '').toLowerCase();
|
|
104
|
+
if (types_js_1.COMPUERTAS_POR_PERFIL[val])
|
|
105
|
+
perfilSeleccionado = val;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (perfilSeleccionado !== 'enterprise') {
|
|
109
|
+
compuertasAFiltrar.push(...types_js_1.COMPUERTAS_POR_PERFIL[perfilSeleccionado]);
|
|
110
|
+
}
|
|
111
|
+
const flagsCompuerta = ['-g', '--gate', '--compuerta'];
|
|
112
|
+
for (let i = 0; i < argumentos.length; i++) {
|
|
113
|
+
const arg = argumentos[i];
|
|
114
|
+
if (!arg)
|
|
115
|
+
continue;
|
|
116
|
+
const siguiente = argumentos[i + 1];
|
|
117
|
+
if (flagsCompuerta.includes(arg) && siguiente) {
|
|
118
|
+
siguiente.split(',').forEach((c) => {
|
|
119
|
+
const normalizada = c.trim().toUpperCase();
|
|
120
|
+
if (normalizada) {
|
|
121
|
+
compuertasAFiltrar.push(normalizada.startsWith('G') ? normalizada : `G${normalizada}`);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else if (arg.startsWith('--gate=') || arg.startsWith('-g=') || arg.startsWith('--compuerta=')) {
|
|
126
|
+
const partes = arg.split('=');
|
|
127
|
+
const valor = partes[1] || '';
|
|
128
|
+
valor.split(',').forEach((c) => {
|
|
129
|
+
const normalizada = c.trim().toUpperCase();
|
|
130
|
+
if (normalizada) {
|
|
131
|
+
compuertasAFiltrar.push(normalizada.startsWith('G') ? normalizada : `G${normalizada}`);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Parsea ruta de reporte HTML si se especifica con --html o --reporte
|
|
137
|
+
let rutaReportePersonalizada;
|
|
138
|
+
for (let i = 0; i < argumentos.length; i++) {
|
|
139
|
+
const arg = argumentos[i];
|
|
140
|
+
if (!arg)
|
|
141
|
+
continue;
|
|
142
|
+
const siguiente = argumentos[i + 1];
|
|
143
|
+
if ((arg === '--html' || arg === '--reporte') && siguiente) {
|
|
144
|
+
rutaReportePersonalizada = siguiente;
|
|
145
|
+
}
|
|
146
|
+
else if (arg.startsWith('--html=') || arg.startsWith('--reporte=')) {
|
|
147
|
+
rutaReportePersonalizada = arg.split('=')[1];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Filtra banderas para obtener idIncidente y archivos
|
|
151
|
+
const argumentosLimpios = argumentos.filter((a, idx) => {
|
|
152
|
+
if (!a)
|
|
153
|
+
return false;
|
|
154
|
+
const previo = idx > 0 ? argumentos[idx - 1] : undefined;
|
|
155
|
+
if (flagsCompuerta.includes(a))
|
|
156
|
+
return false;
|
|
157
|
+
if (previo && flagsCompuerta.includes(previo))
|
|
158
|
+
return false;
|
|
159
|
+
if (a.startsWith('--gate=') || a.startsWith('-g=') || a.startsWith('--compuerta='))
|
|
160
|
+
return false;
|
|
161
|
+
if (a === '--html' || a === '--reporte')
|
|
162
|
+
return false;
|
|
163
|
+
if (previo && (previo === '--html' || previo === '--reporte'))
|
|
164
|
+
return false;
|
|
165
|
+
if (a.startsWith('--html=') || a.startsWith('--reporte='))
|
|
166
|
+
return false;
|
|
167
|
+
if (a === '--fast' || a === '--fail-fast' || a === '--no-html')
|
|
168
|
+
return false;
|
|
169
|
+
return true;
|
|
170
|
+
});
|
|
171
|
+
const idIncidente = argumentosLimpios[1] || 'AUDITORIA_ACTIVA';
|
|
172
|
+
const archivos = argumentosLimpios.slice(2).filter((a) => typeof a === 'string');
|
|
173
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
174
|
+
interfaz_js_1.InterfazConsola.renderizarInicioAuditoria(idIncidente, failFast, compuertasAFiltrar.length > 0 ? compuertasAFiltrar.length : undefined);
|
|
175
|
+
if (compuertasAFiltrar.length > 0) {
|
|
176
|
+
console.log(`\x1b[36m⚡ Alcance Focalizado:\x1b[0m Evaluando únicamente ${compuertasAFiltrar.join(', ')}\n`);
|
|
177
|
+
}
|
|
178
|
+
const resultado = await orquestador.auditar(idIncidente, archivos, [], {
|
|
179
|
+
failFast,
|
|
180
|
+
compuertasAFiltrar: compuertasAFiltrar.length > 0 ? compuertasAFiltrar : undefined,
|
|
181
|
+
onProgreso: (compuerta) => {
|
|
182
|
+
interfaz_js_1.InterfazConsola.renderizarCompuerta(compuerta);
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
interfaz_js_1.InterfazConsola.renderizarResultado(resultado);
|
|
186
|
+
// Generación automática del reporte HTML forense salvo que se use --no-html
|
|
187
|
+
if (!sinReporte) {
|
|
188
|
+
try {
|
|
189
|
+
const rutaHtml = rutaReportePersonalizada || path.join(directorioActual, 'puf-report.html');
|
|
190
|
+
const rutaGenerada = await generador_reporte_html_js_1.GeneradorReporteHtml.generar(resultado, rutaHtml);
|
|
191
|
+
console.log(`\x1b[32m✔ [REPORTE FORENSE HTML GENERADO]:\x1b[0m ${rutaGenerada}\n`);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
console.warn(`\x1b[33m⚠ [AVISO REPORTE HTML]:\x1b[0m No se pudo escribir el reporte HTML: ${error.message}\n`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (!resultado.todasAprobadas) {
|
|
198
|
+
process.exit(1);
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
case 'revertir':
|
|
203
|
+
case 'rollback': {
|
|
204
|
+
const idIncidente = argumentos[1];
|
|
205
|
+
const nombreArchivo = argumentos[2];
|
|
206
|
+
if (!idIncidente || !nombreArchivo) {
|
|
207
|
+
console.error('Uso: puf revertir <ID-INCIDENTE> <NOMBRE-ARCHIVO>');
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
211
|
+
console.log('[PUF-15]: Solicitando reversion atomica G3...');
|
|
212
|
+
const resRollback = await orquestador.revertir(idIncidente, nombreArchivo);
|
|
213
|
+
if (!resRollback.exitoso) {
|
|
214
|
+
console.error('✗ ' + resRollback.mensaje);
|
|
215
|
+
process.exit(1);
|
|
216
|
+
}
|
|
217
|
+
console.log('✓ ' + resRollback.mensaje);
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
case 'hook':
|
|
221
|
+
case 'instalar-hook': {
|
|
222
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
223
|
+
console.log('[PUF-15]: Instalando interceptor forense Git...');
|
|
224
|
+
const resHook = await guardian_git_js_1.GuardianGitHook.instalar(directorioActual);
|
|
225
|
+
if (!resHook.exitoso) {
|
|
226
|
+
console.error('✗ ' + resHook.mensaje);
|
|
227
|
+
process.exit(1);
|
|
228
|
+
}
|
|
229
|
+
console.log('✓ ' + resHook.mensaje);
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
case 'guard': {
|
|
233
|
+
const resGuard = await guardian_git_js_1.GuardianGitHook.verificarStaged(directorioActual);
|
|
234
|
+
if (!resGuard.exitoso) {
|
|
235
|
+
console.error('✗ [INTERCEPTOR PUF-15 DENEGO EL COMMIT AGPL-3.0]:');
|
|
236
|
+
resGuard.errores.forEach((e) => console.error(e));
|
|
237
|
+
process.exit(1);
|
|
238
|
+
}
|
|
239
|
+
console.log('✓ Verificacion pre-commit superada exitosamente.');
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
default: {
|
|
243
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
244
|
+
console.log('Uso:\n' +
|
|
245
|
+
' puf iniciar <ID-INCIDENTE> [DESCRIPCION] [ARCHIVOS...] Genera andamio test (G2) y checkpoints (G3)\n' +
|
|
246
|
+
' puf auditar [ID-INCIDENTE] [ARCHIVOS...] [--profile=mvp] Evalua la suite (--profile=mvp|dev|security|enterprise)\n' +
|
|
247
|
+
' puf revertir <ID-INCIDENTE> <ARCHIVO> Restaura atomicamente el archivo previo al fallo\n' +
|
|
248
|
+
' puf instalar-hook Instala el guardian de Git en .git/hooks/pre-commit\n' +
|
|
249
|
+
' puf guard Valida que los cambios en staged no violen G4 o G7\n' +
|
|
250
|
+
' puf -v, --version Muestra la version actual instalada\n');
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
main().catch((error) => {
|
|
256
|
+
console.error('[PUF-15 ERROR FATAL]: ' + error.message);
|
|
257
|
+
process.exit(1);
|
|
258
|
+
});
|
|
259
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file interfaz.ts
|
|
3
|
+
* @description Interfaz interactiva de consola para PUF-15 con colores ANSI y telemetria visual.
|
|
4
|
+
* Estandar AUM-IC 7:2026.
|
|
5
|
+
*/
|
|
6
|
+
import type { RegistroCompuerta, ResultadoAuditoria } from '../core/types.js';
|
|
7
|
+
export declare class InterfazConsola {
|
|
8
|
+
private static readonly RESET;
|
|
9
|
+
private static readonly BOLD;
|
|
10
|
+
private static readonly VERDE;
|
|
11
|
+
private static readonly ROJO;
|
|
12
|
+
private static readonly AMARILLO;
|
|
13
|
+
private static readonly CIAN;
|
|
14
|
+
private static readonly GRIS;
|
|
15
|
+
private static readonly MAGENTA;
|
|
16
|
+
static mostrarBanner(): void;
|
|
17
|
+
static renderizarInicioAuditoria(idIncidente: string, failFast: boolean, totalAFiltrar?: number): void;
|
|
18
|
+
static renderizarCompuerta(compuerta: RegistroCompuerta): void;
|
|
19
|
+
static renderizarResultado(resultado: ResultadoAuditoria): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=interfaz.d.ts.map
|