@ingcrea/aumic-tailwind-killer 4.1.5 → 4.1.6
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/README.es.md +175 -173
- package/README.md +130 -126
- package/package.json +5 -5
package/README.es.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# ⚔️ AUM-IC Tailwind Killer
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 🌐 **Navegación:** 🇺🇸 [Read in English](./README.md) | 📜 [Manifiesto (ES)](./MANIFEST.es.md) | 📜 [Manifesto (EN)](./MANIFEST.md)
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@ingcrea/aumic-tailwind-killer)
|
|
6
6
|
[](https://github.com/ingcrea/aumic-tailwind-killer/stargazers)
|
|
@@ -10,151 +10,151 @@
|
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
12
12
|
|
|
13
|
-
**AUM-IC Tailwind Killer** no es solo un orquestador CLI; es la
|
|
13
|
+
**AUM-IC Tailwind Killer** no es solo un orquestador CLI; es la manifestación técnica de una estándar de diseño. Se llama así porque está fundamentado estrictamente en el estándar **Arquitectura de Universos Multidimensionales de Ingeniería Creativa (AUM-IC)**: una filosofía nacida para devolverle la cordura, el control absoluto y la escalabilidad infinita a los ingenieros de software.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Diseñado bajo el rigor arquitectónico de **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S. (IngCrea)**, este "Tailwind Killer" de alto rendimiento audita, extrae, compila (vía JIT) y purga tu código fuente en segundos — transmutando el caos de las clases utilitarias en un ecosistema ofuscado, estandarizado y libre de dependencias (Zero-Bloat) impulsado por una arquitectura implacable de *Multi-Level JIT Cache (DuckDB + Node.js)* e interceptores AST universales.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## ⚡ Quick Start (60 segundos)
|
|
20
20
|
|
|
21
|
-
> **Prerequisitos:** Node.js >= 18.0
|
|
21
|
+
> **Prerequisitos:** Node.js >= 18.0 · No se requieren instalaciones extra del sistema. DuckDB viene incluido.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
# 1. Audita tu proyecto sin tocar
|
|
24
|
+
# 1. Audita tu proyecto sin tocar ningún archivo (primer paso recomendado)
|
|
25
25
|
npx @ingcrea/aumic-tailwind-killer -m simulate -t ./mi-proyecto
|
|
26
26
|
|
|
27
|
-
# 2. Cuando
|
|
27
|
+
# 2. Cuando estés listo: transmutación completa a CSS Zero-Bloat
|
|
28
28
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./mi-proyecto
|
|
29
29
|
|
|
30
|
-
# 3.
|
|
30
|
+
# 3. ¿Algo salió mal? Rollback completo en un solo comando
|
|
31
31
|
npx @ingcrea/aumic-tailwind-killer -m restore -t ./mi-proyecto
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
> **Antes de ejecutar `-m local`:**
|
|
34
|
+
> **Antes de ejecutar `-m local`:** Asegúrate de que tu rama de Git esté limpia (`git status`). AUM-IC lo valida automáticamente y aborta si detecta cambios sin commitear.
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## ⚡ ¿Por qué AUM-IC Tailwind Killer? (La Cura al Dolor)
|
|
39
39
|
|
|
40
40
|
Los debates globales de arquitectura de software exponen quejas universales sobre Tailwind CSS a gran escala. AUM-IC Tailwind Killer fue forjado para aniquilar exactamente esos dolores:
|
|
41
41
|
|
|
42
42
|
1. **La Cura para la "Sopa de HTML" (Write Once, Read Never):**
|
|
43
|
-
El dolor
|
|
43
|
+
El dolor número uno de los desarrolladores. Componentes inundados con cadenas kilométricas (`class="flex items-center justify-between p-4 bg-white shadow-md..."`) que destruyen la legibilidad. AUM-IC transmuta esa cadena tóxica en un hash elegante, limpio y ofuscado (`class="aumic-rs-1b3a"`). Le devolvemos la pureza visual a tu DOM.
|
|
44
44
|
|
|
45
|
-
2. **
|
|
46
|
-
El terror de los CTOs es atar un proyecto gigante a la sintaxis de un framework de terceros que
|
|
45
|
+
2. **Liberación del Vendor Lock-In (El Escape Hatch):**
|
|
46
|
+
El terror de los CTOs es atar un proyecto gigante a la sintaxis de un framework de terceros que podría cambiar o volverse obsoleto. Con AUM-IC Tailwind Killer, **no eres esclavo de Tailwind**. Construye rápido usando utilidades — cuando pases a producción, nuestro motor lo purga físicamente de tu `package.json` extrayendo un archivo `.css` estándar y agnóstico. Recuperas la soberanía de tu código.
|
|
47
47
|
|
|
48
|
-
3. **
|
|
49
|
-
Los puristas odian mezclar estructura y
|
|
48
|
+
3. **Restauración Arquitectónica (Separation of Concerns):**
|
|
49
|
+
Los puristas odian mezclar estructura y diseño en la misma línea. AUM-IC te permite disfrutar la velocidad de Tailwind en desarrollo, pero en producción nuestro orquestador extrae el diseño a un ecosistema CSS determinista, restaurando la frontera sagrada entre tu lógica y tus estilos.
|
|
50
50
|
|
|
51
|
-
4. **
|
|
52
|
-
No ofuscamos solo por seguridad anti-scraping. Al generar hashes
|
|
51
|
+
4. **Ofuscación, Prevención de Colisiones y Nombrado Semántico por IA:**
|
|
52
|
+
No ofuscamos solo por seguridad anti-scraping. Al generar hashes matemáticos (`aumic-rs-[hash]`), unificamos etiquetas y **garantizamos cero colisiones de estilos** al terminar la migración masiva. Además, la integración opcional de **IA para Nombrado Semántico** (*Ollama, Claude, Gemini, DeepSeek, Codex*) solo procesa **combinaciones ÚNICAS** — jamás tu código fuente completo. Ahorra millones de tokens y blinda tu privacidad.
|
|
53
53
|
|
|
54
54
|
5. **Rendimiento Extremo (Zero-Bloat Build Time):**
|
|
55
|
-
Al erradicar el motor de Tailwind de tus procesos de CI/CD, los tiempos de
|
|
55
|
+
Al erradicar el motor de Tailwind de tus procesos de CI/CD, los tiempos de compilación de Next.js, Astro y Vite se aceleran drásticamente, ahorrando recursos reales de servidor.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
59
|
-
##
|
|
59
|
+
## 🆚 ¿Cómo se Compara con las Alternativas?
|
|
60
60
|
|
|
61
|
-
|
|
|
61
|
+
| Característica | AUM-IC Tailwind Killer | PurgeCSS | UnoCSS | vanilla-extract | Migración Manual |
|
|
62
62
|
| :--- | :---: | :---: | :---: | :---: | :---: |
|
|
63
|
-
| **Elimina CSS sin uso** |
|
|
64
|
-
| **Ofusca los nombres de clases** |
|
|
65
|
-
| **Zero-Bloat (elimina dependencia Tailwind)** |
|
|
66
|
-
| **
|
|
67
|
-
| **Rollback / Deshacer** |
|
|
68
|
-
| **AST (sin hacks de regex)** |
|
|
69
|
-
| **Soporta v1 / v2 / v3 / v4 Oxide** |
|
|
70
|
-
| **Nombrado
|
|
71
|
-
| **Offline / Air-Gapped** |
|
|
72
|
-
| **Previene colisiones CSS post-
|
|
73
|
-
|
|
74
|
-
> **Resumen:** PurgeCSS solo elimina
|
|
63
|
+
| **Elimina CSS sin uso** | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
64
|
+
| **Ofusca los nombres de clases** | ✅ | ❌ | ❌ | Parcial | ❌ |
|
|
65
|
+
| **Zero-Bloat (elimina dependencia Tailwind)** | ✅ | ❌ | ❌ | ✅ | ✅ |
|
|
66
|
+
| **Migración 100% automatizada** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
67
|
+
| **Rollback / Deshacer** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
68
|
+
| **AST (sin hacks de regex)** | ✅ | ❌ | N/A | N/A | N/A |
|
|
69
|
+
| **Soporta v1 / v2 / v3 / v4 Oxide** | ✅ | Parcial | ✅ | N/A | Manual |
|
|
70
|
+
| **Nombrado semántico por IA** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
71
|
+
| **Offline / Air-Gapped** | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
72
|
+
| **Previene colisiones CSS post-migración** | ✅ | ❌ | ❌ | ✅ | Manual |
|
|
73
|
+
|
|
74
|
+
> **Resumen:** PurgeCSS solo elimina código muerto. UnoCSS es un framework, no un migrador. vanilla-extract requiere reescribir estilos manualmente. AUM-IC Tailwind Killer es la única herramienta que **automatiza el escape completo** de Tailwind con seguridad, reversibilidad y cero dependencias externas.
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
-
##
|
|
78
|
+
## 🦖 Arquitectura v4.1.3: Multi-Level JIT Cache
|
|
79
79
|
|
|
80
|
-
1. **L1 Cache (DuckDB - El
|
|
81
|
-
Mediante
|
|
80
|
+
1. **L1 Cache (DuckDB - El Oráculo Estático):**
|
|
81
|
+
Mediante ingeniería inversa, pre-compilamos y extrajimos las equivalencias exactas en CSS puro de más de 26,000 clases nativas. Toda esta data reside en una base de datos binaria súper comprimida (`aumic-lexicon.duckdb`) que inyecta valores CSS instantáneamente en tiempo O(1), completamente offline y sin invocar compiladores (Zero-Execution). **Soporte total para las 4 generaciones: Tailwind v1, v2, v3 y v4 Oxide.**
|
|
82
82
|
2. **L2 Cache (Dynamic JIT - El Secuestrador):**
|
|
83
|
-
Para clases
|
|
83
|
+
Para clases dinámicas complejas no presentes en L1, el motor secuestra dinámicamente el compilador `tailwindcss` instalado en los `node_modules` de tu proyecto. Esto garantiza que la compilación respete tu versión exacta (v2, v3 o v4 Oxide).
|
|
84
84
|
3. **Preflight Theme Extractor:**
|
|
85
|
-
Absorbe
|
|
85
|
+
Absorbe dinámicamente tu `tailwind.config.*`, preservando tipografías nativas (ej. `Inter`) y variables de color personalizadas con fidelidad visual del 100%.
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
89
|
-
##
|
|
89
|
+
## 🧠 Pipeline de 5 Fases (El Motor de Transmutación)
|
|
90
90
|
|
|
91
91
|
```
|
|
92
|
-
Tu Proyecto (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
92
|
+
Tu Proyecto (código fuente)
|
|
93
|
+
│
|
|
94
|
+
▼
|
|
95
|
+
┌───────────────────────────────────────────────────────────┐
|
|
96
|
+
│ FASE 1 ─ Reconocimiento & Pre-Flight │
|
|
97
|
+
│ Valida Git, permisos y excluye node_modules/.git/dist │
|
|
98
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
99
|
+
│
|
|
100
|
+
▼
|
|
101
|
+
┌───────────────────────────────────────────────────────────┐
|
|
102
|
+
│ FASE 2 ─ Extracción Paralela (AST + Piscina Threads) │
|
|
103
|
+
│ Babel/Cheerio parsean JSX/Astro/Vue/HTML quirúrgicamente │
|
|
104
|
+
│ Extrae clases → Deduplica → Combinaciones únicas │
|
|
105
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
106
|
+
│
|
|
107
|
+
▼
|
|
108
|
+
┌───────────────────────────────────────────────────────────┐
|
|
109
|
+
│ FASE 3 ─ Criptografía de Nomenclatura │
|
|
110
|
+
│ Hashes deterministas aumic-rs-[hash] por combinación │
|
|
111
|
+
│ 5,000 repeticiones de una clase = 1 solo hash en RAM │
|
|
112
|
+
└──────────┬────────────────────────────┬───────────────────┘
|
|
113
|
+
│ │
|
|
114
|
+
▼ ▼
|
|
115
|
+
┌──────────────────────┐ ┌────────────────────────────────┐
|
|
116
|
+
│ L1 Cache (DuckDB) │ │ L2 Cache (Dynamic JIT) │
|
|
117
|
+
│ 26,000+ clases │ │ Compilador tailwindcss local │
|
|
118
|
+
│ O(1) · Offline │ │ Para clases dinámicas w-[Xpx] │
|
|
119
|
+
│ Hit Rate: 99.2% │ │ Respeta tu versión instalada │
|
|
120
|
+
└──────────┬───────────┘ └────────────────┬───────────────┘
|
|
121
|
+
└────────────────────────────────┘
|
|
122
|
+
│
|
|
123
|
+
▼
|
|
124
|
+
┌───────────────────────────────────────────────────────────┐
|
|
125
|
+
│ FASE 4 ─ Síntesis y Output │
|
|
126
|
+
│ CSS puro unificado · aumic-lock.json (mapa de rollback) │
|
|
127
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
128
|
+
│
|
|
129
|
+
▼
|
|
130
|
+
┌───────────────────────────────────────────────────────────┐
|
|
131
|
+
│ FASE 5 ─ Erradicación Total │
|
|
132
|
+
│ Purga Tailwind de package.json · Reescribe componentes │
|
|
133
|
+
│ Tu código queda libre, limpio y soberano. │
|
|
134
|
+
└───────────────────────────────────────────────────────────┘
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
139
|
-
##
|
|
139
|
+
## 🔄 Antes y Después: Así Queda Tu Código
|
|
140
140
|
|
|
141
|
-
### HTML / JSX
|
|
141
|
+
### HTML / JSX — Antes
|
|
142
142
|
```html
|
|
143
143
|
<div class="flex items-center justify-between p-4 bg-white shadow-md rounded-xl border border-gray-200">
|
|
144
144
|
<span class="text-sm font-semibold text-gray-800">Dashboard</span>
|
|
145
145
|
</div>
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
-
### HTML / JSX
|
|
148
|
+
### HTML / JSX — Después
|
|
149
149
|
```html
|
|
150
150
|
<div class="aumic-rs-1b3a">
|
|
151
151
|
<span class="aumic-rs-2c4f">Dashboard</span>
|
|
152
152
|
</div>
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
### CSS Generado
|
|
155
|
+
### CSS Generado — Después
|
|
156
156
|
```css
|
|
157
|
-
/* aumic-output.css
|
|
157
|
+
/* aumic-output.css — CSS puro. Sin framework. Sin runtime. Sin dependencias. */
|
|
158
158
|
.aumic-rs-1b3a {
|
|
159
159
|
display: flex;
|
|
160
160
|
align-items: center;
|
|
@@ -172,13 +172,13 @@ Los debates globales de arquitectura de software exponen quejas universales sobr
|
|
|
172
172
|
}
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
**Resultado:** Tu HTML es limpio. Tu CSS es
|
|
175
|
+
**Resultado:** Tu HTML es limpio. Tu CSS es estándar puro. Tailwind desapareció. Cero runtime. Cero build step. Para siempre.
|
|
176
176
|
|
|
177
177
|
---
|
|
178
178
|
|
|
179
|
-
##
|
|
179
|
+
## 🔒 El Mapa `aumic-lock.json` (Rollback y Schema de IA)
|
|
180
180
|
|
|
181
|
-
Cada
|
|
181
|
+
Cada transmutación genera un `aumic-lock.json` en la raíz de tu proyecto. Este archivo es tu **red de seguridad y el puente para el nombrado semántico por IA**. Su estructura:
|
|
182
182
|
|
|
183
183
|
```json
|
|
184
184
|
{
|
|
@@ -208,48 +208,48 @@ Cada transmutación genera un `aumic-lock.json` en la raÃz de tu proyecto.
|
|
|
208
208
|
}
|
|
209
209
|
```
|
|
210
210
|
|
|
211
|
-
Este mapa es lo que impulsa el rollback con `-m restore`
|
|
211
|
+
Este mapa es lo que impulsa el rollback con `-m restore` — y lo que lee el motor de IA para producir nombres legibles **sin ver jamás tu código fuente**.
|
|
212
212
|
|
|
213
213
|
---
|
|
214
214
|
|
|
215
|
-
##
|
|
215
|
+
## 🚀 Instalación
|
|
216
216
|
|
|
217
|
-
> **No se requieren dependencias adicionales del sistema.** DuckDB viene empaquetado dentro del
|
|
217
|
+
> **No se requieren dependencias adicionales del sistema.** DuckDB viene empaquetado dentro del módulo npm. Funciona en macOS, Linux y Windows (Node.js >= 18.0).
|
|
218
218
|
|
|
219
219
|
```bash
|
|
220
220
|
# Uso al vuelo mediante NPX (recomendado)
|
|
221
221
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./mi-proyecto
|
|
222
222
|
|
|
223
|
-
#
|
|
223
|
+
# Instalación global
|
|
224
224
|
npm install -g @ingcrea/aumic-tailwind-killer
|
|
225
225
|
aumic-tailwind-killer -m local -t ./mi-proyecto
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
---
|
|
229
229
|
|
|
230
|
-
##
|
|
230
|
+
## 🛠 Modos de Uso
|
|
231
231
|
|
|
232
|
-
### 1. Modo
|
|
232
|
+
### 1. Modo Simulación (Dry-Run)
|
|
233
233
|
```bash
|
|
234
234
|
npx @ingcrea/aumic-tailwind-killer -m simulate -t ./
|
|
235
235
|
```
|
|
236
236
|
|
|
237
|
-
### 2. Modo Local (
|
|
237
|
+
### 2. Modo Local (Transmutación Destructiva)
|
|
238
238
|
```bash
|
|
239
239
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
-
### 3. Modo
|
|
242
|
+
### 3. Modo Quirúrgico (Scope)
|
|
243
243
|
```bash
|
|
244
244
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./ -s "src/frontend/**/*.{tsx,astro}"
|
|
245
245
|
```
|
|
246
246
|
|
|
247
|
-
### 4. Modo
|
|
247
|
+
### 4. Modo Restauración (Rollback)
|
|
248
248
|
```bash
|
|
249
249
|
npx @ingcrea/aumic-tailwind-killer -m restore -t ./
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
-
### 5. Nombrado
|
|
252
|
+
### 5. Nombrado Semántico por IA (Opcional)
|
|
253
253
|
```bash
|
|
254
254
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./ --ai ollama --ai-model llama3
|
|
255
255
|
npx @ingcrea/aumic-tailwind-killer -m local -t ./ --ai claude --ai-key sk-ant-...
|
|
@@ -258,135 +258,137 @@ npx @ingcrea/aumic-tailwind-killer -m local -t ./ --ai gemini --ai-key AIza...
|
|
|
258
258
|
|
|
259
259
|
---
|
|
260
260
|
|
|
261
|
-
##
|
|
261
|
+
## ⚙️ Opciones CLI
|
|
262
262
|
|
|
263
|
-
| Corta | Larga |
|
|
263
|
+
| Corta | Larga | Descripción | Obligatorio |
|
|
264
264
|
| :--- | :--- | :--- | :--- |
|
|
265
|
-
| `-m` | `--mode` | Modo: `simulate`, `local`, `restore`. | **S
|
|
266
|
-
| `-t` | `--target` | Ruta al directorio del proyecto. | **S
|
|
267
|
-
| `-s` | `--scope` |
|
|
268
|
-
|
|
|
269
|
-
|
|
|
270
|
-
|
|
|
271
|
-
|
|
|
265
|
+
| `-m` | `--mode` | Modo: `simulate`, `local`, `restore`. | **Sí** |
|
|
266
|
+
| `-t` | `--target` | Ruta al directorio del proyecto. | **Sí** |
|
|
267
|
+
| `-s` | `--scope` | Patrón Glob para restringir la mutación. | No |
|
|
268
|
+
| — | `--ai` | Proveedor IA: `ollama`, `claude`, `gemini`, `deepseek`, `codex`. | No |
|
|
269
|
+
| — | `--ai-model` | Modelo específico (ej. `llama3`, `claude-3-5-sonnet`). | No |
|
|
270
|
+
| — | `--ai-key` | API Key del proveedor remoto. | No |
|
|
271
|
+
| — | `--ai-base-url` | URL base de Ollama (default: `http://localhost:11434`). | No |
|
|
272
272
|
|
|
273
273
|
---
|
|
274
274
|
|
|
275
|
-
##
|
|
275
|
+
## 📊 Benchmarks
|
|
276
276
|
|
|
277
|
-
|
|
|
277
|
+
| Métrica | Tailwind Nativo | AUM-IC L1 (DuckDB) | AUM-IC L2 (JIT) |
|
|
278
278
|
| :--- | :---: | :---: | :---: |
|
|
279
|
-
| **Tiempo de
|
|
279
|
+
| **Tiempo de resolución** | `1,340ms` | `~80ms` | `~220ms` |
|
|
280
280
|
| **RAM consumida** | `~210MB` | `~48MB` | `~85MB` |
|
|
281
|
-
| **
|
|
281
|
+
| **Reducción CSS final** | Base | **~38% menor** | **~38% menor** |
|
|
282
282
|
| **Hit Rate offline** | N/A | **99.2%** | 0.8% restante |
|
|
283
283
|
| **Compatibilidad** | Solo la instalada | **v1, v2, v3, v4 Oxide** | v2, v3, v4 Oxide |
|
|
284
284
|
|
|
285
285
|
---
|
|
286
286
|
|
|
287
|
-
##
|
|
287
|
+
## 🖥️ Vista Previa de la Consola
|
|
288
288
|
|
|
289
289
|
```
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
[
|
|
296
|
-
[
|
|
297
|
-
[
|
|
298
|
-
[
|
|
299
|
-
[
|
|
300
|
-
[
|
|
301
|
-
[
|
|
302
|
-
[
|
|
303
|
-
[
|
|
304
|
-
|
|
305
|
-
|
|
290
|
+
╔════════════════════════════════════════════════════════╗
|
|
291
|
+
║ ⚔️ AUM-IC Tailwind Killer v4.1.3 ║
|
|
292
|
+
║ Powered by DuckDB • IngCrea ® ║
|
|
293
|
+
╚════════════════════════════════════════════════════════╝
|
|
294
|
+
|
|
295
|
+
[✔] PRE-FLIGHT Rama de Git limpia. Sistema de archivos validado.
|
|
296
|
+
[⚡] SCAN Escaneando 1,247 archivos (Piscina Worker Threads: 8)...
|
|
297
|
+
[🔎] EXTRACCION 48,312 clases detectadas. Deduplicando...
|
|
298
|
+
[🚀] L1 CACHE DuckDB resolvió 47,924 clases en O(1) [Hit Rate: 99.2%]
|
|
299
|
+
[⚙️] L2 CACHE JIT local compiló 388 clases dinámicas [w-[320px], text-[#FF0000]...]
|
|
300
|
+
[🛡️] HASH Hashes deterministas: 48,312 -> 5,840 únicos
|
|
301
|
+
[💾] OUTPUT aumic-output.css generado (127KB -> 78KB, -39%)
|
|
302
|
+
[🔒] LOCK aumic-lock.json escrito. Rollback disponible.
|
|
303
|
+
[💥] PURGE Tailwind CSS eliminado de package.json. ¡Libertad!
|
|
304
|
+
|
|
305
|
+
✔ Transmutación Zero-Bloat completada en 112ms.
|
|
306
306
|
```
|
|
307
307
|
|
|
308
308
|
---
|
|
309
309
|
|
|
310
|
-
##
|
|
310
|
+
## ❓ Preguntas Frecuentes
|
|
311
311
|
|
|
312
|
-
|
|
312
|
+
**¿Esto rompe pseudo-clases como `hover:`, `focus:`, `md:`?**
|
|
313
313
|
> No. El interceptor AST preserva modificadores responsivos y de estado. El hash encapsula el selector completo con su regla `:hover` intacta en el CSS de salida.
|
|
314
314
|
|
|
315
|
-
|
|
316
|
-
> En Modo
|
|
315
|
+
**¿Puedo usarlo junto con Tailwind o lo elimina por completo?**
|
|
316
|
+
> En Modo Simulación, Tailwind no se toca. En Modo Local, sí se purga. Puedes revertir todo con `-m restore`.
|
|
317
317
|
|
|
318
|
-
|
|
319
|
-
> S
|
|
318
|
+
**¿Soporta `@apply` en archivos CSS heredados?**
|
|
319
|
+
> Sí. El Preflight Theme Extractor procesa directivas `@apply` en `.css` y `.scss` durante la Fase 2.
|
|
320
320
|
|
|
321
|
-
|
|
322
|
-
> AUM-IC detecta patrones `cn`, `clsx` y `twMerge` en el AST y resuelve cadenas
|
|
321
|
+
**¿Qué pasa con clases dinámicas en JavaScript (`cn(...)`, `clsx(...)`)?**
|
|
322
|
+
> AUM-IC detecta patrones `cn`, `clsx` y `twMerge` en el AST y resuelve cadenas estáticas automáticamente. Las cadenas completamente dinámicas se marcan en el reporte de simulación para revisión manual.
|
|
323
323
|
|
|
324
|
-
|
|
325
|
-
> S
|
|
324
|
+
**¿Soporta Tailwind v4 Oxide?**
|
|
325
|
+
> Sí. El L1 Cache (DuckDB) contiene el diccionario compilado de v4 Oxide y el L2 Cache secuestra el compilador nativo según tu `package.json`.
|
|
326
326
|
|
|
327
|
-
|
|
328
|
-
> AUM-IC Tailwind Killer procesa **clases utilitarias de Tailwind** en el markup de tus componentes. Si tu proyecto usa CSS-in-JS *sin* clases Tailwind en atributos HTML/JSX, no hay nada que transmutar
|
|
327
|
+
**¿Qué pasa si uso CSS-in-JS (`styled-components`, `emotion`) sin Tailwind?**
|
|
328
|
+
> AUM-IC Tailwind Killer procesa **clases utilitarias de Tailwind** en el markup de tus componentes. Si tu proyecto usa CSS-in-JS *sin* clases Tailwind en atributos HTML/JSX, no hay nada que transmutar — la herramienta reportará cero clases encontradas. En **proyectos mixtos** (Tailwind en algunos componentes + CSS-in-JS en otros), AUM-IC procesa solo las partes con Tailwind y deja los componentes CSS-in-JS completamente intactos.
|
|
329
329
|
|
|
330
|
-
|
|
331
|
-
> La Fase 1 (Pre-Flight) corre antes de tocar cualquier archivo y aborta si detecta cambios Git sin commitear, problemas de permisos o dependencias faltantes. Si ocurre un fallo
|
|
330
|
+
**¿Qué pasa si la migración falla a la mitad?**
|
|
331
|
+
> La Fase 1 (Pre-Flight) corre antes de tocar cualquier archivo y aborta si detecta cambios Git sin commitear, problemas de permisos o dependencias faltantes. Si ocurre un fallo después de que la Fase 1 comienza a escribir, cada archivo modificado tiene una copia de respaldo `.aumic-bak` que el modo `-m restore` usa para recuperar el estado original exacto. Tu código siempre es recuperable.
|
|
332
332
|
|
|
333
|
-
|
|
334
|
-
> No. DuckDB viene empaquetado dentro del
|
|
333
|
+
**¿Necesito instalar DuckDB por separado?**
|
|
334
|
+
> No. DuckDB viene empaquetado dentro del módulo npm vía el binding Node.js de `duckdb`. Sin instalaciones del sistema, sin binarios extra, sin variables de entorno. Funciona de inmediato en macOS, Linux y Windows con Node.js >= 18.
|
|
335
335
|
|
|
336
336
|
---
|
|
337
337
|
|
|
338
|
-
##
|
|
338
|
+
## 🗺️ Roadmap
|
|
339
339
|
|
|
340
|
-
|
|
|
340
|
+
| Versión | Feature | Estado |
|
|
341
341
|
| :--- | :--- | :---: |
|
|
342
|
-
| v4.1.3 | DuckDB L1
|
|
343
|
-
| v4.2.0 | Plugin Vite nativo
|
|
344
|
-
| v4.3.0 | Svelte estable
|
|
345
|
-
| v5.0.0 | Plugin VS Code
|
|
342
|
+
| v4.1.3 | DuckDB L1 · AST Paralelo · Rollback · IA | ✅ Estable |
|
|
343
|
+
| v4.2.0 | Plugin Vite nativo · Turbopack | 🔄 En desarrollo |
|
|
344
|
+
| v4.3.0 | Svelte estable · Angular 17+ | 📋 Planificado |
|
|
345
|
+
| v5.0.0 | Plugin VS Code · Dashboard web | 📋 Planificado |
|
|
346
346
|
|
|
347
347
|
---
|
|
348
348
|
|
|
349
|
-
##
|
|
349
|
+
## 🤝 Contribuciones
|
|
350
350
|
|
|
351
351
|
1. Haz un **fork** del repositorio.
|
|
352
352
|
2. Crea una rama: `git checkout -b feat/mi-mejora`.
|
|
353
353
|
3. Ejecuta las pruebas: `npm test`.
|
|
354
|
-
4. Abre un **Pull Request** describiendo el cambio y su
|
|
354
|
+
4. Abre un **Pull Request** describiendo el cambio y su motivación técnica.
|
|
355
355
|
|
|
356
|
-
> Todas las contribuciones deben cumplir con los principios de
|
|
356
|
+
> Todas las contribuciones deben cumplir con los principios de diseño no negociables en [`MANIFEST.es.md`](./MANIFEST.es.md).
|
|
357
357
|
|
|
358
358
|
---
|
|
359
359
|
|
|
360
|
-
##
|
|
360
|
+
## 🏢 Soporte Corporativo y Licenciamiento Dual
|
|
361
361
|
|
|
362
362
|
**AUM-IC Tailwind Killer** opera bajo un **Modelo de Licencia Dual**:
|
|
363
363
|
|
|
364
364
|
1. **Open Source:** Gratis bajo la licencia [AGPL v3](./LICENSE) para proyectos open source, personales o educativos.
|
|
365
365
|
2. **Comercial:** Licencia propietaria para organizaciones que embeben AUM-IC en productos cerrados, plataformas SaaS o flujos de trabajo enterprise internos. Ver [LICENSE-COMMERCIAL.es.md](./LICENSE-COMMERCIAL.es.md) para detalles.
|
|
366
366
|
|
|
367
|
-
Para organizaciones con monorepos de gran escala, **
|
|
367
|
+
Para organizaciones con monorepos de gran escala, **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S. (IngCrea)** ofrece:
|
|
368
368
|
|
|
369
|
-
| Servicio |
|
|
369
|
+
| Servicio | Descripción |
|
|
370
370
|
| :--- | :--- |
|
|
371
|
-
|
|
|
372
|
-
|
|
|
373
|
-
|
|
|
374
|
-
|
|
|
371
|
+
| 🔍 **Auditoría de Migración** | Evaluación técnica, identificación de riesgos y plan de transmutación enterprise. |
|
|
372
|
+
| ⚡ **Integración CI/CD Gestionada** | AUM-IC configurado en GitHub Actions, GitLab CI o Jenkins. |
|
|
373
|
+
| 🧠 **IA On-Premise** | Despliegue de Ollama con modelos especializados en infraestructura del cliente. Cero exposición de código. |
|
|
374
|
+
| 🛡️ **SLA y Soporte Prioritario** | Canal dedicado, resolución de incidencias críticas en menos de 4 horas. |
|
|
375
375
|
|
|
376
|
-
> ###
|
|
376
|
+
> ### 📧 Contacto Enterprise
|
|
377
377
|
> **contacto@ingcrea.com** | [ingcrea.com](https://ingcrea.com)
|
|
378
|
-
> *Respuesta en menos de 24 horas
|
|
378
|
+
> *Respuesta en menos de 24 horas hábiles.*
|
|
379
379
|
|
|
380
380
|
---
|
|
381
381
|
|
|
382
|
-
> Desarrollado bajo la
|
|
382
|
+
> Desarrollado bajo la estándar tecnológica de **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S.** Excelencia, Determinismo y Zero-Trust.
|
|
383
383
|
|
|
384
|
-
### ðŸ›¡ï¸ Seguridad Zero-Trust y Arquitectura AUM-IC (v4.1.5)
|
|
385
|
-
A partir de la versión 4.1.5, el compilador AUM-IC Tailwind Killer ha sido reescrito desde cero utilizando nuestra propia **Arquitectura Cósmica AUM-IC (Ãtomos a Galaxias)**.
|
|
386
|
-
- **Desintegración del Monolito:** El núcleo ha sido purificado en 6 capas de abstracción (Ãtomos, Moléculas, Células, Organismos, Ecosistemas y Galaxias), promoviendo mantenibilidad y separación de responsabilidades a niveles fractales.
|
|
387
|
-
- **Modelo de Ejecución Zero-Trust:** Hemos detectado y exterminado TODAS las instancias de y . Ahora, toda ejecución nativa opera estrictamente bajo / puro, pasando los argumentos como arreglos inmutables y deshabilitando intérpretes de shell. Esto cierra definitivamente cualquier vector de *Command Injection* (OWASP A03:2021) en la herramienta. AUM-IC es intrÃnsecamente seguro por diseño.
|
|
388
384
|
|
|
389
|
-
###
|
|
390
|
-
A partir de la
|
|
391
|
-
- **
|
|
392
|
-
- **Modelo de
|
|
385
|
+
### 🛡️ Seguridad Zero-Trust y Arquitectura AUM-IC (v4.1.6)
|
|
386
|
+
A partir de la versión 4.1.5, el compilador AUM-IC Tailwind Killer ha sido reescrito desde cero utilizando nuestra propia **Arquitectura Cósmica AUM-IC (Átomos a Galaxias)**.
|
|
387
|
+
- **Desintegración del Monolito:** El núcleo ha sido purificado en 6 capas de abstracción (Átomos, Moléculas, Células, Organismos, Ecosistemas y Galaxias), promoviendo mantenibilidad y separación de responsabilidades a niveles fractales.
|
|
388
|
+
- **Modelo de Ejecución Zero-Trust:** Hemos erradicado TODAS las instancias de child_process.exec y execSync. Ahora, toda ejecución nativa opera estrictamente bajo spawn/spawnSync puro, pasando los argumentos como arreglos inmutables y deshabilitando intérpretes de shell. Esto cierra definitivamente cualquier vector de Command Injection (OWASP A03:2021) en la herramienta. AUM-IC es intrínsecamente seguro por diseño.
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
### 🛡️ Seguridad Zero-Trust y Arquitectura AUM-IC (v4.1.6)
|
|
392
|
+
A partir de la versión 4.1.5, el compilador AUM-IC Tailwind Killer ha sido reescrito desde cero utilizando nuestra propia **Arquitectura Cósmica AUM-IC (Átomos a Galaxias)**.
|
|
393
|
+
- **Desintegración del Monolito:** El núcleo ha sido purificado en 6 capas de abstracción (Átomos, Moléculas, Células, Organismos, Ecosistemas y Galaxias), promoviendo mantenibilidad y separación de responsabilidades a niveles fractales.
|
|
394
|
+
- **Modelo de Ejecución Zero-Trust:** Hemos erradicado TODAS las instancias de child_process.exec y execSync. Ahora, toda ejecución nativa opera estrictamente bajo spawn/spawnSync puro, pasando los argumentos como arreglos inmutables y deshabilitando intérpretes de shell. Esto cierra definitivamente cualquier vector de Command Injection (OWASP A03:2021) en la herramienta. AUM-IC es intrínsecamente seguro por diseño.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# ⚔️ AUM-IC Tailwind Killer
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 🌐 **Navigation:** 🇲🇽 [Leer en Español](./README.es.md) | 📜 [Manifesto (EN)](./MANIFEST.md) | 📜 [Manifiesto (ES)](./MANIFEST.es.md)
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@ingcrea/aumic-tailwind-killer)
|
|
6
6
|
[](https://github.com/ingcrea/aumic-tailwind-killer/stargazers)
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
12
12
|
|
|
13
|
-
**AUM-IC Tailwind Killer** is not just a CLI orchestrator
|
|
13
|
+
**AUM-IC Tailwind Killer** is not just a CLI orchestrator — it is the technical manifestation of a design standard. It is named after the **Arquitectura de Universos Multidimensionales de Ingeniería Creativa (AUM-IC)** standard: a philosophy built to restore sanity, absolute control and infinite scalability to software engineers.
|
|
14
14
|
|
|
15
|
-
Designed under the architectural rigor of **
|
|
15
|
+
Designed under the architectural rigor of **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S. (IngCrea)**, this high-performance "Tailwind Killer" audits, extracts, compiles (via JIT) and purges your codebase in seconds — transmuting the chaos of utility classes into an obfuscated, standardized, dependency-free ecosystem (Zero-Bloat) powered by an implacable *Multi-Level JIT Cache (DuckDB + Node.js)* architecture with universal AST interceptors.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## ⚡ Quick Start (60 seconds)
|
|
20
20
|
|
|
21
|
-
> **Prerequisites:** Node.js >= 18.0
|
|
21
|
+
> **Prerequisites:** Node.js >= 18.0 · No extra system installations required. DuckDB is bundled.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
# 1. Audit your project without touching any file (recommended first step)
|
|
@@ -35,7 +35,7 @@ npx @ingcrea/aumic-tailwind-killer -m restore -t ./my-project
|
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## ⚡ Why AUM-IC Tailwind Killer? (The Pain Cure)
|
|
39
39
|
|
|
40
40
|
Debates in global software architecture forums expose universal complaints about Tailwind CSS at scale. AUM-IC Tailwind Killer was forged to annihilate exactly those pains:
|
|
41
41
|
|
|
@@ -43,39 +43,39 @@ Debates in global software architecture forums expose universal complaints about
|
|
|
43
43
|
The #1 developer complaint. Components flooded with kilometer-long strings (`class="flex items-center justify-between p-4 bg-white shadow-md..."`) that destroy readability. AUM-IC transmutes that toxic chain into an elegant, clean, obfuscated hash (`class="aumic-rs-1b3a"`). We give your DOM its visual purity back.
|
|
44
44
|
|
|
45
45
|
2. **Vendor Lock-In Liberation (The Escape Hatch):**
|
|
46
|
-
CTOs dread tying a massive project to third-party framework syntax that could change or become obsolete. With AUM-IC Tailwind Killer, **you are no longer Tailwind's slave**. Build fast with utilities
|
|
46
|
+
CTOs dread tying a massive project to third-party framework syntax that could change or become obsolete. With AUM-IC Tailwind Killer, **you are no longer Tailwind's slave**. Build fast with utilities — when you ship to production, our engine physically purges it from your `package.json` and extracts a standard, framework-agnostic `.css` file. You reclaim code sovereignty.
|
|
47
47
|
|
|
48
48
|
3. **Architectural Restoration (Separation of Concerns):**
|
|
49
49
|
Purists hate mixing structure and design in the same line. AUM-IC lets you enjoy Tailwind's speed in development, but in production our orchestrator extracts design into a deterministic CSS ecosystem, restoring the sacred boundary between your logic and your styles.
|
|
50
50
|
|
|
51
51
|
4. **Obfuscation, Collision Prevention and AI Semantic Naming:**
|
|
52
|
-
We don't obfuscate only for anti-scraping security. By generating mathematical hashes (`aumic-rs-[hash]`), we **unify tags and guarantee zero style collisions** after a massive migration. AUM-IC also integrates an optional **AI Semantic Naming** feature (locally via *Ollama* or remotely via *Claude, Gemini, DeepSeek, Codex*). Thanks to our deduplication algorithm, the AI **only processes UNIQUE combinations**
|
|
52
|
+
We don't obfuscate only for anti-scraping security. By generating mathematical hashes (`aumic-rs-[hash]`), we **unify tags and guarantee zero style collisions** after a massive migration. AUM-IC also integrates an optional **AI Semantic Naming** feature (locally via *Ollama* or remotely via *Claude, Gemini, DeepSeek, Codex*). Thanks to our deduplication algorithm, the AI **only processes UNIQUE combinations** — never your full source code. This saves millions of tokens and shields your privacy.
|
|
53
53
|
|
|
54
54
|
5. **Extreme Performance (Zero-Bloat Build Time):**
|
|
55
|
-
Eliminating Tailwind's massive engine from your CI/CD pipelines dramatically accelerates build times for Next.js, Astro, and Vite
|
|
55
|
+
Eliminating Tailwind's massive engine from your CI/CD pipelines dramatically accelerates build times for Next.js, Astro, and Vite — saving real server resources.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
59
|
-
##
|
|
59
|
+
## 🆚 How Does It Compare?
|
|
60
60
|
|
|
61
61
|
| Feature | AUM-IC Tailwind Killer | PurgeCSS | UnoCSS | vanilla-extract | Manual Migration |
|
|
62
62
|
| :--- | :---: | :---: | :---: | :---: | :---: |
|
|
63
|
-
| **Removes unused CSS** |
|
|
64
|
-
| **Obfuscates class names** |
|
|
65
|
-
| **Zero-Bloat (removes Tailwind dep)** |
|
|
66
|
-
| **Fully automated migration** |
|
|
67
|
-
| **Rollback / Undo** |
|
|
68
|
-
| **AST (no regex hacks)** |
|
|
69
|
-
| **Supports v1 / v2 / v3 / v4 Oxide** |
|
|
70
|
-
| **AI Semantic Naming** |
|
|
71
|
-
| **Offline / Air-Gapped** |
|
|
72
|
-
| **Prevents CSS collisions post-migration** |
|
|
63
|
+
| **Removes unused CSS** | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
64
|
+
| **Obfuscates class names** | ✅ | ❌ | ❌ | Partial | ❌ |
|
|
65
|
+
| **Zero-Bloat (removes Tailwind dep)** | ✅ | ❌ | ❌ | ✅ | ✅ |
|
|
66
|
+
| **Fully automated migration** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
67
|
+
| **Rollback / Undo** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
68
|
+
| **AST (no regex hacks)** | ✅ | ❌ | N/A | N/A | N/A |
|
|
69
|
+
| **Supports v1 / v2 / v3 / v4 Oxide** | ✅ | Partial | ✅ | N/A | Manual |
|
|
70
|
+
| **AI Semantic Naming** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
71
|
+
| **Offline / Air-Gapped** | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
72
|
+
| **Prevents CSS collisions post-migration** | ✅ | ❌ | ❌ | ✅ | Manual |
|
|
73
73
|
|
|
74
74
|
> **Summary:** PurgeCSS only removes dead code. UnoCSS is a framework, not a migrator. vanilla-extract requires a full manual rewrite. AUM-IC Tailwind Killer is the only tool that **automates the complete escape** from Tailwind with safety, reversibility and zero external dependencies.
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
-
##
|
|
78
|
+
## 🦖 Architecture v4.1.3: Multi-Level JIT Cache
|
|
79
79
|
|
|
80
80
|
AUM-IC operates under a two-level cache architecture powered 100% by Node.js and analytical databases:
|
|
81
81
|
|
|
@@ -90,76 +90,76 @@ AUM-IC operates under a two-level cache architecture powered 100% by Node.js and
|
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
93
|
-
##
|
|
93
|
+
## 🧠 5-Phase Pipeline (The Transmutation Engine)
|
|
94
94
|
|
|
95
95
|
```
|
|
96
96
|
Your Project (source code)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
97
|
+
│
|
|
98
|
+
▼
|
|
99
|
+
┌───────────────────────────────────────────────────────────┐
|
|
100
|
+
│ PHASE 1 ─ Reconnaissance & Pre-Flight │
|
|
101
|
+
│ Validates Git status, permissions, excludes │
|
|
102
|
+
│ node_modules / .git / dist │
|
|
103
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
104
|
+
│
|
|
105
|
+
▼
|
|
106
|
+
┌───────────────────────────────────────────────────────────┐
|
|
107
|
+
│ PHASE 2 ─ Parallel Extraction (AST + Piscina Threads) │
|
|
108
|
+
│ Babel/Cheerio parse JSX/Astro/Vue/HTML surgically │
|
|
109
|
+
│ Extracts classes → Deduplicates → Unique combinations │
|
|
110
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
111
|
+
│
|
|
112
|
+
▼
|
|
113
|
+
┌───────────────────────────────────────────────────────────┐
|
|
114
|
+
│ PHASE 3 ─ Nomenclature Cryptography │
|
|
115
|
+
│ Deterministic hashes aumic-rs-[hash] per combination │
|
|
116
|
+
│ 5,000 repetitions of one class = 1 single hash in RAM │
|
|
117
|
+
└──────────┬────────────────────────────┬───────────────────┘
|
|
118
|
+
│ │
|
|
119
|
+
▼ ▼
|
|
120
|
+
┌──────────────────────┐ ┌────────────────────────────────┐
|
|
121
|
+
│ L1 Cache (DuckDB) │ │ L2 Cache (Dynamic JIT) │
|
|
122
|
+
│ 26,000+ classes │ │ Local tailwindcss compiler │
|
|
123
|
+
│ O(1) · Offline │ │ For dynamic classes w-[Xpx] │
|
|
124
|
+
│ Hit Rate: 99.2% │ │ Respects your installed ver. │
|
|
125
|
+
└──────────┬───────────┘ └────────────────┬───────────────┘
|
|
126
|
+
└────────────────────────────────┘
|
|
127
|
+
│
|
|
128
|
+
▼
|
|
129
|
+
┌───────────────────────────────────────────────────────────┐
|
|
130
|
+
│ PHASE 4 ─ Synthesis & Output │
|
|
131
|
+
│ Pure unified CSS · aumic-lock.json (rollback map) │
|
|
132
|
+
└───────────────────────┬───────────────────────────────────┘
|
|
133
|
+
│
|
|
134
|
+
▼
|
|
135
|
+
┌───────────────────────────────────────────────────────────┐
|
|
136
|
+
│ PHASE 5 ─ Total Eradication │
|
|
137
|
+
│ Purges Tailwind from package.json · Rewrites components │
|
|
138
|
+
│ Your code is free, clean and sovereign. │
|
|
139
|
+
└───────────────────────────────────────────────────────────┘
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
144
|
-
##
|
|
144
|
+
## 🔄 Before & After: What Your Code Looks Like
|
|
145
145
|
|
|
146
|
-
### HTML / JSX
|
|
146
|
+
### HTML / JSX — Before
|
|
147
147
|
```html
|
|
148
148
|
<div class="flex items-center justify-between p-4 bg-white shadow-md rounded-xl border border-gray-200">
|
|
149
149
|
<span class="text-sm font-semibold text-gray-800">Dashboard</span>
|
|
150
150
|
</div>
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
### HTML / JSX
|
|
153
|
+
### HTML / JSX — After
|
|
154
154
|
```html
|
|
155
155
|
<div class="aumic-rs-1b3a">
|
|
156
156
|
<span class="aumic-rs-2c4f">Dashboard</span>
|
|
157
157
|
</div>
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
-
### Generated CSS
|
|
160
|
+
### Generated CSS — After
|
|
161
161
|
```css
|
|
162
|
-
/* aumic-output.css
|
|
162
|
+
/* aumic-output.css — Pure CSS. No framework. No runtime. No dependencies. */
|
|
163
163
|
.aumic-rs-1b3a {
|
|
164
164
|
display: flex;
|
|
165
165
|
align-items: center;
|
|
@@ -181,7 +181,7 @@ AUM-IC operates under a two-level cache architecture powered 100% by Node.js and
|
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
184
|
-
##
|
|
184
|
+
## 🔒 The `aumic-lock.json` Map (Rollback & IA Schema)
|
|
185
185
|
|
|
186
186
|
Every transmutation generates an `aumic-lock.json` in your project root. This file is your **safety net and the bridge for AI semantic naming**. Its structure:
|
|
187
187
|
|
|
@@ -213,11 +213,11 @@ Every transmutation generates an `aumic-lock.json` in your project root. This fi
|
|
|
213
213
|
}
|
|
214
214
|
```
|
|
215
215
|
|
|
216
|
-
This map is what powers the `-m restore` rollback
|
|
216
|
+
This map is what powers the `-m restore` rollback — and what the AI semantic naming engine reads to produce human-readable names **without ever seeing your source code**.
|
|
217
217
|
|
|
218
218
|
---
|
|
219
219
|
|
|
220
|
-
##
|
|
220
|
+
## 🚀 Installation
|
|
221
221
|
|
|
222
222
|
> **No extra system dependencies required.** DuckDB is bundled inside the package. Works on macOS, Linux, and Windows (Node.js >= 18.0).
|
|
223
223
|
|
|
@@ -232,10 +232,10 @@ aumic-tailwind-killer -m local -t ./my-project
|
|
|
232
232
|
|
|
233
233
|
---
|
|
234
234
|
|
|
235
|
-
##
|
|
235
|
+
## 🛠 Usage Modes
|
|
236
236
|
|
|
237
237
|
### 1. Simulate Mode (Dry-Run)
|
|
238
|
-
Audit your project
|
|
238
|
+
Audit your project — see how many Tailwind classes you use and preview the impact **without touching a single file**.
|
|
239
239
|
```bash
|
|
240
240
|
npx @ingcrea/aumic-tailwind-killer -m simulate -t ./
|
|
241
241
|
```
|
|
@@ -273,21 +273,21 @@ npx @ingcrea/aumic-tailwind-killer -m local -t ./ --ai gemini --ai-key AIza...
|
|
|
273
273
|
|
|
274
274
|
---
|
|
275
275
|
|
|
276
|
-
##
|
|
276
|
+
## ⚙️ CLI Options
|
|
277
277
|
|
|
278
278
|
| Short | Long | Description | Required |
|
|
279
279
|
| :--- | :--- | :--- | :--- |
|
|
280
280
|
| `-m` | `--mode` | Operation mode: `simulate`, `local`, `restore`. | **Yes** |
|
|
281
281
|
| `-t` | `--target` | Path to the project directory. | **Yes** |
|
|
282
282
|
| `-s` | `--scope` | Glob pattern to restrict mutation to specific files. | No |
|
|
283
|
-
|
|
|
284
|
-
|
|
|
285
|
-
|
|
|
286
|
-
|
|
|
283
|
+
| — | `--ai` | AI provider for semantic naming: `ollama`, `claude`, `gemini`, `deepseek`, `codex`. | No |
|
|
284
|
+
| — | `--ai-model` | Specific model name (e.g. `llama3`, `claude-3-5-sonnet`). | No |
|
|
285
|
+
| — | `--ai-key` | Remote provider API Key (not required for `ollama`). | No |
|
|
286
|
+
| — | `--ai-base-url` | Custom Ollama base URL (default: `http://localhost:11434`). | No |
|
|
287
287
|
|
|
288
288
|
---
|
|
289
289
|
|
|
290
|
-
##
|
|
290
|
+
## 📊 Benchmarks
|
|
291
291
|
|
|
292
292
|
Measured on a Next.js monorepo with **1,200 files** and **48,000 unique Tailwind classes** (MacBook Pro M2, 16GB RAM):
|
|
293
293
|
|
|
@@ -301,34 +301,31 @@ Measured on a Next.js monorepo with **1,200 files** and **48,000 unique Tailwind
|
|
|
301
301
|
|
|
302
302
|
---
|
|
303
303
|
|
|
304
|
-
##
|
|
304
|
+
## 🖥️ Console Output Preview
|
|
305
305
|
|
|
306
306
|
```
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
[
|
|
313
|
-
[
|
|
314
|
-
[
|
|
315
|
-
[
|
|
316
|
-
[
|
|
317
|
-
[
|
|
318
|
-
[
|
|
319
|
-
[
|
|
320
|
-
[
|
|
321
|
-
|
|
322
|
-
|
|
307
|
+
╔════════════════════════════════════════════════════════╗
|
|
308
|
+
║ ⚔️ AUM-IC Tailwind Killer v4.1.3 ║
|
|
309
|
+
║ Powered by DuckDB • IngCrea ® ║
|
|
310
|
+
╚════════════════════════════════════════════════════════╝
|
|
311
|
+
|
|
312
|
+
[✔] PRE-FLIGHT Clean Git branch. Filesystem validated.
|
|
313
|
+
[⚡] SCAN Scanning 1,247 files (Piscina Worker Threads: 8)...
|
|
314
|
+
[🔎] EXTRACT 48,312 classes detected. Deduplicating...
|
|
315
|
+
[🚀] L1 CACHE DuckDB resolved 47,924 classes in O(1) [Hit Rate: 99.2%]
|
|
316
|
+
[⚙️] L2 CACHE Local JIT compiled 388 dynamic classes [w-[320px], text-[#FF0000]...]
|
|
317
|
+
[🛡️] HASH Deterministic hashes: 48,312 -> 5,840 unique
|
|
318
|
+
[💾] OUTPUT aumic-output.css generated (127KB -> 78KB, -39%)
|
|
319
|
+
[🔒] LOCK aumic-lock.json written. Rollback available.
|
|
320
|
+
[💥] PURGE Tailwind CSS removed from package.json. Freedom!
|
|
321
|
+
|
|
322
|
+
✔ Zero-Bloat transmutation completed in 112ms.
|
|
323
323
|
```
|
|
324
324
|
|
|
325
325
|
---
|
|
326
326
|
|
|
327
327
|
|
|
328
|
-
##
|
|
329
|
-
|
|
330
|
-
### ðŸ›¡ï¸ Zero-Trust Execution (Enterprise Security)
|
|
331
|
-
AUM-IC Tailwind Killer is built under a Zero-Trust security model. All system operations, file manipulation, and background processes are executed isolated from the system shell (strict prohibition of `exec`). This eradicates command injection vectors in SaaS and CI/CD environments, guaranteeing that code analysis is 100% secure even on untrusted repositories.
|
|
328
|
+
## 🧠 Under the Hood: The Engineering
|
|
332
329
|
|
|
333
330
|
AUM-IC Tailwind Killer is not a simple Regex script. It is a **Safe Static Analysis** tool designed for enterprise-grade monorepos:
|
|
334
331
|
|
|
@@ -336,22 +333,22 @@ AUM-IC Tailwind Killer is not a simple Regex script. It is a **Safe Static Analy
|
|
|
336
333
|
* **Intermediate Bytecode for Semantic Naming:** The hashes you see injected into your code (e.g., `class="aumic-rs-1b3a"`) **are NOT the final output**. They act as an intermediate *bytecode*. AUM-IC offers an **AI Semantic Naming** engine (via Ollama or Claude) that reads your `aumic-lock.json` and automatically translates these hashes into pure, maintainable semantic CSS (e.g., `.dashboard-card`). It is an automated bridge back to traditional CSS.
|
|
337
334
|
* **Dynamic Classes Management (clsx, twMerge):** If a class cannot be deterministically resolved at compile time (e.g., `<div class={\`bg-${color}-500\`}>`), the static analyzer safely ignores it and flags it in the simulation report for developer review.
|
|
338
335
|
|
|
339
|
-
##
|
|
336
|
+
## 🥊 AUM-IC vs Tailwind v4
|
|
340
337
|
|
|
341
338
|
Tailwind v4 introduced monumental improvements in compilation speed (Oxide engine) and CSS-first configuration. So why use AUM-IC?
|
|
342
339
|
|
|
343
340
|
Tailwind v4 solves performance, but it **DOES NOT solve Vendor Lock-in or HTML Soup**.
|
|
344
341
|
If you use v4, your HTML code remains strictly coupled to a proprietary Domain-Specific Language (DSL). AUM-IC Tailwind Killer does not compete on compilation speed; its sole objective is **Architectural Independence (Zero Vendor Lock-in)**. It returns full control to you via clean, semantic HTML and standard CSS that will outlive any frontend framework trend.
|
|
345
342
|
|
|
346
|
-
##
|
|
343
|
+
## ⚠️ Limitations and Ideal Use Cases
|
|
347
344
|
|
|
348
345
|
* **Not recommended for:** Projects highly dependent on fully dynamic classes constructed at runtime (string interpolation) without exhaustive manual auditing. If your project has thousands of runtime logic branches for styles, you will need a gradual migration approach.
|
|
349
346
|
* **Highly recommended for:** Freezing technical debt, standardizing monorepos, protecting UI Intellectual Property for commercial licensing, and preparing architectures for 10+ year maintenance lifecycles.
|
|
350
347
|
|
|
351
|
-
##
|
|
348
|
+
## ❓ FAQ
|
|
352
349
|
|
|
353
350
|
**Does this break Tailwind pseudo-classes like `hover:`, `focus:`, `md:`?**
|
|
354
|
-
> No. The AST interceptor detects and preserves responsive and state modifiers. The final hash encapsulates the full selector: `hover:bg-red-500`
|
|
351
|
+
> No. The AST interceptor detects and preserves responsive and state modifiers. The final hash encapsulates the full selector: `hover:bg-red-500` → `aumic-rs-a3f1` with its `:hover` rule intact in the output CSS.
|
|
355
352
|
|
|
356
353
|
**Can I use it alongside Tailwind or does it remove it completely?**
|
|
357
354
|
> In Simulate mode (`-m simulate`), Tailwind is untouched. In Local mode (`-m local`), it is purged from `package.json`. You can revert everything at any time with `-m restore`.
|
|
@@ -366,7 +363,7 @@ If you use v4, your HTML code remains strictly coupled to a proprietary Domain-S
|
|
|
366
363
|
> Yes. The L1 DuckDB cache contains the compiled dictionary for Tailwind v4 Oxide. The L2 Cache hijacks `@tailwindcss/vite` or the native binary as detected from your `package.json`.
|
|
367
364
|
|
|
368
365
|
**What if I use CSS-in-JS (`styled-components`, `emotion`) without Tailwind?**
|
|
369
|
-
> AUM-IC Tailwind Killer processes **Tailwind utility classes** in your component markup. If your project uses CSS-in-JS libraries *without* Tailwind classes in HTML/JSX attributes, there is nothing to transmute
|
|
366
|
+
> AUM-IC Tailwind Killer processes **Tailwind utility classes** in your component markup. If your project uses CSS-in-JS libraries *without* Tailwind classes in HTML/JSX attributes, there is nothing to transmute — the tool will simply report zero classes found. For **mixed projects** (Tailwind classes in some components + CSS-in-JS in others), AUM-IC processes only the Tailwind parts and leaves CSS-in-JS components completely untouched.
|
|
370
367
|
|
|
371
368
|
**What if the migration fails mid-process?**
|
|
372
369
|
> Phase 1 (Pre-Flight) runs before touching a single file and aborts immediately if it detects uncommitted Git changes, permission issues, or missing dependencies. If a failure occurs after Phase 1 begins writing, every modified file has a `.aumic-bak` backup copy that `--mode restore` uses to recover the exact original state. Your code is always recoverable.
|
|
@@ -376,18 +373,18 @@ If you use v4, your HTML code remains strictly coupled to a proprietary Domain-S
|
|
|
376
373
|
|
|
377
374
|
---
|
|
378
375
|
|
|
379
|
-
##
|
|
376
|
+
## 🗺️ Roadmap
|
|
380
377
|
|
|
381
378
|
| Version | Feature | Status |
|
|
382
379
|
| :--- | :--- | :---: |
|
|
383
|
-
| v4.1.3 | DuckDB L1 Cache
|
|
384
|
-
| v4.2.0 | Native Vite plugin
|
|
385
|
-
| v4.3.0 | Svelte stable
|
|
386
|
-
| v5.0.0 | VS Code extension
|
|
380
|
+
| v4.1.3 | DuckDB L1 Cache · Parallel AST · Rollback · AI Naming | ✅ Stable |
|
|
381
|
+
| v4.2.0 | Native Vite plugin · Turbopack integration | 🔄 In development |
|
|
382
|
+
| v4.3.0 | Svelte stable · Angular 17+ support | 📋 Planned |
|
|
383
|
+
| v5.0.0 | VS Code extension · Web audit dashboard | 📋 Planned |
|
|
387
384
|
|
|
388
385
|
---
|
|
389
386
|
|
|
390
|
-
##
|
|
387
|
+
## 🤝 Contributing
|
|
391
388
|
|
|
392
389
|
Found a bug or want to add support for a new framework? Contributions are welcome.
|
|
393
390
|
|
|
@@ -402,31 +399,38 @@ For major changes (new modes, new AI providers, new framework support), open an
|
|
|
402
399
|
|
|
403
400
|
---
|
|
404
401
|
|
|
405
|
-
##
|
|
402
|
+
## 🏢 Enterprise Support & Dual-Licensing
|
|
406
403
|
|
|
407
404
|
**AUM-IC Tailwind Killer** operates under a **Dual-License Model**:
|
|
408
405
|
|
|
409
406
|
1. **Open Source:** Free under the [AGPL v3 License](./LICENSE) for open source, personal, or non-commercial projects.
|
|
410
407
|
2. **Commercial:** Proprietary licensing for organizations embedding AUM-IC in closed-source products, SaaS platforms, or internal enterprise workflows. See [LICENSE-COMMERCIAL.md](./LICENSE-COMMERCIAL.md) for details.
|
|
411
408
|
|
|
412
|
-
For organizations with large-scale monorepos, **
|
|
409
|
+
For organizations with large-scale monorepos, **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S. (IngCrea)** offers:
|
|
413
410
|
|
|
414
411
|
| Service | Description |
|
|
415
412
|
| :--- | :--- |
|
|
416
|
-
|
|
|
417
|
-
|
|
|
418
|
-
|
|
|
419
|
-
|
|
|
413
|
+
| 🔍 **Migration Audit** | Technical assessment, risk identification and transmutation plan for enterprise projects. |
|
|
414
|
+
| ⚡ **Managed CI/CD Integration** | AUM-IC configured inside GitHub Actions, GitLab CI or Jenkins pipelines. |
|
|
415
|
+
| 🧠 **On-Premise AI Naming** | Ollama deployment with specialized models on client infrastructure. Zero code exposure. |
|
|
416
|
+
| 🛡️ **SLA & Priority Support** | Dedicated channel, critical incident resolution in under 4 hours. |
|
|
420
417
|
|
|
421
|
-
> ###
|
|
418
|
+
> ### 📧 Enterprise Contact
|
|
422
419
|
> **contacto@ingcrea.com** | [ingcrea.com](https://ingcrea.com)
|
|
423
420
|
> *Response within 24 business hours.*
|
|
424
421
|
|
|
425
422
|
---
|
|
426
423
|
|
|
427
|
-
> Developed under the technological standard of **
|
|
424
|
+
> Developed under the technological standard of **INGENIERÍA CREATIVA Y DESARROLLOS TECNOLÓGICOS S.A.S.** Excellence, Determinism and Zero-Trust.
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
### 🛡️ Seguridad Zero-Trust y Arquitectura AUM-IC (v4.1.6)
|
|
428
|
+
A partir de la versión 4.1.5, el compilador AUM-IC Tailwind Killer ha sido reescrito desde cero utilizando nuestra propia **Arquitectura Cósmica AUM-IC (Átomos a Galaxias)**.
|
|
429
|
+
- **Desintegración del Monolito:** El núcleo ha sido purificado en 6 capas de abstracción (Átomos, Moléculas, Células, Organismos, Ecosistemas y Galaxias), promoviendo mantenibilidad y separación de responsabilidades a niveles fractales.
|
|
430
|
+
- **Modelo de Ejecución Zero-Trust:** Hemos erradicado TODAS las instancias de child_process.exec y execSync. Ahora, toda ejecución nativa opera estrictamente bajo spawn/spawnSync puro, pasando los argumentos como arreglos inmutables y deshabilitando intérpretes de shell. Esto cierra definitivamente cualquier vector de Command Injection (OWASP A03:2021) en la herramienta. AUM-IC es intrínsecamente seguro por diseño.
|
|
431
|
+
|
|
428
432
|
|
|
429
|
-
###
|
|
430
|
-
A partir de la
|
|
431
|
-
- **
|
|
432
|
-
- **Modelo de
|
|
433
|
+
### 🛡️ Seguridad Zero-Trust y Arquitectura AUM-IC (v4.1.6)
|
|
434
|
+
A partir de la versión 4.1.5, el compilador AUM-IC Tailwind Killer ha sido reescrito desde cero utilizando nuestra propia **Arquitectura Cósmica AUM-IC (Átomos a Galaxias)**.
|
|
435
|
+
- **Desintegración del Monolito:** El núcleo ha sido purificado en 6 capas de abstracción (Átomos, Moléculas, Células, Organismos, Ecosistemas y Galaxias), promoviendo mantenibilidad y separación de responsabilidades a niveles fractales.
|
|
436
|
+
- **Modelo de Ejecución Zero-Trust:** Hemos erradicado TODAS las instancias de child_process.exec y execSync. Ahora, toda ejecución nativa opera estrictamente bajo spawn/spawnSync puro, pasando los argumentos como arreglos inmutables y deshabilitando intérpretes de shell. Esto cierra definitivamente cualquier vector de Command Injection (OWASP A03:2021) en la herramienta. AUM-IC es intrínsecamente seguro por diseño.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
{
|
|
2
2
|
"name": "@ingcrea/aumic-tailwind-killer",
|
|
3
|
-
"version": "4.1.
|
|
4
|
-
"description": "Transpilador de Tailwind a CSS3 puro bajo est
|
|
3
|
+
"version": "4.1.6",
|
|
4
|
+
"description": "Transpilador de Tailwind a CSS3 puro bajo est\u00c3\u00a1ndar AUM-IC",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"aumic-tailwind-killer": "dist/6_galaxies/index.js"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@types/node": "^20.11.20",
|
|
36
36
|
"typescript": "^5.3.3"
|
|
37
37
|
},
|
|
38
|
-
"author": "Ingenier
|
|
38
|
+
"author": "Ingenier\u00c3\u00ada Creativa <soporte@ingcrea.com> (https://ingcrea.com)",
|
|
39
39
|
"repository": {
|
|
40
40
|
"type": "git",
|
|
41
41
|
"url": "git+https://github.com/ingcrea/aumic-tailwind-killer.git"
|
|
@@ -49,4 +49,4 @@
|
|
|
49
49
|
"ast",
|
|
50
50
|
"cli"
|
|
51
51
|
]
|
|
52
|
-
}
|
|
52
|
+
}
|