@ingcrea/aumic-puf 0.0.0-stage → 3.0.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/PUF-15.md +118 -0
- package/PUF_G16_Lighthouse.md +70 -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 +236 -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 +75 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +35 -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 +50 -4
|
@@ -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,236 @@
|
|
|
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
|
+
async function main() {
|
|
50
|
+
const argumentos = process.argv.slice(2);
|
|
51
|
+
const comando = argumentos[0]?.toLowerCase();
|
|
52
|
+
const directorioActual = process.env['PUF_TARGET_DIR'] || process.cwd();
|
|
53
|
+
const orquestador = new orquestador_js_1.OrquestadorPUF15(directorioActual);
|
|
54
|
+
if (comando === '-v' || comando === '--version' || comando === 'version') {
|
|
55
|
+
console.log('v3.0.0');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
switch (comando) {
|
|
59
|
+
case 'iniciar':
|
|
60
|
+
case 'init': {
|
|
61
|
+
const idIncidente = argumentos[1];
|
|
62
|
+
const descripcion = argumentos[2] || 'Resolucion metodica de fallo bajo PUF-15';
|
|
63
|
+
const archivos = argumentos.slice(3).filter((a) => typeof a === 'string');
|
|
64
|
+
if (!idIncidente) {
|
|
65
|
+
console.error('Uso: puf iniciar <ID-INCIDENTE> [DESCRIPCION] [ARCHIVOS...]');
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
69
|
+
console.log('[PUF-15]: Inicializando incidente ' + idIncidente + '...');
|
|
70
|
+
const res = await orquestador.inicializarIncidente({
|
|
71
|
+
idIncidente,
|
|
72
|
+
descripcionFallo: descripcion,
|
|
73
|
+
archivosAfectados: archivos,
|
|
74
|
+
});
|
|
75
|
+
console.log('✓ Andamio de test G2 generado: ' + res.rutaTest);
|
|
76
|
+
console.log('✓ Checkpoints inmutables G3 creados: ' + res.respaldosCreados.length);
|
|
77
|
+
res.respaldosCreados.forEach((r) => console.log(' - ' + r));
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'auditar':
|
|
81
|
+
case 'verificar':
|
|
82
|
+
case 'audit':
|
|
83
|
+
case 'verify': {
|
|
84
|
+
const failFast = argumentos.includes('--fast') || argumentos.includes('--fail-fast');
|
|
85
|
+
const sinReporte = argumentos.includes('--no-html');
|
|
86
|
+
// Extracción de compuertas específicas con -g o --gate
|
|
87
|
+
const compuertasAFiltrar = [];
|
|
88
|
+
const flagsCompuerta = ['-g', '--gate', '--compuerta'];
|
|
89
|
+
for (let i = 0; i < argumentos.length; i++) {
|
|
90
|
+
const arg = argumentos[i];
|
|
91
|
+
if (!arg)
|
|
92
|
+
continue;
|
|
93
|
+
const siguiente = argumentos[i + 1];
|
|
94
|
+
if (flagsCompuerta.includes(arg) && siguiente) {
|
|
95
|
+
siguiente.split(',').forEach((c) => {
|
|
96
|
+
const normalizada = c.trim().toUpperCase();
|
|
97
|
+
if (normalizada) {
|
|
98
|
+
compuertasAFiltrar.push(normalizada.startsWith('G') ? normalizada : `G${normalizada}`);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else if (arg.startsWith('--gate=') || arg.startsWith('-g=') || arg.startsWith('--compuerta=')) {
|
|
103
|
+
const partes = arg.split('=');
|
|
104
|
+
const valor = partes[1] || '';
|
|
105
|
+
valor.split(',').forEach((c) => {
|
|
106
|
+
const normalizada = c.trim().toUpperCase();
|
|
107
|
+
if (normalizada) {
|
|
108
|
+
compuertasAFiltrar.push(normalizada.startsWith('G') ? normalizada : `G${normalizada}`);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Parsea ruta de reporte HTML si se especifica con --html o --reporte
|
|
114
|
+
let rutaReportePersonalizada;
|
|
115
|
+
for (let i = 0; i < argumentos.length; i++) {
|
|
116
|
+
const arg = argumentos[i];
|
|
117
|
+
if (!arg)
|
|
118
|
+
continue;
|
|
119
|
+
const siguiente = argumentos[i + 1];
|
|
120
|
+
if ((arg === '--html' || arg === '--reporte') && siguiente) {
|
|
121
|
+
rutaReportePersonalizada = siguiente;
|
|
122
|
+
}
|
|
123
|
+
else if (arg.startsWith('--html=') || arg.startsWith('--reporte=')) {
|
|
124
|
+
rutaReportePersonalizada = arg.split('=')[1];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Filtra banderas para obtener idIncidente y archivos
|
|
128
|
+
const argumentosLimpios = argumentos.filter((a, idx) => {
|
|
129
|
+
if (!a)
|
|
130
|
+
return false;
|
|
131
|
+
const previo = idx > 0 ? argumentos[idx - 1] : undefined;
|
|
132
|
+
if (flagsCompuerta.includes(a))
|
|
133
|
+
return false;
|
|
134
|
+
if (previo && flagsCompuerta.includes(previo))
|
|
135
|
+
return false;
|
|
136
|
+
if (a.startsWith('--gate=') || a.startsWith('-g=') || a.startsWith('--compuerta='))
|
|
137
|
+
return false;
|
|
138
|
+
if (a === '--html' || a === '--reporte')
|
|
139
|
+
return false;
|
|
140
|
+
if (previo && (previo === '--html' || previo === '--reporte'))
|
|
141
|
+
return false;
|
|
142
|
+
if (a.startsWith('--html=') || a.startsWith('--reporte='))
|
|
143
|
+
return false;
|
|
144
|
+
if (a === '--fast' || a === '--fail-fast' || a === '--no-html')
|
|
145
|
+
return false;
|
|
146
|
+
return true;
|
|
147
|
+
});
|
|
148
|
+
const idIncidente = argumentosLimpios[1] || 'AUDITORIA_ACTIVA';
|
|
149
|
+
const archivos = argumentosLimpios.slice(2).filter((a) => typeof a === 'string');
|
|
150
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
151
|
+
interfaz_js_1.InterfazConsola.renderizarInicioAuditoria(idIncidente, failFast, compuertasAFiltrar.length > 0 ? compuertasAFiltrar.length : undefined);
|
|
152
|
+
if (compuertasAFiltrar.length > 0) {
|
|
153
|
+
console.log(`\x1b[36m⚡ Alcance Focalizado:\x1b[0m Evaluando únicamente ${compuertasAFiltrar.join(', ')}\n`);
|
|
154
|
+
}
|
|
155
|
+
const resultado = await orquestador.auditar(idIncidente, archivos, [], {
|
|
156
|
+
failFast,
|
|
157
|
+
compuertasAFiltrar: compuertasAFiltrar.length > 0 ? compuertasAFiltrar : undefined,
|
|
158
|
+
onProgreso: (compuerta) => {
|
|
159
|
+
interfaz_js_1.InterfazConsola.renderizarCompuerta(compuerta);
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
interfaz_js_1.InterfazConsola.renderizarResultado(resultado);
|
|
163
|
+
// Generación automática del reporte HTML forense salvo que se use --no-html
|
|
164
|
+
if (!sinReporte) {
|
|
165
|
+
try {
|
|
166
|
+
const rutaHtml = rutaReportePersonalizada || path.join(directorioActual, 'puf-report.html');
|
|
167
|
+
const rutaGenerada = await generador_reporte_html_js_1.GeneradorReporteHtml.generar(resultado, rutaHtml);
|
|
168
|
+
console.log(`\x1b[32m✔ [REPORTE FORENSE HTML GENERADO]:\x1b[0m ${rutaGenerada}\n`);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.warn(`\x1b[33m⚠ [AVISO REPORTE HTML]:\x1b[0m No se pudo escribir el reporte HTML: ${error.message}\n`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (!resultado.todasAprobadas) {
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case 'revertir':
|
|
180
|
+
case 'rollback': {
|
|
181
|
+
const idIncidente = argumentos[1];
|
|
182
|
+
const nombreArchivo = argumentos[2];
|
|
183
|
+
if (!idIncidente || !nombreArchivo) {
|
|
184
|
+
console.error('Uso: puf revertir <ID-INCIDENTE> <NOMBRE-ARCHIVO>');
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
188
|
+
console.log('[PUF-15]: Solicitando reversion atomica G3...');
|
|
189
|
+
const resRollback = await orquestador.revertir(idIncidente, nombreArchivo);
|
|
190
|
+
if (!resRollback.exitoso) {
|
|
191
|
+
console.error('✗ ' + resRollback.mensaje);
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
console.log('✓ ' + resRollback.mensaje);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
case 'hook':
|
|
198
|
+
case 'instalar-hook': {
|
|
199
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
200
|
+
console.log('[PUF-15]: Instalando interceptor forense Git...');
|
|
201
|
+
const resHook = await guardian_git_js_1.GuardianGitHook.instalar(directorioActual);
|
|
202
|
+
if (!resHook.exitoso) {
|
|
203
|
+
console.error('✗ ' + resHook.mensaje);
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
console.log('✓ ' + resHook.mensaje);
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
case 'guard': {
|
|
210
|
+
const resGuard = await guardian_git_js_1.GuardianGitHook.verificarStaged(directorioActual);
|
|
211
|
+
if (!resGuard.exitoso) {
|
|
212
|
+
console.error('✗ [INTERCEPTOR PUF-15 DENEGO EL COMMIT AGPL-3.0]:');
|
|
213
|
+
resGuard.errores.forEach((e) => console.error(e));
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
console.log('✓ Verificacion pre-commit superada exitosamente.');
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
default: {
|
|
220
|
+
interfaz_js_1.InterfazConsola.mostrarBanner();
|
|
221
|
+
console.log('Uso:\n' +
|
|
222
|
+
' puf iniciar <ID-INCIDENTE> [DESCRIPCION] [ARCHIVOS...] Genera andamio test (G2) y checkpoints (G3)\n' +
|
|
223
|
+
' puf auditar [ID-INCIDENTE] [ARCHIVOS...] [-g G0] [--fast] Evalua la matriz completa o compuerta especifica y genera reporte HTML\n' +
|
|
224
|
+
' puf revertir <ID-INCIDENTE> <ARCHIVO> Restaura atomicamente el archivo previo al fallo\n' +
|
|
225
|
+
' puf instalar-hook Instala el guardian de Git en .git/hooks/pre-commit\n' +
|
|
226
|
+
' puf guard Valida que los cambios en staged no violen G4 o G7\n' +
|
|
227
|
+
' puf -v, --version Muestra la version actual instalada\n');
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
main().catch((error) => {
|
|
233
|
+
console.error('[PUF-15 ERROR FATAL]: ' + error.message);
|
|
234
|
+
process.exit(1);
|
|
235
|
+
});
|
|
236
|
+
//# 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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaz.d.ts","sourceRoot":"","sources":["../../src/cli/interfaz.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAc;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAe;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAe;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAc;WAE/B,aAAa,IAAI,IAAI;WAWrB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;WAW/F,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;WAsBvD,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;CAgBvE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file interfaz.ts
|
|
4
|
+
* @description Interfaz interactiva de consola para PUF-15 con colores ANSI y telemetria visual.
|
|
5
|
+
* Estandar AUM-IC 7:2026.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.InterfazConsola = void 0;
|
|
9
|
+
const types_js_1 = require("../core/types.js");
|
|
10
|
+
class InterfazConsola {
|
|
11
|
+
static RESET = '\x1b[0m';
|
|
12
|
+
static BOLD = '\x1b[1m';
|
|
13
|
+
static VERDE = '\x1b[32m';
|
|
14
|
+
static ROJO = '\x1b[31m';
|
|
15
|
+
static AMARILLO = '\x1b[33m';
|
|
16
|
+
static CIAN = '\x1b[36m';
|
|
17
|
+
static GRIS = '\x1b[90m';
|
|
18
|
+
static MAGENTA = '\x1b[35m';
|
|
19
|
+
static mostrarBanner() {
|
|
20
|
+
const total = types_js_1.TOTAL_COMPUERTAS_PUF;
|
|
21
|
+
console.log('\n' +
|
|
22
|
+
this.CIAN + this.BOLD + '========================================================================\n' +
|
|
23
|
+
` PROTOCOLO UNIVERSAL CONTRA FALLOS (PUF-${total}) — AUM-IC 7:2026\n` +
|
|
24
|
+
` Matriz Multi-Lenguaje Universal | ${total} Compuertas de Calidad\n` +
|
|
25
|
+
'========================================================================' + this.RESET + '\n');
|
|
26
|
+
}
|
|
27
|
+
static renderizarInicioAuditoria(idIncidente, failFast, totalAFiltrar) {
|
|
28
|
+
const total = totalAFiltrar ?? types_js_1.TOTAL_COMPUERTAS_PUF;
|
|
29
|
+
console.log(this.CIAN + `⚡ Evaluando Matriz Concurrente PUF-${types_js_1.TOTAL_COMPUERTAS_PUF} (G0 a G${types_js_1.TOTAL_COMPUERTAS_PUF - 1})` + this.RESET);
|
|
30
|
+
console.log(this.GRIS + ' Incidente:' + this.RESET + ' ' + this.BOLD + idIncidente + this.RESET);
|
|
31
|
+
const modoTexto = failFast
|
|
32
|
+
? this.AMARILLO + 'Fail-Fast (Aborta al primer fallo)' + this.RESET
|
|
33
|
+
: this.VERDE + `Auditoria Exhaustiva Concurrente (${total} Gates)` + this.RESET;
|
|
34
|
+
console.log(this.GRIS + ' Modo:' + this.RESET + ' ' + modoTexto);
|
|
35
|
+
console.log(this.GRIS + '------------------------------------------------------------------------' + this.RESET);
|
|
36
|
+
}
|
|
37
|
+
static renderizarCompuerta(compuerta) {
|
|
38
|
+
const esAprobada = compuerta.estado === 'aprobada';
|
|
39
|
+
const esOmitida = compuerta.estado === 'omitida';
|
|
40
|
+
const icono = esAprobada
|
|
41
|
+
? this.VERDE + '✔ [APROBADA]' + this.RESET
|
|
42
|
+
: esOmitida
|
|
43
|
+
? this.MAGENTA + '~ [OMITIDA] ' + this.RESET
|
|
44
|
+
: this.ROJO + '✖ [RECHAZADA]' + this.RESET;
|
|
45
|
+
const id = this.BOLD + compuerta.id.padEnd(4) + this.RESET;
|
|
46
|
+
const tiempo = this.GRIS + '(' + compuerta.tiempoEjecucionMs + 'ms)' + this.RESET;
|
|
47
|
+
console.log(' ' + icono + ' ' + id + ' ' + compuerta.nombre + ' ' + tiempo);
|
|
48
|
+
if (!esAprobada && !esOmitida) {
|
|
49
|
+
console.log(' ' + this.ROJO + '↳ Detalle: ' + compuerta.detalle + this.RESET);
|
|
50
|
+
console.log(' ' + this.ROJO + '↳ Evidencia: ' + compuerta.evidencia + this.RESET);
|
|
51
|
+
}
|
|
52
|
+
if (esOmitida) {
|
|
53
|
+
console.log(' ' + this.MAGENTA + '↳ ' + compuerta.detalle + this.RESET);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
static renderizarResultado(resultado) {
|
|
57
|
+
console.log(this.GRIS + '------------------------------------------------------------------------' + this.RESET);
|
|
58
|
+
const total = types_js_1.TOTAL_COMPUERTAS_PUF;
|
|
59
|
+
if (resultado.todasAprobadas) {
|
|
60
|
+
console.log('\n' + this.VERDE + this.BOLD + `✔ CERTIFICACION PUF-${total} APROBADA (100% CUMPLIMIENTO)` + this.RESET + '\n' +
|
|
61
|
+
this.VERDE + ' Ecosistema: ' + resultado.lenguajeDetectado.toUpperCase() + ' | Codigo blindado y apto para produccion.' + this.RESET + '\n');
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log('\n' + this.ROJO + this.BOLD + '✖ AUDITORIA DENEGADA (COMPUERTAS FALLIDAS)' + this.RESET + '\n' +
|
|
65
|
+
this.ROJO + ' Se requiere subsanar las desviaciones detectadas antes de proceder.' + this.RESET + '\n');
|
|
66
|
+
}
|
|
67
|
+
console.log(resultado.reporteMarkdown);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.InterfazConsola = InterfazConsola;
|
|
71
|
+
//# sourceMappingURL=interfaz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaz.js","sourceRoot":"","sources":["../../src/cli/interfaz.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface EntradaArchivo {
|
|
2
|
+
readonly rutaRelativa: string;
|
|
3
|
+
readonly rutaAbsoluta: string;
|
|
4
|
+
readonly extension: string;
|
|
5
|
+
readonly tamanoBytes: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* LectorArbolProyecto (VFS Snapshot en memoria)
|
|
9
|
+
* Escanea el árbol de directorios una sola vez y expone el listado indexado
|
|
10
|
+
* para evitar lecturas de disco redundantes en las compuertas G4, G18, G19, G20.
|
|
11
|
+
*/
|
|
12
|
+
export declare class LectorArbolProyecto {
|
|
13
|
+
private static instanciaCache;
|
|
14
|
+
private static readonly TTL_MS;
|
|
15
|
+
static obtenerSnapshot(directorioRaiz: string): Promise<readonly EntradaArchivo[]>;
|
|
16
|
+
static filtrarPorExtension(directorioRaiz: string, extensiones: readonly string[]): Promise<readonly EntradaArchivo[]>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=arbol-proyecto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbol-proyecto.d.ts","sourceRoot":"","sources":["../../src/core/arbol-proyecto.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAsF;IACnH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAS;WAEnB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;WAsE3E,mBAAmB,CACrC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;CAKtC"}
|