feat(cybersecurity): auto-commit con 48 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: strip_ansi
|
||||
kind: function
|
||||
lang: go
|
||||
domain: core
|
||||
version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "func StripANSI(s string) string"
|
||||
description: "Elimina secuencias de escape ANSI/VT100 de un string y filtra caracteres de control no imprimibles, preservando \\n, \\t y \\r."
|
||||
tags: ["terminal", "ansi", "string", "sanitize", "terminal-capture"]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: ""
|
||||
imports: ["regexp", "strings"]
|
||||
params:
|
||||
- name: s
|
||||
desc: "String que puede contener secuencias de escape de terminal (CSI, OSC, escapes simples) y/o caracteres de control."
|
||||
output: "String limpio: sin secuencias ANSI ni caracteres de control, preservando saltos de línea (\\n), tabulaciones (\\t) y retornos de carro (\\r)."
|
||||
tested: true
|
||||
tests:
|
||||
- "golden: color SGR codes"
|
||||
- "edge OSC titulo de ventana"
|
||||
- "edge movimientos de cursor"
|
||||
- "edge string sin escapes preserva saltos de linea"
|
||||
- "edge string vacio"
|
||||
- "edge preserva tabs"
|
||||
test_file_path: "functions/core/strip_ansi_test.go"
|
||||
file_path: "functions/core/strip_ansi.go"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```go
|
||||
// Limpiar output de terminal con color rojo
|
||||
raw := "\x1b[31mError:\x1b[0m archivo no encontrado"
|
||||
clean := core.StripANSI(raw)
|
||||
// clean == "Error: archivo no encontrado"
|
||||
|
||||
// Limpiar título de ventana OSC
|
||||
raw2 := "\x1b]0;mi titulo\x07contenido real"
|
||||
clean2 := core.StripANSI(raw2)
|
||||
// clean2 == "contenido real"
|
||||
```
|
||||
|
||||
## Cuando usarla
|
||||
|
||||
Cuando captures output de un PTY/TUI/subprocess y necesites texto plano: antes de indexar logs con ANSI en un buscador, antes de difar output de terminal, o cuando muestres salida de comando en un contexto sin soporte de escape (UI web, archivo, base de datos).
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Preserva `\n`, `\t` y `\r` a propósito: el output de terminales suele tener CRLF y tabulaciones con semántica propia.
|
||||
- Cubre CSI, OSC y escapes simples de dos caracteres. Secuencias DCS o PM (rarísimas) no se eliminan; si las necesitas, añade una regex adicional antes de llamar a esta función.
|
||||
- Las regexes están precompiladas a nivel de paquete: no hay coste de compilación por llamada.
|
||||
Reference in New Issue
Block a user