da-proj 1.0.0 → 1.1.1

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.md CHANGED
@@ -356,12 +356,39 @@ da-proj/
356
356
  └── package.json
357
357
  ```
358
358
 
359
+ ### Publicar en NPM
360
+
361
+ Este proyecto usa GitHub Actions para publicar automáticamente en npm cuando cambias la versión en `package.json`.
362
+
363
+ **Proceso rápido:**
364
+
365
+ ```bash
366
+ # 1. Actualizar versión
367
+ npm version patch # o minor, o major
368
+
369
+ # 2. Actualizar CHANGELOG.md con los cambios
370
+
371
+ # 3. Commit y push
372
+ git add package.json CHANGELOG.md
373
+ git commit -m "chore: bump version to X.X.X"
374
+ git push origin main
375
+
376
+ # 4. El workflow automáticamente:
377
+ # - Detecta el cambio de versión
378
+ # - Compila el paquete
379
+ # - Publica en npm
380
+ # - Crea un git tag
381
+ ```
382
+
383
+ 📖 **Guía completa:** Ver [docs/NPM-PUBLISH.md](docs/NPM-PUBLISH.md)
384
+
359
385
  ---
360
386
 
361
387
  ## 📚 Documentación
362
388
 
363
389
  - [Setup de Secrets](docs/SETUP-SECRETS.md) - Guía detallada de configuración
364
390
  - [GitHub Sync](docs/GITHUB-SYNC.md) - Sincronización entre dispositivos
391
+ - [Publicación en NPM](docs/NPM-PUBLISH.md) - Automatización de publicaciones
365
392
  - [Workflow Explicado](docs/WORKFLOW-EXPLICADO.md) - Cómo funciona GitHub Actions
366
393
  - [Arquitectura](src/README.md) - Estructura del código
367
394
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "da-proj",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "CLI tool to setup portfolio project metadata with automatic GitHub Actions sync",
5
5
  "bin": {
6
6
  "da-proj": "./src/index.ts"
package/src/README.md CHANGED
@@ -1,190 +1,190 @@
1
- # Arquitectura del Proyecto
2
-
3
- ## Estructura de Carpetas
4
-
5
- ```
6
- src/
7
- ├── commands/ # Comandos del CLI
8
- │ ├── init.ts # Comando --init (inicializar proyecto)
9
- │ └── secrets.ts # Comando --secrets (configurar GitHub secrets)
10
-
11
- ├── generators/ # Generadores de archivos
12
- │ ├── mdx.ts # Genera .project-metadata.mdx
13
- │ ├── readme.ts # Genera README.md
14
- │ ├── schema.ts # Genera .project-schema.json
15
- │ └── workflow.ts # Genera GitHub Actions workflow
16
-
17
- ├── utils/ # Utilidades compartidas
18
- │ ├── config.ts # Manejo de configuración global
19
- │ ├── github.ts # Funciones de GitHub CLI
20
- │ └── logger.ts # Logger con colores
21
-
22
- ├── types/ # Definiciones de tipos TypeScript
23
- │ └── index.ts # Todos los tipos e interfaces
24
-
25
- └── index.ts # Punto de entrada principal
26
- ```
27
-
28
- ## Flujo de Ejecución
29
-
30
- ### Comando `--init`
31
-
32
- ```
33
- index.ts
34
- └─> initCommand() [commands/init.ts]
35
- ├─> Recopila información del usuario (prompts)
36
- ├─> Crea ProjectMetadata
37
- ├─> generateMDX() [generators/mdx.ts]
38
- ├─> generateWorkflow() [generators/workflow.ts]
39
- ├─> generateReadme() [generators/readme.ts]
40
- ├─> generateSchema() [generators/schema.ts]
41
- └─> Escribe archivos al disco
42
- ```
43
-
44
- ### Comando `--secrets`
45
-
46
- ```
47
- index.ts
48
- └─> secretsCommand() [commands/secrets.ts]
49
- ├─> checkGitHubCLI() [utils/github.ts]
50
- ├─> getExistingSecrets() [utils/github.ts]
51
- ├─> readGlobalConfig() [utils/config.ts]
52
- ├─> Selecciona o crea perfil
53
- ├─> saveGlobalConfig() [utils/config.ts]
54
- └─> setGitHubSecret() [utils/github.ts]
55
- ```
56
-
57
- ## Módulos
58
-
59
- ### commands/
60
- Contiene la lógica de cada comando del CLI. Cada comando es independiente y puede ser ejecutado por separado.
61
-
62
- **Responsabilidades:**
63
- - Interactuar con el usuario (prompts)
64
- - Orquestar llamadas a utils y generators
65
- - Manejar errores específicos del comando
66
-
67
- ### generators/
68
- Funciones puras que generan contenido de archivos. No tienen efectos secundarios.
69
-
70
- **Responsabilidades:**
71
- - Generar strings con el contenido de archivos
72
- - Formatear metadata en diferentes formatos (MDX, YAML, JSON)
73
-
74
- ### utils/
75
- Funciones de utilidad compartidas entre comandos.
76
-
77
- **Responsabilidades:**
78
- - Interactuar con APIs externas (GitHub CLI)
79
- - Leer/escribir configuración
80
- - Logging y formateo de mensajes
81
-
82
- ### types/
83
- Definiciones de tipos TypeScript compartidas en todo el proyecto.
84
-
85
- **Responsabilidades:**
86
- - Definir interfaces y tipos
87
- - Mantener consistencia de tipos
88
-
89
- ## Agregar Nuevos Comandos
90
-
91
- Para agregar un nuevo comando (ej: `--update`):
92
-
93
- 1. **Crear el comando:**
94
- ```typescript
95
- // src/commands/update.ts
96
- export async function updateCommand() {
97
- // Tu lógica aquí
98
- }
99
- ```
100
-
101
- 2. **Agregar al index.ts:**
102
- ```typescript
103
- import { updateCommand } from "./commands/update.js";
104
-
105
- // En parseArgs:
106
- options: {
107
- // ...
108
- update: { type: "boolean", short: "u" },
109
- }
110
-
111
- // En main():
112
- if (args.values.update) {
113
- await updateCommand();
114
- process.exit(0);
115
- }
116
- ```
117
-
118
- 3. **Actualizar help:**
119
- ```typescript
120
- ${colors.bright}OPTIONS:${colors.reset}
121
- // ...
122
- -u, --update Update existing metadata
123
- ```
124
-
125
- ## Agregar Nuevos Generadores
126
-
127
- Para agregar un nuevo generador (ej: `CONTRIBUTING.md`):
128
-
129
- 1. **Crear el generador:**
130
- ```typescript
131
- // src/generators/contributing.ts
132
- export function generateContributing(): string {
133
- return `# Contributing Guide...`;
134
- }
135
- ```
136
-
137
- 2. **Usar en comando:**
138
- ```typescript
139
- // src/commands/init.ts
140
- import { generateContributing } from "../generators/contributing.js";
141
-
142
- // En initCommand():
143
- await writeFile("CONTRIBUTING.md", generateContributing());
144
- ```
145
-
146
- ## Principios de Diseño
147
-
148
- ### 1. Separación de Responsabilidades
149
- Cada módulo tiene una responsabilidad clara y única.
150
-
151
- ### 2. Funciones Puras
152
- Los generators son funciones puras sin efectos secundarios.
153
-
154
- ### 3. Composición
155
- Los comandos componen funciones de utils y generators.
156
-
157
- ### 4. Tipos Fuertes
158
- Todo está tipado con TypeScript para mayor seguridad.
159
-
160
- ### 5. Modularidad
161
- Fácil agregar nuevos comandos, generators o utils sin modificar código existente.
162
-
163
- ## Testing (Futuro)
164
-
165
- Estructura sugerida para tests:
166
-
167
- ```
168
- tests/
169
- ├── commands/
170
- │ ├── init.test.ts
171
- │ └── secrets.test.ts
172
- ├── generators/
173
- │ ├── mdx.test.ts
174
- │ └── workflow.test.ts
175
- └── utils/
176
- ├── config.test.ts
177
- └── github.test.ts
178
- ```
179
-
180
- ## Dependencias
181
-
182
- - `@inquirer/prompts`: Prompts interactivos
183
- - `gray-matter`: Parsing de MDX (solo en workflow generado)
184
- - `bun`: Runtime
185
-
186
- ## Notas
187
-
188
- - Todos los imports usan `.js` extension (requerido por ES modules)
189
- - El shebang `#!/usr/bin/env bun` está solo en `src/index.ts`
190
- - La configuración global se guarda en `~/.da-proj-config.json`
1
+ # Arquitectura del Proyecto
2
+
3
+ ## Estructura de Carpetas
4
+
5
+ ```
6
+ src/
7
+ ├── commands/ # Comandos del CLI
8
+ │ ├── init.ts # Comando --init (inicializar proyecto)
9
+ │ └── secrets.ts # Comando --secrets (configurar GitHub secrets)
10
+
11
+ ├── generators/ # Generadores de archivos
12
+ │ ├── mdx.ts # Genera .project-metadata.mdx
13
+ │ ├── readme.ts # Genera README.md
14
+ │ ├── schema.ts # Genera .project-schema.json
15
+ │ └── workflow.ts # Genera GitHub Actions workflow
16
+
17
+ ├── utils/ # Utilidades compartidas
18
+ │ ├── config.ts # Manejo de configuración global
19
+ │ ├── github.ts # Funciones de GitHub CLI
20
+ │ └── logger.ts # Logger con colores
21
+
22
+ ├── types/ # Definiciones de tipos TypeScript
23
+ │ └── index.ts # Todos los tipos e interfaces
24
+
25
+ └── index.ts # Punto de entrada principal
26
+ ```
27
+
28
+ ## Flujo de Ejecución
29
+
30
+ ### Comando `--init`
31
+
32
+ ```
33
+ index.ts
34
+ └─> initCommand() [commands/init.ts]
35
+ ├─> Recopila información del usuario (prompts)
36
+ ├─> Crea ProjectMetadata
37
+ ├─> generateMDX() [generators/mdx.ts]
38
+ ├─> generateWorkflow() [generators/workflow.ts]
39
+ ├─> generateReadme() [generators/readme.ts]
40
+ ├─> generateSchema() [generators/schema.ts]
41
+ └─> Escribe archivos al disco
42
+ ```
43
+
44
+ ### Comando `--secrets`
45
+
46
+ ```
47
+ index.ts
48
+ └─> secretsCommand() [commands/secrets.ts]
49
+ ├─> checkGitHubCLI() [utils/github.ts]
50
+ ├─> getExistingSecrets() [utils/github.ts]
51
+ ├─> readGlobalConfig() [utils/config.ts]
52
+ ├─> Selecciona o crea perfil
53
+ ├─> saveGlobalConfig() [utils/config.ts]
54
+ └─> setGitHubSecret() [utils/github.ts]
55
+ ```
56
+
57
+ ## Módulos
58
+
59
+ ### commands/
60
+ Contiene la lógica de cada comando del CLI. Cada comando es independiente y puede ser ejecutado por separado.
61
+
62
+ **Responsabilidades:**
63
+ - Interactuar con el usuario (prompts)
64
+ - Orquestar llamadas a utils y generators
65
+ - Manejar errores específicos del comando
66
+
67
+ ### generators/
68
+ Funciones puras que generan contenido de archivos. No tienen efectos secundarios.
69
+
70
+ **Responsabilidades:**
71
+ - Generar strings con el contenido de archivos
72
+ - Formatear metadata en diferentes formatos (MDX, YAML, JSON)
73
+
74
+ ### utils/
75
+ Funciones de utilidad compartidas entre comandos.
76
+
77
+ **Responsabilidades:**
78
+ - Interactuar con APIs externas (GitHub CLI)
79
+ - Leer/escribir configuración
80
+ - Logging y formateo de mensajes
81
+
82
+ ### types/
83
+ Definiciones de tipos TypeScript compartidas en todo el proyecto.
84
+
85
+ **Responsabilidades:**
86
+ - Definir interfaces y tipos
87
+ - Mantener consistencia de tipos
88
+
89
+ ## Agregar Nuevos Comandos
90
+
91
+ Para agregar un nuevo comando (ej: `--update`):
92
+
93
+ 1. **Crear el comando:**
94
+ ```typescript
95
+ // src/commands/update.ts
96
+ export async function updateCommand() {
97
+ // Tu lógica aquí
98
+ }
99
+ ```
100
+
101
+ 2. **Agregar al index.ts:**
102
+ ```typescript
103
+ import { updateCommand } from "./commands/update.js";
104
+
105
+ // En parseArgs:
106
+ options: {
107
+ // ...
108
+ update: { type: "boolean", short: "u" },
109
+ }
110
+
111
+ // En main():
112
+ if (args.values.update) {
113
+ await updateCommand();
114
+ process.exit(0);
115
+ }
116
+ ```
117
+
118
+ 3. **Actualizar help:**
119
+ ```typescript
120
+ ${colors.bright}OPTIONS:${colors.reset}
121
+ // ...
122
+ -u, --update Update existing metadata
123
+ ```
124
+
125
+ ## Agregar Nuevos Generadores
126
+
127
+ Para agregar un nuevo generador (ej: `CONTRIBUTING.md`):
128
+
129
+ 1. **Crear el generador:**
130
+ ```typescript
131
+ // src/generators/contributing.ts
132
+ export function generateContributing(): string {
133
+ return `# Contributing Guide...`;
134
+ }
135
+ ```
136
+
137
+ 2. **Usar en comando:**
138
+ ```typescript
139
+ // src/commands/init.ts
140
+ import { generateContributing } from "../generators/contributing.js";
141
+
142
+ // En initCommand():
143
+ await writeFile("CONTRIBUTING.md", generateContributing());
144
+ ```
145
+
146
+ ## Principios de Diseño
147
+
148
+ ### 1. Separación de Responsabilidades
149
+ Cada módulo tiene una responsabilidad clara y única.
150
+
151
+ ### 2. Funciones Puras
152
+ Los generators son funciones puras sin efectos secundarios.
153
+
154
+ ### 3. Composición
155
+ Los comandos componen funciones de utils y generators.
156
+
157
+ ### 4. Tipos Fuertes
158
+ Todo está tipado con TypeScript para mayor seguridad.
159
+
160
+ ### 5. Modularidad
161
+ Fácil agregar nuevos comandos, generators o utils sin modificar código existente.
162
+
163
+ ## Testing (Futuro)
164
+
165
+ Estructura sugerida para tests:
166
+
167
+ ```
168
+ tests/
169
+ ├── commands/
170
+ │ ├── init.test.ts
171
+ │ └── secrets.test.ts
172
+ ├── generators/
173
+ │ ├── mdx.test.ts
174
+ │ └── workflow.test.ts
175
+ └── utils/
176
+ ├── config.test.ts
177
+ └── github.test.ts
178
+ ```
179
+
180
+ ## Dependencias
181
+
182
+ - `@inquirer/prompts`: Prompts interactivos
183
+ - `gray-matter`: Parsing de MDX (solo en workflow generado)
184
+ - `bun`: Runtime
185
+
186
+ ## Notas
187
+
188
+ - Todos los imports usan `.js` extension (requerido por ES modules)
189
+ - El shebang `#!/usr/bin/env bun` está solo en `src/index.ts`
190
+ - La configuración global se guarda en `~/.da-proj-config.json`