{"_id":"@becaskurtces/gaia-be-spring-parent","_rev":"4-8c09d574131c0b35e785b478a8752bba","name":"@becaskurtces/gaia-be-spring-parent","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@becaskurtces/gaia-be-spring-parent","version":"1.0.0","author":{"name":"kurtces"},"license":"MIT","_id":"@becaskurtces/gaia-be-spring-parent@1.0.0","maintainers":[{"name":"becaskurtces","email":"becaskurtces@gmail.com"}],"homepage":"https://github.com/kurtces","bugs":{"url":"https://github.com/kurtces/issues"},"dist":{"shasum":"59b4cfe0c84b813161cdc93ee1ee1ec2e2032c0a","tarball":"https://registry.npmjs.org/@becaskurtces/gaia-be-spring-parent/-/gaia-be-spring-parent-1.0.0.tgz","fileCount":438,"integrity":"sha512-q72IEfEITaZ0fjjKfpZp+HxVsGMqZQS523HCA09RbKr8T5+1q0j4smKqzI/bAmqaYlfEfR9RVi6fmRdHU7kqWA==","signatures":[{"sig":"MEQCICT8a4TzslwVKzgQ6nF8g7LZPQfEJb8tN6PJ/HZzjkFHAiAvvcasQBSatsegeK/D21VBbF1jDrxU0jkojsyhYjVXlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1470007},"gitHead":"03539970825d9ef5d1a7d05125a2feaaec26089e","scripts":{"pack:check":"npm pack --dry-run","prepublishOnly":"npm run pack:check","publish:public":"dotenv -e .env -- npm publish --access public","publish:dry-run":"dotenv -e .env -- npm publish --access public --dry-run"},"_npmUser":{"name":"becaskurtces","email":"becaskurtces@gmail.com"},"repository":{"url":"https://github.com/kurtces","type":"git","directory":"gaia-be-spring-parent"},"_npmVersion":"11.5.2","description":"Spring parent POM and starter modules packaged for npm distribution.","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"dotenv-cli":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/gaia-be-spring-parent_1.0.0_1778237946307_0.8952620488842966","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@becaskurtces/gaia-be-spring-parent","version":"1.0.1","description":"Spring parent POM and starter modules packaged for npm distribution.","license":"MIT","author":{"name":"kurtces"},"homepage":"https://github.com/kurtces","repository":{"type":"git","url":"https://github.com/kurtces","directory":"gaia-be-spring-parent"},"bugs":{"url":"https://github.com/kurtces/issues"},"scripts":{"pack:check":"npm pack --dry-run","prepublishOnly":"npm run pack:check","publish:dry-run":"dotenv -e .env -- npm publish --access public --dry-run","publish:public":"dotenv -e .env -- npm publish --access public"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"dotenv-cli":"^7.4.4"},"_id":"@becaskurtces/gaia-be-spring-parent@1.0.1","gitHead":"03539970825d9ef5d1a7d05125a2feaaec26089e","_nodeVersion":"22.17.1","_npmVersion":"11.5.2","dist":{"integrity":"sha512-+0erDV8ILSz3h+9eUzyDemPO3/grX/zMIZvV1OXUSehVBgiVzoed9GhmuCZ+0UqouBiK8lOEnRGdyKkkvK19dw==","shasum":"7e7d623806b9764e48a34fef091a9a8c0d0f0b74","tarball":"https://registry.npmjs.org/@becaskurtces/gaia-be-spring-parent/-/gaia-be-spring-parent-1.0.1.tgz","fileCount":438,"unpackedSize":1470007,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD4whVqzHmUYdjde0+kEA7Wdk0yKSpUuDEf21HzX8NtjwIgX2qjCYpNk8qd0wMKTETrrUDUrKuPPLSaSuxmzAB9Nn4="}]},"_npmUser":{"name":"becaskurtces","email":"becaskurtces@gmail.com"},"directories":{},"maintainers":[{"name":"becaskurtces","email":"becaskurtces@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gaia-be-spring-parent_1.0.1_1778238169184_0.5555119182807702"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T10:59:06.214Z","modified":"2026-05-08T11:02:49.512Z","1.4.50":"2026-05-07T15:45:19.799Z","1.0.0":"2026-05-08T10:59:06.553Z","1.0.1":"2026-05-08T11:02:49.380Z"},"bugs":{"url":"https://github.com/kurtces/issues"},"author":{"name":"kurtces"},"license":"MIT","homepage":"https://github.com/kurtces","repository":{"type":"git","url":"https://github.com/kurtces","directory":"gaia-be-spring-parent"},"description":"Spring parent POM and starter modules packaged for npm distribution.","maintainers":[{"name":"becaskurtces","email":"becaskurtces@gmail.com"}],"readme":"# Domain Spring Parent\n\nParent POM y Spring Boot Starters para proyectos Domain basados en arquitectura **Clean/Hexagonal** con patrón **CQRS**.\n\n## 📦 Módulos\n\n| Módulo | Descripción |\n|--------|-------------|\n| `gaia-be-spring-parent` | Parent POM con dependencias, plugins y perfiles preconfigurados |\n| `domain-spring-boot-starter` | Código reutilizable (admin, common, config) + autoconfiguración |\n| `domain-spring-boot-starter-test` | Utilidades de test (ArchUnit, BDD/Cucumber) |\n\n## 🚀 Quick Start\n\n### Opción 1: Usar el parent (RECOMENDADO)\n\n```xml\n<parent>\n    <groupId>com.entity.domain</groupId>\n    <artifactId>gaia-be-spring-parent</artifactId>\n    <version>1.4.38</version>\n</parent>\n\n<dependencies>\n    <dependency>\n        <groupId>com.entity.domain</groupId>\n        <artifactId>domain-spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n        <groupId>com.entity.domain</groupId>\n        <artifactId>domain-spring-boot-starter-test</artifactId>\n        <scope>test</scope>\n    </dependency>\n</dependencies>\n```\n\n### Opción 2: Solo el starter (si ya tienes otro parent)\n\n```xml\n<dependency>\n    <groupId>com.entity.domain</groupId>\n    <artifactId>domain-spring-boot-starter</artifactId>\n    <version>1.4.38</version>\n</dependency>\n```\n\n## 📋 Requisitos\n\n- **Java 21+**\n- **Spring Boot 3.5.x**\n- **Maven 3.x**\n\n## 📖 Documentación\n\n| Documento | Descripción |\n|-----------|-------------|\n| [domain-spring-boot-starter/README.md](domain-spring-boot-starter/README.md) | Configuraciones y componentes del starter |\n| [domain-spring-boot-starter-test/README.md](domain-spring-boot-starter-test/README.md) | Tests de arquitectura y BDD |\n\n## 🏗️ Arquitectura Esperada\n\nEl starter está diseñado para proyectos que sigan esta estructura:\n\n```\ncom.entity.domain.{module}/\n├── core/                          # Escrituras (Command)\n│   ├── domain/                    # Entidades, Value Objects, Servicios de dominio\n│   │   └── service/\n│   │       ├── in/                # Puertos de entrada (interfaces)\n│   │       └── out/               # Puertos de salida (interfaces)\n│   ├── application/               # Casos de uso, servicios de aplicación\n│   │   └── service/               # Implementaciones de domain.service.in\n│   └── adapter/\n│       ├── in/                    # Adaptadores de entrada\n│       │   ├── rest/              # Controllers REST\n│       │   └── kafka/             # Consumers Kafka\n│       └── out/                   # Adaptadores de salida\n│           ├── mongodb/           # Repositorios MongoDB\n│           │   └── service/       # Implementaciones de domain.service.out\n│           └── kafka/             # Producers Kafka\n├── view/                          # Lecturas (Query) - misma estructura que core\n│   ├── domain/\n│   ├── application/\n│   └── adapter/\n├── common/                        # (opcional) Código compartido del módulo\n└── config/                        # (opcional) Configuraciones específicas del módulo\n```\n\n## 🎯 Perfiles Maven\n\nHeredados automáticamente al usar `gaia-be-spring-parent`:\n\n| Perfil | Comando | Descripción |\n|--------|---------|-------------|\n| `local` | `mvn clean compile -Plocal` | Formatea código y organiza imports |\n| `archunit-test` | `mvn verify -Dmaven.main.skip -Parchunit-test` | Solo tests de arquitectura |\n| `junit-test` | `mvn verify -Dmaven.main.skip -Pjunit-test` | Tests unitarios + cobertura JaCoCo |\n| `bdd-test` | `mvn verify -Dmaven.main.skip -Pbdd-test` | Tests BDD/Cucumber + reports |\n| `bdd-pre` | `mvn verify -Dmaven.main.skip -Pbdd-pre` | BDD en entorno PRE |\n| `sbom` | `mvn clean package -Psbom` | Genera SBOM con CycloneDX |\n\n## 🔧 Build & Publish\n\n### Usando el script (recomendado)\n\n```bash\n# Ver ayuda\n./scripts/build-and-publish.sh --help\n\n# Publicar en local\n./scripts/build-and-publish.sh --local --snapshot\n\n# Publicar RC en remoto (crea tag en git)\n./scripts/build-and-publish.sh --remote --rc 1\n\n# Publicar versión final en remoto (crea tag en git)\n./scripts/build-and-publish.sh --remote --release\n```\n\n### Manualmente\n\n```bash\n# Compilar\nmvn clean compile\n\n# Tests\nmvn clean test\n\n# Instalar en local\nmvn clean install\n\n# Publicar en remoto\nmvn clean deploy\n```\n\n## 📝 Versionado\n\n- **SNAPSHOT**: Versiones de desarrollo (`1.2.0-YYYYMMDDHHMMSS-SNAPSHOT`)\n- **RC**: Release Candidates (`1.2.0-RC.1`, `1.2.0-RC.2`)\n- **Release**: Versiones finales (`1.2.0`)\n\nLos tags de git se crean automáticamente para RC y Release al publicar en remoto.\n\n## 🏢 Repositorios Maven\n\nEl parent configura automáticamente los repositorios de Azure DevOps:\n\n- **Snapshots**: `https://pkgs.dev.azure.com/devopsentity/.../snapshots`\n- **Releases**: `https://pkgs.dev.azure.com/devopsentity/.../releases`\n\n## 📚 Dependencias Principales\n\n| Categoría | Dependencias |\n|-----------|-------------|\n| **Core** | Spring Boot 3.5.x, Spring Cloud 2025.0.0 |\n| **Persistence** | MongoDB, Mongock |\n| **Messaging** | Kafka, Confluent Schema Registry, Avro |\n| **Docs** | SpringDoc OpenAPI |\n| **Mapping** | MapStruct, Lombok |\n| **Testing** | JUnit 5, Mockito, ArchUnit, Cucumber, RestAssured |\n| **AWS** | Spring Cloud AWS, AWS SDK v2 |\n","readmeFilename":"README.md"}