@icarusmx/creta 1.0.17 → 1.0.19

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/bin/creta.js CHANGED
@@ -768,7 +768,21 @@ async function startEnunciadosSelectorInteractive() {
768
768
  }
769
769
 
770
770
  console.log("Los enunciados fundamentales son un conjunto de afirmaciones que tienen el propósito de ejercitar el pensamiento orientado a objetos de los estudiantes de Creta. Escogimos estos enunciados porque creemos que exhaustan los conceptos mínimos necesarios para entender el paradigma de la programación orientada a objetos.")
771
- console.log("")
771
+
772
+ // Wait for user to press Enter before showing the list
773
+ const rl = createInterface({
774
+ input: process.stdin,
775
+ output: process.stdout
776
+ })
777
+
778
+ await new Promise((resolve) => {
779
+ rl.question("\nPresiona Enter para ver los enunciados...", () => {
780
+ rl.close()
781
+ resolve()
782
+ })
783
+ })
784
+
785
+ console.clear()
772
786
  console.log("Elige qué enunciado te gustaría explorar:")
773
787
  console.log("")
774
788
 
@@ -789,10 +803,8 @@ async function startEnunciadosSelectorInteractive() {
789
803
  process.stdout.write('\x1b[2J')
790
804
  process.stdout.write('\x1b[H')
791
805
 
792
- console.log("Los enunciados fundamentales son un conjunto de afirmaciones que tienen el propósito de ejercitar el pensamiento orientado a objetos de los estudiantes de Creta. Escogimos estos enunciados porque creemos que exhaustan los conceptos mínimos necesarios para entender el paradigma de la programación orientada a objetos.")
793
- console.log("")
794
- console.log("Elige qué enunciado te gustaría explorar:")
795
- console.log("")
806
+ console.log("Elige qué enunciado te gustaría explorar:")
807
+ console.log("")
796
808
 
797
809
  ENUNCIADOS.forEach((enunciado, index) => {
798
810
  const isSelected = index === selectedIndex
@@ -842,12 +854,14 @@ async function startEnunciadosSelectorInteractive() {
842
854
  try {
843
855
  const lesson1 = new Lesson1SystemDecomposition()
844
856
  await lesson1.start()
857
+ await returnToMainMenu()
845
858
  } catch (error) {
846
859
  console.error("\n❌ Error al ejecutar la lección:", error.message)
847
860
  console.log("\n🚀 Próximamente:")
848
861
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
849
862
  console.log("- Ejercicios prácticos que ilustren el concepto")
850
863
  console.log("- Proyectos específicos para internalizar la idea")
864
+ await returnToMainMenu()
851
865
  }
852
866
  } else if (enunciadoSeleccionado.id === 1) {
853
867
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -856,12 +870,14 @@ async function startEnunciadosSelectorInteractive() {
856
870
  try {
857
871
  const lesson1 = new Lesson1SystemDecomposition()
858
872
  await lesson1.start()
873
+ await returnToMainMenu()
859
874
  } catch (error) {
860
875
  console.error("\n❌ Error al ejecutar la lección:", error.message)
861
876
  console.log("\n🚀 Próximamente:")
862
877
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
863
878
  console.log("- Ejercicios prácticos que ilustren el concepto")
864
879
  console.log("- Proyectos específicos para internalizar la idea")
880
+ await returnToMainMenu()
865
881
  }
866
882
  } else if (enunciadoSeleccionado.id === 2) {
867
883
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -870,12 +886,14 @@ async function startEnunciadosSelectorInteractive() {
870
886
  try {
871
887
  const lesson2 = new Lesson2ObjectRequests()
872
888
  await lesson2.start()
889
+ await returnToMainMenu()
873
890
  } catch (error) {
874
891
  console.error("\n❌ Error al ejecutar la lección:", error.message)
875
892
  console.log("\n🚀 Próximamente:")
876
893
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
877
894
  console.log("- Ejercicios prácticos que ilustren el concepto")
878
895
  console.log("- Proyectos específicos para internalizar la idea")
896
+ await returnToMainMenu()
879
897
  }
880
898
  } else if (enunciadoSeleccionado.id === 3) {
881
899
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -884,12 +902,14 @@ async function startEnunciadosSelectorInteractive() {
884
902
  try {
885
903
  const lesson3 = new Lesson3OnlyWay()
886
904
  await lesson3.start()
905
+ await returnToMainMenu()
887
906
  } catch (error) {
888
907
  console.error("\n❌ Error al ejecutar la lección:", error.message)
889
908
  console.log("\n🚀 Próximamente:")
890
909
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
891
910
  console.log("- Ejercicios prácticos que ilustren el concepto")
892
911
  console.log("- Proyectos específicos para internalizar la idea")
912
+ await returnToMainMenu()
893
913
  }
894
914
  } else if (enunciadoSeleccionado.id === 4) {
895
915
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -898,12 +918,14 @@ async function startEnunciadosSelectorInteractive() {
898
918
  try {
899
919
  const lesson4 = new Lesson4OperationSignatures()
900
920
  await lesson4.start()
921
+ await returnToMainMenu()
901
922
  } catch (error) {
902
923
  console.error("\n❌ Error al ejecutar la lección:", error.message)
903
924
  console.log("\n🚀 Próximamente:")
904
925
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
905
926
  console.log("- Ejercicios prácticos que ilustren el concepto")
906
927
  console.log("- Proyectos específicos para internalizar la idea")
928
+ await returnToMainMenu()
907
929
  }
908
930
  } else if (enunciadoSeleccionado.id === 5) {
909
931
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -912,12 +934,14 @@ async function startEnunciadosSelectorInteractive() {
912
934
  try {
913
935
  const lesson5 = new Lesson5InterfaceSet()
914
936
  await lesson5.start()
937
+ await returnToMainMenu()
915
938
  } catch (error) {
916
939
  console.error("\n❌ Error al ejecutar la lección:", error.message)
917
940
  console.log("\n🚀 Próximamente:")
918
941
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
919
942
  console.log("- Ejercicios prácticos que ilustren el concepto")
920
943
  console.log("- Proyectos específicos para internalizar la idea")
944
+ await returnToMainMenu()
921
945
  }
922
946
  } else if (enunciadoSeleccionado.id === 6) {
923
947
  console.log(`${enunciadoSeleccionado.texto}`)
@@ -926,12 +950,14 @@ async function startEnunciadosSelectorInteractive() {
926
950
  try {
927
951
  const lesson6 = new Lesson6InterfaceDesign()
928
952
  await lesson6.start()
953
+ await returnToMainMenu()
929
954
  } catch (error) {
930
955
  console.error("\n❌ Error al ejecutar la lección:", error.message)
931
956
  console.log("\n🚀 Próximamente:")
932
957
  console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
933
958
  console.log("- Ejercicios prácticos que ilustren el concepto")
934
959
  console.log("- Proyectos específicos para internalizar la idea")
960
+ await returnToMainMenu()
935
961
  }
936
962
  } else {
937
963
  console.log("\n🚀 Próximamente:")
@@ -975,9 +1001,12 @@ async function startEnunciadosSelectorFallback() {
975
1001
 
976
1002
  try {
977
1003
  console.log("Los enunciados fundamentales son un conjunto de afirmaciones que tienen el propósito de ejercitar el pensamiento orientado a objetos de los estudiantes de Creta. Escogimos estos enunciados porque creemos que exhaustan los conceptos mínimos necesarios para entender el paradigma de la programación orientada a objetos.")
978
- console.log("")
979
- console.log("Elige qué enunciado te gustaría explorar:")
980
- console.log("")
1004
+
1005
+ const respuestaEnter = await askQuestion("\nPresiona Enter para ver los enunciados...")
1006
+
1007
+ console.clear()
1008
+ console.log("Elige qué enunciado te gustaría explorar:")
1009
+ console.log("")
981
1010
 
982
1011
  ENUNCIADOS.forEach((enunciado, index) => {
983
1012
  // Format the enunciado text with proper indentation for lists
@@ -1246,6 +1275,34 @@ async function startProyectosSelectorInteractive() {
1246
1275
  })
1247
1276
  }
1248
1277
 
1278
+ async function returnToMainMenu() {
1279
+ const rl = createInterface({
1280
+ input: process.stdin,
1281
+ output: process.stdout
1282
+ })
1283
+
1284
+ const askQuestion = (question) => {
1285
+ return new Promise((resolve) => {
1286
+ rl.question(question, resolve)
1287
+ })
1288
+ }
1289
+
1290
+ console.log("\n🏠 ¿Qué te gustaría hacer ahora?")
1291
+ console.log("1. Volver al menú principal")
1292
+ console.log("2. Salir")
1293
+
1294
+ const respuesta = await askQuestion("\nElige una opción (1-2): ")
1295
+
1296
+ if (respuesta === '1') {
1297
+ rl.close()
1298
+ console.clear()
1299
+ await startMainMenu()
1300
+ } else {
1301
+ console.log("\n¡Hasta la vista! 👋")
1302
+ rl.close()
1303
+ }
1304
+ }
1305
+
1249
1306
  async function startProyectosSelectorFallback() {
1250
1307
  const rl = createInterface({
1251
1308
  input: process.stdin,
@@ -94,7 +94,9 @@ export class Lesson1SystemDecomposition {
94
94
  console.clear()
95
95
  console.log("Descomposición en objetos:")
96
96
 
97
- console.log("\nclass Book {")
97
+ console.log("\n📄 Clase Book:")
98
+ console.log("━".repeat(50))
99
+ console.log("class Book {")
98
100
  console.log(" constructor(title, author, isbn) {")
99
101
  console.log(" this.title = title")
100
102
  console.log(" this.author = author")
@@ -114,10 +116,13 @@ export class Lesson1SystemDecomposition {
114
116
  console.log(" this.isLoaned = false")
115
117
  console.log(" }")
116
118
  console.log("}")
119
+ console.log("━".repeat(50))
117
120
 
118
121
  await this.waitForEnter("\nPresiona Enter para ver User...")
119
122
 
120
- console.log("\nclass User {")
123
+ console.log("\n📄 Clase User:")
124
+ console.log("━".repeat(50))
125
+ console.log("class User {")
121
126
  console.log(" constructor(name, email, maxLoans = 3) {")
122
127
  console.log(" this.name = name")
123
128
  console.log(" this.email = email")
@@ -138,10 +143,13 @@ export class Lesson1SystemDecomposition {
138
143
  console.log(" if (index > -1) this.currentLoans.splice(index, 1)")
139
144
  console.log(" }")
140
145
  console.log("}")
146
+ console.log("━".repeat(50))
141
147
 
142
148
  await this.waitForEnter("\nPresiona Enter para ver Loan...")
143
149
 
144
- console.log("\nclass Loan {")
150
+ console.log("\n📄 Clase Loan:")
151
+ console.log("━".repeat(50))
152
+ console.log("class Loan {")
145
153
  console.log(" constructor(user, book, durationDays = 14) {")
146
154
  console.log(" this.user = user")
147
155
  console.log(" this.book = book")
@@ -257,12 +265,13 @@ export class Lesson1SystemDecomposition {
257
265
  console.log("La descomposición en objetos es difícil porque requiere identificar")
258
266
  console.log("las responsabilidades naturales que se deducen del sistema.")
259
267
 
260
- await this.waitForEnter("\n✨ ¡Lección 1 completada! Presiona Enter para salir...")
268
+ await this.waitForEnter("\n✨ ¡Lección 1 completada! Presiona Enter para continuar...")
261
269
  }
262
270
 
263
271
  async waitForEnter(message) {
264
272
  return new Promise((resolve) => {
265
273
  this.rl.question(message, () => {
274
+ console.log("\n\n") // Add extra spacing after each interaction
266
275
  resolve()
267
276
  })
268
277
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icarusmx/creta",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "Salgamos de este laberinto.",
5
5
  "type": "module",
6
6
  "bin": {