# WordXML Builder

Librería TypeScript para construir documentos XML compatibles con Microsoft Word.

## 🚀 Características

- Construcción de documentos XML compatibles con Word
- Tipado fuerte con TypeScript
- API simple y fácil de usar
- Documentación completa

## 📋 Requisitos Previos

- Node.js (v14 o superior)
- npm (v6 o superior)

## 🛠️ Instalación

```bash
npm install wordxml-builder
```

## 💻 Uso

```typescript
import { WordXMLBuilder } from 'wordxml-builder';

const builder = new WordXMLBuilder();
builder.addParagraph('Este es un párrafo de ejemplo');
const xmlContent = builder.getContent();
```

## 🏗️ Estructura del Proyecto

```
wordxml-builder/
├── src/                    # Código fuente
│   ├── index.ts           # Punto de entrada principal
│   ├── types/             # Definiciones de tipos
│   ├── builders/          # Clases constructoras
│   └── utils/             # Utilidades
├── dist/                   # Código compilado (generado)
├── tests/                  # Pruebas unitarias
├── docs/                   # Documentación
└── examples/              # Ejemplos de uso
```

## 🔧 Desarrollo

### Instalación de Dependencias

```bash
npm install
```

### Compilación

```bash
npm run build
```

### Linting

```bash
npm run lint
```

### Formateo de Código

```bash
npm run format
```

## 🧪 Testing

```bash
npm test
```

## 📦 Publicación

1. Incrementa la versión en `package.json` siguiendo [Semantic Versioning](https://semver.org/)
2. Actualiza el CHANGELOG.md
3. Crea un nuevo tag en git
4. Publica en npm:

```bash
npm publish
```

## 🔄 GitFlow

Este proyecto sigue la metodología GitFlow para el control de versiones:

### Ramas Principales

- `main`: Código en producción
- `develop`: Código en desarrollo

### Ramas de Soporte

- `feature/*`: Nuevas características
- `bugfix/*`: Corrección de errores
- `hotfix/*`: Correcciones urgentes en producción
- `release/*`: Preparación de releases

### Flujo de Trabajo

1. Crear una rama desde `develop`:
   ```bash
   git checkout -b feature/nueva-caracteristica develop
   ```

2. Desarrollar y hacer commits:
   ```bash
   git commit -m "feat: agregar nueva característica"
   ```

3. Fusionar con `develop`:
   ```bash
   git checkout develop
   git merge feature/nueva-caracteristica
   ```

4. Crear release:
   ```bash
   git checkout -b release/1.0.0 develop
   ```

5. Fusionar con `main` y `develop`:
   ```bash
   git checkout main
   git merge release/1.0.0
   git checkout develop
   git merge release/1.0.0
   ```

## 📝 Convención de Commits

Usamos [Conventional Commits](https://www.conventionalcommits.org/):

- `feat:` Nueva característica
- `fix:` Corrección de error
- `docs:` Cambios en documentación
- `style:` Cambios de formato
- `refactor:` Refactorización de código
- `test:` Agregar o corregir pruebas
- `chore:` Actualización de tareas, configuración, etc.

## 🔄 Versionamiento

Seguimos [Semantic Versioning](https://semver.org/):

- `MAJOR`: Cambios incompatibles con versiones anteriores
- `MINOR`: Nuevas características compatibles
- `PATCH`: Correcciones de errores compatibles

Ejemplo: `1.2.3`
- 1: Versión mayor
- 2: Versión menor
- 3: Parche

## 📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.

## 🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor, lee [CONTRIBUTING.md](CONTRIBUTING.md) para detalles sobre nuestro código de conducta y el proceso para enviar pull requests. 