{"_id":"@cadriciel/starter","name":"@cadriciel/starter","dist-tags":{"latest":"2.1.0"},"versions":{"2.1.0":{"name":"@cadriciel/starter","version":"2.1.0","description":"CLI pour créer des projets Cadriciel (Cerema)","main":"lib/init.js","bin":{"cadriciel-starter":"bin/cli.js","cad":"bin/cli.js"},"scripts":{"test":"echo \"No tests yet\" && exit 0"},"keywords":["cadriciel","starter","cli","template","cerema"],"author":{"name":"Cerema"},"license":"ISC","dependencies":{"@cadriciel/starter-node":"file:./starter-bun","@cadriciel/starter-springboot":"file:./starter-springboot","@cadriciel/starter-python":"file:./starter-python","chalk":"^4.1.2","commander":"^11.1.0","ora":"^5.4.1"},"publishConfig":{"access":"public"},"_id":"@cadriciel/starter@2.1.0","gitHead":"c21a154600f55211f091867807369ec911817837","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-O+akQGhSl/SbvsABYvr4ERATX/y2V8VNLxrqXdxNxnf9pB1mPtszgJy3IXt5iMIaS0vikmAr821z2dpN6PFmfQ==","shasum":"ce8f9f779714e97b2267a0dace3207ba3cecf73b","tarball":"https://registry.npmjs.org/@cadriciel/starter/-/starter-2.1.0.tgz","fileCount":4,"unpackedSize":20866,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICWeW0pis+2ed0bXG3wCotvigF9kxo6i6oWw9DqhTSumAiBX0ULM4jSM974nS/yfHFQLN27PsKyPETv6ZQdBIFaFTw=="}]},"_npmUser":{"name":"stephane.zucatti","email":"stephane.zucatti@me.com"},"directories":{},"maintainers":[{"name":"stephane.zucatti","email":"stephane.zucatti@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/starter_2.1.0_1776335450594_0.39217525321615243"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T10:30:50.445Z","2.1.0":"2026-04-16T10:30:50.714Z","modified":"2026-04-16T10:30:50.987Z"},"maintainers":[{"name":"stephane.zucatti","email":"stephane.zucatti@me.com"}],"description":"CLI pour créer des projets Cadriciel (Cerema)","keywords":["cadriciel","starter","cli","template","cerema"],"author":{"name":"Cerema"},"license":"ISC","readme":"# Cadriciel Starter - Architecture Modulaire\n\nCLI et templates pour créer des projets Cadriciel (Cerema).\n\n## Packages\n\n| Package | Description | Version |\n|---------|-------------|---------|\n| `@cadriciel/starter` | CLI orchestrateur | 2.0.0 |\n| `@cadriciel/starter-node` | Template Node.js/Bun fullstack | 1.0.0 |\n| `@cadriciel/starter-springboot` | Template Spring Boot fullstack | 1.0.0 |\n| `@cadriciel/starter-python` | Template Python fullstack | 1.0.0 |\n\n## Structure\n\n```\nstarter/\n├── package.json              # @cadriciel/starter (CLI)\n├── bin/cli.js               # Point d'entrée CLI\n├── lib/init.js              # Logique d'initialisation\n│\n├── starter-bun/             # @cadriciel/starter-node\n│   ├── package.json\n│   ├── index.js\n│   ├── starter.config.json\n│   └── template/\n│       ├── _root/           # Fichiers racine projet\n│       ├── frontend/        # Frontend Angular\n│       └── backend/         # Backend Node.js/Bun\n│\n├── starter-springboot/      # @cadriciel/starter-springboot\n│   ├── package.json\n│   ├── index.js\n│   ├── starter.config.json\n│   └── template/\n│       ├── _root/\n│       ├── frontend/\n│       └── backend/\n│\n└── starter-python/          # @cadriciel/starter-python\n    ├── package.json\n    ├── index.js\n    ├── starter.config.json\n    └── template/\n```\n\n## Installation\n\n```bash\n# Installation globale\nnpm install -g @cadriciel/starter\n\n# Ou via npx (recommandé)\nnpx @cadriciel/starter <template> <name>\n```\n\n## Usage\n\n### Créer un projet\n\n```bash\n# Syntaxe complète\nnpx @cadriciel/starter create springboot MonProjet\nnpx @cadriciel/starter create node MonProjet\nnpx @cadriciel/starter create python MonProjet\n\n# Raccourcis\nnpx @cadriciel/starter springboot MonProjet\nnpx @cadriciel/starter node MonProjet\nnpx @cadriciel/starter python MonProjet\n\n# Alias de commande\ncad springboot MonProjet\n```\n\n### Options\n\n```\n-o, --output <path>   Répertoire de sortie (défaut: ./<projectName>)\n--dry-run             Affiche ce qui serait fait sans créer les fichiers\n--no-git              Ne pas initialiser git\n--no-install          Ne pas installer les dépendances\n--frontend-only       Créer uniquement le frontend\n--backend-only        Créer uniquement le backend\n```\n\n### Lister les templates\n\n```bash\nnpx @cadriciel/starter list\n```\n\n## Principe du renommage\n\nTous les templates utilisent **\"cadriciel\"** comme nom de base.\n\nLors de la création d'un projet \"MonProjet\", le CLI remplace automatiquement:\n\n| Source | Destination |\n|--------|-------------|\n| `cadriciel` | `monprojet` |\n| `Cadriciel` | `MonProjet` |\n| `CADRICIEL` | `MONPROJET` |\n| `fr.cerema.dsi.cadriciel` | `fr.cerema.dsi.monprojet` |\n\n## Développement local\n\n```bash\n# Lier les packages pour développement\ncd starter-bun && npm link && cd ..\ncd starter-springboot && npm link && cd ..\ncd starter-python && npm link && cd ..\n\n# Lier le CLI\nnpm link @cadriciel/starter-node\nnpm link @cadriciel/starter-springboot\nnpm link @cadriciel/starter-python\nnpm link\n\n# Tester\ncadriciel-starter list\ncadriciel-starter springboot TestProject --dry-run\n```\n\n## Publication\n\nLa CI GitLab publie automatiquement les packages sur npm lors:\n- D'un tag de version (`v1.0.0`, `v2.0.1`, etc.)\n- Manuellement depuis la branche `main`\n\n```bash\n# Publication manuelle (si nécessaire)\ncd starter-bun && npm publish --access public && cd ..\ncd starter-springboot && npm publish --access public && cd ..\ncd starter-python && npm publish --access public && cd ..\nnpm publish --access public\n```\n\n## Configuration des templates\n\nChaque template utilise un fichier `starter.config.json` qui définit:\n\n- `options.frontend` - sources du frontend\n- `options.backend` - sources du backend\n- `options.core` - fichiers communs (README, .gitignore, etc.)\n- `hooks` - scripts post-création\n\nExemple:\n\n```json\n{\n  \"name\": \"starter-springboot\",\n  \"description\": \"Starter Cadriciel CEREMA (Spring Boot)\",\n  \"options\": {\n    \"frontend\": {\n      \"sources\": [{ \"src\": \"template/frontend\", \"dest\": \"frontend\" }]\n    },\n    \"backend\": {\n      \"sources\": [{ \"src\": \"template/backend\", \"dest\": \"backend\" }]\n    },\n    \"core\": {\n      \"sources\": [\n        { \"src\": \"template/_root/README.md\", \"dest\": \"README.md\" },\n        { \"src\": \"template/_root/.gitlab-ci.yml\", \"dest\": \".gitlab-ci.yml\" }\n      ]\n    }\n  }\n}\n```\n\n## Intégration Backend Cadriciel\n\nLe `TemplateService` du backend peut utiliser ces packages:\n\n```javascript\nconst nodeTemplate = require('@cadriciel/starter-node');\nconst springbootTemplate = require('@cadriciel/starter-springboot');\n\n// Accéder au répertoire de template\nconst srcDir = springbootTemplate.templateDir;\nconst config = springbootTemplate.config;\n```\n","readmeFilename":"README.md","_rev":"1-f9b124a8cdb777a384394aed173090da"}