From 4bb14a4ce008cae40a212dfcea062bbd69e9c018 Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Fri, 7 Jul 2023 17:44:04 -0300 Subject: [PATCH 001/212] test agregando un TODO --- todo.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 todo.txt diff --git a/todo.txt b/todo.txt new file mode 100644 index 000000000..e69de29bb From 82187b2450578ac6aa158d1a5d2a2bdbb19f7c12 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Mon, 10 Jul 2023 12:52:08 -0300 Subject: [PATCH 002/212] Probando entorno de trabajo 2 --- todo.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/todo.txt b/todo.txt index e69de29bb..55a72c6b2 100644 --- a/todo.txt +++ b/todo.txt @@ -0,0 +1 @@ +Encontrar el desafío de ponerse el pajarito en la cabeza. From d9d41b32be5c94c0b7146c1ed5ef6cff8bd11d72 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Mon, 10 Jul 2023 15:45:05 -0300 Subject: [PATCH 003/212] Primeros textos --- translations/es-ar.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 6c30ce686..9c37293db 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -658,8 +658,8 @@ model: 'nuevo4': title: Mañic en el cielo description: | - Mañic está facinado con el cielo y le encanta observar todo, principalmente: ¡las estrellas! Ayudalo a cumplir su objetivo. Pista: Crear un procedimiento (bloque) para cada conjunto de estrellas - clue: 'Hay muchas formas de observar estrellas. Podés empezar por las de la derecha, ¡o podés empezar por arriba! ¿Se te ocurre otra estrategia? Pensala siempre antes de programar' + Mañic está fascinado con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudalo a observarlas a todas. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. + clue: 'Hay muchas formas de observar estrellas: podés empezar por las de la derecha o podés empezar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre antes de programar' 'nuevo5': title: Yvoty despierta las luciérnagas description: | @@ -776,8 +776,8 @@ model: 'nuevo46': title: Nuevos comandos description: | - Ahora Capy necesita recoger dos latas a su derecha, luego dos más abajo, y una al final. - clue: ¿Viste los procedimientos? Te pueden ayudar a **crear nuevos comandos** para usar **cuantas veces quieras.** + Los inseparables Capy y Guayrá necesitan limpiar su estero. Para eso se propusieron recoger primero las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. ¿Los ayudás con esta tarea y así cuidar su humedal? + clue: ¿Viste los **procedimientos**? Combinando primitivas podés **crear nuevos comandos** para luego usarlos **cuantas veces quieras.** 'nuevo131': title: Reciclando papeles description: | From d3c0f0159f1debeb1f9278989bca31f018e0303a Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Wed, 12 Jul 2023 13:57:54 -0300 Subject: [PATCH 004/212] =?UTF-8?q?agregados=20los=20primeros=205=20desaf?= =?UTF-8?q?=C3=ADos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 9c37293db..4ef92596e 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -658,19 +658,23 @@ model: 'nuevo4': title: Mañic en el cielo description: | - Mañic está fascinado con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudalo a observarlas a todas. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. - clue: 'Hay muchas formas de observar estrellas: podés empezar por las de la derecha o podés empezar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre antes de programar' + Mañic está fascinada con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. + clue: 'Hay muchas formas de observar las estrellas: podés empezar por las de la derecha... o podés arrancar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' 'nuevo5': - title: Yvoty despierta las luciérnagas + title: Yvoty despierta a las luciérnagas description: | - Ayudá a Yvoty a despertar todas las luciérnagas. - Pista: creá un procedimiento para despertar todas las luciérnagas de una diagonal. - clue: Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. + Yvoty se propuso, cada mañana, despertar a sus amigas las luciérnagas. Son tantas que necesita una manera eficiente de visitarlas y despertarlas una por una. + clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. + 'nuevo6': + title: Chuy, campeone desordenade + description: | + Nuestre amigue Chuy practica muchos deportes y ha logrado una gran cantidad de victorias, tantas que tiene desparramados sus trofeos por varios lugares. Te pedimos que le ayudes a recogerlos uno por uno. + clue: ¿Hay tareas repetitivas? ¿Qué bloques te ayudan a resolver estas cuestiones comunes?. 'nuevo7': title: La Reparadora de Telescopios description: | - Ayudá a Mañic a reparar todos los telescopios. Pista: podés hacer un procedimiento que tome una fila de telescopios. - clue: Usar muchas veces un procedimiento te ahorra trabajo. + Mañic mantiene sus elementos de astronomía en excelente estado. Ahora mismo necesita reparar todos los telescopios y dejarlos listos para la próxima observación. Cuenta con vos para hacerlo. + clue: Si hacés un procedimiento que recorra y repare una fila de telescopios luego podrías replicar eso en cada fila, ¿Te parece una buena estrategia?. 'nuevo8': title: Mañic y los planetas description: | From 06d253473a8eaf6fc21effb115f91c75b40d0f28 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Thu, 13 Jul 2023 14:56:27 -0300 Subject: [PATCH 005/212] =?UTF-8?q?Hecho=20hasta=20la=20instalaci=C3=B3n?= =?UTF-8?q?=20de=20juegos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 4ef92596e..65f768525 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -674,22 +674,22 @@ model: title: La Reparadora de Telescopios description: | Mañic mantiene sus elementos de astronomía en excelente estado. Ahora mismo necesita reparar todos los telescopios y dejarlos listos para la próxima observación. Cuenta con vos para hacerlo. - clue: Si hacés un procedimiento que recorra y repare una fila de telescopios luego podrías replicar eso en cada fila, ¿Te parece una buena estrategia?. + clue: Si hacés un procedimiento que recorra y repare una fila de telescopios luego podrías replicar eso en cada fila, ¿No te parece una buena estrategia?. 'nuevo8': title: Mañic y los planetas description: | - Mañic tiene que observar todos los planetas de la cuadrícula. Pensá de qué manera puede hacerlo creando los bloques necesarios. - clue: Podés también pensar si existe una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. + Es una noche límpida, ideal para que Mañic pueda observar todos los planetas de la cuadrícula. Acompañala recorriendo todos y observándolos con el telescopio. + clue: Ayudaría mucho que puedas encontrar una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. 'nuevo9': title: Cargando los celus description: | - Yvoty debe cargar con el cargador a los 7 celus que hay en esta escena. Buscá primero el cargador y luego pasá por cada celular cargandolo. Pista: ¿Cuántas partes debería tener tu estrategia? - clue: '' + Yvoty se comprometió a cargar siete celus de sus amigxs pero cuenta solo con un cargador. Programá una solución que haga que vaya primero a buscar el cargador y luego pase por cada uno de los celulares para poder cargarlos. + clue: 'Fijate bien en cuántas partes te conviene dividir tu estrategia...' 'nuevo10': title: Instalando juegos description: | - Yvoty tiene que instalar un juego en 3 compus para divertirse con sus amigos. Los pasos para instalarlo en cada una son: encenderla, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Pista: aprovechá que en cada compu hay que hacer el mismo trabajo. - clue: '' + Hoy hay noche gamer y por eso Yvoty tiene que instalar un juego en 3 compus para ella sus amigos. Para instalarlo hay que: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. + clue: 'Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo...' 'nuevo16': title: Tres telescopios description: | From 65ae3c0df7a0a24a1a235946ccc477d3b9293bb0 Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Fri, 14 Jul 2023 09:59:58 -0300 Subject: [PATCH 006/212] =?UTF-8?q?Creados=20dos=20desaf=C3=ADos=20con=20n?= =?UTF-8?q?ombre=20propio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 65f768525..4ba51e75e 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -683,13 +683,23 @@ model: 'nuevo9': title: Cargando los celus description: | - Yvoty se comprometió a cargar siete celus de sus amigxs pero cuenta solo con un cargador. Programá una solución que haga que vaya primero a buscar el cargador y luego pase por cada uno de los celulares para poder cargarlos. + Yvoty se comprometió a cargar siete celus de sus amigues pero cuenta solo con un cargador. Programá una solución que haga que vaya primero a buscar el cargador y luego pase por cada uno de los celulares para poder cargarlos. clue: 'Fijate bien en cuántas partes te conviene dividir tu estrategia...' 'nuevo10': title: Instalando juegos description: | Hoy hay noche gamer y por eso Yvoty tiene que instalar un juego en 3 compus para ella sus amigos. Para instalarlo hay que: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. clue: 'Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo...' + 'nuevo13': + title: Chuy y la pelota indecisa + description: | + Chuy quedó emocionade del Mundial de fútbol y quiere emular a sus héroes practicando tiros libres. Pero la pelota posee magia extra y a veces decide desaparecer. Hacé que Chuy pueda patear la pelota según ésta aparezca o no en la casilla de la derecha. + clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear la pelota, Chuy debe estar en la misma casilla que aquella.' + 'nuevo14': + title: ¿Pelota o paleta? + description: | + Sabemos que Chuy gusta de todos los deportes, pero esto ya es demasiado! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! + clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' 'nuevo16': title: Tres telescopios description: | @@ -780,7 +790,7 @@ model: 'nuevo46': title: Nuevos comandos description: | - Los inseparables Capy y Guayrá necesitan limpiar su estero. Para eso se propusieron recoger primero las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. ¿Los ayudás con esta tarea y así cuidar su humedal? + Los inseparables Capy y Guyrá necesitan limpiar su estero. Para eso se propusieron recoger primero las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. ¿Los ayudás con esta tarea y así cuidar su humedal? clue: ¿Viste los **procedimientos**? Combinando primitivas podés **crear nuevos comandos** para luego usarlos **cuantas veces quieras.** 'nuevo131': title: Reciclando papeles From 15cdbbd7f4d633744757aeaedfd6eb02e75a754a Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Fri, 14 Jul 2023 10:11:04 -0300 Subject: [PATCH 007/212] =?UTF-8?q?retoques=20de=20presentaci=C3=B3n=20de?= =?UTF-8?q?=20personajes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 4ba51e75e..93b63bc30 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -658,12 +658,12 @@ model: 'nuevo4': title: Mañic en el cielo description: | - Mañic está fascinada con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. + La ñandú Mañic está fascinada con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas con su mirada científica. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. clue: 'Hay muchas formas de observar las estrellas: podés empezar por las de la derecha... o podés arrancar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' 'nuevo5': title: Yvoty despierta a las luciérnagas description: | - Yvoty se propuso, cada mañana, despertar a sus amigas las luciérnagas. Son tantas que necesita una manera eficiente de visitarlas y despertarlas una por una. + La yaguareté Yvoty se propuso, cada mañana, despertar a sus amigas las luciérnagas. Son tantas que necesita una manera eficiente de visitarlas y despertarlas una por una. clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. 'nuevo6': title: Chuy, campeone desordenade From 1a2b8aca8a6dbebbe827caf7c1e485042f9066e4 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Thu, 20 Jul 2023 13:08:51 -0300 Subject: [PATCH 008/212] Hasta las latas --- translations/es-ar.yaml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 93b63bc30..a082fb629 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -743,26 +743,25 @@ model: Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". 'nuevo38': title: Las estrellas de Mañic - description: | - En los caminos de Mañic suele haber muchos obstáculos que se interponen, impidiendo que pueda ir a observar su estrella favorita. Si eso pasa, debe tomar el largo y agotador camino sinuoso. Ayudá a Mañic a observar la estrella al final del camino. ¡No te olvides de descargar tu solución! (la vas a necesitar más adelante). - clue: ¿Cuántos posibles caminos hacia la estrella existen? ¿Todos ellos se pueden recorrer siempre o depende de algo? + description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. + clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? 'nuevo39': - title: Los caminos de Mañic + title: La estrella más bella description: | - Mañic escuchó la ubicación de otra hermosa estrella para observar, aunque el camino es más largo y peligroso. El camino no siempre está libre de obstáculos. - clue: ¿Hay algún patrón que se repita? ¿Nos podría ayudar la solución del desafío anterior (Las estrellas de Mañic)? + Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. + clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? 'nuevo40': title: | Hilera de latas description: | - “Nada mejor que despertar por la mañana y salir a mantener un mundo mas limpio” piensa Capy. Ayudá a Capy a recoger todas las latas que encuentre a su paso. No te olvides de descargar tu solución (la vas a necesitar más adelante). - clue: ¿Cómo puede saber Capy fácilmente si hay una hilera de latas? ¿Qué debería hacer si no hay ninguna lata? + “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. + clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? 'nuevo41': title: | - Muchas hileras de latas + Turistas latosos description: | - Hoy es un día especial para ayudar a mantener el planeta mas limpio... pero hay personas que tiran las latas al piso. Ayudá a Capy a levantar las latas de todas las hileras que encuentre a su paso. - clue: ¿Hay alguna tarea que Capy tenga que realizar varias veces? ¿Nos podría ayudar la solución del desafío anterior (Hilera de latas)? + Increíblmente, la cantidad de latas desechadas por les turistas aumenta cada día. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. + clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo42': title: | A veces latas, a veces papeles From 9569a43b9c7e656724923088c2ea68db7df2f3ad Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Sat, 22 Jul 2023 14:26:32 -0300 Subject: [PATCH 009/212] =?UTF-8?q?Mejorando=20consignas=20Ma=C3=B1ic=20y?= =?UTF-8?q?=20estrellas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index a082fb629..1079d7bf0 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -743,18 +743,19 @@ model: Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". 'nuevo38': title: Las estrellas de Mañic - description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. - clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? + description: | + La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. + clue: ¿Cuántos caminos posibles existen para llegar a la estrella?. ¿Qué cambia en cada uno de ellos? 'nuevo39': title: La estrella más bella description: | - Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. + Mañic encontró la ubicación de una hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? 'nuevo40': title: | Hilera de latas description: | - “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. + “Nada mejor que salir cada mañana a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? 'nuevo41': title: | From fd896ca0344bef553c4aa480d9a838265a77e14a Mon Sep 17 00:00:00 2001 From: Javier Castrillo Date: Wed, 26 Jul 2023 13:38:15 -0300 Subject: [PATCH 010/212] Corrigiendo errores de tipeo --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 1079d7bf0..9e9b6d36c 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -761,7 +761,7 @@ model: title: | Turistas latosos description: | - Increíblmente, la cantidad de latas desechadas por les turistas aumenta cada día. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. + Increíblemente, la cantidad de latas desechadas por les turistes aumenta cada día. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo42': title: | From 47f444039518fdce589dfd9cff290fabb9add64b Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Fri, 28 Jul 2023 11:16:45 -0300 Subject: [PATCH 011/212] arrancando el 15 --- translations/es-ar.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 9e9b6d36c..01a4aea78 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -700,6 +700,11 @@ model: description: | Sabemos que Chuy gusta de todos los deportes, pero esto ya es demasiado! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' + 'nuevo15': + title: Chuy juega por toda la cancha + description: | + A Chuy le encanta involucrarse en todas las jugadas de sus equipos, participando tanto si están armando un movimiento en horizontal o en vertical. + clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' 'nuevo16': title: Tres telescopios description: | From df7260e373663c3681790b0e3f755e4c1119c6f7 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Mon, 31 Jul 2023 14:47:35 -0300 Subject: [PATCH 012/212] =?UTF-8?q?Incluye=20primer=20desaf=C3=ADo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 74 +++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 01a4aea78..b533a16f4 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -655,6 +655,11 @@ model: Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. Fijate si funciona o qué hay que arreglar. clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una + 'nuevo1': + title: Capy y Guyrá + description: | + El carpincho Capy y su inseparable amigo Guyrá tienen una forma muy particular de recorrer los esteros: Guyrá está siempre sobre la cabeza de Capy. En esta oportunidad, te toca a vos hacer que Capy pase a buscar a su amigo y lo suba para emprender juntos una nueva aventura. + clue: 'Fijate bien el orden de las primitivas, qué cosa tenés que hacer primero y qué cosa va después' 'nuevo4': title: Mañic en el cielo description: | @@ -671,14 +676,14 @@ model: Nuestre amigue Chuy practica muchos deportes y ha logrado una gran cantidad de victorias, tantas que tiene desparramados sus trofeos por varios lugares. Te pedimos que le ayudes a recogerlos uno por uno. clue: ¿Hay tareas repetitivas? ¿Qué bloques te ayudan a resolver estas cuestiones comunes?. 'nuevo7': - title: La Reparadora de Telescopios + title: La reparadora de telescopios description: | - Mañic mantiene sus elementos de astronomía en excelente estado. Ahora mismo necesita reparar todos los telescopios y dejarlos listos para la próxima observación. Cuenta con vos para hacerlo. - clue: Si hacés un procedimiento que recorra y repare una fila de telescopios luego podrías replicar eso en cada fila, ¿No te parece una buena estrategia?. + Mañic mantiene sus elementos de astronomía en excelente estado. Ahora mismo necesita reparar todos los telescopios y dejarlos listos para la próxima observación. Cuenta con vos para que pueda hacerlo de manera eficaz. + clue: Si hacés un procedimiento que recorra y repare una fila de telescopios, luego podrías replicar eso en cada fila, ¿No te parece una buena estrategia?. 'nuevo8': title: Mañic y los planetas description: | - Es una noche límpida, ideal para que Mañic pueda observar todos los planetas de la cuadrícula. Acompañala recorriendo todos y observándolos con el telescopio. + Es una noche límpida, ideal para que Mañic pueda observar todos los planetas que se ven desde su campo. Acompañala recorriendo todos y observándolos con el telescopio. clue: Ayudaría mucho que puedas encontrar una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. 'nuevo9': title: Cargando los celus @@ -688,23 +693,50 @@ model: 'nuevo10': title: Instalando juegos description: | - Hoy hay noche gamer y por eso Yvoty tiene que instalar un juego en 3 compus para ella sus amigos. Para instalarlo hay que: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. + Hoy hay noche gamer!... Yvoty debe instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para jugar. El procedimiento completo de instalación comprende: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. clue: 'Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo...' 'nuevo13': title: Chuy y la pelota indecisa description: | - Chuy quedó emocionade del Mundial de fútbol y quiere emular a sus héroes practicando tiros libres. Pero la pelota posee magia extra y a veces decide desaparecer. Hacé que Chuy pueda patear la pelota según ésta aparezca o no en la casilla de la derecha. + Chuy quedó emocionade del Mundial de fútbol y quiere emular a sus héroes practicando tiros libres. Pero la pelota posee magia extra y a veces decide desaparecer. Hacé que Chuy pueda patear la pelota según esta aparezca o no en la casilla de la derecha. clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear la pelota, Chuy debe estar en la misma casilla que aquella.' 'nuevo14': title: ¿Pelota o paleta? description: | - Sabemos que Chuy gusta de todos los deportes, pero esto ya es demasiado! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! + Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' + 'nuevo38': + title: Las estrellas de Mañic + description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. + clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? + 'nuevo39': + title: La estrella más bella + description: | + Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. + clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? + 'nuevo40': + title: | + Hilera de latas + description: | + “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. + clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? + 'nuevo41': + title: | + Turistas latosos + description: | + Increíblmente, la cantidad de latas desechadas por les turistas aumenta constantemente. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. + clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo15': - title: Chuy juega por toda la cancha + title: | + Chuy, jugadore de toda la cancha description: | - A Chuy le encanta involucrarse en todas las jugadas de sus equipos, participando tanto si están armando un movimiento en horizontal o en vertical. - clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' + Ya sabés que Chuy no se quiere perder ni una jugada. Siempre participa del juego, no importa si su equipo esté yendo hacia adelante o trabajando en línea. Acompañale haciendo que se mueva para la derecha o para abajo según se presente la posibilidad. + clue: Cada vez que aprietes el botón **Ejecutar** se generará una nueva jugada que puede ser para la derecha o para abajo. Tiene que haber alguna manera de que Chuy pueda **sensar** si la jugada es de un tipo o de otra... + 'nuevo18': + title: Barrilete cósmico + description: | + Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución tendrás un escenario distinto. + clue: 'Los diferentes caminos posibles... tienen el mismo o distinto largo?' 'nuevo16': title: Tres telescopios description: | @@ -746,28 +778,6 @@ model: clue: | A los procedimientos se les pueden agregar parámetros para que resulten más generales. Por ejemplo, si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazar a los tres por un solo procedimiento que reciba como parámetro la cantidad de latas que queremos recoger a la derecha: "Recoger a la derecha esta cantidad: [cantidad]". Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". - 'nuevo38': - title: Las estrellas de Mañic - description: | - La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. - clue: ¿Cuántos caminos posibles existen para llegar a la estrella?. ¿Qué cambia en cada uno de ellos? - 'nuevo39': - title: La estrella más bella - description: | - Mañic encontró la ubicación de una hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. - clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? - 'nuevo40': - title: | - Hilera de latas - description: | - “Nada mejor que salir cada mañana a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. - clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? - 'nuevo41': - title: | - Turistas latosos - description: | - Increíblemente, la cantidad de latas desechadas por les turistes aumenta cada día. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. - clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo42': title: | A veces latas, a veces papeles From 11b4861c54d871de31134825923793e08fa701d0 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Wed, 2 Aug 2023 14:41:33 -0300 Subject: [PATCH 013/212] =?UTF-8?q?Ordenados=20por=20n=C3=BAmero=20y=20agr?= =?UTF-8?q?egados=20hasta=20el=2017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 62 ++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index b533a16f4..5a3a6dfeb 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -668,7 +668,7 @@ model: 'nuevo5': title: Yvoty despierta a las luciérnagas description: | - La yaguareté Yvoty se propuso, cada mañana, despertar a sus amigas las luciérnagas. Son tantas que necesita una manera eficiente de visitarlas y despertarlas una por una. + Para sacar buenas fotos se necesita una excelente luz natural. Ivoty cuenta con sus amigas las luciérnagas, que le iluminan cualquier escenario... siempre y cuando estén despiertas!. Proponé una solución para que nuestra amiga pueda ir y despertar a todas las luciérnagas, una por una. clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. 'nuevo6': title: Chuy, campeone desordenade @@ -705,47 +705,26 @@ model: description: | Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' - 'nuevo38': - title: Las estrellas de Mañic - description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. - clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? - 'nuevo39': - title: La estrella más bella - description: | - Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. - clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? - 'nuevo40': - title: | - Hilera de latas - description: | - “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. - clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? - 'nuevo41': - title: | - Turistas latosos - description: | - Increíblmente, la cantidad de latas desechadas por les turistas aumenta constantemente. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. - clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo15': title: | Chuy, jugadore de toda la cancha description: | Ya sabés que Chuy no se quiere perder ni una jugada. Siempre participa del juego, no importa si su equipo esté yendo hacia adelante o trabajando en línea. Acompañale haciendo que se mueva para la derecha o para abajo según se presente la posibilidad. clue: Cada vez que aprietes el botón **Ejecutar** se generará una nueva jugada que puede ser para la derecha o para abajo. Tiene que haber alguna manera de que Chuy pueda **sensar** si la jugada es de un tipo o de otra... + 'nuevo16': + title: Alineando telescopios + description: | + Para observar bien las estrellas, los telescopios de Mañic deben estar bien alineados con los astros. No es tarea fácil porque cada vez se ubican en diferentes lugares y también varía la cantidad de telescopios. Acompañá a nuestra científica amiga en la tarea de alinear los telescopios que encuentre en su camino. + clue: 'Fijate primero cómo hacer un procedimiento para **alinear telescopio si es que lo hay**' + 'nuevo17': + title: Yvoty saca buenas fotos. + description: Como buena fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello prueba varias combinaciones de luces, modificando la posición y cantidad de luciérnagas en cada toma. Este desafío te propone trabajar con ella de manera de recorrer la hilera y despertar a la luciérnaga que encuentre, para que pueda iluminar el sendero. + clue: '¿Qué es lo que varía y qué es lo que se mantiene constante en cada ejecución?' 'nuevo18': title: Barrilete cósmico description: | Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución tendrás un escenario distinto. clue: 'Los diferentes caminos posibles... tienen el mismo o distinto largo?' - 'nuevo16': - title: Tres telescopios - description: | - Mañic debe reparar todos los telescopios rotos que aparezcan en las casillas. ¡Pero no siempre aparecen en los mismos lugares ni la misma cantidad de telescopios! Pista: pensá primero cómo harías un procedimiento para reparar un solo telescopio si es que lo hay. - clue: '' - 'nuevo17': - title: Yvoty despierta más luciérnagas - description: Yvoty necesita despertar a las luciérnagas para poder conocer el camino... ¡Pero en cada ejecución cambian de lugar! Podés utlizar los procedimientos y bloques de control. - clue: '' 'nuevo19': title: Súper Yvoty 1 description: | @@ -778,6 +757,27 @@ model: clue: | A los procedimientos se les pueden agregar parámetros para que resulten más generales. Por ejemplo, si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazar a los tres por un solo procedimiento que reciba como parámetro la cantidad de latas que queremos recoger a la derecha: "Recoger a la derecha esta cantidad: [cantidad]". Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". + 'nuevo38': + title: Las estrellas de Mañic + description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. + clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? + 'nuevo39': + title: La estrella más bella + description: | + Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. + clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? + 'nuevo40': + title: | + Hilera de latas + description: | + “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. + clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? + 'nuevo41': + title: | + Turistas latosos + description: | + Increíblmente, la cantidad de latas desechadas por les turistas aumenta constantemente. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. + clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo42': title: | A veces latas, a veces papeles From 08388bd1ea3efa93a5e60b515020bc02e25e3d5e Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Wed, 2 Aug 2023 15:39:45 -0300 Subject: [PATCH 014/212] =?UTF-8?q?Correcciones=20Ivoty=20y=20luci=C3=A9rn?= =?UTF-8?q?agas.=20Llegado=20al=2019?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 5a3a6dfeb..2ebb41d39 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -718,7 +718,7 @@ model: clue: 'Fijate primero cómo hacer un procedimiento para **alinear telescopio si es que lo hay**' 'nuevo17': title: Yvoty saca buenas fotos. - description: Como buena fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello prueba varias combinaciones de luces, modificando la posición y cantidad de luciérnagas en cada toma. Este desafío te propone trabajar con ella de manera de recorrer la hilera y despertar a la luciérnaga que encuentre, para que pueda iluminar el sendero. + description: Como buena fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello prueba varias combinaciones de luces, modificando la posición y cantidad de luciérnagas en cada toma. Este desafío te propone trabajar con ella de manera de recorrer la hilera y despertar a la luciérnaga que encuentre, para que pueda iluminar el sendero y sacar las mejores fotos con su celular. clue: '¿Qué es lo que varía y qué es lo que se mantiene constante en cada ejecución?' 'nuevo18': title: Barrilete cósmico @@ -726,11 +726,10 @@ model: Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución tendrás un escenario distinto. clue: 'Los diferentes caminos posibles... tienen el mismo o distinto largo?' 'nuevo19': - title: Súper Yvoty 1 + title: Super Yvoty 1 description: | - Ayudá a Yvoty a despertar las luciérnagas. - ¡Ojo! En todas las celdas hay una luciérnaga, pero no sabés cuántas celdas hay en cada ejecución. - clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos! + Nuevamente el desafío es ayudar a Yvoty en su tarea de despertar las luciérnagas para tener una buena iluminación... pero, ¡Ojo!, si bien en todas las celdas hay una luciérnaga no sabés cuántas celdas hay en cada ejecución. + clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos!. 'nuevo20': title: Súper Yvoty 2 description: | From 60c254980d5c5f312652204bb76e7d5df7f6edf1 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Thu, 3 Aug 2023 13:44:26 -0300 Subject: [PATCH 015/212] =?UTF-8?q?Revisi=C3=B3n=20de=20Ivoty=20y=20Tito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 2ebb41d39..28337116b 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -106,16 +106,16 @@ model: Ayudá al ratón a salir del laberinto. A diferencia del laberinto anterior, aquí la cantidad de casillas que debe avanzar son muchas. ¿Cuántas? ¿Es siempre la misma? Pista: pensá primero cómo avanzar una sola casilla. clue: '' '19': - title: Súper Tito 1 + title: Super Tito 1 description: | Ayudá a Tito a encender las luces. ¡Ojo! En todas las celdas hay una luz, pero no sabés cuántas celdas hay en cada ejecución. clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos! '20': - title: Súper Tito 2 + title: Super Tito 2 description: | - Súper Tito debe encender todas las luces, pero a diferencia del desafío anterior, hay celdas sin luz. ¿Podrás utilizar el mismo procedimiento que en Súper Tito 1? - clue: El bloque "repetir hasta que" repite una secuencia de acciones hasta que se cumple una condición. Esto se llama "repetición condicional". + Super Tito debe encender todas las luces, pero a diferencia del desafío anterior, hay celdas sin luz. ¿Podrás utilizar el mismo procedimiento que en Super Tito 1? + clue: El bloque **"repetir hasta que"** repite una secuencia de acciones hasta que se cumple una condición. Esto se llama **"repetición condicional"**. '21': title: Laberinto con queso description: | @@ -728,13 +728,13 @@ model: 'nuevo19': title: Super Yvoty 1 description: | - Nuevamente el desafío es ayudar a Yvoty en su tarea de despertar las luciérnagas para tener una buena iluminación... pero, ¡Ojo!, si bien en todas las celdas hay una luciérnaga no sabés cuántas celdas hay en cada ejecución. + Nuevamente el desafío es ayudar a Yvoty en su tarea de despertar las luciérnagas para tener una buena iluminación... pero, ¡ojo!, si bien en todas las celdas hay una luciérnaga no sabés cuántas celdas hay en total en cada ejecución. clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos!. 'nuevo20': - title: Súper Yvoty 2 + title: Super Yvoty 2 description: | - Súper Yvoty debe despertar a todas las luciérnagas, pero a diferencia del desafío anterior, hay celdas sin luciérnagas. ¿Podrás utilizar el mismo procedimiento que en Súper Yvoty 1? - clue: El bloque "repetir hasta que" repite una secuencia de acciones hasta que se cumple una condición. Esto se llama "repetición condicional". + En este caso, Yvoty también debe despertar a todas las luciérnagas que encuentre para iluminar bien el paisaje, pero ahora se suma la complicación que aparecen celdas sin luciérnagas. ¿Se podrá utilizar el mismo procedimiento que en "Super Yvoty 1"? + clue: El bloque **"repetir hasta que"** repite una secuencia de acciones **hasta que se cumpla una condición**. Esto se llama **"repetición condicional"**. 'nuevo21': title: Laberinto con pelotas description: | From f5332bc8a4345513d7460daee114290d30458ba2 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Mon, 7 Aug 2023 13:20:03 -0300 Subject: [PATCH 016/212] =?UTF-8?q?Hasta=20el=20F=C3=BAtbol=20al=20Sur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 28337116b..4d1b1f62d 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -738,11 +738,13 @@ model: 'nuevo21': title: Laberinto con pelotas description: | - Laberinto con _pelotas_. **Chuy** debe patear [la pelota con link](https://es.wikipedia.org/wiki/Spheniscus_magellanicus) - * item 1 - * item 2 - * Pruebo :wink: un emoji. - clue: '' + Ya vimos a Chuy corriendo con la pelota en la mano por escenarios diversos. Ahora, una nueva alternativa nos espera para resolverla juntes. Además de sortear los obstáculos que se presentan, deberá patear una pelota de goma si es que esta aparece. Como era de esperarse, nunca es la misma cantidad de pelotas y el formato del terreno a sortear también es diferente en cada ejecución. + clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y, luego, si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' + 'nuevo23': + title: Fútbol al sur + description: | + ¿Es el fútbol el deporte favorito de Chuy?. No lo sabemos ciertamente, pero lo que sí es seguro es que nuestre amigue no se pierde un solo partido!. En esta oportunidad debe patear todas las pelotas de fútbol que encuentre **al final de cada fila**. Para ello deberá recorrer cada fila y al llegar a la pelota, patearla para repetir este procedimiento en cada una de ellas. + clue: 'La cantidad de filas es constante, pero la longitud de cada una es variable. Fijate como manejar estos dos datos para recorrer las mismas y llegar a cada una de las pelotas de fútbol. Una buena idea es hacer un procedimiento que resuelva una fila, ¿no te parece?' 'nuevo24': title: Prendiendo las compus description: | From 178c0ecd855fb1d6b42800ce50ba114a90d01af4 Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Wed, 9 Aug 2023 16:31:34 -0300 Subject: [PATCH 017/212] Hasta Prendiendo las compus --- translations/es-ar.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 4d1b1f62d..983611d6a 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -748,8 +748,8 @@ model: 'nuevo24': title: Prendiendo las compus description: | - Debemos prender todas las compus teniendo en cuenta que el ancho y el alto del escenario cambian en cada ejecución. Pista: pensá cómo harías para prender las compus de un solo lado del rectángulo y después repetilo para el resto de los lados. - clue: '' + Nuestra amiga Ivoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender las computadoras de todas las aulas de la escuela de su barrio. La dificultad reside en que las aulas tienen todas distinto tamaño, deberemos programar una manera de recorrer cada aula prendiendo las compus sin importar cuántas haya. + clue: 'Pensá cómo poder prender todo un lado del rectángulo del aula, y luego repertilo en cada tramo' 'nuevo28': title: El planeta de Capy y Guyrá description: | From c75e2488fe33a4ce1fc6c5fb6ba664c32be68da2 Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Wed, 9 Aug 2023 16:35:59 -0300 Subject: [PATCH 018/212] =?UTF-8?q?Correcci=C3=B3n=20de=20redacci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 983611d6a..c80b64c37 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -748,7 +748,7 @@ model: 'nuevo24': title: Prendiendo las compus description: | - Nuestra amiga Ivoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender las computadoras de todas las aulas de la escuela de su barrio. La dificultad reside en que las aulas tienen todas distinto tamaño, deberemos programar una manera de recorrer cada aula prendiendo las compus sin importar cuántas haya. + Nuestra amiga Ivoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender todas las computadoras de la escuela de su barrio. La dificultad reside en que como las aulas tienen todas distinto tamaño, deberemos programar una manera de recorrer cada una prendiendo las compus sin importar cuántas hubiere. clue: 'Pensá cómo poder prender todo un lado del rectángulo del aula, y luego repertilo en cada tramo' 'nuevo28': title: El planeta de Capy y Guyrá From a9c60c37537c94a21461895a9b4d8e7c75e97fc0 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Mon, 14 Aug 2023 10:22:31 -0300 Subject: [PATCH 019/212] Faltan correcciones viernes 11 --- translations/es-ar.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index c80b64c37..46cd5de90 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -751,12 +751,11 @@ model: Nuestra amiga Ivoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender todas las computadoras de la escuela de su barrio. La dificultad reside en que como las aulas tienen todas distinto tamaño, deberemos programar una manera de recorrer cada una prendiendo las compus sin importar cuántas hubiere. clue: 'Pensá cómo poder prender todo un lado del rectángulo del aula, y luego repertilo en cada tramo' 'nuevo28': - title: El planeta de Capy y Guyrá + title: El humedal de Capy y Guyrá description: | - Ayudá a Capy y Guyrá a recoger todas las latas. ¡Cuidado! No se puede bajar... - ¡Tené en cuenta que el escenario no cambia, las latas están siempre en las mismas casillas! + Nuestros amigos siguen limpiando su estero y necesitan nuevamente tu ayuda para recoger todas las latas. Pero ahora hay una dificultad extra: no se puede bajar, así es que deberás ordenar de cierta manera el trayecto para no dejar ninguna lata ensuciando el humedal. La buena noticia es que las latas están siempre en el mismo lugar. clue: | - A los procedimientos se les pueden agregar parámetros para que resulten más generales. Por ejemplo, si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazar a los tres por un solo procedimiento que reciba como parámetro la cantidad de latas que queremos recoger a la derecha: "Recoger a la derecha esta cantidad: [cantidad]". + A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría "Recoger latas a la derecha con [cantidad]" y se reemplaza el **parámetro** [cantidad] por 2, 3 o 4 en cada caso. Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". 'nuevo38': title: Las estrellas de Mañic @@ -819,8 +818,8 @@ model: clue: 'Los parámetros pueden ser direcciones, no siempre deben ser números. Por ejemplo, un parámetro podría ser la dirección en que el autómata debe moverse.' 'nuevo133': title: Mariposas encuadradas - description: Yvoty debe observar todas las mariposas del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que las casillas de la esquina nunca tienen mariposas y que el tamaño del cuadrado no varía de una ejecución a la otra. - clue: '' + description: Yvoty quiere fotografiar todas las mariposas que encuentre en su recorrido habitual por la selva. Tené en cuenta que en cada ejecución las mariposas aparecen en lugares distintos. + clue: 'Dos datos importantes: las mariposas nunca se posan en las casillas de la esquina y el sendero que recorre Yvoty siempre es el mismo' groups: AlienTocaBoton: title: '' From 857523a1abf5a9aafe04ffabbe8485b0cf473c39 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Wed, 16 Aug 2023 13:18:29 -0300 Subject: [PATCH 020/212] =?UTF-8?q?Errores=20varios=20y=20menores=20de=20t?= =?UTF-8?q?ipeo,=20redacci=C3=B3n,=20etc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 46cd5de90..8e8060751 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -663,17 +663,17 @@ model: 'nuevo4': title: Mañic en el cielo description: | - La ñandú Mañic está fascinada con el cielo, le encanta observarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas con su mirada científica. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. + La ñandú Mañic está fascinada con el cielo, le encanta observarlo y estudiarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas con su mirada científica. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. clue: 'Hay muchas formas de observar las estrellas: podés empezar por las de la derecha... o podés arrancar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' 'nuevo5': title: Yvoty despierta a las luciérnagas description: | - Para sacar buenas fotos se necesita una excelente luz natural. Ivoty cuenta con sus amigas las luciérnagas, que le iluminan cualquier escenario... siempre y cuando estén despiertas!. Proponé una solución para que nuestra amiga pueda ir y despertar a todas las luciérnagas, una por una. - clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. + Para sacar buenas fotos se necesita una excelente luz natural. Yvoty cuenta con sus amigas las luciérnagas, que le iluminan cualquier escenario... ¡siempre y cuando estén despiertas!. Proponé una solución para que nuestra amiga pueda ir y despertar a todas las luciérnagas, una por una. + clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo **todas las veces que quieras** dentro de un programa. 'nuevo6': title: Chuy, campeone desordenade description: | - Nuestre amigue Chuy practica muchos deportes y ha logrado una gran cantidad de victorias, tantas que tiene desparramados sus trofeos por varios lugares. Te pedimos que le ayudes a recogerlos uno por uno. + Nuestre amigue Chuy practica muchos deportes y ha logrado una gran cantidad de victorias, tantas son que tiene desparramados sus trofeos por varios lugares. Te pedimos que le ayudes a recogerlos uno por uno. clue: ¿Hay tareas repetitivas? ¿Qué bloques te ayudan a resolver estas cuestiones comunes?. 'nuevo7': title: La reparadora de telescopios @@ -693,7 +693,7 @@ model: 'nuevo10': title: Instalando juegos description: | - Hoy hay noche gamer!... Yvoty debe instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para jugar. El procedimiento completo de instalación comprende: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. + ¡Hoy hay noche gamer!... Yvoty debe instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para divertirse. El procedimiento completo de instalación comprende: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. clue: 'Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo...' 'nuevo13': title: Chuy y la pelota indecisa @@ -703,8 +703,8 @@ model: 'nuevo14': title: ¿Pelota o paleta? description: | - Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez! :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! - clue: 'Las opciones posible son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' + Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! + clue: 'Las opciones posibles son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' 'nuevo15': title: | Chuy, jugadore de toda la cancha @@ -723,8 +723,8 @@ model: 'nuevo18': title: Barrilete cósmico description: | - Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución tendrás un escenario distinto. - clue: 'Los diferentes caminos posibles... tienen el mismo o distinto largo?' + Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución te encontrarás con un escenario distinto. + clue: 'Los diferentes caminos posibles... ¿tienen el mismo o distinto largo?' 'nuevo19': title: Super Yvoty 1 description: | @@ -739,32 +739,32 @@ model: title: Laberinto con pelotas description: | Ya vimos a Chuy corriendo con la pelota en la mano por escenarios diversos. Ahora, una nueva alternativa nos espera para resolverla juntes. Además de sortear los obstáculos que se presentan, deberá patear una pelota de goma si es que esta aparece. Como era de esperarse, nunca es la misma cantidad de pelotas y el formato del terreno a sortear también es diferente en cada ejecución. - clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y, luego, si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' + clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' 'nuevo23': title: Fútbol al sur description: | - ¿Es el fútbol el deporte favorito de Chuy?. No lo sabemos ciertamente, pero lo que sí es seguro es que nuestre amigue no se pierde un solo partido!. En esta oportunidad debe patear todas las pelotas de fútbol que encuentre **al final de cada fila**. Para ello deberá recorrer cada fila y al llegar a la pelota, patearla para repetir este procedimiento en cada una de ellas. + ¿Es el fútbol el deporte favorito de Chuy?. No lo sabemos ciertamente, pero lo que sí es seguro es que nuestre amigue no se pierde un solo partido. En esta oportunidad deberá patear todas las pelotas de fútbol que encuentre **al final de cada fila**. Para ello deberá recorrer cada fila y al llegar a la pelota, patearla para repetir este procedimiento en cada una de ellas. clue: 'La cantidad de filas es constante, pero la longitud de cada una es variable. Fijate como manejar estos dos datos para recorrer las mismas y llegar a cada una de las pelotas de fútbol. Una buena idea es hacer un procedimiento que resuelva una fila, ¿no te parece?' 'nuevo24': title: Prendiendo las compus description: | - Nuestra amiga Ivoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender todas las computadoras de la escuela de su barrio. La dificultad reside en que como las aulas tienen todas distinto tamaño, deberemos programar una manera de recorrer cada una prendiendo las compus sin importar cuántas hubiere. + Nuestra amiga Yvoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender todas las computadoras de la escuela de su barrio. La dificultad reside en que como las aulas tienen todas distinto tamaño, se necesita programar una manera de recorrer cada una prendiendo las compus sin importar cuántas hubiere. clue: 'Pensá cómo poder prender todo un lado del rectángulo del aula, y luego repertilo en cada tramo' 'nuevo28': title: El humedal de Capy y Guyrá description: | - Nuestros amigos siguen limpiando su estero y necesitan nuevamente tu ayuda para recoger todas las latas. Pero ahora hay una dificultad extra: no se puede bajar, así es que deberás ordenar de cierta manera el trayecto para no dejar ninguna lata ensuciando el humedal. La buena noticia es que las latas están siempre en el mismo lugar. + Nuestros amigos siguen limpiando su estero y necesitan nuevamente tu ayuda para recoger todas las latas. Pero ahora se ha presentado una nueva dificultad: no se puede bajar, así es que deberás ordenar de cierta manera el trayecto para no dejar ninguna lata ensuciando el humedal. La buena noticia es que las latas están siempre en el mismo lugar. clue: | A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría "Recoger latas a la derecha con [cantidad]" y se reemplaza el **parámetro** [cantidad] por 2, 3 o 4 en cada caso. Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". 'nuevo38': title: Las estrellas de Mañic - description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. + description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone en la alineación del telescopio. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? 'nuevo39': - title: La estrella más bella + title: La estrella interesante description: | - Mañic encontró la ubicación de otra hermosa estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. + Mañic encontró la ubicación de una interesante estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? 'nuevo40': title: | From c3997e3fe12be74b8a1a83f9e9095229653e45f5 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Thu, 17 Aug 2023 15:27:47 -0300 Subject: [PATCH 021/212] haciendo hasta latas y papeles inconclusa --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 8e8060751..4255aaf32 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -776,7 +776,7 @@ model: title: | Turistas latosos description: | - Increíblmente, la cantidad de latas desechadas por les turistas aumenta constantemente. Capy y Guyrá tienen cada día más trabajo para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza. + La cantidad de latas desechadas por les turistas aumenta constantemente. Cada día, Capy y Guyrá necesitan trabajar más para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza, recogiendo todas las latas desechadas en lugares inapropiados. clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? 'nuevo42': title: | From f948c5753bce0c86408847239d918fa65328545f Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Thu, 24 Aug 2023 15:16:57 -0300 Subject: [PATCH 022/212] =?UTF-8?q?Casi=20todos=20los=20desaf=C3=ADos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 4255aaf32..86f57b598 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -703,8 +703,8 @@ model: 'nuevo14': title: ¿Pelota o paleta? description: | - Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez :smile:. Según aparezca una pelota de fútbol o una de goma, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! - clue: 'Las opciones posibles son solo dos: **si no** aparece una pelota de fútbol, será una de pelota paleta.' + Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez :smile:. Según aparezca una pelota de fútbol o una de ping-pong, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! + clue: 'Las opciones posibles son solo dos: **si no** aparece una pelota de fútbol, será una de ping-pong.' 'nuevo15': title: | Chuy, jugadore de toda la cancha @@ -782,26 +782,26 @@ model: title: | A veces latas, a veces papeles description: | - La vida en el planeta puede ser muy difícil para Capy, así que toparse con un área llena de basura es todo un problema. Ayudá a Capy a recoger todas las latas y papales que encuentre a su paso. - clue: Pensá una estrategia que permita que Capy recorra una fila y recoja todas las latas y papeles que encuentre. ¿Se podrá hacer lo mismo en las demás filas? + Es un día particularmente complejo en el humedal. La cantidad de desechos que dejaron les turistas es tan enorme como triste. Ayudá a Capy y Guyrá a recoger todas las latas y papales que encuentren a su paso. + clue: Pensá una estrategia que permita que nuestros amigos recorran una fila y recojan todas las latas y papeles que encuentren. Luego... ¿se podrá hacer lo mismo en las demás filas? 'nuevo43': title: | El pasillo curvo de celus description: | - ¡Yvoty encontró un pasillo lleno de celus! El único problema es que el pasillo da varias vueltas y los celus justo están ahí… ¿Podrá Yvoty desbloquear todos los celus de este pasillo? - clue: Los celus se encuentran justo en las curvas que da el pasillo. Una estrategia para desbloquear los celus en una curva sería una excelente ayuda. + Yvoty tiene mucho, mucho trabajo esta mañana. Sus amigues la llamaron porque todos los celus de la selva se bloquearon y necesitan que ella, con su conocimiento, los desbloquee. Guiala para recorrer el intrincado camino selvático y además desbloquear todos los teléfonos de la selva que vaya encontrando. + clue: Como en otros desafíos, buscá los patrones, las cosas que son iguales para resolver ese patrón y luego replicar. Por ejemplo, las curvas del sendero, ¿son iguales entre sí? 'nuevo44': title: | El festín astronómico description: | - Mañic vino a observar los astros al lugar de siempre, aunque escuchó rumores que se está dando un gran evento astronómico en el cielo… ¡Hoy es un gran día para darse un festín! - clue: Una observacion habitual de Mañic es una columna de 6 astros. ¿Cuántas columnas tiene un evento astronómico? Si lográs hacer que Mañic observe los astros de una columna tal vez puedas hacer lo mismo en un evento. + Mañic está de fiesta. Los astros están más brillantes e interesantes que nunca. La visibilidad es óptima y la noche está para disfrutarla observando este fenómeno que no se da muy seguido. Acompañala en esta observación especial, recorriendo todo el campo y alineando el telescopio con cada astro para que la observación sea perfecta y Mañic pueda estudiar a cada uno. + clue: Una observacion habitual de Mañic es una columna de seis astros alineados. ¿Cuántas columnas tiene el evento astronómico? Si lográs hacer que Mañic observe los astros de una columna y luego replicar esta acción en cada una de ellas... ¡Cuidado con las tranqueras y los obstáculos! 'nuevo45': title: | - Observadora de mariposas + Fotografiando mariposas description: | - El universo tiene millones y millones de galaxias; por suerte para el recolector de estrellas, hoy debe recolectar solamente dos galaxias muy pequeñas. - clue: 'Cada galaxia es un grupo de estrellas distribuidas de forma diferente pero siempre en un mismo espacio. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero un casillero, luego una fila o columna, y finalmente una galaxia.' + El nuevo celu de Yvoty tiene una muy buena cámara para fotografiar objetos cercanos. Nada mejor que probarlo sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. En cualquier caso, Yvoty deberá ir una por una y sacarle una foto desde muy corta distancia. + clue: Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido, ¿no te parece? 'nuevo46': title: Nuevos comandos description: | From 0687e1c7f89bf7fe33b1c8e032f3ad123a6edb80 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 31 Aug 2023 11:51:03 -0300 Subject: [PATCH 023/212] is this the way? --- app/components/challenge-workspace-buttons.js | 7 +++++++ package-lock.json | 6 +++--- public/pilas.html | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index fc5b5eac8..f90376c10 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -12,6 +12,7 @@ export default Component.extend({ deleteDialogIsOpen: false, platform: service(), intl: service(), + storage: service(), version() { return VERSION_DEL_FORMATO_DE_ARCHIVO; @@ -90,6 +91,12 @@ export default Component.extend({ guardarSolucion() { let activityName = this.get("actividad.nombre"); + if( activityName === undefined ) { + const challengeJson = this.storage.getImportedChallenge() + if (challengeJson) + activityName = challengeJson.titulo + } + let fileName = `${activityName}.spbq`; let contenido = { diff --git a/package-lock.json b/package-lock.json index 308e60360..1267c4eff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32823,9 +32823,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.2.24", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.2.24.tgz", - "integrity": "sha512-yfH1wQZjEPx3DZcS6CIz85zPYCkyGVL2oWFFXhd0z2uNo1I+k9ESpdxbyFmN6PYrmv0neBzjHYCT4Cnaz1Z+mQ==", + "version": "1.2.25", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.2.25.tgz", + "integrity": "sha512-MjT30N+5e3RXDtT8Tv/zQrCRUsEMm+sVXpQIO34Kj9P1G8EcxDxxNKihMz+Ws6J+PWS8DelSyDdnRmg5eJtjNA==", "requires": { "pilasweb": "^0.5.0" } diff --git a/public/pilas.html b/public/pilas.html index b8d8631b4..4068169b0 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From a150a128d9b91fcf29e8f14a02bb8c0ab47ae15c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 31 Aug 2023 12:10:26 -0300 Subject: [PATCH 024/212] sin titulo --- app/components/challenge-workspace-buttons.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index f90376c10..5849e3921 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -94,7 +94,7 @@ export default Component.extend({ if( activityName === undefined ) { const challengeJson = this.storage.getImportedChallenge() if (challengeJson) - activityName = challengeJson.titulo + activityName = challengeJson.titulo || 'sin titulo' } let fileName = `${activityName}.spbq`; From 630d08f8f18a06c00290cbca2e809de3029affde Mon Sep 17 00:00:00 2001 From: Daniel Ferro <91342656+danielferro69@users.noreply.github.com> Date: Thu, 31 Aug 2023 13:23:48 -0300 Subject: [PATCH 025/212] || directos Co-authored-by: asanzo --- app/components/challenge-workspace-buttons.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index 5849e3921..1dfac1906 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -90,12 +90,7 @@ export default Component.extend({ }, guardarSolucion() { - let activityName = this.get("actividad.nombre"); - if( activityName === undefined ) { - const challengeJson = this.storage.getImportedChallenge() - if (challengeJson) - activityName = challengeJson.titulo || 'sin titulo' - } + let activityName = this.get("actividad.nombre") || this.storage.getImportedChallenge()?.titulo || "Sin título" let fileName = `${activityName}.spbq`; From d29858d4f5e6baf9c79db34718d4b9cabcc5a0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 4 Sep 2023 17:33:58 -0300 Subject: [PATCH 026/212] disable warnings button --- app/components/challenge-workspace-buttons.js | 7 +++++++ app/templates/components/challenge-workspace-buttons.hbs | 1 + app/utils/blocks.js | 4 ++++ translations/components/en-us.yaml | 3 +++ translations/components/es-ar.yaml | 3 +++ translations/components/pt-br.yaml | 3 +++ 6 files changed, 21 insertions(+) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index fc5b5eac8..2020c67b3 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -1,5 +1,6 @@ import Component from '@ember/component'; import { inject as service } from '@ember/service'; +import { changeWarningVisibility } from '../utils/blocks'; const VERSION_DEL_FORMATO_DE_ARCHIVO = 2; @@ -10,6 +11,7 @@ export default Component.extend({ xml: null, store: service(), deleteDialogIsOpen: false, + warningsDisabled: true, platform: service(), intl: service(), @@ -88,6 +90,11 @@ export default Component.extend({ this.fileInput().click(); }, + changeWarningVisibility() { + changeWarningVisibility(!this.get('warningsDisabled')) + this.set('warningsDisabled', !this.get('warningsDisabled')) + }, + guardarSolucion() { let activityName = this.get("actividad.nombre"); let fileName = `${activityName}.spbq`; diff --git a/app/templates/components/challenge-workspace-buttons.hbs b/app/templates/components/challenge-workspace-buttons.hbs index bf99798bf..d2a014b36 100644 --- a/app/templates/components/challenge-workspace-buttons.hbs +++ b/app/templates/components/challenge-workspace-buttons.hbs @@ -2,6 +2,7 @@ + diff --git a/app/utils/blocks.js b/app/utils/blocks.js index ba8418429..4a9076397 100644 --- a/app/utils/blocks.js +++ b/app/utils/blocks.js @@ -190,6 +190,10 @@ export function addError(block, message, index) { addWarningToBlock(block, '★', message, index, 'red') } +export function changeWarningVisibility(visible) { + Blockly.getMainWorkspace().getAllBlocks().forEach(b => b.warning && b.warning.setVisible(visible)) +} + function textWasChanged(fieldName, event) { return event.element === 'field' && event.name === fieldName && (event.oldValue !== event.newValue) } diff --git a/translations/components/en-us.yaml b/translations/components/en-us.yaml index c9ef93964..664fc8695 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -58,6 +58,9 @@ challengeWorkspaceButtons: notASolution: This file does not have a Pilas Bloques solution. wrongActivity: 'Be careful! The file indicates that it is from another challenge ({activity}). It will be loaded anyways, but it could fail.' oldVersion: 'Be careful! The file indicates that it is from an older version. It will be loaded anyways, but we suggest that you solve the challenge again and save the solution in a new file.' + warnings: + disable: 'Disable warnings' + enable: 'Enable warnings' footer: version: 'Version:' problem: Any problem with this exercise? diff --git a/translations/components/es-ar.yaml b/translations/components/es-ar.yaml index bebae12be..29f6f8bd1 100644 --- a/translations/components/es-ar.yaml +++ b/translations/components/es-ar.yaml @@ -58,6 +58,9 @@ challengeWorkspaceButtons: notASolution: Este archivo no tiene una solución de Pilas Bloques. wrongActivity: '¡Cuidado! El archivo indica que es para otra actividad ({activity}). Se cargará de todas formas, pero puede fallar.' oldVersion: '¡Cuidado! El archivo indica que es de una versión anterior. Se cargará de todas formas, pero te sugerimos que resuelvas nuevamente el ejercicio y guardes un nuevo archivo.' + warnings: + disable: 'Desactivar advertencias' + enable: 'Activar advertencias' footer: version: 'Versión:' problem: ¿Algún problema con este ejercicio? diff --git a/translations/components/pt-br.yaml b/translations/components/pt-br.yaml index dabd09b7d..1332713c4 100644 --- a/translations/components/pt-br.yaml +++ b/translations/components/pt-br.yaml @@ -58,6 +58,9 @@ challengeWorkspaceButtons: notASolution: Este arquivo não tem uma solução da Pilas Blocos. wrongActivity: Cuidado! O arquivo indica que é para outra atividade ({activity}). Será carregado de cualquer forma, mas pode falhar. oldVersion: Cuidado! O arquivo indica que é de uma versão anterior. Será carregado de qualquer forma, mas sugerimos que resolva novamente o exercício e guarde um novo arquivo. + warnings: + disable: 'Desativar avisos' + enable: 'Ativar avisos' footer: version: 'Versão:' problem: Problemas com este exercício? From ae600fafa9f111c4d52186bc572575636e0e34e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 4 Sep 2023 23:03:46 -0300 Subject: [PATCH 027/212] warnings disabled --- app/components/challenge-workspace-buttons.js | 15 +++++++++++---- app/components/pilas-blockly.js | 3 ++- .../components/challenge-workspace-buttons.hbs | 2 +- app/templates/components/pilas-blockly.hbs | 1 + app/utils/blocks.js | 13 +++++++------ 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index 2020c67b3..456468ca5 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -11,7 +11,6 @@ export default Component.extend({ xml: null, store: service(), deleteDialogIsOpen: false, - warningsDisabled: true, platform: service(), intl: service(), @@ -85,14 +84,22 @@ export default Component.extend({ input.value = null; }, + changeWarningVisibility(visible) { + changeWarningVisibility(visible) + this.set('warningsVisible', visible) + }, + actions: { abrirSolucion() { this.fileInput().click(); }, + + enableWarnings() { + this.changeWarningVisibility(true) + }, - changeWarningVisibility() { - changeWarningVisibility(!this.get('warningsDisabled')) - this.set('warningsDisabled', !this.get('warningsDisabled')) + disableWarnings() { + this.changeWarningVisibility(false) }, guardarSolucion() { diff --git a/app/components/pilas-blockly.js b/app/components/pilas-blockly.js index 8a9ae3f4d..ba4a7f005 100644 --- a/app/components/pilas-blockly.js +++ b/app/components/pilas-blockly.js @@ -21,6 +21,7 @@ export default Component.extend({ codigoJavascript: "", // Se carga como parametro codigo: null, challenge: null, + warningsVisible: true, highlighter: service(), availableBlocksValidator: service(), @@ -436,7 +437,7 @@ export default Component.extend({ .filter(condition) .forEach(({ declaration, description }, i) => { getBlocks(declaration) - .forEach(block => addFeedback(block, description.asSuggestion, -i)) + .forEach(block => addFeedback(block, description.asSuggestion, -i, this.get('warningsVisible'))) }) }, diff --git a/app/templates/components/challenge-workspace-buttons.hbs b/app/templates/components/challenge-workspace-buttons.hbs index d2a014b36..75cf43891 100644 --- a/app/templates/components/challenge-workspace-buttons.hbs +++ b/app/templates/components/challenge-workspace-buttons.hbs @@ -2,7 +2,7 @@ - + diff --git a/app/templates/components/pilas-blockly.hbs b/app/templates/components/pilas-blockly.hbs index f6d314fc4..1032f1ddb 100644 --- a/app/templates/components/pilas-blockly.hbs +++ b/app/templates/components/pilas-blockly.hbs @@ -22,6 +22,7 @@ { block.warning.setVisible = (visible) => { boundedSetVisible(visible); if (visible) block.warning.bubble_.setColour(colour) } } -const addWarningToBlock = (block, itemChar, message, index, bubbleColour) => { +const addWarningToBlock = (block, itemChar, message, index, bubbleColour, visible = true) => { const text = `${itemChar} ${lineWrap(message)}` block.setWarningText(text, index) setWarningBubbleColour(block, bubbleColour) - block.warning.setVisible(true) + block.warning.setVisible(visible) } -export function addWarning(block, message, index) { - addWarningToBlock(block, '☆', message, index, 'yellow') +export function addWarning(block, message, index, visible) { + addWarningToBlock(block, '☆', message, index, 'yellow', visible) } -export function addError(block, message, index) { - addWarningToBlock(block, '★', message, index, 'red') +export function addError(block, message, index, visible) { + console.log(visible) + addWarningToBlock(block, '★', message, index, 'red', visible) } export function changeWarningVisibility(visible) { From b52c0f318ed4a930d916a905074017c378c900c0 Mon Sep 17 00:00:00 2001 From: Evitalinuxera Date: Wed, 6 Sep 2023 14:05:26 -0300 Subject: [PATCH 028/212] =?UTF-8?q?Correcciones=20de=20redacci=C3=B3n=20y?= =?UTF-8?q?=20g=C3=A9nero?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 86f57b598..1a3551a6a 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -658,7 +658,7 @@ model: 'nuevo1': title: Capy y Guyrá description: | - El carpincho Capy y su inseparable amigo Guyrá tienen una forma muy particular de recorrer los esteros: Guyrá está siempre sobre la cabeza de Capy. En esta oportunidad, te toca a vos hacer que Capy pase a buscar a su amigo y lo suba para emprender juntos una nueva aventura. + El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros: Guyrá está siempre sobre la cabeza de Capy. En esta oportunidad, te toca a vos hacer que Capy pase a buscar a su amigo y lo suba para emprender juntos una nueva aventura. clue: 'Fijate bien el orden de las primitivas, qué cosa tenés que hacer primero y qué cosa va después' 'nuevo4': title: Mañic en el cielo @@ -669,7 +669,7 @@ model: title: Yvoty despierta a las luciérnagas description: | Para sacar buenas fotos se necesita una excelente luz natural. Yvoty cuenta con sus amigas las luciérnagas, que le iluminan cualquier escenario... ¡siempre y cuando estén despiertas!. Proponé una solución para que nuestra amiga pueda ir y despertar a todas las luciérnagas, una por una. - clue: Mirá las diagonales que forman las luciérnagas... ¿Ves algo en común? ¿En qué te ayudaría un procedimiento?. Se puede crear un procedimiento una vez y usarlo **todas las veces que quieras** dentro de un programa. + clue: Mirá las diagonales que forman las luciérnagas... ¿Podés identificar un patrón en común? ¿En qué te ayudaría crear un procedimiento?. Se puede definir un procedimiento una vez y usarlo **todas las veces que quieras** dentro de un programa. 'nuevo6': title: Chuy, campeone desordenade description: | @@ -678,28 +678,28 @@ model: 'nuevo7': title: La reparadora de telescopios description: | - Mañic mantiene sus elementos de astronomía en excelente estado. Ahora mismo necesita reparar todos los telescopios y dejarlos listos para la próxima observación. Cuenta con vos para que pueda hacerlo de manera eficaz. - clue: Si hacés un procedimiento que recorra y repare una fila de telescopios, luego podrías replicar eso en cada fila, ¿No te parece una buena estrategia?. + A Mañic le gusta mantener sus elementos de astronomía en excelente estado, así que se dispone a reparar todos los telescopios y dejarlos listos para la próxima observación. Acompañala a cumplir su objetivo. + clue: ¿Sería una buena estrategia crear un procedimiento que recorra y repare una fila de telescopios para luego repetirlo en cada fila? 'nuevo8': title: Mañic y los planetas description: | - Es una noche límpida, ideal para que Mañic pueda observar todos los planetas que se ven desde su campo. Acompañala recorriendo todos y observándolos con el telescopio. + Es una noche límpida, ideal para observar todos los planetas que se ven desde el campo en el que está Mañic. Ella se prepara para observar uno a uno todos los planetas con su telescopio. Tu desafío es hacer que Mañic pueda alinear y observar cada uno de los astros. clue: Ayudaría mucho que puedas encontrar una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. 'nuevo9': title: Cargando los celus description: | - Yvoty se comprometió a cargar siete celus de sus amigues pero cuenta solo con un cargador. Programá una solución que haga que vaya primero a buscar el cargador y luego pase por cada uno de los celulares para poder cargarlos. - clue: 'Fijate bien en cuántas partes te conviene dividir tu estrategia...' + Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador y luego ir a cargar cada uno de los celulares. Programá una solución para que pueda lograrlo. + clue: '¿En cuántas partes te conviene dividir tu estrategia?' 'nuevo10': title: Instalando juegos description: | - ¡Hoy hay noche gamer!... Yvoty debe instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para divertirse. El procedimiento completo de instalación comprende: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. - clue: 'Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo...' + ¡Hoy es noche gamer!... Yvoty va a instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para divertirse. El proceso de instalación es: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Necesita de tu ayuda para completar la instalación en las tres computadoras. + clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Para qué sirve tener eso en cuenta?' 'nuevo13': title: Chuy y la pelota indecisa description: | - Chuy quedó emocionade del Mundial de fútbol y quiere emular a sus héroes practicando tiros libres. Pero la pelota posee magia extra y a veces decide desaparecer. Hacé que Chuy pueda patear la pelota según esta aparezca o no en la casilla de la derecha. - clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear la pelota, Chuy debe estar en la misma casilla que aquella.' + Chuy quedó emocionade del Mundial de fútbol femenino y quiere emular a sus heroínas practicando tiros libres, pero su pelota no es una pelota común. A veces decide desaparecer. Hacé que Chuy pueda patear la pelota si esta aparece en la casilla de la derecha. + clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear, Chuy debe estar en la misma casilla que la pelota.' 'nuevo14': title: ¿Pelota o paleta? description: | From 562bb1460598d8a75d727986d2720326e6a7eba4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Sep 2023 20:26:26 +0000 Subject: [PATCH 029/212] Bump electron from 17.4.11 to 22.3.21 Bumps [electron](https://github.com/electron/electron) from 17.4.11 to 22.3.21. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v17.4.11...v22.3.21) --- updated-dependencies: - dependency-name: electron dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 502 +++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 358 insertions(+), 146 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f365535c..2c4bb4682 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5854,14 +5854,14 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", + "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@embroider/shared-internals": "2.4.0", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", "find-up": "^5.0.0", "lodash": "^4.17.21", @@ -5870,12 +5870,13 @@ } }, "@embroider/shared-internals": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.2.3.tgz", - "integrity": "sha512-4RXJ07TqkQN4FpLBnQ92TZWW4wGAH7CRG37F1iE99rjxoD3IkoKe1IeyNr0Q85lws+2awx4/cEpaUsSwUYiJSg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", + "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", "dev": true, "requires": { - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", + "debug": "^4.3.2", "ember-rfc176-data": "^0.3.17", "fs-extra": "^9.1.0", "js-string-escape": "^1.0.1", @@ -5885,6 +5886,12 @@ "typescript-memoize": "^1.0.1" } }, + "babel-import-util": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", + "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "dev": true + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -5914,9 +5921,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -5975,12 +5982,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15722,20 +15729,226 @@ "dev": true }, "electron": { - "version": "17.4.11", - "resolved": "https://registry.npmjs.org/electron/-/electron-17.4.11.tgz", - "integrity": "sha512-mdSWM2iY/Bh5bKzd5drYS3mf8JWyR9P9UXZA2uLEZ+1fhgLEVkY9qu501QHoMsKlNwgn96EreQC+dfdQ75VTcA==", + "version": "22.3.21", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.21.tgz", + "integrity": "sha512-9JzWgvehRrqA30M7RvWCwwbyq2EgPUSbCFaqyZGnG0B52m4ayB8H+uFNIKXyWuyFwAEPDpQW5cGwCzXir1HuLA==", "dev": true, "requires": { - "@electron/get": "^1.13.0", - "@types/node": "^14.6.2", - "extract-zip": "^1.0.3" + "@electron/get": "^2.0.0", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" }, "dependencies": { + "@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + } + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@types/node": { - "version": "14.18.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz", - "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==", + "version": "16.18.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.48.tgz", + "integrity": "sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q==", + "dev": true + }, + "cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -16358,9 +16571,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -16441,9 +16654,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -16889,14 +17102,14 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", + "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@embroider/shared-internals": "2.4.0", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", "find-up": "^5.0.0", "lodash": "^4.17.21", @@ -16905,12 +17118,13 @@ } }, "@embroider/shared-internals": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.2.3.tgz", - "integrity": "sha512-4RXJ07TqkQN4FpLBnQ92TZWW4wGAH7CRG37F1iE99rjxoD3IkoKe1IeyNr0Q85lws+2awx4/cEpaUsSwUYiJSg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", + "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", "dev": true, "requires": { - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", + "debug": "^4.3.2", "ember-rfc176-data": "^0.3.17", "fs-extra": "^9.1.0", "js-string-escape": "^1.0.1", @@ -16967,22 +17181,20 @@ "username-sync": "^1.0.2" } }, + "babel-import-util": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", + "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "dev": true + }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", "babel-import-util": "^2.0.0" - }, - "dependencies": { - "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", - "dev": true - } } }, "babel-plugin-htmlbars-inline-precompile": { @@ -17059,9 +17271,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -17169,9 +17381,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -17260,12 +17472,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -18922,21 +19134,21 @@ }, "dependencies": { "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19197,9 +19409,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -19266,12 +19478,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19807,9 +20019,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -19881,12 +20093,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20086,9 +20298,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -20151,12 +20363,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20689,9 +20901,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -20772,9 +20984,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -21362,9 +21574,9 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -21390,12 +21602,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -21632,9 +21844,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -21715,9 +21927,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -22318,9 +22530,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -22387,12 +22599,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -22478,21 +22690,21 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -22999,9 +23211,9 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -23035,12 +23247,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -23443,9 +23655,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -23526,9 +23738,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -25751,9 +25963,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -25798,12 +26010,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -32823,9 +33035,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.2.25", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.2.25.tgz", - "integrity": "sha512-MjT30N+5e3RXDtT8Tv/zQrCRUsEMm+sVXpQIO34Kj9P1G8EcxDxxNKihMz+Ws6J+PWS8DelSyDdnRmg5eJtjNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.3.1.tgz", + "integrity": "sha512-sYUz1n+xUrBw6u2+/z6vFqsg6IJl31KGAwI4lsdX+okiOYWpJxxQQgzBvOfog8DrwBjdeRc5l4asjrCvG1EJFw==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 5eb280ffa..e597431c6 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "broccoli-asset-rev": "^3.0.0", "broccoli-funnel": "^2.0.2", "broccoli-merge-trees": "^4.2.0", - "electron": "17.4.11", + "electron": "22.3.21", "electron-packager": "15.1.0", "electron-rebuild": "2.0.0", "ember-ajax": "^5.0.0", From a8066ea8563355c70a55c7d9d735c8d707092f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 8 Sep 2023 10:15:49 -0300 Subject: [PATCH 030/212] adding text to button --- app/styles/challenge-workspace-buttons.scss | 14 ++++++++++++++ .../components/challenge-workspace-buttons.hbs | 2 +- translations/components/en-us.yaml | 5 +++-- translations/components/es-ar.yaml | 5 +++-- translations/components/pt-br.yaml | 5 +++-- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/styles/challenge-workspace-buttons.scss b/app/styles/challenge-workspace-buttons.scss index 744e0189d..56a1987fa 100644 --- a/app/styles/challenge-workspace-buttons.scss +++ b/app/styles/challenge-workspace-buttons.scss @@ -12,4 +12,18 @@ .workspace-buttons .md-button.md-fab.md-mini:focus { background-color: var(--theme-button-hover-background-color); +} + +#warnings-button .md-button{ + width: 100%; + display: flex; + text-transform: none; + border-radius: 20px; + margin: 4px; + color: var(--theme-font-color); +} + +#warnings-button{ + margin-top: 3px; + margin-right: 8px; } \ No newline at end of file diff --git a/app/templates/components/challenge-workspace-buttons.hbs b/app/templates/components/challenge-workspace-buttons.hbs index 75cf43891..4c12d0b0f 100644 --- a/app/templates/components/challenge-workspace-buttons.hbs +++ b/app/templates/components/challenge-workspace-buttons.hbs @@ -2,7 +2,7 @@ - + diff --git a/translations/components/en-us.yaml b/translations/components/en-us.yaml index 664fc8695..a962b4b17 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -59,8 +59,9 @@ challengeWorkspaceButtons: wrongActivity: 'Be careful! The file indicates that it is from another challenge ({activity}). It will be loaded anyways, but it could fail.' oldVersion: 'Be careful! The file indicates that it is from an older version. It will be loaded anyways, but we suggest that you solve the challenge again and save the solution in a new file.' warnings: - disable: 'Disable warnings' - enable: 'Enable warnings' + disable: 'Disable suggestions' + enable: 'Enable suggestions' + suggestions: 'Suggestions' footer: version: 'Version:' problem: Any problem with this exercise? diff --git a/translations/components/es-ar.yaml b/translations/components/es-ar.yaml index 29f6f8bd1..698b17314 100644 --- a/translations/components/es-ar.yaml +++ b/translations/components/es-ar.yaml @@ -59,8 +59,9 @@ challengeWorkspaceButtons: wrongActivity: '¡Cuidado! El archivo indica que es para otra actividad ({activity}). Se cargará de todas formas, pero puede fallar.' oldVersion: '¡Cuidado! El archivo indica que es de una versión anterior. Se cargará de todas formas, pero te sugerimos que resuelvas nuevamente el ejercicio y guardes un nuevo archivo.' warnings: - disable: 'Desactivar advertencias' - enable: 'Activar advertencias' + disable: 'Desactivar sugerencias' + enable: 'Activar sugerencias' + suggestions: 'Sugerencias' footer: version: 'Versión:' problem: ¿Algún problema con este ejercicio? diff --git a/translations/components/pt-br.yaml b/translations/components/pt-br.yaml index 1332713c4..dacaa08e1 100644 --- a/translations/components/pt-br.yaml +++ b/translations/components/pt-br.yaml @@ -59,8 +59,9 @@ challengeWorkspaceButtons: wrongActivity: Cuidado! O arquivo indica que é para outra atividade ({activity}). Será carregado de cualquer forma, mas pode falhar. oldVersion: Cuidado! O arquivo indica que é de uma versão anterior. Será carregado de qualquer forma, mas sugerimos que resolva novamente o exercício e guarde um novo arquivo. warnings: - disable: 'Desativar avisos' - enable: 'Ativar avisos' + disable: 'Desativar sugestões' + enable: 'Ativar sugestões' + suggestions: 'Sugestões' footer: version: 'Versão:' problem: Problemas com este exercício? From 2f601c417a97f0ac8c9b121189b81a039b08db63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 8 Sep 2023 10:32:27 -0300 Subject: [PATCH 031/212] text after icon --- app/templates/components/challenge-workspace-buttons.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/components/challenge-workspace-buttons.hbs b/app/templates/components/challenge-workspace-buttons.hbs index 4c12d0b0f..6793fb805 100644 --- a/app/templates/components/challenge-workspace-buttons.hbs +++ b/app/templates/components/challenge-workspace-buttons.hbs @@ -2,7 +2,7 @@ - + From 9c8865b863b8d061d43963949cc8e27ff177afe9 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 11 Sep 2023 17:47:53 -0300 Subject: [PATCH 032/212] Release 1.15.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f365535c..f35cad123 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.14.5", + "version": "1.15.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5eb280ffa..9f6e8ec59 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.14.5", + "version": "1.15.0", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From bf4f88f8e0e949141d65e7195dba7d5ca915df5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 11 Sep 2023 19:16:39 -0300 Subject: [PATCH 033/212] finally changing colours --- app/utils/blocks.js | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/app/utils/blocks.js b/app/utils/blocks.js index 2c7d0b7e0..e23610c92 100644 --- a/app/utils/blocks.js +++ b/app/utils/blocks.js @@ -169,26 +169,47 @@ export function clearValidationsFor(block) { block.setWarningText(null) } -const setWarningBubbleColour = (block, colour) => { +const setWarningColour = (block, colour, secondaryColour) => { const unBoundedSetVisible = Blockly.Warning.prototype.setVisible const boundedSetVisible = unBoundedSetVisible.bind(block.warning) block.warning.setVisible = (visible) => { boundedSetVisible(visible); if (visible) block.warning.bubble_.setColour(colour) } -} - -const addWarningToBlock = (block, itemChar, message, index, bubbleColour, visible = true) => { + drawWarningIcon(block.warning.iconGroup_, colour, secondaryColour) +} + +const drawWarningIcon = (group, colour, secondaryColour) => { + Blockly.utils.createSvgElement('path', + { + 'd': 'M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z', + 'fill': colour + }, + group); + Blockly.utils.createSvgElement('path', + { + 'd': 'm7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z', + 'fill': secondaryColour + }, + group); + Blockly.utils.createSvgElement('rect', + { + 'fill': secondaryColour, + 'x': '7', 'y': '11', 'height': '2', 'width': '2' + }, + group); +}; + +const addWarningToBlock = (block, itemChar, message, index, colour, secondaryColour, visible = true) => { const text = `${itemChar} ${lineWrap(message)}` block.setWarningText(text, index) - setWarningBubbleColour(block, bubbleColour) + setWarningColour(block, colour, secondaryColour) block.warning.setVisible(visible) } export function addWarning(block, message, index, visible) { - addWarningToBlock(block, '☆', message, index, 'yellow', visible) + addWarningToBlock(block, '☆', message, index, 'yellow', 'black', visible) } export function addError(block, message, index, visible) { - console.log(visible) - addWarningToBlock(block, '★', message, index, 'red', visible) + addWarningToBlock(block, '★', message, index, 'red', 'white', visible) } export function changeWarningVisibility(visible) { From 728f8498cbb9b378361fba7d67268f3ec3f5b98c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 11 Sep 2023 20:07:47 -0300 Subject: [PATCH 034/212] fix e-i-deb --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f6e8ec59..e4c8c6d1f 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "shelljs": "^0.8.5" }, "optionalDependencies": { - "electron-installer-debian": "git+https://github.com/Program-AR/electron-installer-debian.git" + "electron-installer-debian": "^3.2.0" }, "main": "electron.js", "ember": { From 8cda861932b369adaf15128d81aa4c33860ee217 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 11 Sep 2023 20:11:08 -0300 Subject: [PATCH 035/212] fix e-i-deb --- package-lock.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f35cad123..ec29bba41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15845,8 +15845,9 @@ } }, "electron-installer-debian": { - "version": "git+https://github.com/Program-AR/electron-installer-debian.git#6d69b6eb0d553e95b94a45ee6a6a90f934f00eb2", - "from": "git+https://github.com/Program-AR/electron-installer-debian.git", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-3.2.0.tgz", + "integrity": "sha512-58ZrlJ1HQY80VucsEIG9tQ//HrTlG6sfofA3nRGr6TmkX661uJyu4cMPPh6kXW+aHdq/7+q25KyQhDrXvRL7jw==", "optional": true, "requires": { "@malept/cross-spawn-promise": "^1.0.0", @@ -32823,9 +32824,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.2.25", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.2.25.tgz", - "integrity": "sha512-MjT30N+5e3RXDtT8Tv/zQrCRUsEMm+sVXpQIO34Kj9P1G8EcxDxxNKihMz+Ws6J+PWS8DelSyDdnRmg5eJtjNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.3.1.tgz", + "integrity": "sha512-sYUz1n+xUrBw6u2+/z6vFqsg6IJl31KGAwI4lsdX+okiOYWpJxxQQgzBvOfog8DrwBjdeRc5l4asjrCvG1EJFw==", "requires": { "pilasweb": "^0.5.0" } From 826b51f66ab0059c8d7af979ed396e33c57a8538 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 23:14:44 +0000 Subject: [PATCH 036/212] Bump electron from 17.4.11 to 22.3.21 Bumps [electron](https://github.com/electron/electron) from 17.4.11 to 22.3.21. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v17.4.11...v22.3.21) --- updated-dependencies: - dependency-name: electron dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 496 +++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 355 insertions(+), 143 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec29bba41..36aa0222c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5854,14 +5854,14 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", + "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@embroider/shared-internals": "2.4.0", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", "find-up": "^5.0.0", "lodash": "^4.17.21", @@ -5870,12 +5870,13 @@ } }, "@embroider/shared-internals": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.2.3.tgz", - "integrity": "sha512-4RXJ07TqkQN4FpLBnQ92TZWW4wGAH7CRG37F1iE99rjxoD3IkoKe1IeyNr0Q85lws+2awx4/cEpaUsSwUYiJSg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", + "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", "dev": true, "requires": { - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", + "debug": "^4.3.2", "ember-rfc176-data": "^0.3.17", "fs-extra": "^9.1.0", "js-string-escape": "^1.0.1", @@ -5885,6 +5886,12 @@ "typescript-memoize": "^1.0.1" } }, + "babel-import-util": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", + "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "dev": true + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -5914,9 +5921,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -5975,12 +5982,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15722,20 +15729,226 @@ "dev": true }, "electron": { - "version": "17.4.11", - "resolved": "https://registry.npmjs.org/electron/-/electron-17.4.11.tgz", - "integrity": "sha512-mdSWM2iY/Bh5bKzd5drYS3mf8JWyR9P9UXZA2uLEZ+1fhgLEVkY9qu501QHoMsKlNwgn96EreQC+dfdQ75VTcA==", + "version": "22.3.21", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.21.tgz", + "integrity": "sha512-9JzWgvehRrqA30M7RvWCwwbyq2EgPUSbCFaqyZGnG0B52m4ayB8H+uFNIKXyWuyFwAEPDpQW5cGwCzXir1HuLA==", "dev": true, "requires": { - "@electron/get": "^1.13.0", - "@types/node": "^14.6.2", - "extract-zip": "^1.0.3" + "@electron/get": "^2.0.0", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" }, "dependencies": { + "@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + } + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@types/node": { - "version": "14.18.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz", - "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==", + "version": "16.18.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.50.tgz", + "integrity": "sha512-OiDU5xRgYTJ203v4cprTs0RwOCd5c5Zjv+K5P8KSqfiCsB1W3LcamTUMcnQarpq5kOYbhHfSOgIEJvdPyb5xyw==", + "dev": true + }, + "cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -16359,9 +16572,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -16442,9 +16655,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -16890,14 +17103,14 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", + "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@embroider/shared-internals": "2.4.0", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", "find-up": "^5.0.0", "lodash": "^4.17.21", @@ -16906,12 +17119,13 @@ } }, "@embroider/shared-internals": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.2.3.tgz", - "integrity": "sha512-4RXJ07TqkQN4FpLBnQ92TZWW4wGAH7CRG37F1iE99rjxoD3IkoKe1IeyNr0Q85lws+2awx4/cEpaUsSwUYiJSg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", + "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", "dev": true, "requires": { - "babel-import-util": "^1.1.0", + "babel-import-util": "^2.0.0", + "debug": "^4.3.2", "ember-rfc176-data": "^0.3.17", "fs-extra": "^9.1.0", "js-string-escape": "^1.0.1", @@ -16968,22 +17182,20 @@ "username-sync": "^1.0.2" } }, + "babel-import-util": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", + "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "dev": true + }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", "babel-import-util": "^2.0.0" - }, - "dependencies": { - "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", - "dev": true - } } }, "babel-plugin-htmlbars-inline-precompile": { @@ -17060,9 +17272,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -17170,9 +17382,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -17261,12 +17473,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -18923,21 +19135,21 @@ }, "dependencies": { "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19198,9 +19410,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -19267,12 +19479,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19808,9 +20020,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -19882,12 +20094,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20087,9 +20299,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -20152,12 +20364,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20690,9 +20902,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -20773,9 +20985,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -21363,9 +21575,9 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -21391,12 +21603,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -21633,9 +21845,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -21716,9 +21928,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -22319,9 +22531,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -22388,12 +22600,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -22479,21 +22691,21 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -23000,9 +23212,9 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -23036,12 +23248,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -23444,9 +23656,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.1.1.tgz", - "integrity": "sha512-vwEUw7qfwAgwUokQc5xMxrcJMhCu2dVvDDMIXFyOpXwxt+kqZ2FKvXFV+rJjYchIgHH5rBduEtt4Qk1qeZ6RDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", + "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -23527,9 +23739,9 @@ } }, "ember-cli-htmlbars": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.2.0.tgz", - "integrity": "sha512-j5EGixjGau23HrqRiW/JjoAovg5UBHfjbyN7wX5ekE90knIEqUUj1z/Mo/cTx/J2VepQ2lE6HdXW9LWQ/WdMtw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", + "integrity": "sha512-N9Y80oZfcfWLsqickMfRd9YByVcTGyhYRnYQ2XVPVrp6jyUyOeRWmEAPh7ERSXpp8Ws4hr/JB9QVQrn/yZa+Ag==", "dev": true, "requires": { "@ember/edition-utils": "^1.2.0", @@ -25752,9 +25964,9 @@ "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -25799,12 +26011,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } diff --git a/package.json b/package.json index e4c8c6d1f..e5b66294e 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "broccoli-asset-rev": "^3.0.0", "broccoli-funnel": "^2.0.2", "broccoli-merge-trees": "^4.2.0", - "electron": "17.4.11", + "electron": "22.3.21", "electron-packager": "15.1.0", "electron-rebuild": "2.0.0", "ember-ajax": "^5.0.0", From 6818d3dfd41a33ea294b1dcff17b9eeddb1d4c33 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 13 Sep 2023 08:25:27 -0300 Subject: [PATCH 037/212] equate translations --- translations/blocks/en-us.yaml | 3 +++ translations/blocks/es-ar.yaml | 3 +++ translations/blocks/pt-br.yaml | 31 +++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index a9709b66d..bd3f64af7 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -131,6 +131,9 @@ pulpitoBallHere: Is there a red ball here? pingPongBallHere: Is there a ping pong ball here? footBallHere: Is there a soccer ball here? paddleHere: Is there a paddle here? +chargerHere: Is there a charger here? +trophyHere: Is there a trophy here? +saladBowlHere: Is there a salad bowl here? pickTrophy: Pick trophy pickPaddle: Pick paddle bouncePingPong: Bounce ping pong ball diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index a829b88a6..8670312e1 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -131,6 +131,9 @@ pulpitoBallHere: ¿Hay una pelota pulpito acá? pingPongBallHere: ¿Hay una pelota de ping pong acá? footBallHere: ¿Hay una pelota de fútbol acá? paddleHere: ¿Hay una paleta acá? +chargerHere: ¿Hay un cargador acá? +trophyHere: ¿Hay un trofeo acá? +saladBowlHere: ¿Hay una ensaladera acá? pickTrophy: Recoger trofeo pickPaddle: Recoger paleta bouncePingPong: Rebotar pelota de ping pong diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index b899c26bf..fea4bea83 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -115,6 +115,36 @@ simpleRepetitionEnd: vezes conditionalRepetition: Repetir até que simpleAlternative: Si completeAlternative: senão +wakeUpFirefly: Acordar vaga-lume +photographButterfly: Fotografar borboleta +unlockCellphone: Desbloquear celular +pickCharger: Pegar cargador +chargeCellphone: Carregar celular +telescopeHere: Há um telescópio aqui? +planetHere: Há um planeta aqui? +canHere: Há uma lata aqui? +paperHere: Há um papel aqui? +butterflyHere: Há uma borboleta aqui? +cellphoneHere: Há um celular aqui? +fireflyHere: Há uma vaga-lume aqui? +pulpitoBallHere: Há uma bola pulpito aqui? +pingPongBallHere: Há uma bola de pingue-pongue aqui? +footBallHere: Há uma bola de futebol aqui? +paddleHere: Há uma paleta aqui? +pickTrophy: Pegar trofeo +pickPaddle: Pegar paleta +bouncePingPong: Rebotar bola de pingue-pongue +watchStar: Perceber estrela +watchPlanet: Perceber planeta +repairTelescope: Consertar telescópio +alignTelescope: Alinhar telescópio +pickCan: Pegar lata +pickPaper: Pegar papel +holdPaper: Segurar papel +fillBin: Encher taco +chargerHere: Há um cargador aqui? +trophyHere: Há um trofeo aqui? +saladBowlHere: Há uma tigela de salada aqui? categories: primitives: Primitivas myProcedures: Meus procedimentos @@ -158,3 +188,4 @@ errors: nonAvailableBlock: Este bloco não está disponível nesta atividade. wrongParameter: Este bloco não pode ser usado aqui. É um parâmetro que só pode ser usado no procedimento "{procedure}" deletedParameter: Este bloco já não pode ser usado, o parâmetro foi eliminado. + missingTextInput: Você tem que escolher uma letra! \ No newline at end of file From 4229d0d81860bd3d741e4d336d7720cb49fa8867 Mon Sep 17 00:00:00 2001 From: evitalinuxera Date: Wed, 13 Sep 2023 17:49:15 -0300 Subject: [PATCH 038/212] =?UTF-8?q?Agregado=20el=20de=20los=20trofeos=20co?= =?UTF-8?q?n=20par=C3=A1metros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 1a3551a6a..65b3e472a 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -688,8 +688,8 @@ model: 'nuevo9': title: Cargando los celus description: | - Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador y luego ir a cargar cada uno de los celulares. Programá una solución para que pueda lograrlo. - clue: '¿En cuántas partes te conviene dividir tu estrategia?' + Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador y luego ir a cargar cada uno de los celulares. Programá una solución para que pueda lograrlo. + clue: ¿En cuántas partes te conviene dividir tu estrategia? 'nuevo10': title: Instalando juegos description: | @@ -820,6 +820,10 @@ model: title: Mariposas encuadradas description: Yvoty quiere fotografiar todas las mariposas que encuentre en su recorrido habitual por la selva. Tené en cuenta que en cada ejecución las mariposas aparecen en lugares distintos. clue: 'Dos datos importantes: las mariposas nunca se posan en las casillas de la esquina y el sendero que recorre Yvoty siempre es el mismo' + 'nuevo134': + title: Trofeos y más trofeos + description: La colección de trofeos de Chuy crece día a día. Acompañale a recogerlos. Tené en cuenta que la posición de los mismos no cambia y que tanto las direcciones como la cantidad de trofeos podrían ser parámetros... + clue: Una característica muy útil es que podés combinar parámetros numéricos (cantidades, medidas) con parámetros de texto (direcciones, nombres). ¡Aprovechala! groups: AlienTocaBoton: title: '' From c42f11389c9ef1dd81346e243f57565c658cee9d Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Thu, 14 Sep 2023 09:34:22 -0300 Subject: [PATCH 039/212] Release 1.15.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 07c7e34aa..85572c234 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.0", + "version": "1.15.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e5b66294e..a83a80547 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.0", + "version": "1.15.1", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From e411739606028c4b14adb78f06702a029590d740 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 18:48:58 +0000 Subject: [PATCH 040/212] Bump electron from 22.3.21 to 22.3.24 Bumps [electron](https://github.com/electron/electron) from 22.3.21 to 22.3.24. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v22.3.21...v22.3.24) --- updated-dependencies: - dependency-name: electron dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 86 ++++++++++++++++++++++------------------------- package.json | 2 +- 2 files changed, 41 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85572c234..b2b81cb30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5875,6 +5875,7 @@ "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", "dev": true, "requires": { + "babel-import-util": "^2.0.0", "debug": "^4.3.2", "ember-rfc176-data": "^0.3.17", "fs-extra": "^9.1.0", @@ -5883,13 +5884,6 @@ "resolve-package-path": "^4.0.1", "semver": "^7.3.5", "typescript-memoize": "^1.0.1" - }, - "dependencies": { - "babel-import-util": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-1.4.1.tgz", - "integrity": "sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ==" - } } }, "babel-import-util": { @@ -5988,9 +5982,9 @@ "dev": true }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -15735,9 +15729,9 @@ "dev": true }, "electron": { - "version": "22.3.21", - "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.21.tgz", - "integrity": "sha512-9JzWgvehRrqA30M7RvWCwwbyq2EgPUSbCFaqyZGnG0B52m4ayB8H+uFNIKXyWuyFwAEPDpQW5cGwCzXir1HuLA==", + "version": "22.3.24", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.24.tgz", + "integrity": "sha512-wnGsShoRVk1Jmgr7h/jZK9bI5UwMF88sdQ5c8z2j2N8B9elhF/jKDFjwDXUrY1Y0xzAskOP0tYIDE+UbUM4byQ==", "dev": true, "requires": { "@electron/get": "^2.0.0", @@ -15777,9 +15771,9 @@ } }, "@types/node": { - "version": "16.18.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.50.tgz", - "integrity": "sha512-OiDU5xRgYTJ203v4cprTs0RwOCd5c5Zjv+K5P8KSqfiCsB1W3LcamTUMcnQarpq5kOYbhHfSOgIEJvdPyb5xyw==", + "version": "16.18.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.52.tgz", + "integrity": "sha512-sm2aph6cRSsTMFYFgI+RpPLunXO9ClJkpizUVdT7KmGeyfQ14xnjTMT/f3MHcfKqevXqGT6BgVFzW8wcEoDUtA==", "dev": true }, "cacheable-request": { @@ -17479,9 +17473,9 @@ "dev": true }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19150,9 +19144,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19485,9 +19479,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20100,9 +20094,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20370,9 +20364,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -21609,9 +21603,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22606,9 +22600,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22706,9 +22700,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -23254,9 +23248,9 @@ "dev": true }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -26017,9 +26011,9 @@ } }, "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "requires": { "is-core-module": "^2.13.0", diff --git a/package.json b/package.json index a83a80547..7497957b8 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "broccoli-asset-rev": "^3.0.0", "broccoli-funnel": "^2.0.2", "broccoli-merge-trees": "^4.2.0", - "electron": "22.3.21", + "electron": "22.3.24", "electron-packager": "15.1.0", "electron-rebuild": "2.0.0", "ember-ajax": "^5.0.0", From 436801d4e718cf098cb863ebc8751b4fc8bd846b Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Sep 2023 16:53:49 -0300 Subject: [PATCH 041/212] primera tanda de enunciados revisada --- translations/es-ar.yaml | 122 ++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 65b3e472a..9c6b17213 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -658,168 +658,170 @@ model: 'nuevo1': title: Capy y Guyrá description: | - El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros: Guyrá está siempre sobre la cabeza de Capy. En esta oportunidad, te toca a vos hacer que Capy pase a buscar a su amigo y lo suba para emprender juntos una nueva aventura. - clue: 'Fijate bien el orden de las primitivas, qué cosa tenés que hacer primero y qué cosa va después' + El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. + clue: 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.' 'nuevo4': title: Mañic en el cielo description: | - La ñandú Mañic está fascinada con el cielo, le encanta observarlo y estudiarlo. Sus astros preferidos son las estrellas. Ayudala a observarlas a todas con su mirada científica. Una buena estrategia puede ser crear un procedimiento para cada bloque de estrellas. - clue: 'Hay muchas formas de observar las estrellas: podés empezar por las de la derecha... o podés arrancar por arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' + La ñandú Mañic está fascinada con el cielo, le encanta observarlo y estudiarlo. Sus astros preferidos son las estrellas y hay muchas formas de observarlas. Ayudala a observar todas las estrellas con su telescopio. + clue: 'Una estrategia puede ser empezar por las estrellas de la derecha... o podés arrancar por las de arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' 'nuevo5': title: Yvoty despierta a las luciérnagas description: | - Para sacar buenas fotos se necesita una excelente luz natural. Yvoty cuenta con sus amigas las luciérnagas, que le iluminan cualquier escenario... ¡siempre y cuando estén despiertas!. Proponé una solución para que nuestra amiga pueda ir y despertar a todas las luciérnagas, una por una. - clue: Mirá las diagonales que forman las luciérnagas... ¿Podés identificar un patrón en común? ¿En qué te ayudaría crear un procedimiento?. Se puede definir un procedimiento una vez y usarlo **todas las veces que quieras** dentro de un programa. + Para sacar buenas fotos se necesita buena luz. La yaguareté Yvoty cuenta con las luciérnagas, que iluminan cualquier escenario... ¡siempre y cuando estén despiertas! Ayudá a Yvoty a despertar a todas las luciérnagas. + clue: Mirá las diagonales que forman las luciérnagas... ¿Podés identificar un patrón en común? ¿Podría ayudarte crear un procedimiento? Los procedimientos se crean una vez y se pueden usar **todas las veces que quieras** dentro de un programa. 'nuevo6': title: Chuy, campeone desordenade description: | - Nuestre amigue Chuy practica muchos deportes y ha logrado una gran cantidad de victorias, tantas son que tiene desparramados sus trofeos por varios lugares. Te pedimos que le ayudes a recogerlos uno por uno. - clue: ¿Hay tareas repetitivas? ¿Qué bloques te ayudan a resolver estas cuestiones comunes?. + Le pingüine Chuy es fan de todos los deportes y ha logrado una gran cantidad de victorias, tantas son que tiene desparramados sus trofeos por varios lugares. Ayudá a Chuy a recoger todos los trofeos. + clue: Pensá en cómo resolverás el problema. Identificá si hay tareas repetitivas. ¿Qué bloques te podrían ayudar a resolver estas tareas? 'nuevo7': title: La reparadora de telescopios description: | - A Mañic le gusta mantener sus elementos de astronomía en excelente estado, así que se dispone a reparar todos los telescopios y dejarlos listos para la próxima observación. Acompañala a cumplir su objetivo. - clue: ¿Sería una buena estrategia crear un procedimiento que recorra y repare una fila de telescopios para luego repetirlo en cada fila? + A Mañic le gusta mantener sus elementos de astronomía en excelente estado, así que se dispone a reparar los telescopios y dejarlos listos para la próxima observación. Ayudala a reparar todos los telescopios. + clue: ¿Sería una buena estrategia crear un procedimiento que recorra y repare una fila de telescopios, luego repetirlo en cada fila? 'nuevo8': title: Mañic y los planetas description: | - Es una noche límpida, ideal para observar todos los planetas que se ven desde el campo en el que está Mañic. Ella se prepara para observar uno a uno todos los planetas con su telescopio. Tu desafío es hacer que Mañic pueda alinear y observar cada uno de los astros. - clue: Ayudaría mucho que puedas encontrar una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. + Es una noche sin nubes, ideal para observar todos los planetas que se ven desde el campo en el que está Mañic. Ayudala a observar todos los planetas con su telescopio. + clue: ¿Sería posible crear una estrategia que te permita **reutilizar** un mismo procedimiento varias veces? 'nuevo9': title: Cargando los celus description: | - Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador y luego ir a cargar cada uno de los celulares. Programá una solución para que pueda lograrlo. + Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador, y luego ir a cargar cada uno de los celulares. ¿Cómo podrías ayudarla? clue: ¿En cuántas partes te conviene dividir tu estrategia? 'nuevo10': title: Instalando juegos description: | - ¡Hoy es noche gamer!... Yvoty va a instalar un juego en 3 compus para que ella y sus amigas tengan todo listo para divertirse. El proceso de instalación es: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Necesita de tu ayuda para completar la instalación en las tres computadoras. - clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Para qué sirve tener eso en cuenta?' + Yvoty va a instalar un juego en tres computadoras para que ella y sus amigas tengan todo listo para divertirse esta noche. Los pasos para instalarlo son: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Ayudala a completar la instalación de las tres compus. + clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' 'nuevo13': title: Chuy y la pelota indecisa description: | - Chuy quedó emocionade del Mundial de fútbol femenino y quiere emular a sus heroínas practicando tiros libres, pero su pelota no es una pelota común. A veces decide desaparecer. Hacé que Chuy pueda patear la pelota si esta aparece en la casilla de la derecha. - clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear, Chuy debe estar en la misma casilla que la pelota.' + Chuy quedó emocionade con el campeonato de fútbol femenino y quiere imitar a sus heroínas practicando tiros libres con su pelota. Para eso, debe correr hacia ella y patearla **sólo si hay una pelota**. Si no, no hace nada. Ayudá a Chuy a hacer sus tiros libres, pateando todas las pelotas. + clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear, Chuy y la pelota deben estar en la misma casilla.' 'nuevo14': title: ¿Pelota o paleta? description: | - Sabemos que Chuy gusta de todos los deportes, nunca son demasiados para jugarlos a la vez :smile:. Según aparezca una pelota de fútbol o una de ping-pong, Chuy deberá patearla o tomar la paleta y darle con fuerza. ¡Adelante con la programación que los Juegos Olímpicos no esperan! - clue: 'Las opciones posibles son solo dos: **si no** aparece una pelota de fútbol, será una de ping-pong.' + Sabemos que a Chuy le gustan todos los deportes, nunca son demasiados y se dispone a jugar varios a la vez :smile:. Según aparezca una pelota de fútbol o una de ping-pong, Chuy deberá patearla o rebotarla en la paleta. Ayudá a Chuy a practicar estos deportes. + clue: 'Cuando sólo hay 2 opciones (en este caso puede haber una pelota de fútbol o una pelota de ping pong), alcanza con hacer una sola pregunta. Para estas situaciones se puede usar el bloque `Si… si no`.' 'nuevo15': title: | Chuy, jugadore de toda la cancha description: | - Ya sabés que Chuy no se quiere perder ni una jugada. Siempre participa del juego, no importa si su equipo esté yendo hacia adelante o trabajando en línea. Acompañale haciendo que se mueva para la derecha o para abajo según se presente la posibilidad. - clue: Cada vez que aprietes el botón **Ejecutar** se generará una nueva jugada que puede ser para la derecha o para abajo. Tiene que haber alguna manera de que Chuy pueda **sensar** si la jugada es de un tipo o de otra... + ¡Chuy no se quiere perder ninguna jugada! Esta vez está practicando sus movimientos rápidos hacia abajo y hacia la derecha, según se presente la posibilidad. ¡Ayudale a practicar! + clue: Hay que encontrar una manera de que Chuy pueda **sensar** si debe moverse hacia la derecha o hacia abajo ya que el escenario no siempre es el mismo. 'nuevo16': title: Alineando telescopios description: | - Para observar bien las estrellas, los telescopios de Mañic deben estar bien alineados con los astros. No es tarea fácil porque cada vez se ubican en diferentes lugares y también varía la cantidad de telescopios. Acompañá a nuestra científica amiga en la tarea de alinear los telescopios que encuentre en su camino. - clue: 'Fijate primero cómo hacer un procedimiento para **alinear telescopio si es que lo hay**' + Para observar correctamente a las estrellas, los telescopios de Mañic deben estar bien alineados con los astros. Ayudá a nuestra científica amiga a alinear los telescopios que encuentre en su camino. + clue: 'Fijate primero cómo hacer un procedimiento para **alinear telescopio si es que lo hay**.' 'nuevo17': - title: Yvoty saca buenas fotos. - description: Como buena fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello prueba varias combinaciones de luces, modificando la posición y cantidad de luciérnagas en cada toma. Este desafío te propone trabajar con ella de manera de recorrer la hilera y despertar a la luciérnaga que encuentre, para que pueda iluminar el sendero y sacar las mejores fotos con su celular. + title: Yvoty saca buenas fotos + description: Como fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello, en cada toma, prueba varias combinaciones de luces con la ayuda de las luciérnagas. ¿Cómo podría Yvoty despertar a todas las luciérnagas teniendo en cuenta que cambian de lugar? ¡Ayudala! clue: '¿Qué es lo que varía y qué es lo que se mantiene constante en cada ejecución?' 'nuevo18': title: Barrilete cósmico description: | - Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Siempre se las ingenia para esquivar y encontrar un camino que le permita continuar su carrera. Programá su recorrido para que llegue a la casilla de abajo a la derecha esquivando los obstáculos que se le presenten. Recordá que en cada ejecución te encontrarás con un escenario distinto. - clue: 'Los diferentes caminos posibles... ¿tienen el mismo o distinto largo?' + Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Ayudale a encontrar el recorrido para llegar a la esquina inferior derecha de la cancha, esquivando los obstáculos que se le presenten. + clue: 'Los diferentes caminos posibles... ¿tienen el mismo o distinto largo? Recordá que en cada ejecución te encontrarás con un escenario distinto.' 'nuevo19': title: Super Yvoty 1 description: | - Nuevamente el desafío es ayudar a Yvoty en su tarea de despertar las luciérnagas para tener una buena iluminación... pero, ¡ojo!, si bien en todas las celdas hay una luciérnaga no sabés cuántas celdas hay en total en cada ejecución. - clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos!. + ¡Yvoty continúa tomando fotos! Por lo que sigue necesitando la ayuda de las luciérnagas para tener una buena iluminación. Ayudala a despertar a todas las luciérnagas teniendo en cuenta que el camino que recorre puede ser más corto o más largo. + clue: Aprovechá los nuevos bloques, pueden ayudarte a resolver el desafío de manera muy sencilla. 'nuevo20': title: Super Yvoty 2 description: | - En este caso, Yvoty también debe despertar a todas las luciérnagas que encuentre para iluminar bien el paisaje, pero ahora se suma la complicación que aparecen celdas sin luciérnagas. ¿Se podrá utilizar el mismo procedimiento que en "Super Yvoty 1"? - clue: El bloque **"repetir hasta que"** repite una secuencia de acciones **hasta que se cumpla una condición**. Esto se llama **"repetición condicional"**. + En este caso, Yvoty también debe despertar a todas las luciérnagas que encuentre para iluminar bien el paisaje, pero ahora no sólo no se conoce el largo del camino… ¡sino que tampoco se sabe si habrá o no luciérnagas en cada paso! ¿Servirá la misma ayuda que le diste en "Super Yvoty 1"? + clue: El bloque `repetir hasta que` repite una secuencia de acciones **hasta que se cumpla una condición**. Esto se llama **repetición condicional**. 'nuevo21': title: Laberinto con pelotas description: | - Ya vimos a Chuy corriendo con la pelota en la mano por escenarios diversos. Ahora, una nueva alternativa nos espera para resolverla juntes. Además de sortear los obstáculos que se presentan, deberá patear una pelota de goma si es que esta aparece. Como era de esperarse, nunca es la misma cantidad de pelotas y el formato del terreno a sortear también es diferente en cada ejecución. + Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' 'nuevo23': title: Fútbol al sur description: | - ¿Es el fútbol el deporte favorito de Chuy?. No lo sabemos ciertamente, pero lo que sí es seguro es que nuestre amigue no se pierde un solo partido. En esta oportunidad deberá patear todas las pelotas de fútbol que encuentre **al final de cada fila**. Para ello deberá recorrer cada fila y al llegar a la pelota, patearla para repetir este procedimiento en cada una de ellas. - clue: 'La cantidad de filas es constante, pero la longitud de cada una es variable. Fijate como manejar estos dos datos para recorrer las mismas y llegar a cada una de las pelotas de fútbol. Una buena idea es hacer un procedimiento que resuelva una fila, ¿no te parece?' + ¿Es el fútbol el deporte favorito de Chuy? No lo sabemos ciertamente, pero lo que sí es seguro es que no se pierde un solo partido. En esta oportunidad, ayudá a Chuy a patear todas las pelotas. + clue: 'La cantidad de filas es constante, pero la longitud de cada una es variable. Fijate cómo manejar estos dos datos para recorrer las mismas y llegar a cada una de las pelotas de fútbol. Una buena idea es hacer un procedimiento que resuelva una fila, ¿no te parece?' 'nuevo24': title: Prendiendo las compus description: | - Nuestra amiga Yvoty siempre está colaborando con las cuestiones técnicas... en este caso tiene como tarea prender todas las computadoras de la escuela de su barrio. La dificultad reside en que como las aulas tienen todas distinto tamaño, se necesita programar una manera de recorrer cada una prendiendo las compus sin importar cuántas hubiere. - clue: 'Pensá cómo poder prender todo un lado del rectángulo del aula, y luego repertilo en cada tramo' + Yvoty siempre está predispuesta a resolver cuestiones técnicas. En este caso, la escuela le pidió ayuda para encender las computadoras de todas las aulas. El desafío es que las aulas tienen diferentes tamaños… ¡Ayudala a prender todas las computadoras! + clue: '¿Sería posible prender todo un lado del rectángulo del aula, y luego repetirlo en cada tramo?' 'nuevo28': title: El humedal de Capy y Guyrá description: | - Nuestros amigos siguen limpiando su estero y necesitan nuevamente tu ayuda para recoger todas las latas. Pero ahora se ha presentado una nueva dificultad: no se puede bajar, así es que deberás ordenar de cierta manera el trayecto para no dejar ninguna lata ensuciando el humedal. La buena noticia es que las latas están siempre en el mismo lugar. + Los amigos, Capy y Guyrá, siguen limpiando el humedal. Pero esta vez la situación es un poco más complicada… ¡no se pueden mover hacia abajo! :scream: La buena noticia es que los desechos que deben limpiar están siempre en el mismo lugar. Ayudalos a recoger todas las latas. clue: | - A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría "Recoger latas a la derecha con [cantidad]" y se reemplaza el **parámetro** [cantidad] por 2, 3 o 4 en cada caso. - Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". + A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos `Recoger 2 latas a la derecha`, `Recoger 3 latas a la derecha` y `Recoger 4 latas a la derecha`, podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría `Recoger latas a la derecha con [cantidad]` y se reemplaza el **parámetro** `[cantidad]` por 2, 3 o 4 en cada caso. + Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el **+** que aparece al lado del nombre en el bloque `Definir`. 'nuevo38': title: Las estrellas de Mañic - description: La observación de estrellas no siempre es fácil. A veces, Mañic debe tomar un trayecto más largo porque algo se le interpone en la alineación del telescopio. Es tu tarea lograr que llegue a observar la estrella, esquivando los obstáculos. No te olvides de guardar la solución ya que la necesitarás más adelante. - clue: ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cosa cambia en cada uno de ellos? + description: | + Mañic conoce el lugar ideal para observar su estrella favorita. Pero a veces le es difícil llegar porque hay obstáculos que se interponen en su camino, haciéndolo más largo. Ayudá a Mañic a observar la estrella, esquivando los obstáculos. ¡No te olvides de guardar la solución! La necesitarás más adelante. :wink: + clue: | + ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cambia en cada uno de ellos? 'nuevo39': title: La estrella interesante description: | - Mañic encontró la ubicación de una interesante estrella para observar, aunque el camino es aún más largo y peligroso que los anteriores. Acompañá a Mañic en tal compleja travesía. - clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (Las estrellas de Mañic)? + ¡Le avisaron a Mañic sobre una nueva estrella! El punto de observación está al final de un sendero largo y peligroso. Ayudala a llegar y observar la estrella esquivando todo los obstáculos. + clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (“Las estrellas de Mañic”)? 'nuevo40': title: | Hilera de latas description: | - “Nada mejor que despertar por la mañana y salir a dejar el mundo más limpio”, le comenta Capy a Guyrá. Ayudalos a recoger todas las latas que encuentren a su paso. No te olvides de descargar la solución ya que la vas a necesitar en otro desafío. + _“No hay mejor plan que despertar por la mañana para mejorar un poco el mundo”_, le comenta Capy a Guyrá. Ayudalos a encontrar el recorrido para recoger todas las latas que hallen a su paso. ¡No te olvides de guardar la solución! La necesitarás más adelante. :wink: clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? 'nuevo41': title: | Turistas latosos description: | - La cantidad de latas desechadas por les turistas aumenta constantemente. Cada día, Capy y Guyrá necesitan trabajar más para mantener su hábitat en condiciones. Dales una mano concientizando sobre este daño y además acompañándolos en la tarea de limpieza, recogiendo todas las latas desechadas en lugares inapropiados. - clue: ¿Hay alguna tarea que nuestros amigos tengan que realizar repetitivamente? ¿Te puede ayudar la solución del desafío anterior (Hilera de latas)? + Lamentablemente, la cantidad de latas desechadas por turistas aumenta constantemente :pensive:. Por eso Capy y Guyrá necesitan trabajar cada día más para mantener el humedal sin residuos. ¿Qué recorrido deberían hacer para recoger todas las latas? + clue: ¿Hay alguna tarea que Capy y Guyrá tengan que realizar repetitivamente? ¿De qué forma la solución del desafío anterior (“Hilera de latas”) podría ser de ayuda? 'nuevo42': title: | A veces latas, a veces papeles description: | - Es un día particularmente complejo en el humedal. La cantidad de desechos que dejaron les turistas es tan enorme como triste. Ayudá a Capy y Guyrá a recoger todas las latas y papales que encuentren a su paso. - clue: Pensá una estrategia que permita que nuestros amigos recorran una fila y recojan todas las latas y papeles que encuentren. Luego... ¿se podrá hacer lo mismo en las demás filas? + Es un día particularmente difícil en el humedal. La cantidad de residuos que dejaron les turistas es tan enorme como triste. Ayudá a Capy y Guyrá a recoger todas las latas y papeles que encuentren a su paso. + clue: Pensá una estrategia que permita recorrer una fila y recoger todas las latas y papeles. Luego... ¿se podría hacer lo mismo en las demás filas? 'nuevo43': title: | El pasillo curvo de celus description: | - Yvoty tiene mucho, mucho trabajo esta mañana. Sus amigues la llamaron porque todos los celus de la selva se bloquearon y necesitan que ella, con su conocimiento, los desbloquee. Guiala para recorrer el intrincado camino selvático y además desbloquear todos los teléfonos de la selva que vaya encontrando. + Yvoty tiene mucho trabajo esta mañana. Sus amigues la llamaron porque todos los celus de la selva se bloquearon y necesitan que ella, con su conocimiento, los desbloquee. Ayudala a desbloquear todos los teléfonos que vaya encontrando. clue: Como en otros desafíos, buscá los patrones, las cosas que son iguales para resolver ese patrón y luego replicar. Por ejemplo, las curvas del sendero, ¿son iguales entre sí? 'nuevo44': title: | El festín astronómico description: | - Mañic está de fiesta. Los astros están más brillantes e interesantes que nunca. La visibilidad es óptima y la noche está para disfrutarla observando este fenómeno que no se da muy seguido. Acompañala en esta observación especial, recorriendo todo el campo y alineando el telescopio con cada astro para que la observación sea perfecta y Mañic pueda estudiar a cada uno. - clue: Una observacion habitual de Mañic es una columna de seis astros alineados. ¿Cuántas columnas tiene el evento astronómico? Si lográs hacer que Mañic observe los astros de una columna y luego replicar esta acción en cada una de ellas... ¡Cuidado con las tranqueras y los obstáculos! + Mañic está de fiesta. Los astros están más brillantes que nunca. La visibilidad es óptima y la noche está para disfrutarla investigando este fenómeno que no sucede seguido. ¿Qué recorrido debería hacer Mañic para observar todas las estrellas y planetas? + clue: Una observación habitual de Mañic es una columna de seis astros alineados. ¿Cuántas columnas tiene el evento astronómico? Si lográs hacer que Mañic observe los astros de una columna y luego replicar esta acción en cada una de ellas... ¡Cuidado con los obstáculos! 'nuevo45': title: | Fotografiando mariposas description: | - El nuevo celu de Yvoty tiene una muy buena cámara para fotografiar objetos cercanos. Nada mejor que probarlo sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. En cualquier caso, Yvoty deberá ir una por una y sacarle una foto desde muy corta distancia. - clue: Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido, ¿no te parece? + Yvoty se descargó una nueva aplicación para fotografiar objetos cercanos. Nada mejor que probarla sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. Ayudá a Yvoty a fotografiar a todas las mariposas. + clue: 'Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero una casilla, luego una fila o columna, y finalmente un grupo de mariposas.' 'nuevo46': title: Nuevos comandos description: | - Los inseparables Capy y Guyrá necesitan limpiar su estero. Para eso se propusieron recoger primero las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. ¿Los ayudás con esta tarea y así cuidar su humedal? + Capy y Guyrá quieren cuidar su estero. Para lograrlo van a limpiar los desechos tirados por turistas. Empiezan por las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. Ayudalos a recoger todas las latas. clue: ¿Viste los **procedimientos**? Combinando primitivas podés **crear nuevos comandos** para luego usarlos **cuantas veces quieras.** 'nuevo131': title: Reciclando papeles description: | - Ayudá a Capy y Guyrá a dejar un papel en el tacho al final de cada fila. ¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! Pista: si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila? - clue: '' + Ayudá a Capy y Guyrá a dejar un papel en el tacho al final de cada fila. ¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! + clue: 'Si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila?' 'nuevo132': title: Prendiendo las compus parametrizado - description: 'Al igual que antes, debemos prender todas las compus. Pero esta vez tenés que definir un único procedimiento que prenda cualquiera de los lados.' - clue: 'Los parámetros pueden ser direcciones, no siempre deben ser números. Por ejemplo, un parámetro podría ser la dirección en que el autómata debe moverse.' + description: 'Yvoty es tan hábil con la tecnología que le volvieron a pedir ayuda desde la escuela para encender las computadoras de todas las aulas. Si bien las aulas siguen teniendo diferentes tamaños, Yvoty aprendió cosas nuevas que van a hacer esta tarea más rápida. ¡Ayudá a Yvoty a prender todas las computadoras!' + clue: 'Podés definir un único procedimiento con un parámetro para prender las computadoras de cualquier fila o columna. En este caso, el parámetro será la dirección en que debe moverse Yvoty (¡no siempre deben ser números!)' 'nuevo133': title: Mariposas encuadradas - description: Yvoty quiere fotografiar todas las mariposas que encuentre en su recorrido habitual por la selva. Tené en cuenta que en cada ejecución las mariposas aparecen en lugares distintos. - clue: 'Dos datos importantes: las mariposas nunca se posan en las casillas de la esquina y el sendero que recorre Yvoty siempre es el mismo' + description: Yvoty salió a recorrer la selva misionera y se encontró con un grupo de mariposas… ¡Una hermosa escena para fotografiar! La dificultad está en que las mariposas están en constante movimiento, por lo que no siempre se quedan en el mismo lugar. Ayudala a fotografiar a todas las mariposas. + clue: 'Dos datos importantes: las mariposas nunca se posan en las casillas de la esquina y el sendero que recorre Yvoty siempre es el mismo.' 'nuevo134': title: Trofeos y más trofeos description: La colección de trofeos de Chuy crece día a día. Acompañale a recogerlos. Tené en cuenta que la posición de los mismos no cambia y que tanto las direcciones como la cantidad de trofeos podrían ser parámetros... From 74c3fdaa724a5531c4b5768c3ccb279287e97955 Mon Sep 17 00:00:00 2001 From: rgonzalezt Date: Tue, 19 Sep 2023 11:46:27 -0300 Subject: [PATCH 042/212] Delete todo.txt --- todo.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 todo.txt diff --git a/todo.txt b/todo.txt deleted file mode 100644 index 55a72c6b2..000000000 --- a/todo.txt +++ /dev/null @@ -1 +0,0 @@ -Encontrar el desafío de ponerse el pajarito en la cabeza. From 5ecb9769fac21890062c28447ed3b59011013afe Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 21 Sep 2023 16:28:14 -0300 Subject: [PATCH 043/212] books --- app/templates/password-recovery.hbs | 2 +- translations/components/descripcionAcercaDe/en-us.yaml | 2 +- translations/components/descripcionAcercaDe/es-ar.yaml | 2 +- translations/components/descripcionAcercaDe/pt-br.yaml | 2 +- translations/en-us.yaml | 4 ++-- translations/es-ar.yaml | 4 ++-- translations/pt-br.yaml | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/templates/password-recovery.hbs b/app/templates/password-recovery.hbs index a88be3a75..100843dc3 100644 --- a/app/templates/password-recovery.hbs +++ b/app/templates/password-recovery.hbs @@ -46,7 +46,7 @@ @model={{ this.credentials.parentDNI }} @required={{ true }} @onKeyDown={{ action (mut this.wrongCredentials) false }} - @error={{ if this.wrongCredentials (t "templates.password-recovery.invalidId") }} /> + @error={{ if this.wrongCredentials (t "templates.password-recovery.invalidID") }} /> {{/unless}} diff --git a/translations/components/descripcionAcercaDe/en-us.yaml b/translations/components/descripcionAcercaDe/en-us.yaml index 39964e336..086a9ba94 100644 --- a/translations/components/descripcionAcercaDe/en-us.yaml +++ b/translations/components/descripcionAcercaDe/en-us.yaml @@ -11,7 +11,7 @@ learning: The main difference is that this platform was created in support of sequence: What’s a didactic sequence? plan: 'It’s the plan by means of which teachers expect students to learn a topic. Pilas Bloques didactic sequence was created and tested by Argentine teachers and researchers. Nowadays, this proposal is being studied in depth and expanded. Learn more about the initiatives we are working on' whoCanDo: Who can solve Pilas Bloques challenges? -activities: 'These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of the activities of the First Cycle, and children between 9 and 12 years old will be able to take advantage of the activities of the Second Cycle.' +activities: 'These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of Initial Level activities, and children between 9 and 12 years old will be able to take advantage of Intermediate Level activities.' anyone: And can anyone solve these challenges on their own? tool: 'This tool was thought as an aid for the teacher and the student along the teaching-learning process of computer programming at school. In these didactic sequences, the inquiry-based methodology is fundamental. However, our recommendation is that the teacher guide and assist during the student’s learning process.' contact: Contact diff --git a/translations/components/descripcionAcercaDe/es-ar.yaml b/translations/components/descripcionAcercaDe/es-ar.yaml index 489c695c5..842b77a9e 100644 --- a/translations/components/descripcionAcercaDe/es-ar.yaml +++ b/translations/components/descripcionAcercaDe/es-ar.yaml @@ -11,7 +11,7 @@ learning: La principal diferencia es que esta plataforma fue pensada para aco sequence: ¿Qué es una secuencia didáctica? plan: 'Es el plan mediante el cual se propone aprender un tema. La secuencia didáctica de Pilas Bloques fue ideada y probada por docentes e investigadores argentinos. Hoy en día, esta propuesta se está profundizando y ampliando. Conocé más sobre las iniciativas que estamos abordando' whoCanDo: ¿Quién puede hacer los desafíos de Pilas Bloques? -activities: 'Los desafíos pueden ser realizados por niños de 3 a 99 años ;) . Sin embargo, actualmente acompañan dos manuales para docentes orientados a la primaria , por lo que los niños entre 5 y 8 años podrán aprovechar mejor las actividades del Primer Ciclo, y los niños entre 9 y 12 años podrán aprovechar mejor las actividades del Segundo Ciclo.' +activities: 'Los desafíos pueden ser realizados por niños de 3 a 99 años ;) . Sin embargo, actualmente acompañan dos manuales para docentes orientados a la primaria , por lo que los niños entre 5 y 8 años podrán aprovechar mejor las actividades del Nivel Inicial, y los niños entre 9 y 12 años podrán aprovechar mejor las actividades del Nivel Intermedio.' anyone: ¿Y cualquiera puede hacer los desafíos por su cuenta? tool: 'La herramienta está pensada como ayuda al docente y al alumno en el proceso de aprendizaje de la programación en un entorno escolar. En la secuencia didáctica que se plantea, la indagación autodidacta es fundamental. Nuestra recomendación, no obstante, es que el docente sea el que guíe y asista el proceso de aprendizaje del alumno.' contact: Contacto diff --git a/translations/components/descripcionAcercaDe/pt-br.yaml b/translations/components/descripcionAcercaDe/pt-br.yaml index d5668965f..e7dee8249 100644 --- a/translations/components/descripcionAcercaDe/pt-br.yaml +++ b/translations/components/descripcionAcercaDe/pt-br.yaml @@ -11,7 +11,7 @@ learning: A principal diferença é que essa plataforma foi projetada para ac sequence: O que é uma sequência didática? plan: 'É o plano pelo qual você pretende aprender um tópico. A seqüência didática do Pilas Bloques foi idealizada e testada por professores e pesquisadores argentinos. Hoje, essa proposta está se aprofundando e se ampliando. Saiba mais sobre as iniciativas que estamos enfrentando ' whoCanDo: Quem pode fazer os desafios do Pilas Bloques? -activities: Os desafios podem ser feitos por crianças de 3 a 99 anos ;) . Porém, atualmente acompanham dois manuais para professores orientados para o ensino fundamental, para que crianças entre 5 e 8 anos possam aproveitar melhor as atividades do Primeiro Ciclo, e crianças entre 9 e 12 anos podem aproveitar melhor as atividades do Segundo Ciclo. +activities: Os desafios podem ser feitos por crianças de 3 a 99 anos ;) . Porém, atualmente acompanham dois manuais para professores orientados para o ensino fundamental, para que crianças entre 5 e 8 anos possam aproveitar melhor as atividades do nível Inicial, e crianças entre 9 e 12 anos podem aproveitar melhor as atividades do nível Intermédio. anyone: E alguém pode fazer os desafios por conta própria? tool: A ferramenta tem como objetivo auxiliar o professor e o aluno no processo de aprendizagem de programação em ambiente escolar. Na sequência didática que se propõe, a investigação autodidata é fundamental. Nossa recomendação, entretanto, é que o professor seja quem orientar e auxiliar no processo de aprendizagem do aluno. contact: Contato diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 839ec18b3..fd1fde523 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -910,10 +910,10 @@ model: title: 'With Toto' books: '1': - title: First Cycle + title: Initial description: 'Challenges of Teachers’ Handbook "Computer Science in the classroom, 1st cycle of elementary school"' '2': - title: Second Cycle + title: Intermediate description: 'Challenges of Teachers’ Book "Activities to learn how to Program.AR" for the 2nd cycle of elementary school, and beyond.' '100': title: Tecnópolis diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 9c6b17213..3ab0883dc 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -959,10 +959,10 @@ model: title: 'Con Toto' books: '1': - title: Primer Ciclo + title: Inicial description: 'Desafíos del manual para docentes "Ciencias de la Computación para el aula, 1° ciclo de primaria"' '2': - title: Segundo Ciclo + title: Intermedio description: Desafíos del cuaderno para docentes "Actividades para aprender a Program.AR", para 2° ciclo de primaria en adelante. '100': title: Tecnópolis 2021 diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index e4375f7ad..6e9892955 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -898,10 +898,10 @@ model: title: 'Com Toto' books: '1': - title: Primeiro Ciclo + title: Inicial description: Desafios do manual para professores "Informática para a sala de aula, 1º ciclo do ensino básico" '2': - title: Segundo Ciclo + title: Intermédio description: Desafios do caderno para professores "Programa Atividades para aprender.AR" A partir do 2º ciclo do ensino básico. '100': title: Tecnopolis 2021 From 4a4ec06853b57c0d55286cd087c370ff91281d6c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 09:17:22 -0300 Subject: [PATCH 044/212] messageUnderHeader --- app/services/pilas-bloques-api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/pilas-bloques-api.js b/app/services/pilas-bloques-api.js index 0aeb14bb2..ba27f1bdf 100644 --- a/app/services/pilas-bloques-api.js +++ b/app/services/pilas-bloques-api.js @@ -146,7 +146,7 @@ export default Service.extend({ _alertServerError() { this.paperToaster.show("Problemas con el servidor, intentar más tarde", { duration: 4000, - position: "top" + position: "bottom" }) }, From 5649a63e65a6a84e60f8e385189b3000ef2b40ef Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 09:53:05 -0300 Subject: [PATCH 045/212] principiante&titulos --- translations/en-us.yaml | 6 +++--- translations/es-ar.yaml | 6 +++--- translations/pt-br.yaml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index fd1fde523..7225ae4ac 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -910,16 +910,16 @@ model: title: 'With Toto' books: '1': - title: Initial + title: Initial Level description: 'Challenges of Teachers’ Handbook "Computer Science in the classroom, 1st cycle of elementary school"' '2': - title: Intermediate + title: Intermediate Level description: 'Challenges of Teachers’ Book "Activities to learn how to Program.AR" for the 2nd cycle of elementary school, and beyond.' '100': title: Tecnópolis description: Tecnópolis Challenges '3': - title: Advanced + title: Advanced Level description: aAvanced challenges chapters: diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 3ab0883dc..64fcdfff9 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -959,16 +959,16 @@ model: title: 'Con Toto' books: '1': - title: Inicial + title: Nivel Inicial description: 'Desafíos del manual para docentes "Ciencias de la Computación para el aula, 1° ciclo de primaria"' '2': - title: Intermedio + title: Nivel Intermedio description: Desafíos del cuaderno para docentes "Actividades para aprender a Program.AR", para 2° ciclo de primaria en adelante. '100': title: Tecnópolis 2021 description: Desafios de Tecnópolis 2021 '3': - title: Avanzado + title: Nivel Avanzado description: Desafios avanzados '400': title: Nuevos personajes diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 6e9892955..f2bf79eaa 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -898,16 +898,16 @@ model: title: 'Com Toto' books: '1': - title: Inicial + title: Nível Inicial description: Desafios do manual para professores "Informática para a sala de aula, 1º ciclo do ensino básico" '2': - title: Intermédio + title: Nível Intermédio description: Desafios do caderno para professores "Programa Atividades para aprender.AR" A partir do 2º ciclo do ensino básico. '100': title: Tecnopolis 2021 description: Desafios de Tecnopolis 2021 '3': - title: Avançado + title: Nível Avançado description: Desafios avançados chapters: From 157a01e9abb5486538ccc86391f9079b591af0da Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 22 Sep 2023 09:58:25 -0300 Subject: [PATCH 046/212] Beginner --- translations/components/descripcionAcercaDe/en-us.yaml | 2 +- translations/components/descripcionAcercaDe/es-ar.yaml | 2 +- translations/components/descripcionAcercaDe/pt-br.yaml | 2 +- translations/en-us.yaml | 2 +- translations/es-ar.yaml | 2 +- translations/pt-br.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/translations/components/descripcionAcercaDe/en-us.yaml b/translations/components/descripcionAcercaDe/en-us.yaml index 086a9ba94..5beb1e374 100644 --- a/translations/components/descripcionAcercaDe/en-us.yaml +++ b/translations/components/descripcionAcercaDe/en-us.yaml @@ -11,7 +11,7 @@ learning: The main difference is that this platform was created in support of sequence: What’s a didactic sequence? plan: 'It’s the plan by means of which teachers expect students to learn a topic. Pilas Bloques didactic sequence was created and tested by Argentine teachers and researchers. Nowadays, this proposal is being studied in depth and expanded. Learn more about the initiatives we are working on' whoCanDo: Who can solve Pilas Bloques challenges? -activities: 'These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of Initial Level activities, and children between 9 and 12 years old will be able to take advantage of Intermediate Level activities.' +activities: 'These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of beginner level activities, and children between 9 and 12 years old will be able to take advantage of intermediate level activities.' anyone: And can anyone solve these challenges on their own? tool: 'This tool was thought as an aid for the teacher and the student along the teaching-learning process of computer programming at school. In these didactic sequences, the inquiry-based methodology is fundamental. However, our recommendation is that the teacher guide and assist during the student’s learning process.' contact: Contact diff --git a/translations/components/descripcionAcercaDe/es-ar.yaml b/translations/components/descripcionAcercaDe/es-ar.yaml index 842b77a9e..31626bf72 100644 --- a/translations/components/descripcionAcercaDe/es-ar.yaml +++ b/translations/components/descripcionAcercaDe/es-ar.yaml @@ -11,7 +11,7 @@ learning: La principal diferencia es que esta plataforma fue pensada para aco sequence: ¿Qué es una secuencia didáctica? plan: 'Es el plan mediante el cual se propone aprender un tema. La secuencia didáctica de Pilas Bloques fue ideada y probada por docentes e investigadores argentinos. Hoy en día, esta propuesta se está profundizando y ampliando. Conocé más sobre las iniciativas que estamos abordando' whoCanDo: ¿Quién puede hacer los desafíos de Pilas Bloques? -activities: 'Los desafíos pueden ser realizados por niños de 3 a 99 años ;) . Sin embargo, actualmente acompañan dos manuales para docentes orientados a la primaria , por lo que los niños entre 5 y 8 años podrán aprovechar mejor las actividades del Nivel Inicial, y los niños entre 9 y 12 años podrán aprovechar mejor las actividades del Nivel Intermedio.' +activities: 'Los desafíos pueden ser realizados por niños de 3 a 99 años ;) . Sin embargo, actualmente acompañan dos manuales para docentes orientados a la primaria , por lo que los niños entre 5 y 8 años podrán aprovechar mejor las actividades del nivel principiante, y los niños entre 9 y 12 años podrán aprovechar mejor las actividades del nivel intermedio.' anyone: ¿Y cualquiera puede hacer los desafíos por su cuenta? tool: 'La herramienta está pensada como ayuda al docente y al alumno en el proceso de aprendizaje de la programación en un entorno escolar. En la secuencia didáctica que se plantea, la indagación autodidacta es fundamental. Nuestra recomendación, no obstante, es que el docente sea el que guíe y asista el proceso de aprendizaje del alumno.' contact: Contacto diff --git a/translations/components/descripcionAcercaDe/pt-br.yaml b/translations/components/descripcionAcercaDe/pt-br.yaml index e7dee8249..538603049 100644 --- a/translations/components/descripcionAcercaDe/pt-br.yaml +++ b/translations/components/descripcionAcercaDe/pt-br.yaml @@ -11,7 +11,7 @@ learning: A principal diferença é que essa plataforma foi projetada para ac sequence: O que é uma sequência didática? plan: 'É o plano pelo qual você pretende aprender um tópico. A seqüência didática do Pilas Bloques foi idealizada e testada por professores e pesquisadores argentinos. Hoje, essa proposta está se aprofundando e se ampliando. Saiba mais sobre as iniciativas que estamos enfrentando ' whoCanDo: Quem pode fazer os desafios do Pilas Bloques? -activities: Os desafios podem ser feitos por crianças de 3 a 99 anos ;) . Porém, atualmente acompanham dois manuais para professores orientados para o ensino fundamental, para que crianças entre 5 e 8 anos possam aproveitar melhor as atividades do nível Inicial, e crianças entre 9 e 12 anos podem aproveitar melhor as atividades do nível Intermédio. +activities: Os desafios podem ser feitos por crianças de 3 a 99 anos ;) . Porém, atualmente acompanham dois manuais para professores orientados para o ensino fundamental, para que crianças entre 5 e 8 anos possam aproveitar melhor as atividades do nível principiante, e crianças entre 9 e 12 anos podem aproveitar melhor as atividades do nível intermédio. anyone: E alguém pode fazer os desafios por conta própria? tool: A ferramenta tem como objetivo auxiliar o professor e o aluno no processo de aprendizagem de programação em ambiente escolar. Na sequência didática que se propõe, a investigação autodidata é fundamental. Nossa recomendação, entretanto, é que o professor seja quem orientar e auxiliar no processo de aprendizagem do aluno. contact: Contato diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 7225ae4ac..a7cef1546 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -910,7 +910,7 @@ model: title: 'With Toto' books: '1': - title: Initial Level + title: Beginner Level description: 'Challenges of Teachers’ Handbook "Computer Science in the classroom, 1st cycle of elementary school"' '2': title: Intermediate Level diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 64fcdfff9..c5874b0db 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -959,7 +959,7 @@ model: title: 'Con Toto' books: '1': - title: Nivel Inicial + title: Nivel Principiante description: 'Desafíos del manual para docentes "Ciencias de la Computación para el aula, 1° ciclo de primaria"' '2': title: Nivel Intermedio diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index f2bf79eaa..67605a25b 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -898,7 +898,7 @@ model: title: 'Com Toto' books: '1': - title: Nível Inicial + title: Nível Principiante description: Desafios do manual para professores "Informática para a sala de aula, 1º ciclo do ensino básico" '2': title: Nível Intermédio From 8108737df1bb6b1ddc936d253f498e8860ce1fcd Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 25 Sep 2023 09:26:59 -0300 Subject: [PATCH 047/212] update --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2b81cb30..1922910b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15771,9 +15771,9 @@ } }, "@types/node": { - "version": "16.18.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.52.tgz", - "integrity": "sha512-sm2aph6cRSsTMFYFgI+RpPLunXO9ClJkpizUVdT7KmGeyfQ14xnjTMT/f3MHcfKqevXqGT6BgVFzW8wcEoDUtA==", + "version": "16.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", "dev": true }, "cacheable-request": { From 073aac6cbb687edbd77d0f8fa769828ad37cdc1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 25 Sep 2023 09:46:34 -0300 Subject: [PATCH 048/212] api not sending solution in creator --- app/services/pilas-bloques-api.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/services/pilas-bloques-api.js b/app/services/pilas-bloques-api.js index 0aeb14bb2..3e444eaa8 100644 --- a/app/services/pilas-bloques-api.js +++ b/app/services/pilas-bloques-api.js @@ -16,15 +16,17 @@ export default Service.extend({ // SOLUTIONS openChallenge(challengeId) { + if(this.isCreatorURL()) return this._send('POST', 'challenges', { challengeId }, false).catch(logger('openChallenge')) }, lastSolution(challengeId) { - if (!this.getUser()) return null + if (!this.getUser() || this.isCreatorURL()) return null return this._send('GET', `challenges/${challengeId}/solution`, undefined, false).catch(() => null) }, runProgram(challengeId, metadata) { + if(this.isCreatorURL()) return null const solutionId = uuidv4() const data = { challengeId, @@ -37,9 +39,16 @@ export default Service.extend({ }, executionFinished(solutionId, staticAnalysis, executionResult) { + if(this.isCreatorURL()) return this._send('PUT', `solutions/${solutionId}`, { staticAnalysis, executionResult }, false).catch(logger('executionFinished')) }, + isCreatorURL(){ + const currentURL = window.location.href + const creatorURLs = ['creador/ver', 'desafioImportado'] + return !creatorURLs.some(url => currentURL.includes(url)) + }, + // LOGIN - REGISTER async login(credentials) { return this._send('POST', 'login', credentials) From 01a99a270bd4fcf95ffddb28c897e9c13719625d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 25 Sep 2023 10:34:46 -0300 Subject: [PATCH 049/212] fixing urls --- app/services/pilas-bloques-api.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/services/pilas-bloques-api.js b/app/services/pilas-bloques-api.js index 3e444eaa8..f9bb9ed77 100644 --- a/app/services/pilas-bloques-api.js +++ b/app/services/pilas-bloques-api.js @@ -16,17 +16,15 @@ export default Service.extend({ // SOLUTIONS openChallenge(challengeId) { - if(this.isCreatorURL()) return this._send('POST', 'challenges', { challengeId }, false).catch(logger('openChallenge')) }, lastSolution(challengeId) { - if (!this.getUser() || this.isCreatorURL()) return null + if (!this.getUser()) return null return this._send('GET', `challenges/${challengeId}/solution`, undefined, false).catch(() => null) }, runProgram(challengeId, metadata) { - if(this.isCreatorURL()) return null const solutionId = uuidv4() const data = { challengeId, @@ -39,14 +37,13 @@ export default Service.extend({ }, executionFinished(solutionId, staticAnalysis, executionResult) { - if(this.isCreatorURL()) return this._send('PUT', `solutions/${solutionId}`, { staticAnalysis, executionResult }, false).catch(logger('executionFinished')) }, isCreatorURL(){ const currentURL = window.location.href - const creatorURLs = ['creador/ver', 'desafioImportado'] - return !creatorURLs.some(url => currentURL.includes(url)) + const creatorURLs = ['react-imported-challenge'] + return creatorURLs.some(url => currentURL.includes(url)) }, // LOGIN - REGISTER @@ -108,6 +105,8 @@ export default Service.extend({ }, async _send(method, resource, body, critical = true) { + if(resource.includes('solutions') && this.isCreatorURL()) return //Should not send or get solution when using the creator + const user = this.getUser() const url = `${baseURL}/${resource}` const flag = `loading.${resource.split('?')[0].replace('/', '-')}` From d5f9b123122ed419d458bab05cf6b419a1094397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 25 Sep 2023 10:36:07 -0300 Subject: [PATCH 050/212] Release 1.15.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85572c234..f05762c11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.1", + "version": "1.15.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a83a80547..388ff274b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.1", + "version": "1.15.2", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 086818fd5567b31fca6c3920dbd4d5f1f9f0d3f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 25 Sep 2023 10:57:51 -0300 Subject: [PATCH 051/212] ups --- app/services/pilas-bloques-api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/pilas-bloques-api.js b/app/services/pilas-bloques-api.js index f9bb9ed77..8634de34b 100644 --- a/app/services/pilas-bloques-api.js +++ b/app/services/pilas-bloques-api.js @@ -105,7 +105,7 @@ export default Service.extend({ }, async _send(method, resource, body, critical = true) { - if(resource.includes('solutions') && this.isCreatorURL()) return //Should not send or get solution when using the creator + if(resource.includes('solution') && this.isCreatorURL()) return //Should not send or get solution when using the creator const user = this.getUser() const url = `${baseURL}/${resource}` From 07323156177b8a39a173d33c725a21fa8e8ce287 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Mon, 25 Sep 2023 14:00:23 -0300 Subject: [PATCH 052/212] bumping exercises --- app/utils/staticData/desafios.js | 6 +++--- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index d5c7a44d2..d70052139 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3068,10 +3068,10 @@ export const desafios = [ nombre: 'NuevosComandosCapy', escena: `new EscenaCapy("\ [A,-,L],\ - [-,O,L],\ - [-,O,O],\ + [-,_,L],\ + [-,_,_],\ [-,-,L],\ - [L,O,L],\")`, + [L,_,L],\")`, bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'Procedimiento'], expectations: { simpleRepetition: false, diff --git a/package-lock.json b/package-lock.json index 1922910b2..498aac1f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.3.1.tgz", - "integrity": "sha512-sYUz1n+xUrBw6u2+/z6vFqsg6IJl31KGAwI4lsdX+okiOYWpJxxQQgzBvOfog8DrwBjdeRc5l4asjrCvG1EJFw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.1.tgz", + "integrity": "sha512-UnjLA0ietxUHAo3vFnX1LPORYbEDAIy2YMPTZARjZIWNBcGLDITHMd56hilil3uhayYL1S8oa4lc9B1U63VRtg==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 7497957b8..bafb1420a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.3.1", + "pilas-bloques-exercises": "1.4.1", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 4885e4365..3dd33b3c8 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 6e7a31747f4c4b7f7dad52af21095a39ed420a64 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 25 Sep 2023 16:31:21 -0300 Subject: [PATCH 053/212] Release 1.15.3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6a713344..e220f87c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.2", + "version": "1.15.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c36d0120f..53e80c86e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.2", + "version": "1.15.3", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 62b3a2204e6408871338ac04fe36a7ecbeb9eb11 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 25 Sep 2023 19:06:33 -0300 Subject: [PATCH 054/212] bump exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e220f87c5..4094381f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.1.tgz", - "integrity": "sha512-UnjLA0ietxUHAo3vFnX1LPORYbEDAIy2YMPTZARjZIWNBcGLDITHMd56hilil3uhayYL1S8oa4lc9B1U63VRtg==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.4.tgz", + "integrity": "sha512-eTuwBUSLEqddiz3u2/lRXKPs4PuOVl1b2X6RzuTmcI6s2owhfnYvi26AEafM3k3/XT4m2ikBfFJmI38A8GJupA==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 53e80c86e..0d9b38261 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.1", + "pilas-bloques-exercises": "1.4.4", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 3dd33b3c8..df9114551 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 01299ca7385659b4c3d874680028e168884002ea Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Mon, 25 Sep 2023 19:07:28 -0300 Subject: [PATCH 055/212] Release 1.15.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4094381f9..436d743d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.3", + "version": "1.15.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0d9b38261..29d73e242 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.3", + "version": "1.15.4", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From ce913e562c58daafccd2a6dc6d48b17a0c05f221 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 26 Sep 2023 14:09:14 -0300 Subject: [PATCH 056/212] void cell --- app/utils/staticData/desafios.js | 102 +++++++++++++++---------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index d70052139..eeac5b7fc 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2852,11 +2852,11 @@ export const desafios = [ id: 'nuevo18', nombre: 'LaberintoLargoChuy', escena: `new EscenaChuy([ - '[A,O,O,O,O,O,O,O],[-,-,-,O,O,O,O,O],[O,O,-,O,O,O,O,O],[O,O,-,O,O,O,O,O],[O,O,-,-,-,-,-,O],[O,O,O,O,O,O,-,O],[O,O,O,O,O,O,-,-],[O,O,O,O,O,O,O,-]', - '[A,-,-,O,O,O,O,O],[O,O,-,-,-,O,O,O],[O,O,O,O,-,-,O,O],[O,O,O,O,O,-,O,O],[O,O,O,O,O,-,-,O],[O,O,O,O,O,O,-,-],[O,O,O,O,O,O,O,-],[O,O,O,O,O,O,O,-]', - '[A,O,O,O,O,O,O,O],[-,O,O,O,O,O,O,O],[-,-,O,O,O,O,O,O],[O,-,O,O,O,O,O,O],[O,-,-,O,O,O,O,O],[O,O,-,-,O,O,O,O],[O,O,O,-,O,O,O,O],[O,O,O,-,-,-,-,-]', - '[A,O,O,O,O,O,O,O],[-,O,O,O,O,O,O,O],[-,O,O,O,O,O,O,O],[-,O,O,O,O,O,O,O],[-,-,-,-,O,O,O,O],[O,O,O,-,-,O,O,O],[O,O,O,O,-,O,O,O],[O,O,O,O,-,-,-,-]', - '[A,-,-,-,-,O,O,O],[O,O,O,O,-,O,O,O],[O,O,O,O,-,O,O,O],[O,O,O,O,-,O,O,O],[O,O,O,O,-,-,O,O],[O,O,O,O,O,-,-,O],[O,O,O,O,O,O,-,O],[O,O,O,O,O,O,-,-]'] + '[A,_,_,_,_,_,_,_],[-,-,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,-,-,-,-,_],[_,_,_,_,_,_,-,_],[_,_,_,_,_,_,-,-],[_,_,_,_,_,_,_,-]', + '[A,-,-,_,_,_,_,_],[_,_,-,-,-,_,_,_],[_,_,_,_,-,-,_,_],[_,_,_,_,_,-,_,_],[_,_,_,_,_,-,-,_],[_,_,_,_,_,_,-,-],[_,_,_,_,_,_,_,-],[_,_,_,_,_,_,_,-]', + '[A,_,_,_,_,_,_,_],[-,_,_,_,_,_,_,_],[-,-,_,_,_,_,_,_],[_,-,_,_,_,_,_,_],[_,-,-,_,_,_,_,_],[_,_,-,-,_,_,_,_],[_,_,_,-,_,_,_,_],[_,_,_,-,-,-,-,-]', + '[A,_,_,_,_,_,_,_],[-,_,_,_,_,_,_,_],[-,_,_,_,_,_,_,_],[-,_,_,_,_,_,_,_],[-,-,-,-,_,_,_,_],[_,_,_,-,-,_,_,_],[_,_,_,_,-,_,_,_],[_,_,_,_,-,-,-,-]', + '[A,-,-,-,-,_,_,_],[_,_,_,_,-,_,_,_],[_,_,_,_,-,_,_,_],[_,_,_,_,-,_,_,_],[_,_,_,_,-,-,_,_],[_,_,_,_,_,-,-,_],[_,_,_,_,_,_,-,_],[_,_,_,_,_,_,-,-]'] ,{},[7,7])`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'Repetir', 'Si', 'SiNo', 'PuedeMoverAbajo', 'PuedeMoverDerecha'], @@ -2886,12 +2886,12 @@ export const desafios = [ id: 'nuevo21', nombre: 'LaberintoConPelotas', escena: `new EscenaChuy([ - '[A&(U?),O,O,O,O],[U?,U?,O,O,O],[O,U?,U?,O,O],[O,O,U?,O,O],[O,O,U?,U?,-]', - '[A&(U?),O],[U?,-]', - '[A&(U?),O,O],[U?,O,O],[U?,O,O],[U?,U?,O],[O,U?,U?],[O,O,-]', - '[A&(U?),U?,U?,O,O],[O,O,U?,O,O],[O,O,U?,U?,-]', - '[A&(U?),U?,U?,U?,U?,O,O,O],[O,O,O,O,U?,O,O,O],[O,O,O,O,U?,O,O,O],[O,O,O,O,U?,O,O,O],[O,O,O,O,U?,U?,O,O],[O,O,O,O,O,U?,U?,O],[O,O,O,O,O,O,U?,O],[O,O,O,O,O,O,U?,-]' - ],{},[-1,0])`, + '[A&(U?),_,_,_,_],[U?,U?,_,_,_],[_,U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,-]', + '[A&(U?),_],[U?,-]', + '[A&(U?),_,_],[U?,_,_],[U?,_,_],[U?,U?,_],[_,U?,U?],[_,_,-]', + '[A&(U?),U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,-]', + '[A&(U?),U?,U?,U?,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,U?,_,_],[_,_,_,_,_,U?,U?,_],[_,_,_,_,_,_,U?,_],[_,_,_,_,_,_,U?,-]' + ],{},[-1,0])`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'PatearPulpito', 'Repetir', 'Si', 'SiNo', 'Hasta', 'PuedeMoverAbajo', 'PuedeMoverDerecha', 'TocandoFinCamino', 'TocandoPulpito'], @@ -2951,8 +2951,8 @@ export const desafios = [ id: 'nuevo38', nombre: 'LasEstrellasDeManic', escena: `new EscenaManic([ - '[A,O,O,O,O],[-,O,-,-,-],[-,O,O,O,-],[E,-,-,-,-]', - '[A,O,O,O,O],[-,-,-,-,-],[O,O,O,O,-],[E,-,-,-,-]'])`, + '[A,_,_,_,_],[-,_,-,-,-],[-,_,_,_,-],[E,-,-,-,-]', + '[A,_,_,_,_],[-,-,-,-,-],[_,_,_,_,-],[E,-,-,-,-]'])`, deshabilitado: false, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'MoverACasillaIzquierda', 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'] @@ -2961,10 +2961,10 @@ export const desafios = [ id: 'nuevo39', nombre: 'LosCaminosDeManic', escena: `new EscenaManic([ - '[A,O,O,O,O,O],[-,O,-,-,-,O],[-,O,O,O,-,O],[-,-,-,-,-,O],[-,O,O,O,O,O],[-,-,O,-,-,-],[O,-,O,O,O,-],[O,E,-,-,-,-]', - '[A,O,O,O,O,O],[-,O,-,-,-,O],[-,O,O,O,-,O],[-,-,-,-,-,O],[-,O,O,O,O,O],[-,-,-,-,-,-],[O,O,O,O,O,-],[O,E,-,-,-,-]', - '[A,O,O,O,O,O],[-,-,-,-,-,O],[O,O,O,O,-,O],[-,-,-,-,-,O],[-,O,O,O,O,O],[-,-,O,-,-,-],[O,-,O,O,O,-],[O,E,-,-,-,-]', - '[A,O,O,O,O,O],[-,-,-,-,-,O],[O,O,O,O,-,O],[-,-,-,-,-,O],[-,O,O,O,O,O],[-,-,-,-,-,-],[O,O,O,O,O,-],[O,E,-,-,-,-]'])`, + '[A,_,_,_,_,_],[-,_,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,_,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,_,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,_,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,-,-,-,-,_],[_,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,_,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,-,-,-,-,_],[_,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,_,_,_,_,-],[_,E,-,-,-,-]'])`, deshabilitado: false, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'MoverACasillaIzquierda', 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'], @@ -2977,18 +2977,18 @@ export const desafios = [ id: 'nuevo40', nombre: 'HileraDeLatas', escena: `new EscenaCapy([ - '[L,-,-,-,A],[O,O,-,O,O],[O,O,-,O,O],[O,O,-,O,O]', - '[L,-,L,-,A],[O,O,L,O,O],[O,O,L,O,O],[O,O,L,O,O]'])`, + '[L,-,-,-,A],[_,_,-,_,_],[_,_,-,_,_],[_,_,-,_,_]', + '[L,-,L,-,A],[_,_,L,_,_],[_,_,L,_,_],[_,_,L,_,_]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'TocandoLata'] }, { id: 'nuevo41', nombre: 'MuchasHilerasDeLatas', escena: `new EscenaCapy([ - '[O,O,O,-,-,L,A],[L,-,-,L,O,L,O],[L,O,O,L,O,L,O],[L,O,O,L,O,L,O],[L,O,O,L,O,O,O]', - '[O,O,O,-,-,L,A],[-,-,-,L,O,L,O],[-,O,O,L,O,L,O],[-,O,O,L,O,L,O],[-,O,O,L,O,O,O]', - '[O,O,O,-,-,L,A],[L,-,-,-,O,L,O],[L,O,O,-,O,L,O],[L,O,O,-,O,L,O],[L,O,O,-,O,O,O]', - '[O,O,O,-,-,-,A],[L,-,-,L,O,-,O],[L,O,O,L,O,-,O],[L,O,O,L,O,-,O],[L,O,O,L,O,O,O]'])`, + '[_,_,_,-,-,L,A],[L,-,-,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,_,_]', + '[_,_,_,-,-,L,A],[-,-,-,L,_,L,_],[-,_,_,L,_,L,_],[-,_,_,L,_,L,_],[-,_,_,L,_,_,_]', + '[_,_,_,-,-,L,A],[L,-,-,-,_,L,_],[L,_,_,-,_,L,_],[L,_,_,-,_,L,_],[L,_,_,-,_,_,_]', + '[_,_,_,-,-,-,A],[L,-,-,L,_,-,_],[L,_,_,L,_,-,_],[L,_,_,L,_,-,_],[L,_,_,L,_,_,_]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'TocandoLata'], expectations: { decomposition: false, @@ -2999,12 +2999,12 @@ export const desafios = [ id: 'nuevo42', nombre: 'AVecesLatasAVecesPapeles', escena: `new EscenaCapy("\ - [A,L|P|-,L|P|-,L|P|-,L|P|-],\ - [-,O,O,O,O],\ - [-,L|P|-,L|P|-,L|P|-,L|P|-],\ - [-,O,O,O,O],\ - [-,O,O,O,O],\ - [-,L|P|-,L|P|-,L|P|-,L|P|-],\")`, + [A,L|P|-,L|P|-,L|P|-,L|P|-],\ + [-,_,_,_,_],\ + [-,L|P|-,L|P|-,L|P|-,L|P|-],\ + [-,_,_,_,_],\ + [-,_,_,_,_],\ + [-,L|P|-,L|P|-,L|P|-,L|P|-],\")`, bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'RecogerLata', 'RecogerPapel', 'Procedimiento', 'Repetir', 'TocandoLata', 'TocandoPapel', 'Si', 'SiNo'], expectations: { decomposition: false, @@ -3015,14 +3015,14 @@ export const desafios = [ id: 'nuevo43', nombre: 'ElPasilloCurvoDeCelus', escena: `new EscenaYvoty("\ - [O,P,P?,P?],\ - [O,O,O,P?],\ + [_,P,P?,P?],\ + [_,_,_,P?],\ [-,P,P?,P?],\ - [-,O,O,O],\ - [P,P?,P?,O],\ - [O,O,P?,O],\ - [P,P?,P?,O],\ - [A,O,O,O],\",{})`, + [-,_,_,_],\ + [P,P?,P?,_],\ + [_,_,P?,_],\ + [P,P?,P?,_],\ + [A,_,_,_],\",{})`, bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'DesbloquearCelular', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoCelular'], expectations: { decomposition: false, @@ -3033,13 +3033,13 @@ export const desafios = [ id: 'nuevo44', nombre: 'ElFestinAstronomico', escena: `new EscenaManic("\ - [A,-,-,-,-],\ - [E|P,O,E|P,E|P,E|P],\ - [E|P,O,E|P,E|P,E|P],\ - [E|P,O,E|P,E|P,E|P],\ - [E|P,O,E|P,E|P,E|P],\ - [E|P,O,E|P,E|P,E|P],\ - [E|P,O,E|P,E|P,E|P],\")`, + [A,-,-,-,-],\ + [E|P,_,E|P,E|P,E|P],\ + [E|P,_,E|P,E|P,E|P],\ + [E|P,_,E|P,E|P,E|P],\ + [E|P,_,E|P,E|P,E|P],\ + [E|P,_,E|P,E|P,E|P],\ + [E|P,_,E|P,E|P,E|P],\")`, bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarEstrella', 'ObservarPlaneta', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoEstrellaManic', 'TocandoPlaneta'] }, { @@ -3104,9 +3104,9 @@ export const desafios = [ escena: `new EscenaYvoty("\ [A,#M,#M,#M,#M,#M,-],\ [#M,O,O,O,O,O,#M],\ - [#M,O,O,O,O,O,#M],\ - [#M,O,O,O,O,O,#M],\ - [#M,O,O,O,O,O,#M],\ + [#M,O,_,_,_,O,#M],\ + [#M,O,_,_,_,O,#M],\ + [#M,O,_,_,_,O,#M],\ [#M,O,O,O,O,O,#M],\ [-,#M,#M,#M,#M,#M,-],\", { macros: { "M": "*>M?" }, coleccion: ["M"] })`, @@ -3118,11 +3118,11 @@ export const desafios = [ id: 'nuevo134', nombre: 'InfinitosTrofeos', escena: `new EscenaChuy("\ - [A,T,T,T,T,-],\ - [T,O,O,O,O,T],\ - [T,T,T,T,T,T],\ - [T,O,O,O,O,T],\ - [-,T,T,T,T,-],\ + [A,T,T,T,T,-],\ + [T,_,_,_,_,T],\ + [T,T,T,T,T,T],\ + [T,_,_,_,_,T],\ + [-,T,T,T,T,-],\ ")`, bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'ParaLaDerecha', 'ParaLaIzquierda', 'ParaArriba', 'ParaAbajo', 'MoverA', From be10336ec769e34da7d2375ea80bcb79d4b36197 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 27 Sep 2023 10:42:04 -0300 Subject: [PATCH 057/212] fixing-tests --- .../desafios/segundoCiclo/Capy/HileraDeLatas-test.js | 2 +- .../desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js | 2 +- .../desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js b/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js index 7199c235d..f351879f7 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js @@ -11,7 +11,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: 'Da error al querer avanzar hacia una casilla con obstaculos', solucion: '', - errorEsperado: '¡Hay un obstáculo!', + errorEsperado: 'No puedo ir para abajo', }); actividadTest(nombre, { diff --git a/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js b/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js index 7a7ce0dba..eb6a3315f 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js @@ -11,7 +11,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: 'Da error al querer avanzar hacia una dirección sin casillero', solucion: '', - errorEsperado: '¡Hay un obstáculo!', + errorEsperado: 'No puedo ir para abajo', }); actividadTest(nombre, { diff --git a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js index 8980ca47b..24fde7330 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js @@ -111,6 +111,6 @@ moduloActividad(nombre, () => { `, - }); - + errorEsperado: '¡No hay nada para ver abajo!' +}); }); \ No newline at end of file From 4973f169f288ac0721fa72c6913ebe3d2f1ad55f Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 27 Sep 2023 11:18:40 -0300 Subject: [PATCH 058/212] fixing-tests --- .../desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js index 24fde7330..c849c6bc8 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js @@ -111,6 +111,5 @@ moduloActividad(nombre, () => { `, - errorEsperado: '¡No hay nada para ver abajo!' }); }); \ No newline at end of file From 6e0d1407ea089c193839fb38738a32479a43fad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 27 Sep 2023 21:19:11 -0300 Subject: [PATCH 059/212] post message to react --- app/router.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/router.js b/app/router.js index 19639d141..38366d4e2 100644 --- a/app/router.js +++ b/app/router.js @@ -1,9 +1,19 @@ import EmberRouter from '@ember/routing/router'; import config from 'pilasbloques/config/environment'; + +function sendRouteToParent(route) { + if (!route.includes('react-imported-challenge')) window.parent.postMessage({ route }, '*'); +} + const Router = EmberRouter.extend({ location: config.locationType, - rootURL: config.rootURL + rootURL: config.rootURL, + + didTransition() { + sendRouteToParent(window.location.hash); + this._super(...arguments); + } }); Router.map(function () { From 56923ef6ce7b6c1ac066feeb303149113cc1211a Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 28 Sep 2023 13:38:04 -0300 Subject: [PATCH 060/212] new Sensor Commands --- app/services/blocks-gallery.js | 20 ++++++++++++++++++++ translations/blocks/en-us.yaml | 2 ++ translations/blocks/es-ar.yaml | 2 ++ translations/blocks/pt-br.yaml | 2 ++ 4 files changed, 26 insertions(+) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 0ad791ebd..d4bb52d26 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1269,6 +1269,16 @@ export default Service.extend({ funcionSensor: 'tocandoFlechaDerecha()', }); + this.crearBloqueSensor('TocandoArriba', 'canMoveUp', { + icono: 'icono.arriba.png', + funcionSensor: 'tocandoFlechaArriba()', + }); + + this.crearBloqueSensor('TocandoIzquierda', 'canMoveLeft', { + icono: 'icono.izquierda.png', + funcionSensor: 'tocandoFlechaIzquierda()', + }); + this.crearBloqueSensor('TocandoFinCamino', 'reachedGoal', { icono: 'icono.finCamino.png', funcionSensor: 'alFinalDelCamino()', @@ -1325,6 +1335,16 @@ export default Service.extend({ funcionSensor: 'puedeMoverseDerecha()', }); + this.crearBloqueSensor('PuedeMoverArriba', 'canMoveUp', { + icono: 'icono.arriba.png', + funcionSensor: 'puedeMoverseArriba()', + }); + + this.crearBloqueSensor('PuedeMoverIzquierda', 'canMoveLeft', { + icono: 'icono.izquierda.png', + funcionSensor: 'puedeMoverseIzquierda()', + }); + this.crearBloqueSensor('HayCharco', 'puddleHere', { icono: 'icono.charco.png', funcionSensor: 'hayEnEscena("Charco")', diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index bd3f64af7..563bde586 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -87,6 +87,8 @@ atColumnEnd: Am I at the end of the column? currentColumnLength: Current column length canMoveDown: Can I move down? canMoveRight: Can I move to the right? +canMoveUp: Can I move up? +canMoveLeft: Can I move to the left? reachedGoal: Did I reach the finish line? cheeseHere: Is there cheese here? lampHere: Is there a spotlight here? diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 8670312e1..079825e33 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -87,6 +87,8 @@ atColumnEnd: ¿Estoy al final de la columna? currentColumnLength: Largo de la columna actual canMoveDown: ¿Puedo mover abajo? canMoveRight: ¿Puedo mover a la derecha? +canMoveUp: ¿Puedo mover arriba? +canMoveLeft: ¿Puedo mover a la izquierda? reachedGoal: ¿Llegó a la meta? cheeseHere: ¿Hay queso acá? lampHere: ¿Hay lamparita acá? diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index fea4bea83..6fc203547 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -87,6 +87,8 @@ atColumnEnd: Estou no final da coluna? currentColumnLength: Comprimento da coluna atual canMoveDown: Posso mover para baixo? canMoveRight: Posso mover para direita? +canMoveUp: Posso mover para acima? +canMoveLeft: Posso mover para esquerda? reachedGoal: Alcançou a meta? cheeseHere: Há queijo aqui? lampHere: Há uma lâmpada aqui? From a8f7fecf056bbf4949d5507e050f76084cadea98 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 28 Sep 2023 13:53:56 -0300 Subject: [PATCH 061/212] fixing Manic's challenges --- app/utils/staticData/desafios.js | 18 ++++++++++-------- .../Manic/LosCaminosDeManic-test.js | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index eeac5b7fc..9339d32ad 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2951,23 +2951,25 @@ export const desafios = [ id: 'nuevo38', nombre: 'LasEstrellasDeManic', escena: `new EscenaManic([ - '[A,_,_,_,_],[-,_,-,-,-],[-,_,_,_,-],[E,-,-,-,-]', - '[A,_,_,_,_],[-,-,-,-,-],[_,_,_,_,-],[E,-,-,-,-]'])`, + '[A,_,_,_,_],[-,O,-,-,-],[-,_,_,_,-],[E,-,-,-,-]', + '[A,_,_,_,_],[-,-,-,-,-],[O,_,_,_,-],[E,-,-,-,-]'])`, deshabilitado: false, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'MoverACasillaIzquierda', - 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'] + 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', + 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'] }, { id: 'nuevo39', nombre: 'LosCaminosDeManic', escena: `new EscenaManic([ - '[A,_,_,_,_,_],[-,_,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,_,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', - '[A,_,_,_,_,_],[-,_,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,_,_,_,_,-],[_,E,-,-,-,-]', - '[A,_,_,_,_,_],[-,-,-,-,-,_],[_,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,_,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', - '[A,_,_,_,_,_],[-,-,-,-,-,_],[_,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,_,_,_,_,-],[_,E,-,-,-,-]'])`, + '[A,_,_,_,_,_],[-,O,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,O,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,O,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,O,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,-,-,-,-,_],[O,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,O,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', + '[A,_,_,_,_,_],[-,-,-,-,-,_],[O,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,O,_,_,_,-],[_,E,-,-,-,-]'])`, deshabilitado: false, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'MoverACasillaIzquierda', - 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'], + 'ObservarEstrella', 'Repetir', 'Si', 'SiNo', + 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'], expectations: { decomposition: false, decomposition9: true diff --git a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js index c849c6bc8..1321cf796 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js @@ -111,5 +111,5 @@ moduloActividad(nombre, () => { `, -}); + }); }); \ No newline at end of file From 346ef0c8bb880cb981fa44d0b33edc86f0597ee4 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 2 Oct 2023 11:12:55 -0300 Subject: [PATCH 062/212] ContandoPlanetasYEstrellas --- app/services/blocks-gallery.js | 12 ++ app/utils/staticData/desafios.js | 12 ++ .../ContandoPlanetasYEstrellas-test.js | 110 ++++++++++++++++++ translations/blocks/en-us.yaml | 2 + translations/blocks/es-ar.yaml | 2 + translations/blocks/pt-br.yaml | 2 + 6 files changed, 140 insertions(+) create mode 100644 tests/integration/desafios/ContandoPlanetasYEstrellas-test.js diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index d4bb52d26..e8fcd19dd 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -801,6 +801,18 @@ export default Service.extend({ argumentos: '{etiqueta: "ManzanaAnimada", nombreAnimacion: "comerManzana"}', }); + this.crearBloqueAccion('ContarPlaneta', 'countPlanet', { + icono: 'icono.planeta.png', + comportamiento: 'Contar', + argumentos: '{etiqueta: "Planeta", nombreAnimacion: "usarCatalejo"}', + }); + + this.crearBloqueAccion('ContarEstrella', 'countStar', { + icono: 'icono.estrella.png', + comportamiento: 'Contar', + argumentos: '{etiqueta: "Estrella", nombreAnimacion: "usarCatalejo"}', + }); + this.crearBloqueAccion('ExplotarGlobo', 'blowUpBallon', { icono: 'icono.globo.png', comportamiento: 'Interactuar', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 9339d32ad..d4a35edd3 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2931,6 +2931,18 @@ export const desafios = [ conditionalRepetition: true, } }, + { + id: 'nuevo25', + nombre: 'ContandoPlanetasYEstrellas', + escena: 'ContandoPlanetasYEstrellas', + bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', + 'SiguienteColumna', 'ContarPlaneta', 'ContarEstrella', + 'TocandoPlaneta', 'TocandoEstrella', 'Repetir', 'Si', 'SiNo', + 'Hasta', 'EstoySobreElInicio', 'EstoySobreElFinal'], + expectations: { + conditionalRepetition: true, + } + }, { id: 'nuevo28', nombre: 'ElPlanetaDeCapyYGuyra', diff --git a/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js new file mode 100644 index 000000000..0c97a4a2b --- /dev/null +++ b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js @@ -0,0 +1,110 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = 'ContandoPlanetasYEstrellas'; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + Contar astros de columna + + + + + + + + + + + + + + + + + + + + + + + + + Contar estrella si hay + + + + + + + + + + + + + + Contar planeta si hay + + + + + + + + + + + + + + Volver al inicio + + + + + + + + + + + +`, + }); + + +}); \ No newline at end of file diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 563bde586..b605ebec0 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -45,6 +45,8 @@ nextLine: Go to the next line nextColumn: Go to the next column countBanana: Count a banana countApple: Count an apple +countPlanet: Count a planet +countStar: Count a star blowUpBallon: Pinch the balloon kickBall: Kick the ball kickFootballBall: Kick the football ball diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 079825e33..943b3d7ce 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -45,6 +45,8 @@ nextLine: Pasar a la siguiente fila nextColumn: Pasar a la siguiente columna countBanana: Contar una banana countApple: Contar una manzana +countPlanet: Contar un planeta +countStar: Contar una estrella blowUpBallon: Explotar globo kickBall: Patear pelota kickFootballBall: Patear pelota de fútbol diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index 6fc203547..1da95dc51 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -45,6 +45,8 @@ nextLine: Ir para a próxima linha nextColumn: Ir para a linha anterior countBanana: Contar uma banana countApple: Contar uma maçã +countPlanet: Contar um planeta +countStar: Contar uma estrela blowUpBallon: Explodir balão kickBall: Chutar bola kickFootballBall: Chutar bola de futebol From 8a3597e5527ff7b99c3660c6b8b4536a21492d75 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 2 Oct 2023 17:47:00 -0300 Subject: [PATCH 063/212] ContandoDeNuevoManic --- app/services/blocks-gallery.js | 10 ++ app/utils/staticData/desafios.js | 16 ++- app/utils/staticData/grupos.js | 2 + public/iconos/icono.casillafinmanic.png | Bin 0 -> 5806 bytes public/iconos/icono.casillainiciomanic.png | Bin 0 -> 5782 bytes .../desafios/ContandoDeNuevoManic-test.js | 110 ++++++++++++++++++ .../ContandoPlanetasYEstrellas-test.js | 6 +- translations/en-us.yaml | 9 ++ translations/es-ar.yaml | 11 +- translations/pt-br.yaml | 9 ++ 10 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 public/iconos/icono.casillafinmanic.png create mode 100644 public/iconos/icono.casillainiciomanic.png create mode 100644 tests/integration/desafios/ContandoDeNuevoManic-test.js diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index e8fcd19dd..661440cc1 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1266,6 +1266,16 @@ export default Service.extend({ funcionSensor: 'casillaActual().esFin()', }); + this.crearBloqueSensor('EstoySobreElInicioManic', 'atColumnBeginning', { + icono: 'icono.casillainiciomanic.png', + funcionSensor: 'casillaActual().esInicio()', + }); + + this.crearBloqueSensor('EstoySobreElFinalManic', 'atColumnEnd', { + icono: 'icono.casillafinmanic.png', + funcionSensor: 'casillaActual().esFin()', + }); + this.crearBloqueSensor('LargoColumnaActual', 'currentColumnLength', { icono: 'icono.largoCol.png', funcionSensor: 'largoColumnaActual()-1', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index d4a35edd3..33c8e1ffb 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2933,16 +2933,26 @@ export const desafios = [ }, { id: 'nuevo25', - nombre: 'ContandoPlanetasYEstrellas', + nombre: 'ContandoPlanetasYEstrellas', escena: 'ContandoPlanetasYEstrellas', bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'SiguienteColumna', 'ContarPlaneta', 'ContarEstrella', - 'TocandoPlaneta', 'TocandoEstrella', 'Repetir', 'Si', 'SiNo', - 'Hasta', 'EstoySobreElInicio', 'EstoySobreElFinal'], + 'TocandoPlaneta', 'TocandoEstrellaManic', 'Repetir', 'Si', 'SiNo', + 'Hasta', 'EstoySobreElInicioManic', 'EstoySobreElFinalManic'], expectations: { conditionalRepetition: true, } }, + { + id: 'nuevo27', + nombre: 'ContandoDeNuevoManic', + escena: 'ContandoDeNuevoManic', + bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', + 'SiguienteColumna', + 'ContarPlaneta', 'ContarEstrella', 'TocandoPlaneta', + 'TocandoEstrellaManic', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', + 'EstoySobreElInicioManic', 'LargoColumnaActual'] + }, { id: 'nuevo28', nombre: 'ElPlanetaDeCapyYGuyra', diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 97a7caea8..798cf23c2 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -291,6 +291,8 @@ export const grupos = [ 'nuevo21', 'nuevo23', 'nuevo24', + 'nuevo25', + 'nuevo27', 'nuevo28', 'nuevo132', 'nuevo133', diff --git a/public/iconos/icono.casillafinmanic.png b/public/iconos/icono.casillafinmanic.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0c4d231a1cdc06d7db27671cd408d03b21b972 GIT binary patch literal 5806 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 L89@bs3sV0CMx2i$ literal 0 HcmV?d00001 diff --git a/public/iconos/icono.casillainiciomanic.png b/public/iconos/icono.casillainiciomanic.png new file mode 100644 index 0000000000000000000000000000000000000000..34cb12d294ca0e7d16d15625883eb891b6b108be GIT binary patch literal 5782 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 literal 0 HcmV?d00001 diff --git a/tests/integration/desafios/ContandoDeNuevoManic-test.js b/tests/integration/desafios/ContandoDeNuevoManic-test.js new file mode 100644 index 000000000..4e76cb602 --- /dev/null +++ b/tests/integration/desafios/ContandoDeNuevoManic-test.js @@ -0,0 +1,110 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "ContandoDeNuevoManic"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + Volver al inicio + + + + + + + + + + + + + + Contar astros de columna + + + + + + + + + + + + + + + + + + + + + + + + + Contar planeta si hay + + + + + + + + + + + + + + Contar estrella si hay + + + + + + + + + + + +`, + + }); + +}); \ No newline at end of file diff --git a/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js index 0c97a4a2b..ccafa8885 100644 --- a/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js +++ b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js @@ -42,7 +42,7 @@ moduloActividad(nombre, () => { - + @@ -67,7 +67,7 @@ moduloActividad(nombre, () => { - + @@ -95,7 +95,7 @@ moduloActividad(nombre, () => { - + diff --git a/translations/en-us.yaml b/translations/en-us.yaml index a7cef1546..916ed1519 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -705,6 +705,15 @@ model: description: | We should power all computers on taking into account that the scenario width and height change each time you run the program. Clue: think how you could turn on all computers from only one rectangle, and then repeat the same action for the rest of the sides. clue: '' + 'nuevo25': + title: Counting planets and stars + description: | + Mañic should visit all boxes and count how many planets and stars are there in total. Clue: first think how you could count whether there is any planet or star in a particular box. Then think how you could count all celestial bodies in only one particular column. + clue: 'Splitting a big problem into several little problems can help you better understand each one of its parts. At the same time, this will allow us to focus on solving easier challenges if compared to the original one.' + 'nuevo27': + title: Mañic counts again + description: 'Mañic needs to count the celestial bodies again, but now she cannot check whether she reached the end of the column! Is there any sensor to help her?' + clue: 'A sensor will allow us to get information that can change each time you run the program, even during the same run. For example, the length of a column changes depending on the column on which Mañic is standing.' 'nuevo28': title: Capy and Guyrá’s planet description: | diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index c5874b0db..d1693ac96 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -147,7 +147,7 @@ model: '27': title: El mono cuenta de nuevo description: 'El mono tiene que contar otra vez las frutas, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que lo pueda ayudar?' - clue: 'Una sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' + clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' '28': title: El planeta de Nano description: | @@ -750,6 +750,15 @@ model: description: | Yvoty siempre está predispuesta a resolver cuestiones técnicas. En este caso, la escuela le pidió ayuda para encender las computadoras de todas las aulas. El desafío es que las aulas tienen diferentes tamaños… ¡Ayudala a prender todas las computadoras! clue: '¿Sería posible prender todo un lado del rectángulo del aula, y luego repetirlo en cada tramo?' + 'nuevo25': + title: Contando planetas y estrellas + description: | + Mañic debe recorrer todas las casillas y contar cuántas estrellas y planetas hay en total. Pista: primero pensá cómo contarías si hay una estrella o un planeta en una casilla determinada. Luego pensá cómo harías para contar todos los astros de una sola columna. + clue: Subdividir un problema grande en problemas más pequeños ayuda a comprender mejor cada una de las partes que lo componen. Además nos permite concentrarnos en resolver cuestiones más sencillas al problema original. + 'nuevo27': + title: Mañic cuenta de nuevo + description: 'Mañic tiene que contar otra vez los astros, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que la pueda ayudar?' + clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parada Mañic.' 'nuevo28': title: El humedal de Capy y Guyrá description: | diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 67605a25b..ba272af0e 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -695,6 +695,15 @@ model: description: | Debemos prender todas las compus teniendo en cuenta que el ancho y el alto del escenario cambian en cada ejecución. Pista: pensá cómo harías para prender las compus de un solo lado del rectángulo y después repetilo para el resto de los lados. clue: '' + 'nuevo25': + title: Contando planetas e estrelas + description: | + Mañic deve passar por todos os quadrados e contar quantas estrelas e planetas existem no total. Dica: primeiro pense em como você contaria se houvesse uma estrela ou um planeta em um determinado quadrado. Em seguida, pense em como você faria para contar todos os corpos celestiais em uma única coluna. + clue: Subdividir um grande problema em problemas menores ajuda a compreender melhor cada uma de suas partes componentes. Também nos permite focar na solução de questões mais simples do problema original. + 'nuevo27': + title: Mañic conta novamente + description: Mañic tem que contar os astros novamente, mas agora ela não pode verificar se já atingiu o fim de uma coluna! Existe um sensor que pode ajudá-la? + clue: Um sensor nos permite obter informações que podem mudar a cada execução do programa, até na mesma execução. Por exemplo, o comprimento de cada coluna varia dependendo da coluna em que Mañic está. 'nuevo28': title: El planeta de Capy y Guyrá description: | From d67bc150c110ce5aaeae3f8bfcf8b16baeba16a5 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 2 Oct 2023 17:55:34 -0300 Subject: [PATCH 064/212] translations --- translations/en-us.yaml | 6 +++++- translations/es-ar.yaml | 4 ++++ translations/pt-br.yaml | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 916ed1519..b9bdef0c7 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -917,6 +917,8 @@ model: title: 'With Coty' tecnopolis2021ConToto: title: 'With Toto' + grupoTemporal: + title: 'Temporary Group' books: '1': title: Beginner Level @@ -949,4 +951,6 @@ model: Parametrización de soluciones: title: Solutions parameterizing Desafios complementarios: - title: Complementary challenges \ No newline at end of file + title: Complementary challenges + capiTemporal: + title: Temporary challenges \ No newline at end of file diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index d1693ac96..98ac2aa7d 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -966,6 +966,8 @@ model: title: 'Con Coty' tecnopolis2021ConToto: title: 'Con Toto' + grupoTemporal: + title: 'Grupo temporal' books: '1': title: Nivel Principiante @@ -1001,3 +1003,5 @@ model: title: Parametrización de soluciones Desafios complementarios: title: Desafios complementarios + capiTemporal: + title: Desafíos temporales diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index ba272af0e..f42146403 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -905,6 +905,8 @@ model: title: 'Com Coty' tecnopolis2021ConToto: title: 'Com Toto' + grupoTemporal: + title: 'Grupo temporário' books: '1': title: Nível Principiante @@ -937,4 +939,6 @@ model: Parametrización de soluciones: title: Parametrização de Soluções Desafios complementarios: - title: Desafios complementares \ No newline at end of file + title: Desafios complementares + capiTemporal: + title: Desafios temporários \ No newline at end of file From a22b7918830d4a28d7fcd46b6653fde4580a19f9 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 3 Oct 2023 11:47:07 -0300 Subject: [PATCH 065/212] release pbe --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 436d743d4..cff4e98a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.4.tgz", - "integrity": "sha512-eTuwBUSLEqddiz3u2/lRXKPs4PuOVl1b2X6RzuTmcI6s2owhfnYvi26AEafM3k3/XT4m2ikBfFJmI38A8GJupA==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.5.tgz", + "integrity": "sha512-+YXwWbq1VbrGqIsclBwzrH2mGOFWm/refS0BhcDNoK9E4nMAsa9pWd68z3Xv+C3mxy3R2wJWZk6oz9Nn0oBu0w==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 29d73e242..f6a575e1a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.4", + "pilas-bloques-exercises": "1.4.5", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index df9114551..be62af9ad 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 8d92a0438f1789f369a9b69a5c2bf0f5014c27e3 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 3 Oct 2023 13:00:37 -0300 Subject: [PATCH 066/212] capy solo --- app/services/blocks-gallery.js | 11 ++++++ app/utils/staticData/desafios.js | 22 ++++++++++++ public/iconos/icono.guyra.png | Bin 0 -> 508 bytes .../segundoCiclo/Capy/CapyBuscaAGuyra.js | 34 ++++++++++++++++++ .../desafios/segundoCiclo/Capy/CapyYGuyra.js | 30 ++++++++++++++++ translations/blocks/en-us.yaml | 2 ++ translations/blocks/es-ar.yaml | 2 ++ translations/es-ar.yaml | 5 +++ 8 files changed, 106 insertions(+) create mode 100644 public/iconos/icono.guyra.png create mode 100644 tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra.js create mode 100644 tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index d4bb52d26..2e27d4643 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -411,6 +411,12 @@ export default Service.extend({ argumentos: '{etiqueta: "Lata", nombreAnimacion: "recoger", "mensajeError": "Acá no hay una lata"}', }); + this.crearBloqueAccion('SubirPajarito', 'pickBird', { + icono: 'icono.guyra.png', + comportamiento: 'SubirPajarito', + argumentos: '{etiqueta: "Guyra", nombreAnimacion: "recoger", "mensajeError": "Guyra no está aca"}', + }); + this.crearBloqueAccion('RecogerPapel', 'pickPaper', { icono: 'icono.papel.png', comportamiento: 'RecojoPapel', @@ -1153,6 +1159,11 @@ export default Service.extend({ icono: 'icono.lata.png', funcionSensor: 'tocando("Lata")' }); + + this.crearBloqueSensor('TocandoGuyra', 'guyraHere', { + icono: 'icono.guyra.png', + funcionSensor: 'tocando("Guyra")' + }); this.crearBloqueSensor('TocandoTelescopio', 'telescopeHere', { icono: 'icono.telescopio.png', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 9339d32ad..f96b6b1bc 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -27,6 +27,16 @@ export const desafios = [ simpleRepetition: false } }, + { + id: "nuevo1", + nombre: 'CapyYGuyra', + escena: `new EscenaCapySolo("[A,-,-,G]")`, + bloques: ['MoverACasillaDerecha', 'SubirPajarito'], + expectations: { + decomposition: false, + simpleRepetition: false + } + }, { id: 46, nombre: 'NuevosComandos', @@ -207,6 +217,18 @@ export const desafios = [ conditionalRepetition: true, } }, + { + id: "nuevo22", + nombre: 'CapyBuscaAGuyra', + escena: `new EscenaCapySolo("\ + [*,*,*,*,*],\ + ", { coleccion: ["G", "A"] })`, + bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', + 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], + expectations: { + conditionalRepetition: true, + } + }, { id: 23, nombre: 'FutbolRobots', diff --git a/public/iconos/icono.guyra.png b/public/iconos/icono.guyra.png new file mode 100644 index 0000000000000000000000000000000000000000..88eaa6f87a9c7b64b729c8d48291aefcad1ce71f GIT binary patch literal 508 zcmV1P*=3UE+6L@(z=7TgZ+i;R0F2o8XtjI!w1LD<{B^X#(m>D+hy1?-9(|3k_ zN3YkDVt~Q-AHNv{`574e+zc3Q-hJ_5>)uNbN%6vYWqC0JC3#VpP$4i3CJ<#nYd2eh z0uR@GJ$^<89h+tb24*gh@CP6^WG1B9$AKx}z}|n;pTGFY!7ulVL6q}31D~K7NQ#5u z-JE{7BXVd2udaMf!N{y|NmeyVL2uSlOQ$*Ni}8$PCmGn z4;bkHsM!H(s{x1~>(9vWOp=X3NS29#Uz~}7l>^1T#>o*MKQKWx&IjW6K<0j!W>8Xn z{_y{YM%O { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + + + + + + + + + + + `} + ) +}); \ No newline at end of file diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js new file mode 100644 index 000000000..d3a250599 --- /dev/null +++ b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js @@ -0,0 +1,30 @@ +import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; + +const nombre = "CapyYGuyra"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + + + + + + + `} + ) +}); \ No newline at end of file diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 563bde586..da0bcb6c7 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -125,6 +125,7 @@ chargeCellphone: Charge cell phone telescopeHere: Is there a telescope here? planetHere: Is there a planet here? canHere: Is there a can here? +guyraHere: Is Guyra here? paperHere: Is there a paper here ? butterflyHere: Is there a butterfly here? cellphoneHere: Is there a cell phone here? @@ -144,6 +145,7 @@ watchPlanet: Watch planet repairTelescope: Repair telescope alignTelescope: Align telescope pickCan: Pick can +pickBird: Pick bird pickPaper: Pick paper holdPaper: Hold paper fillBin: Fill bin diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 079825e33..2f634f225 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -125,6 +125,7 @@ chargeCellphone: Cargar celular telescopeHere: ¿Hay un telescopio acá? planetHere: ¿Hay un planeta acá? canHere: ¿Hay una lata acá? +guyraHere: ¿Guyra está acá? paperHere: ¿Hay un papel acá? butterflyHere: ¿Hay una mariposa acá? cellphoneHere: ¿Hay un celular acá? @@ -144,6 +145,7 @@ watchPlanet: Observar planeta repairTelescope: Reparar telescopio alignTelescope: Alinear telescopio pickCan: Recoger lata +pickBird: Subir pajarito pickPaper: Recoger papel holdPaper: Sostener papel fillBin: Llenar tacho diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index c5874b0db..b5c04020e 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -740,6 +740,11 @@ model: description: | Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' + 'nuevo22': + title: Capy busca a Guyra + description: | + Ayuda a Capy a encontrar a Guyra + clue: '' 'nuevo23': title: Fútbol al sur description: | From 73fa8f351a7db41a98816cf03320b520b91a52d7 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 3 Oct 2023 13:04:26 -0300 Subject: [PATCH 067/212] desafios en grupo --- app/utils/staticData/grupos.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 97a7caea8..af3b16228 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -265,6 +265,7 @@ export const grupos = [ id: 'grupoTemporal', desafioIds: [ 'nuevo46', + 'nuevo1', 'nuevo4', 'nuevo5', 'nuevo6', @@ -274,6 +275,7 @@ export const grupos = [ 'nuevo10', 'nuevo13', 'nuevo14', + 'nuevo22', 'nuevo38', 'nuevo39', 'nuevo40', From edc7bcf2e9e6d10fbf113ee3e6669352f42624d0 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 3 Oct 2023 13:17:42 -0300 Subject: [PATCH 068/212] fix test name --- .../Capy/{CapyBuscaAGuyra.js => CapyBuscaAGuyra-test.js} | 0 .../segundoCiclo/Capy/{CapyYGuyra.js => CapyYGuyra-test.js} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/integration/desafios/segundoCiclo/Capy/{CapyBuscaAGuyra.js => CapyBuscaAGuyra-test.js} (100%) rename tests/integration/desafios/segundoCiclo/Capy/{CapyYGuyra.js => CapyYGuyra-test.js} (100%) diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra.js b/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js similarity index 100% rename from tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra.js rename to tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js similarity index 100% rename from tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra.js rename to tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js From 8e7c3b762fa8c3552f2ac63d600f766c859b119d Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 3 Oct 2023 13:41:43 -0300 Subject: [PATCH 069/212] reemplazando desafios --- app/utils/staticData/capitulos.js | 4 ++-- app/utils/staticData/desafios.js | 8 ++++---- app/utils/staticData/grupos.js | 6 ++---- translations/en-us.yaml | 10 +++++++++- translations/es-ar.yaml | 12 ++++++++---- translations/pt-br.yaml | 8 ++++++-- 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index 556b432f4..a4337926f 100644 --- a/app/utils/staticData/capitulos.js +++ b/app/utils/staticData/capitulos.js @@ -21,7 +21,7 @@ export const capitulos = [ }, { id: 'Autómatas, comandos, procedimientos y repetición', - grupoIds: ['AlienTocaBoton', 'NuevosComandos', 'ElGatoEnLaCalle', 'NoMeCansoDeSaltar', 'ElMarcianoEnElDesierto', 'TitoEnciendeLuces', 'ElAlienYLasTuercas', 'ElRecolectorDeEstrellas', 'MariaLaComeSandias', 'AlimentandoALosPeces', 'InstalandoJuegos', 'LaGranAventuraDelMarEncantado', 'ReparandoLaNave'], + grupoIds: ['CapyYGuyra', 'NuevosComandos', 'ElGatoEnLaCalle', 'NoMeCansoDeSaltar', 'ElMarcianoEnElDesierto', 'TitoEnciendeLuces', 'ElAlienYLasTuercas', 'ElRecolectorDeEstrellas', 'MariaLaComeSandias', 'AlimentandoALosPeces', 'InstalandoJuegos', 'LaGranAventuraDelMarEncantado', 'ReparandoLaNave'], expectations: { simpleRepetition: true } @@ -33,7 +33,7 @@ export const capitulos = [ }, { id: 'Repetición condicional', - grupoIds: ['SuperTito1', 'SuperTito2', 'LaberintoConQueso', 'ElDetectiveChaparro', 'FutbolRobots', 'PrendiendoLasCompus', 'ElMonoQueSabeContar'] + grupoIds: ['SuperTito1', 'SuperTito2', 'LaberintoConQueso', 'CapyBuscaAGuyra' , 'FutbolRobots', 'PrendiendoLasCompus', 'ElMonoQueSabeContar'] }, { id: 'Sensores Numéricos', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index f96b6b1bc..10877de5e 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -18,7 +18,7 @@ export const desafios = [ { - id: 1, + id: "viejo1", nombre: 'AlienTocaBoton', escena: 'AlienInicial', bloques: ['MoverACasillaDerecha', 'ApretarBoton'], @@ -28,7 +28,7 @@ export const desafios = [ } }, { - id: "nuevo1", + id: 1, nombre: 'CapyYGuyra', escena: `new EscenaCapySolo("[A,-,-,G]")`, bloques: ['MoverACasillaDerecha', 'SubirPajarito'], @@ -207,7 +207,7 @@ export const desafios = [ } }, { - id: 22, + id: "viejo22", nombre: 'ElDetectiveChaparro', escena: 'ElDetectiveChaparro', bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', @@ -218,7 +218,7 @@ export const desafios = [ } }, { - id: "nuevo22", + id: 22, nombre: 'CapyBuscaAGuyra', escena: `new EscenaCapySolo("\ [*,*,*,*,*],\ diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index af3b16228..ab426b696 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -2,7 +2,7 @@ export const grupos = [ { - id: 'AlienTocaBoton', + id: 'CapyYGuyra', desafioIds: [1] }, { @@ -98,7 +98,7 @@ export const grupos = [ desafioIds: [21] }, { - id: 'ElDetectiveChaparro', + id: 'CapyBuscaAGuyra', desafioIds: [22] }, { @@ -265,7 +265,6 @@ export const grupos = [ id: 'grupoTemporal', desafioIds: [ 'nuevo46', - 'nuevo1', 'nuevo4', 'nuevo5', 'nuevo6', @@ -275,7 +274,6 @@ export const grupos = [ 'nuevo10', 'nuevo13', 'nuevo14', - 'nuevo22', 'nuevo38', 'nuevo39', 'nuevo40', diff --git a/translations/en-us.yaml b/translations/en-us.yaml index a7cef1546..20c7418e0 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -2,7 +2,7 @@ localeName: English changeLanguage: Change language model: challenges: - '1': + 'viejo1': title: The alien pushes the button description: | Help our Alien push the button of his lab. @@ -122,6 +122,10 @@ model: The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' '22': + title: Capy looks for Guyra + description: Help Capy to find Guyra + clue: '' + 'viejo22': title: Detective Chaparro description: 'The detective should discover the guilty of a crime. Starting by the first on the left, interrogate each one of the suspects until you find the guilty party!' clue: 'The "Repeat until" block allows us to finish the program when we finally find the guilty party, without need to interrogate all suspects in the row.' @@ -780,6 +784,10 @@ model: groups: AlienTocaBoton: title: '' + CapyYGuyra: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' ElGatoEnLaCalle: diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index b5c04020e..5e7b385c1 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -2,7 +2,7 @@ localeName: Español changeLanguage: Cambiar idioma model: challenges: - '1': + 'viejo1': title: El alien toca el botón description: | Ayudá a nuestro Alien a presionar el botón de su laboratorio. @@ -121,7 +121,7 @@ model: description: | ¡El ratón está más hambriento que nunca! Guialo por el laberinto para que pueda comer todos los trozos de queso. Pista: antes de empezar, apretá varias veces el botón Ejecutar para conocer cómo varía el escenario. clue: 'Es importante pensar si en algún momento se cumple la condición del bloque "Repetir hasta qué". Sino, ¡el programa podría no terminar nunca!' - '22': + 'viejo22': title: El detective Chaparro description: 'El detective debe descubrir al culpable de un crimen. Comenzando por el primero de la izquierda, ¡interrogá a cada uno de los sospechosos hasta encontrar al culpable!' clue: El bloque "Repetir hasta que" nos permite terminar el programa cuando encontramos al culpable sin tener que interrogar a todos los sospechosos de la fila. @@ -655,7 +655,7 @@ model: Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. Fijate si funciona o qué hay que arreglar. clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una - 'nuevo1': + 1: title: Capy y Guyrá description: | El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. @@ -740,7 +740,7 @@ model: description: | Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' - 'nuevo22': + '22': title: Capy busca a Guyra description: | Ayuda a Capy a encontrar a Guyra @@ -834,6 +834,10 @@ model: groups: AlienTocaBoton: title: '' + CapyYGuyra: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' ElGatoEnLaCalle: diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 67605a25b..eca23d59f 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -2,7 +2,7 @@ localeName: Português changeLanguage: Mudar idioma model: challenges: - '1': + 'viejo1': title: O alienígena toca o botão description: | Ajude nosso alienígena a apertar o botão de seu laboratório. @@ -121,7 +121,7 @@ model: description: | O rato está com mais fome do que nunca! Guie-o pelo labirinto para que ele coma todos os pedaços de queijo. Dica: antes de começar, pressione o botão Executar várias vezes para ver como o cenário varia. clue: É importante pensar se a condição do bloco "Repetir até que" é atendida a algum momento. Do contrário, o programa pode nunca terminar! - '22': + 'viejo22': title: Detetive Chaparro description: O detetive deve descobrir o culpado de um crime. Começando com o primeiro à esquerda, questione cada suspeito até encontrar o culpado! clue: O bloco "Repetir até que" nos permite encerrar o programa quando encontramos o culpado, sem ter que interrogar todos os suspeitos na fila. @@ -770,6 +770,10 @@ model: groups: AlienTocaBoton: title: '' + CapyYGuyra: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' ElGatoEnLaCalle: From c670eb41c41e6af82bb9862f1849f73afe807247 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 3 Oct 2023 13:50:13 -0300 Subject: [PATCH 070/212] Imagenes --- public/imagenes/desafios/CapyBuscaAGuyra.png | Bin 0 -> 37101 bytes public/imagenes/desafios/CapyYGuyra.png | Bin 0 -> 37101 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/imagenes/desafios/CapyBuscaAGuyra.png create mode 100644 public/imagenes/desafios/CapyYGuyra.png diff --git a/public/imagenes/desafios/CapyBuscaAGuyra.png b/public/imagenes/desafios/CapyBuscaAGuyra.png new file mode 100644 index 0000000000000000000000000000000000000000..579c0846efda2fbbb068942fc601c730d0f376eb GIT binary patch literal 37101 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 Date: Tue, 3 Oct 2023 14:40:31 -0300 Subject: [PATCH 071/212] fixing register route --- app/controllers/register.js | 3 ++- app/router.js | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/register.js b/app/controllers/register.js index be00a3b69..38a0fb4fe 100644 --- a/app/controllers/register.js +++ b/app/controllers/register.js @@ -1,6 +1,7 @@ import { inject as service } from '@ember/service' import { computed } from '@ember/object' import Controller from '@ember/controller' +import { sendRouteToParent } from '../router' export default Controller.extend({ avatardb: service(), @@ -58,7 +59,7 @@ export default Controller.extend({ actions: { doRegister() { this.pilasBloquesApi.register(this.registerData) - .then(() => this.transitionToRoute("/")) + .then(() => sendRouteToParent()) }, checkUsername() { diff --git a/app/router.js b/app/router.js index 38366d4e2..f4618edb6 100644 --- a/app/router.js +++ b/app/router.js @@ -2,7 +2,9 @@ import EmberRouter from '@ember/routing/router'; import config from 'pilasbloques/config/environment'; -function sendRouteToParent(route) { +export function sendRouteToParent(hash) { + const route = hash ? hash : '#/' + //The if is necessary so that imported challenges do not redirect to desafio/react-imported-challenge on react if (!route.includes('react-imported-challenge')) window.parent.postMessage({ route }, '*'); } From feacf9d8dad216961a3c9e823e620032bd9f02f1 Mon Sep 17 00:00:00 2001 From: asanzo Date: Tue, 3 Oct 2023 15:41:24 -0300 Subject: [PATCH 072/212] Update translations/en-us.yaml --- translations/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index b9bdef0c7..9cfc76ddc 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -709,7 +709,7 @@ model: title: Counting planets and stars description: | Mañic should visit all boxes and count how many planets and stars are there in total. Clue: first think how you could count whether there is any planet or star in a particular box. Then think how you could count all celestial bodies in only one particular column. - clue: 'Splitting a big problem into several little problems can help you better understand each one of its parts. At the same time, this will allow us to focus on solving easier challenges if compared to the original one.' + clue: 'Splitting a big problem into several little problems can help you better understand each of its parts. Even better: you can focus on solving smaller and easier parts!' 'nuevo27': title: Mañic counts again description: 'Mañic needs to count the celestial bodies again, but now she cannot check whether she reached the end of the column! Is there any sensor to help her?' From c49eea3d3d59b7f7fbe0f43540b76df739d99fc7 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Tue, 3 Oct 2023 15:54:00 -0300 Subject: [PATCH 073/212] Release 1.15.5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cff4e98a7..b2880a8bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.4", + "version": "1.15.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f6a575e1a..d58f17247 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.4", + "version": "1.15.5", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From f07ffd39956befc8bf26495bc23dab55af2979f6 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Wed, 4 Oct 2023 13:07:47 -0300 Subject: [PATCH 074/212] bumping exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 436d743d4..a7f0dd9fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.4.tgz", - "integrity": "sha512-eTuwBUSLEqddiz3u2/lRXKPs4PuOVl1b2X6RzuTmcI6s2owhfnYvi26AEafM3k3/XT4m2ikBfFJmI38A8GJupA==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.7.tgz", + "integrity": "sha512-TLT5YBblR0MlNYCI+EyAwYo3fTalFFze96aVCjnaQY3nOage837InrUniZsjx071WgIBKHbG6G6x/caB3dqlKg==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 29d73e242..e22878b41 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.4", + "pilas-bloques-exercises": "1.4.7", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index df9114551..b372bdfb7 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 9c41798da54212f21edaebb687e1c2cc839020fd Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:15:54 -0300 Subject: [PATCH 075/212] Update app/utils/staticData/capitulos.js Co-authored-by: asanzo --- app/utils/staticData/capitulos.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index a4337926f..96192958e 100644 --- a/app/utils/staticData/capitulos.js +++ b/app/utils/staticData/capitulos.js @@ -33,7 +33,7 @@ export const capitulos = [ }, { id: 'Repetición condicional', - grupoIds: ['SuperTito1', 'SuperTito2', 'LaberintoConQueso', 'CapyBuscaAGuyra' , 'FutbolRobots', 'PrendiendoLasCompus', 'ElMonoQueSabeContar'] + grupoIds: ['SuperTito1', 'SuperTito2', 'LaberintoConQueso', 'ElDetectiveChaparro' , 'FutbolRobots', 'PrendiendoLasCompus', 'ElMonoQueSabeContar'] }, { id: 'Sensores Numéricos', From 7fdeb1341124546bf5f23f727ee745a0cce0c0a8 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:16:05 -0300 Subject: [PATCH 076/212] Update app/utils/staticData/grupos.js Co-authored-by: asanzo --- app/utils/staticData/grupos.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index ab426b696..08e2e7ad5 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -98,7 +98,7 @@ export const grupos = [ desafioIds: [21] }, { - id: 'CapyBuscaAGuyra', + id: 'ElDetectiveChaparro', desafioIds: [22] }, { From b2e83c3c88cce8bd3663f3757c370fc1e6a322f7 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:16:19 -0300 Subject: [PATCH 077/212] Update translations/en-us.yaml Co-authored-by: asanzo --- translations/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 20c7418e0..fca352135 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -125,7 +125,7 @@ model: title: Capy looks for Guyra description: Help Capy to find Guyra clue: '' - 'viejo22': + '22': title: Detective Chaparro description: 'The detective should discover the guilty of a crime. Starting by the first on the left, interrogate each one of the suspects until you find the guilty party!' clue: 'The "Repeat until" block allows us to finish the program when we finally find the guilty party, without need to interrogate all suspects in the row.' From c390a93793607e56159677e0d2d2a904b94ec562 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:16:33 -0300 Subject: [PATCH 078/212] Update translations/en-us.yaml Co-authored-by: asanzo --- translations/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index fca352135..d735b8f3e 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -121,7 +121,7 @@ model: description: | The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' - '22': + 'nuevo22': title: Capy looks for Guyra description: Help Capy to find Guyra clue: '' From 49300b0d0227a5461d13a6f11ff17b1d6730a58b Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:19:52 -0300 Subject: [PATCH 079/212] Update translations/es-ar.yaml Co-authored-by: asanzo --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 5e7b385c1..7740f87ef 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -740,7 +740,7 @@ model: description: | Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' - '22': + 'nuevo22': title: Capy busca a Guyra description: | Ayuda a Capy a encontrar a Guyra From 647de089d961e402811388146bf02dc4c7360acd Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:20:03 -0300 Subject: [PATCH 080/212] Update translations/pt-br.yaml Co-authored-by: asanzo --- translations/pt-br.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index eca23d59f..01ee5b410 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -121,7 +121,7 @@ model: description: | O rato está com mais fome do que nunca! Guie-o pelo labirinto para que ele coma todos os pedaços de queijo. Dica: antes de começar, pressione o botão Executar várias vezes para ver como o cenário varia. clue: É importante pensar se a condição do bloco "Repetir até que" é atendida a algum momento. Do contrário, o programa pode nunca terminar! - 'viejo22': + '22': title: Detetive Chaparro description: O detetive deve descobrir o culpado de um crime. Começando com o primeiro à esquerda, questione cada suspeito até encontrar o culpado! clue: O bloco "Repetir até que" nos permite encerrar o programa quando encontramos o culpado, sem ter que interrogar todos os suspeitos na fila. From a32b214807da34ef9a4fd8361a4eac57babf8fe9 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:20:10 -0300 Subject: [PATCH 081/212] Update translations/es-ar.yaml Co-authored-by: asanzo --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 7740f87ef..b827bc759 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -121,7 +121,7 @@ model: description: | ¡El ratón está más hambriento que nunca! Guialo por el laberinto para que pueda comer todos los trozos de queso. Pista: antes de empezar, apretá varias veces el botón Ejecutar para conocer cómo varía el escenario. clue: 'Es importante pensar si en algún momento se cumple la condición del bloque "Repetir hasta qué". Sino, ¡el programa podría no terminar nunca!' - 'viejo22': + '22': title: El detective Chaparro description: 'El detective debe descubrir al culpable de un crimen. Comenzando por el primero de la izquierda, ¡interrogá a cada uno de los sospechosos hasta encontrar al culpable!' clue: El bloque "Repetir hasta que" nos permite terminar el programa cuando encontramos al culpable sin tener que interrogar a todos los sospechosos de la fila. From 7664ec465d7dfe3087a2f4dbc7ab585039e24097 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:20:48 -0300 Subject: [PATCH 082/212] Update translations/blocks/en-us.yaml Co-authored-by: asanzo --- translations/blocks/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index da0bcb6c7..0e87c14dc 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -145,7 +145,7 @@ watchPlanet: Watch planet repairTelescope: Repair telescope alignTelescope: Align telescope pickCan: Pick can -pickBird: Pick bird +pickBird: Pick Guyrá pickPaper: Pick paper holdPaper: Hold paper fillBin: Fill bin From 8addb087b7d2532f46bd5cc18bae0734bb22e636 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:20:57 -0300 Subject: [PATCH 083/212] Update translations/blocks/en-us.yaml Co-authored-by: asanzo --- translations/blocks/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 0e87c14dc..a1d86d580 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -125,7 +125,7 @@ chargeCellphone: Charge cell phone telescopeHere: Is there a telescope here? planetHere: Is there a planet here? canHere: Is there a can here? -guyraHere: Is Guyra here? +guyraHere: Is Guyrá here? paperHere: Is there a paper here ? butterflyHere: Is there a butterfly here? cellphoneHere: Is there a cell phone here? From 2a10f2e3e0903542f6db8ea6b2ac942eeccd7fc6 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:21:07 -0300 Subject: [PATCH 084/212] Update translations/blocks/es-ar.yaml Co-authored-by: asanzo --- translations/blocks/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 2f634f225..57f1fc691 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -125,7 +125,7 @@ chargeCellphone: Cargar celular telescopeHere: ¿Hay un telescopio acá? planetHere: ¿Hay un planeta acá? canHere: ¿Hay una lata acá? -guyraHere: ¿Guyra está acá? +guyraHere: ¿Guyrá está acá? paperHere: ¿Hay un papel acá? butterflyHere: ¿Hay una mariposa acá? cellphoneHere: ¿Hay un celular acá? From a1f1a7b3cd9d4c1300aabb8434b83ba1e34d700c Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:21:17 -0300 Subject: [PATCH 085/212] Update translations/blocks/es-ar.yaml Co-authored-by: asanzo --- translations/blocks/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 57f1fc691..9b49461fd 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -145,7 +145,7 @@ watchPlanet: Observar planeta repairTelescope: Reparar telescopio alignTelescope: Alinear telescopio pickCan: Recoger lata -pickBird: Subir pajarito +pickBird: Subir a Guyrá pickPaper: Recoger papel holdPaper: Sostener papel fillBin: Llenar tacho From a2a93052cea25101375a632be9162af4dff48711 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Wed, 4 Oct 2023 13:22:30 -0300 Subject: [PATCH 086/212] challenge rename --- app/utils/staticData/desafios.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 10877de5e..2d98a559d 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -207,7 +207,7 @@ export const desafios = [ } }, { - id: "viejo22", + id: 22, nombre: 'ElDetectiveChaparro', escena: 'ElDetectiveChaparro', bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', @@ -218,7 +218,7 @@ export const desafios = [ } }, { - id: 22, + id: "nuevo22", nombre: 'CapyBuscaAGuyra', escena: `new EscenaCapySolo("\ [*,*,*,*,*],\ From 8a59931c329586fdea7a80c7529c7f634f476589 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Wed, 4 Oct 2023 13:33:04 -0300 Subject: [PATCH 087/212] NuevosComandosCapy --- app/utils/staticData/capitulos.js | 2 +- app/utils/staticData/grupos.js | 5 ++++- public/imagenes/desafios/NuevosComandosCapy.png | Bin 0 -> 37101 bytes translations/en-us.yaml | 2 ++ translations/es-ar.yaml | 2 ++ translations/pt-br.yaml | 2 ++ 6 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 public/imagenes/desafios/NuevosComandosCapy.png diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index 96192958e..0241722c6 100644 --- a/app/utils/staticData/capitulos.js +++ b/app/utils/staticData/capitulos.js @@ -21,7 +21,7 @@ export const capitulos = [ }, { id: 'Autómatas, comandos, procedimientos y repetición', - grupoIds: ['CapyYGuyra', 'NuevosComandos', 'ElGatoEnLaCalle', 'NoMeCansoDeSaltar', 'ElMarcianoEnElDesierto', 'TitoEnciendeLuces', 'ElAlienYLasTuercas', 'ElRecolectorDeEstrellas', 'MariaLaComeSandias', 'AlimentandoALosPeces', 'InstalandoJuegos', 'LaGranAventuraDelMarEncantado', 'ReparandoLaNave'], + grupoIds: ['CapyYGuyra', 'NuevosComandosCapy', 'ElGatoEnLaCalle', 'NoMeCansoDeSaltar', 'ElMarcianoEnElDesierto', 'TitoEnciendeLuces', 'ElAlienYLasTuercas', 'ElRecolectorDeEstrellas', 'MariaLaComeSandias', 'AlimentandoALosPeces', 'InstalandoJuegos', 'LaGranAventuraDelMarEncantado', 'ReparandoLaNave'], expectations: { simpleRepetition: true } diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 08e2e7ad5..210b1abef 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -9,6 +9,10 @@ export const grupos = [ id: 'NuevosComandos', desafioIds: [46] }, + { + id: 'NuevosComandosCapy', + desafioIds: ["nuevo46"] + }, { id: 'ElGatoEnLaCalle', desafioIds: [2] @@ -264,7 +268,6 @@ export const grupos = [ { id: 'grupoTemporal', desafioIds: [ - 'nuevo46', 'nuevo4', 'nuevo5', 'nuevo6', diff --git a/public/imagenes/desafios/NuevosComandosCapy.png b/public/imagenes/desafios/NuevosComandosCapy.png new file mode 100644 index 0000000000000000000000000000000000000000..579c0846efda2fbbb068942fc601c730d0f376eb GIT binary patch literal 37101 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 Date: Wed, 4 Oct 2023 13:35:58 -0300 Subject: [PATCH 088/212] translation fix --- translations/en-us.yaml | 4 ++-- translations/es-ar.yaml | 4 ++-- translations/pt-br.yaml | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 71c377dd1..0a86e6e20 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -122,8 +122,8 @@ model: The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' 'nuevo22': - title: Capy looks for Guyra - description: Help Capy to find Guyra + title: Capy looks for Guyrá + description: Help Capy to find Guyrá clue: '' '22': title: Detective Chaparro diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 4937ec00f..ccec09cef 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -741,9 +741,9 @@ model: Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' 'nuevo22': - title: Capy busca a Guyra + title: Capy busca a Guyrá description: | - Ayuda a Capy a encontrar a Guyra + Ayuda a Capy a encontrar a Guyrá clue: '' 'nuevo23': title: Fútbol al sur diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index e03ac36ca..5e8e8450a 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -690,6 +690,11 @@ model: description: | Súper Yvoty debe despertar a todas las luciérnagas, pero a diferencia del desafío anterior, hay celdas sin luciérnagas. ¿Podrás utilizar el mismo procedimiento que en Súper Yvoty 1? clue: El bloque "repetir hasta que" repite una secuencia de acciones hasta que se cumple una condición. Esto se llama "repetición condicional". + 'nuevo22': + title: Capy busca a Guyrá + description: | + Ayuda a Capy a encontrar a Guyrá + clue: '' 'nuevo24': title: Prendiendo las compus description: | From 95727bd33a5e3d595210bbc3ba0e2179f1fe8e7a Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Wed, 4 Oct 2023 18:16:28 -0300 Subject: [PATCH 089/212] fixing tests --- app/utils/staticData/capitulos.js | 2 +- tests/acceptance/challenge-content-test.js | 6 +++--- translations/es-ar.yaml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index 0241722c6..e0b4c1d2c 100644 --- a/app/utils/staticData/capitulos.js +++ b/app/utils/staticData/capitulos.js @@ -52,6 +52,6 @@ export const capitulos = [ }, { id: 'capiTemporal', - grupoIds: ['grupoTemporal'] + grupoIds: ['grupoTemporal', 'NuevosComandos'] }, ]; diff --git a/tests/acceptance/challenge-content-test.js b/tests/acceptance/challenge-content-test.js index 0decc9c57..7b40c9439 100644 --- a/tests/acceptance/challenge-content-test.js +++ b/tests/acceptance/challenge-content-test.js @@ -30,9 +30,9 @@ module('Acceptance | challenge content internationalization test', function (hoo // Second book challenge: testCanVisit(1, - 'El alien toca el botón', - 'Ayudá a nuestro Alien a presionar el botón de su laboratorio. Pistas: mirá las primitivas disponibles. ¡Vas a tener que avanzar varias veces! 😉', - 'Los bloques te permiten formar secuencias de acciones para resolver los desafíos que te proponemos en Pilas Bloques.') + 'Capy y Guyrá', + 'El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura.', + 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.') // Conditional Alternative: // Because markdown is being used, the clue of this challenge uses the caracter '…', which is different from '...' (three dot characters). diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 7cefadfab..5f6b4ef6c 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -659,7 +659,7 @@ model: title: Capy y Guyrá description: | El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. - clue: 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.' + clue: 'Fijate bien el orden de las _primitivas_: qué cosa tenés que hacer primero y qué cosa va después.' 'nuevo4': title: Mañic en el cielo description: | From 7b3c85f061ce83f7b8a4ad69af6b460c6c5c3807 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Wed, 4 Oct 2023 20:07:20 -0300 Subject: [PATCH 090/212] Release 1.16.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b0462a0a..43a1d860c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.15.5", + "version": "1.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index cbe0d5051..54375148d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.15.5", + "version": "1.16.0", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From aca87e93bd10dc3015e9324474249d0d8104c38c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 11:27:22 -0300 Subject: [PATCH 091/212] NoMeCansoDeRebotar --- app/services/blocks-gallery.js | 30 ++++++++++++++++++++++++++++++ app/utils/staticData/desafios.js | 18 ++++++++++++++++++ app/utils/staticData/grupos.js | 2 ++ translations/blocks/en-us.yaml | 4 ++++ translations/blocks/es-ar.yaml | 4 ++++ translations/blocks/pt-br.yaml | 4 ++++ translations/en-us.yaml | 9 +++++++++ translations/es-ar.yaml | 9 +++++++++ translations/pt-br.yaml | 9 +++++++++ 9 files changed, 89 insertions(+) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 661440cc1..5f7ec3604 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -346,6 +346,30 @@ export default Service.extend({ argumentos: '{etiqueta: "Pulpito", nombreAnimacion:"rebotarPulpito", animacionInteractuadoMientras: "desaparecer", "mensajeError": "Acá no hay una pelota"}', }) + this.crearBloqueAccion('RevolearPulpito', 'volleyRubberBall', { + icono: 'icono.pelota-pulpo.png', + comportamiento: 'Interactuar', + argumentos: '{etiqueta: "Pulpito", nombreAnimacion:"revolearPulpito", "mensajeError": "Acá no hay una pelota", idTransicion: "revolearPulpito"}', + }) + + this.crearBloqueAccion('RebotarPiePulpito', 'bounceFootRubberBall', { + icono: 'icono.pelota-pulpo.png', + comportamiento: 'Interactuar', + argumentos: '{etiqueta: "Pulpito", nombreAnimacion:"rebotarPulpito", "mensajeError": "Acá no hay una pelota", idTransicion: "rebotarPiePulpito"}', + }) + + this.crearBloqueAccion('RecogerPulpito', 'pickRubberBall', { + icono: 'icono.pelota-pulpo.png', + comportamiento: 'Interactuar', + argumentos: '{etiqueta: "Pulpito", nombreAnimacion: "recoger", animacionInteractuadoMientras: "desaparecer", "mensajeError": "Acá no hay una pelota", idTransicion: "recoger"}', + }) + + this.crearBloqueAccion('RebotarUnaVezPingPong', 'bouncePingPong', { + icono: 'icono.paleta.png', + comportamiento: 'PingPongAnimado', + argumentos: '{mensaje: "Rebotando...", etiqueta: "PingPong", nombreAnimacion:"usarPaletaUnaVez", animacionInteractuadoMientras: "desaparecer" }', + }); + this.crearBloqueAccion('DespertarLuciernaga', 'wakeUpFirefly', { icono: 'icono.luciernaga-prendida.png', comportamiento: 'SacarFoto', @@ -548,6 +572,12 @@ export default Service.extend({ argumentos: '{direccion: [1,0], distancia: 50, idTransicion: "avanzar"}', }); + this.crearBloqueAccion('Retroceder', 'back', { + icono: 'icono.izquierda.png', + comportamiento: 'MovimientoAnimado', + argumentos: '{direccion: [-1,0], distancia: 50, idTransicion: "retroceder"}', + }); + this.crearBloqueAccion('Soniar', 'dream', { icono: 'icono.soniar.png', comportamiento: 'Pensar', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 33c8e1ffb..476682793 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2725,6 +2725,24 @@ export const desafios = [ ` }, { + id: 'nuevo2', + nombre: 'ChuyHaciendoJueguito', + escena: 'ChuyHaciendoJueguito', + bloques: ['Avanzar', 'Volver', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Repetir', 'Procedimiento'], + expectations: { + simpleRepetition: false + } + }, + { + id: 'nuevo3', + nombre: 'NoMeCansoDeRebotar', + escena: 'NoMeCansoDeRebotar', + bloques: ['RebotarUnaVezPingPong', 'Procedimiento', 'Repetir'], + expectations: { + decomposition: false + } + }, + { id: 'nuevo4', nombre: 'ManicEnElCielo', escena: `new EscenaManic("\ diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 798cf23c2..321133f03 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -265,6 +265,8 @@ export const grupos = [ id: 'grupoTemporal', desafioIds: [ 'nuevo46', + 'nuevo2', + 'nuevo3', 'nuevo4', 'nuevo5', 'nuevo6', diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index b605ebec0..76e31ca47 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -16,6 +16,7 @@ lie: Lie down standUp: Stand up return: Return advance: Move forward +back: Move backward dream: Dream jump: Jump goToLeftBorder: Go to left border @@ -51,6 +52,9 @@ blowUpBallon: Pinch the balloon kickBall: Kick the ball kickFootballBall: Kick the football ball bounceRubberBall: Bounce the rubber ball +volleyRubberBall: Volley the rubber ball +pickRubberBall: Pick the rubber ball +bounceFootRubberBall: Bounce with foot the rubber ball move1Km: Move 1 Km forward changeLightColor: Change spotlight color moveNextLight: Move to next spotlight diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 943b3d7ce..dcc20523a 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -16,6 +16,7 @@ lie: Acostarse standUp: Pararse return: Volver advance: Avanzar +back: Retroceder dream: Soñar jump: Saltar goToLeftBorder: Ir al borde izquierdo @@ -51,6 +52,9 @@ blowUpBallon: Explotar globo kickBall: Patear pelota kickFootballBall: Patear pelota de fútbol bounceRubberBall: Rebotar pelota pulpito +volleyRubberBall: Revolear pelota pulpito +pickRubberBall: Agarrar pelota pulpito +bounceFootRubberBall: Rebotar con el pie la pelota pulpito move1Km: Avanzar 1 Km changeLightColor: Cambiar color del foco moveNextLight: Pasar al siguiente foco diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index 1da95dc51..d68090e6f 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -16,6 +16,7 @@ lie: 'Deitar-se ' standUp: Levantar-se return: Retornar advance: Avançar +back: Votar dream: Sonhar jump: Saltar goToLeftBorder: Ir para a borda esquerda @@ -51,6 +52,9 @@ blowUpBallon: Explodir balão kickBall: Chutar bola kickFootballBall: Chutar bola de futebol bounceRubberBall: Chutar bola pulpito +volleyRubberBall: Voleio uma bola pulpito +pickRubberBall: Pegar uma bola pulpito +bounceFootRubberBall: Chutar com ó pe uma bola pulpito move1Km: Avançar 1 Km changeLightColor: Mudar a cor da lâmpada moveNextLight: Ir para a próxima lâmpada diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 9cfc76ddc..a31f0060f 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -649,6 +649,15 @@ model: Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. Fijate si funciona o qué hay que arreglar. clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una + 'nuevo2': + title: Chuy keepie-uppie + description: 'Make Chuy take a step forward, warm up moving back and forth, pick up the rubber ball, do keepie-uppie flipping the ball and bouncing it with the foot and finally come back to the original place.' + clue: You can create new actions in _My procedures_ by defining new blocks including other actions. + 'nuevo3': + title: I love bouncing the ping pong ball + description: | + Help Chuy bounce the ping pong ball 30 times non-stop. Clue: you can solve this challenge with less than 30 blocks. + clue: The Repeat block allows you to select the number of times you want to repeat a sequence of actions. This is called "Simple repetition". 'nuevo4': title: Mañic in sky description: | diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 98ac2aa7d..6aab9402d 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -660,6 +660,15 @@ model: description: | El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. clue: 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.' + 'nuevo2': + title: Chuy haciendo jueguito + description: 'Hacé que Chuy avance un paso, entre en calor avanzando y retrocediendo, recoja la pelota pulpito, haga jueguito revoleando la pelota y rebotandola con el pie y por ultimo vuelva a su lugar.' + clue: Se pueden crear nuevas acciones en Procedimientos definiendo nuevos bloques que incluyan otras acciones. + 'nuevo3': + title: No me canso de rebotar + description: | + Ayudá a Chuy a hacer rebotar la pelota de ping pong 30 veces seguidas. Pista: se puede resolver con menos de 30 bloques. + clue: El bloque Repetir permite elegir la cantidad de veces que se desea repetir una secuencia de acciones. Esto se llama "Repetición simple". 'nuevo4': title: Mañic en el cielo description: | diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index f42146403..dd096b1aa 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -639,6 +639,15 @@ model: Já temos um programa feito para o Toto ler a província que fica ao sul do Rio Negro. Veja se funciona ou o que precisa ser corrigido. clue: A província é Chubut. Com o botão 'PASSO' o Toto pode executar as instruções uma a uma + 'nuevo2': + title: Chuy joga uma embaixadinha + description: Faça que Chuy dê um passo à frente, aqueça-se movendo-se para frente e para trás, pegue a bola pulpito, jogue uma embaixadinha virando a bola e quicando-a com o pé e, finalmente, retorne ao seu lugar. + clue: Novas ações podem ser criadas em Procedimentos definindo novos blocos que incluem outras ações. + 'nuevo3': + title: Eu adoro quicar a bola de pingue-pongue + description: | + Ajude Chuy a quicar a bola de pingue-pongue 30 vezes seguidas. Dica: pode ser resolvido com menos de 30 blocos. + clue: O bloco Repetir permite que você escolha o número de vezes que deseja repetir uma sequência de ações. Isso é chamado de "Repetição Simples". 'nuevo4': title: Mañic en el cielo description: | From 94532ab51d37dc6a3946145ea63afec424fe92e3 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 13:12:02 -0300 Subject: [PATCH 092/212] tests --- app/services/blocks-gallery.js | 2 +- .../desafios/ChuyHaciendoJueguito-test.js | 16 +++++++++++++ .../desafios/NoMeCansoDeRebotar-test.js | 23 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 tests/integration/desafios/ChuyHaciendoJueguito-test.js create mode 100644 tests/integration/desafios/NoMeCansoDeRebotar-test.js diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 5f7ec3604..e1bb28923 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -362,7 +362,7 @@ export default Service.extend({ icono: 'icono.pelota-pulpo.png', comportamiento: 'Interactuar', argumentos: '{etiqueta: "Pulpito", nombreAnimacion: "recoger", animacionInteractuadoMientras: "desaparecer", "mensajeError": "Acá no hay una pelota", idTransicion: "recoger"}', - }) + }) this.crearBloqueAccion('RebotarUnaVezPingPong', 'bouncePingPong', { icono: 'icono.paleta.png', diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js new file mode 100644 index 000000000..dd87353e4 --- /dev/null +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -0,0 +1,16 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "ChuyHaciendoJueguito"; + +moduloActividad(nombre, () =>{ + + actividadTest(nombre, { + solucion: `CalentarHacerJueguito` + }); + + actividadTest(nombre, { + descripcionAdicional: 'Invirtiendo acciones sigue funcionando la solución', + solucion: `CalentarHacerJueguito"` + }); + +}); \ No newline at end of file diff --git a/tests/integration/desafios/NoMeCansoDeRebotar-test.js b/tests/integration/desafios/NoMeCansoDeRebotar-test.js new file mode 100644 index 000000000..f676048cf --- /dev/null +++ b/tests/integration/desafios/NoMeCansoDeRebotar-test.js @@ -0,0 +1,23 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = 'NoMeCansoDeRebotar'; + +moduloActividad(nombre, () => { + + // Solución esperada. Usa el bloque Repetir + actividadTest(nombre, { + solucion: '30', + }); + + // Solución alternativa donde no usa el bloque Repetir y ejecuta 30 bloques saltar seguidos. + actividadTest(nombre, { + solucion: '', + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al querer saltar más de 30 veces', + solucion: '31', + errorEsperado: ' ¡Uy! Hice muchos rebotes... ¡Me pasé!', + }); + +}); From cf5287b87afad86aaa99938b46c58f9b91119dec Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 14:03:08 -0300 Subject: [PATCH 093/212] exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43a1d860c..55a6e40e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.7.tgz", - "integrity": "sha512-TLT5YBblR0MlNYCI+EyAwYo3fTalFFze96aVCjnaQY3nOage837InrUniZsjx071WgIBKHbG6G6x/caB3dqlKg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.8.tgz", + "integrity": "sha512-g/BLtu9ts63eSyIWioeVM3NFHjt9Ln/xXShYiG/1n8ST5K7AOgafoOjds1tYtpAbdqAf0KCIp9sXOLDoRn5M+A==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 54375148d..657aeb41d 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.7", + "pilas-bloques-exercises": "1.4.8", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index b372bdfb7..ff7f121b9 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From a72ae74956b2beb448007ad4334bceaeb6fdf2e5 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 14:10:46 -0300 Subject: [PATCH 094/212] fix merge tom --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 31fe5ac99..2e0cdfaa9 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -659,7 +659,7 @@ model: title: Capy y Guyrá description: | El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. - clue: 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.' + clue: 'Fijate bien el orden de las _primitivas_: qué cosa tenés que hacer primero y qué cosa va después.' 'nuevo2': title: Chuy haciendo jueguito description: 'Hacé que Chuy avance un paso, entre en calor avanzando y retrocediendo, recoja la pelota pulpito, haga jueguito revoleando la pelota y rebotandola con el pie y por ultimo vuelva a su lugar.' From 556c49add2e49809e102075b3d25bd4aa2804907 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 15:35:14 -0300 Subject: [PATCH 095/212] fix test --- app/utils/staticData/grupos.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index fd67fc715..52e3f46cc 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -268,7 +268,6 @@ export const grupos = [ { id: 'grupoTemporal', desafioIds: [ - 'nuevo46', 'nuevo2', 'nuevo3', 'nuevo4', From 58ca979776d9adcdca759f9656b0c6c51e6628bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Oct 2023 18:41:03 +0000 Subject: [PATCH 096/212] Bump electron from 22.3.24 to 22.3.25 Bumps [electron](https://github.com/electron/electron) from 22.3.24 to 22.3.25. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v22.3.24...v22.3.25) --- updated-dependencies: - dependency-name: electron dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 76 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43a1d860c..cb4a4d559 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5854,12 +5854,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", - "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.2.tgz", + "integrity": "sha512-AUgJ71xG8kjuTx8XB1AQNBiebJuXRfhcHr318dCwnQz9VRXdYSnEEqf38XRvGYIoCvIyn/3c72LrSwzaJqknOA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.4.0", + "@embroider/shared-internals": "2.5.0", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -5870,9 +5870,9 @@ } }, "@embroider/shared-internals": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", - "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.0.tgz", + "integrity": "sha512-7qzrb7GVIyNqeY0umxoeIvjDC+ay1b+wb2yCVuYTUYrFfLAkLEy9FNI3iWCi3RdQ9OFjgcAxAnwsAiPIMZZ3pQ==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -5887,9 +5887,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "find-up": { @@ -15729,9 +15729,9 @@ "dev": true }, "electron": { - "version": "22.3.24", - "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.24.tgz", - "integrity": "sha512-wnGsShoRVk1Jmgr7h/jZK9bI5UwMF88sdQ5c8z2j2N8B9elhF/jKDFjwDXUrY1Y0xzAskOP0tYIDE+UbUM4byQ==", + "version": "22.3.25", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.25.tgz", + "integrity": "sha512-AjrP7bebMs/IPsgmyowptbA7jycTkrJC7jLZTb5JoH30PkBC6pZx/7XQ0aDok82SsmSiF4UJDOg+HoLrEBiqmg==", "dev": true, "requires": { "@electron/get": "^2.0.0", @@ -15771,9 +15771,9 @@ } }, "@types/node": { - "version": "16.18.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", - "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", + "version": "16.18.57", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", + "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", "dev": true }, "cacheable-request": { @@ -16566,9 +16566,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "babel-plugin-ember-template-compilation": { @@ -17103,12 +17103,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.1.tgz", - "integrity": "sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.2.tgz", + "integrity": "sha512-AUgJ71xG8kjuTx8XB1AQNBiebJuXRfhcHr318dCwnQz9VRXdYSnEEqf38XRvGYIoCvIyn/3c72LrSwzaJqknOA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.4.0", + "@embroider/shared-internals": "2.5.0", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -17119,9 +17119,9 @@ } }, "@embroider/shared-internals": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.4.0.tgz", - "integrity": "sha512-pFE05ebenWMC9XAPRjadYCXXb6VmqjkhYN5uqkhPo+VUmMHnx7sZYYxqGjxfVuhC/ghS/BNlOffOCXDOoE7k7g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.0.tgz", + "integrity": "sha512-7qzrb7GVIyNqeY0umxoeIvjDC+ay1b+wb2yCVuYTUYrFfLAkLEy9FNI3iWCi3RdQ9OFjgcAxAnwsAiPIMZZ3pQ==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -17183,9 +17183,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "babel-plugin-ember-template-compilation": { @@ -20896,9 +20896,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "babel-plugin-ember-template-compilation": { @@ -21839,9 +21839,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "babel-plugin-ember-template-compilation": { @@ -23650,9 +23650,9 @@ } }, "babel-import-util": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz", - "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", + "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, "babel-plugin-ember-template-compilation": { diff --git a/package.json b/package.json index 54375148d..ac7b92f16 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "broccoli-asset-rev": "^3.0.0", "broccoli-funnel": "^2.0.2", "broccoli-merge-trees": "^4.2.0", - "electron": "22.3.24", + "electron": "22.3.25", "electron-packager": "15.1.0", "electron-rebuild": "2.0.0", "ember-ajax": "^5.0.0", From f10b77fa4a7bb4c31c7c081276685f8d607b4577 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 16:45:23 -0300 Subject: [PATCH 097/212] fixing --- app/utils/staticData/desafios.js | 55 +++++++++--------- app/utils/staticData/grupos.js | 14 +++-- .../imagenes/desafios/NuevosComandosCapy.png | Bin 37101 -> 31586 bytes translations/en-us.yaml | 17 ++++-- translations/es-ar.yaml | 22 +++---- translations/pt-br.yaml | 17 ++++-- 6 files changed, 70 insertions(+), 55 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 9569fdfe8..deca6a3d1 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -18,7 +18,7 @@ export const desafios = [ { - id: "viejo1", + id: 1, nombre: 'AlienTocaBoton', escena: 'AlienInicial', bloques: ['MoverACasillaDerecha', 'ApretarBoton'], @@ -27,16 +27,6 @@ export const desafios = [ simpleRepetition: false } }, - { - id: 1, - nombre: 'CapyYGuyra', - escena: `new EscenaCapySolo("[A,-,-,G]")`, - bloques: ['MoverACasillaDerecha', 'SubirPajarito'], - expectations: { - decomposition: false, - simpleRepetition: false - } - }, { id: 46, nombre: 'NuevosComandos', @@ -1935,6 +1925,33 @@ export const desafios = [ bloques: [ 'MoverArribaDibujando', 'MoverAbajoDibujando', 'MoverDerechaDibujando', 'MoverIzquierdaDibujando', 'SaltarAbajo', 'SaltarArriba', 'SaltarDerecha', 'SaltarIzquierda', 'Repetir', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica'] }, + // Nuevos renumerados + { + id: 1001, + nombre: 'CapyYGuyra', + escena: `new EscenaCapySolo("[A,-,-,G]")`, + bloques: ['MoverACasillaDerecha', 'SubirPajarito'], + expectations: { + decomposition: false, + simpleRepetition: false + } + }, + { + id: 1046, + nombre: 'NuevosComandosCapy', + escena: `new EscenaCapy("\ + [A,-,L],\ + [-,_,L],\ + [-,_,_],\ + [-,-,L],\ + [L,_,L],\")`, + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'Procedimiento'], + expectations: { + simpleRepetition: false, + decomposition: false, + decomposition9: true + } + }, //Tecnopolis { id: 202101, @@ -3109,22 +3126,6 @@ export const desafios = [ }})`, bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'FotografiarMariposa', 'TocandoMariposa', 'Procedimiento', 'Repetir', 'Si', 'SiNo'] }, - { - id: 'nuevo46', - nombre: 'NuevosComandosCapy', - escena: `new EscenaCapy("\ - [A,-,L],\ - [-,_,L],\ - [-,_,_],\ - [-,-,L],\ - [L,_,L],\")`, - bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'Procedimiento'], - expectations: { - simpleRepetition: false, - decomposition: false, - decomposition9: true - } - }, { id: 'nuevo132', nombre: 'PrendiendoLasCompusParametrizadoYvoty', diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index bdc71b03d..c462b3d7e 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -2,17 +2,13 @@ export const grupos = [ { - id: 'CapyYGuyra', + id: 'AlienTocaBoton', desafioIds: [1] }, { id: 'NuevosComandos', desafioIds: [46] }, - { - id: 'NuevosComandosCapy', - desafioIds: ["nuevo46"] - }, { id: 'ElGatoEnLaCalle', desafioIds: [2] @@ -245,6 +241,14 @@ export const grupos = [ id: 'manual1cPrimariaOtros', desafioIds: [255] }, + { + id: 'CapyYGuyra', + desafioIds: [1001] + }, + { + id: 'NuevosComandosCapy', + desafioIds: [1046] + }, { id: 'tecnopolis2021EjercicioModelo', desafioIds: [202101, 202102] diff --git a/public/imagenes/desafios/NuevosComandosCapy.png b/public/imagenes/desafios/NuevosComandosCapy.png index 579c0846efda2fbbb068942fc601c730d0f376eb..1f4fbdf4e37183f0fc7b7eaf18e040586572181b 100644 GIT binary patch literal 31586 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 literal 37101 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 Date: Thu, 5 Oct 2023 19:05:09 -0300 Subject: [PATCH 098/212] content-test --- tests/acceptance/challenge-content-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/acceptance/challenge-content-test.js b/tests/acceptance/challenge-content-test.js index 7b40c9439..d337ed405 100644 --- a/tests/acceptance/challenge-content-test.js +++ b/tests/acceptance/challenge-content-test.js @@ -29,7 +29,7 @@ module('Acceptance | challenge content internationalization test', function (hoo } // Second book challenge: - testCanVisit(1, + testCanVisit(1001, 'Capy y Guyrá', 'El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura.', 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.') From af26d5fe8a58df14a364932b118e9a12fd069d64 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 19:44:26 -0300 Subject: [PATCH 099/212] grupoTemporal --- app/utils/staticData/capitulos.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index e0b4c1d2c..771021b95 100644 --- a/app/utils/staticData/capitulos.js +++ b/app/utils/staticData/capitulos.js @@ -52,6 +52,6 @@ export const capitulos = [ }, { id: 'capiTemporal', - grupoIds: ['grupoTemporal', 'NuevosComandos'] + grupoIds: ['grupoTemporal', 'AlienTocaBoton', 'NuevosComandos'] }, ]; From 7cb799cf7462f2e191b78d8ea5ce23775ae4109b Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 5 Oct 2023 20:16:39 -0300 Subject: [PATCH 100/212] Release 1.16.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43a1d860c..483836d6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.0", + "version": "1.16.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 54375148d..216fb2f6a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.0", + "version": "1.16.1", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From bbbfa8c8f4fe182457675b3cb51fb2127ec8c2c4 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 6 Oct 2023 20:46:53 -0300 Subject: [PATCH 101/212] Supermaraton --- app/services/blocks-gallery.js | 6 ++++ app/utils/staticData/desafios.js | 34 ++++++++++++------- app/utils/staticData/grupos.js | 17 +++++----- .../desafios/LaSupermaraton-test.js | 25 ++++++++++++++ translations/en-us.yaml | 13 ++++--- translations/es-ar.yaml | 5 +++ translations/pt-br.yaml | 5 +++ 7 files changed, 81 insertions(+), 24 deletions(-) create mode 100644 tests/integration/desafios/LaSupermaraton-test.js diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 3c034a4bb..bd67dc2be 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -875,6 +875,12 @@ export default Service.extend({ argumentos: '{}', }); + this.crearBloqueAccion('Avanzar1kmChuy', 'move1Km', { + icono: 'icono.derecha.png', + comportamiento: 'CorrerHeroicamente', + argumentos: '{}', + }); + this.crearBloqueAccion('CambiarColor', 'changeLightColor', { icono: 'icono.cambiar.color.png', comportamiento: 'CambiarColor', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index deca6a3d1..dbe673ed8 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -207,18 +207,6 @@ export const desafios = [ conditionalRepetition: true, } }, - { - id: "nuevo22", - nombre: 'CapyBuscaAGuyra', - escena: `new EscenaCapySolo("\ - [*,*,*,*,*],\ - ", { coleccion: ["G", "A"] })`, - bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', - 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], - expectations: { - conditionalRepetition: true, - } - }, { id: 23, nombre: 'FutbolRobots', @@ -2938,6 +2926,18 @@ export const desafios = [ conditionalRepetition: true, } }, + { + id: "nuevo22", + nombre: 'CapyBuscaAGuyra', + escena: `new EscenaCapySolo("\ + [*,*,*,*,*],\ + ", { coleccion: ["G", "A"] })`, + bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', + 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], + expectations: { + conditionalRepetition: true, + } + }, { id: 'nuevo23', nombre: 'FutbolAlSur', @@ -2982,6 +2982,16 @@ export const desafios = [ conditionalRepetition: true, } }, + { + id: 'nuevo26', + nombre: 'LaSupermaraton', + escena: 'SuperMaraton', + bloques: ['Procedimiento', 'KmsTotales', 'Avanzar1kmChuy', 'RepetirVacio', + 'Repetir', 'Si', 'SiNo', 'Hasta'], + expectations: { + decomposition: false + } + }, { id: 'nuevo27', nombre: 'ContandoDeNuevoManic', diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index c462b3d7e..b08986cad 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -281,26 +281,27 @@ export const grupos = [ 'nuevo10', 'nuevo13', 'nuevo14', - 'nuevo38', - 'nuevo39', - 'nuevo40', - 'nuevo41', 'nuevo15', 'nuevo18', 'nuevo16', 'nuevo17', - 'nuevo42', - 'nuevo43', - 'nuevo44', - 'nuevo45', 'nuevo19', 'nuevo20', 'nuevo21', 'nuevo23', 'nuevo24', 'nuevo25', + 'nuevo26', 'nuevo27', 'nuevo28', + 'nuevo38', + 'nuevo39', + 'nuevo40', + 'nuevo41', + 'nuevo42', + 'nuevo43', + 'nuevo44', + 'nuevo45', 'nuevo132', 'nuevo133', 'nuevo134', diff --git a/tests/integration/desafios/LaSupermaraton-test.js b/tests/integration/desafios/LaSupermaraton-test.js new file mode 100644 index 000000000..27c6248ee --- /dev/null +++ b/tests/integration/desafios/LaSupermaraton-test.js @@ -0,0 +1,25 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = 'LaSupermaraton'; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + `, + }); + +}); \ No newline at end of file diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 911387f9c..de1651b51 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -121,10 +121,6 @@ model: description: | The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' - 'nuevo22': - title: Capy looks for Guyrá - description: Help Capy to find Guyrá - clue: '' '22': title: Detective Chaparro description: 'The detective should discover the guilty of a crime. Starting by the first on the left, interrogate each one of the suspects until you find the guilty party!' @@ -714,6 +710,10 @@ model: description: | Super Yvoty should wake up all the fireflies, but opposite to the previous challenge, there are cells without any firefly here. Could you use the same procedure you used in Super Tito 1? clue: The "Repeat until" block will repeat a sequence of actions until one condition is met. This is called "Conditional repetition". + 'nuevo22': + title: Capy looks for Guyrá + description: Help Capy to find Guyrá + clue: '' 'nuevo24': title: Powering all computers on description: | @@ -724,6 +724,11 @@ model: description: | Mañic should visit all boxes and count how many planets and stars are there in total. Clue: first think how you could count whether there is any planet or star in a particular box. Then think how you could count all celestial bodies in only one particular column. clue: 'Splitting a big problem into several little problems can help you better understand each of its parts. Even better: you can focus on solving smaller and easier parts!' + 'nuevo26': + title: Supermarathon + description: | + Chuy must carry out his morning routine, which consists of running a certain number of kilometers that varies day by day (between 15 and 45 km). Make Chuy always reach his destination without going over! Clue: look in the "Sensors" category if there is something that can help you. + clue: A "Repeat" block can be used with the value of a sensor. This allows a code sequence to be repeated the number of times indicated by the sensor 'nuevo27': title: Mañic counts again description: 'Mañic needs to count the celestial bodies again, but now she cannot check whether she reached the end of the column! Is there any sensor to help her?' diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 5fa9c01cb..344122435 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -765,6 +765,11 @@ model: description: | Mañic debe recorrer todas las casillas y contar cuántas estrellas y planetas hay en total. Pista: primero pensá cómo contarías si hay una estrella o un planeta en una casilla determinada. Luego pensá cómo harías para contar todos los astros de una sola columna. clue: Subdividir un problema grande en problemas más pequeños ayuda a comprender mejor cada una de las partes que lo componen. Además nos permite concentrarnos en resolver cuestiones más sencillas al problema original. + 'nuevo26': + title: La Supermaratón + description: | + Chuy debe realizar su rutina matutina que consiste en recorrer una cierta cantidad de kilómetros que varía día a día (entre 15 y 45 km). ¡Lográ que Chuy llegue siempre a destino sin pasarse! Pista: mirá en la categoría "Sensores" si hay algo que te pueda servir. + clue: Se puede usar un bloque "Repetir" con el valor de un sensor. Esto permite repetir una secuencia de código la cantidad de veces que indique el sensor 'nuevo27': title: Mañic cuenta de nuevo description: 'Mañic tiene que contar otra vez los astros, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que la pueda ayudar?' diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index fa5656dcd..423c79b6c 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -715,6 +715,11 @@ model: description: | Mañic deve passar por todos os quadrados e contar quantas estrelas e planetas existem no total. Dica: primeiro pense em como você contaria se houvesse uma estrela ou um planeta em um determinado quadrado. Em seguida, pense em como você faria para contar todos os corpos celestiais em uma única coluna. clue: Subdividir um grande problema em problemas menores ajuda a compreender melhor cada uma de suas partes componentes. Também nos permite focar na solução de questões mais simples do problema original. + 'nuevo26': + title: A Supermaratona + description: | + Chuy deve realizar sua caminhada matinal, que consiste em percorrer um determinado número de quilômetros que varia de dia para dia (entre 15 e 45 km). Certifique-se de que Chuy sempre chegue ao destino sem exagerar! Dica: procure na categoria "Sensores" se há algo que pode ajudar-te. + clue: Você pode usar um bloco "Repetir" com o valor de um sensor. Isso permite que uma sequência de código seja repetida o número de vezes indicado pelo sensor 'nuevo27': title: Mañic conta novamente description: Mañic tem que contar os astros novamente, mas agora ela não pode verificar se já atingiu o fim de uma coluna! Existe um sensor que pode ajudá-la? From 83219741eca991ace0fc892fc3d5c0057624de45 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Sat, 7 Oct 2023 18:48:35 -0300 Subject: [PATCH 102/212] pbe 1.4.9 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 483836d6e..0234bbe61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.7.tgz", - "integrity": "sha512-TLT5YBblR0MlNYCI+EyAwYo3fTalFFze96aVCjnaQY3nOage837InrUniZsjx071WgIBKHbG6G6x/caB3dqlKg==", + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.9.tgz", + "integrity": "sha512-96Tdf5ckCzIEkBQwPHoFZpzUlVsY1uyOnHb5e6doC5imV4uE2V6EqE/QoIkGC7K6cIHcgL9rIouZJ3WJIfgZxQ==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 216fb2f6a..c377767ce 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.7", + "pilas-bloques-exercises": "1.4.9", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index b372bdfb7..424390784 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 4513c225a5d2c30f92083d16620814d6336a75d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 9 Oct 2023 12:31:39 -0300 Subject: [PATCH 103/212] duba x y --- app/utils/staticData/desafios.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index deca6a3d1..25d898632 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -1648,7 +1648,7 @@ export const desafios = [ { id: 242, nombre: '5.1.3a', - escena: `new EscenaDuba("[A,P?(0.6)]", {}, [0,1])`, + escena: `new EscenaDuba("[A,P?(0.6)]", {}, [1,0])`, estiloToolbox: 'sinCategorias', bloques: [ 'MoverACasillaAbajo', @@ -1667,7 +1667,7 @@ export const desafios = [ { id: 243, nombre: '5.1.3b', - escena: `new EscenaDuba(["[A,-,-]","[A,P,-]","[A,-,P]","[A,P,P]"], {}, [0,2])`, + escena: `new EscenaDuba(["[A,-,-]","[A,P,-]","[A,-,P]","[A,P,P]"], {}, [2,0])`, estiloToolbox: 'sinCategorias', bloques: [ 'MoverACasillaAbajo', @@ -1788,7 +1788,7 @@ export const desafios = [ { id: 248, nombre: '5.2.1a', - escena: `new EscenaDuba("[A,-,-,-,-,-,-,P?]", {}, [0,7])`, + escena: `new EscenaDuba("[A,-,-,-,-,-,-,P?]", {}, [7,0])`, estiloToolbox: 'sinCategorias', bloques: [ 'MoverACasillaAbajo', @@ -1806,7 +1806,7 @@ export const desafios = [ { id: 249, nombre: '5.2.1b', - escena: `new EscenaDuba("[A,#P,#P,#P,#P,#P,#P,#P]", { macros: { "P": "*>P?" }, coleccion: ["P"] }, [0,7])`, + escena: `new EscenaDuba("[A,#P,#P,#P,#P,#P,#P,#P]", { macros: { "P": "*>P?" }, coleccion: ["P"] }, [7,0])`, estiloToolbox: 'sinCategorias', bloques: [ 'MoverACasillaAbajo', From 10175cf93e94e39921af9e590774d7fcbc38cdb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 9 Oct 2023 16:10:10 -0300 Subject: [PATCH 104/212] pre carga tests --- .../ejerciciosPilas/ImagenesPreCarga-test.js | 56 +++++++++++++++++-- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/tests/integration/ejerciciosPilas/ImagenesPreCarga-test.js b/tests/integration/ejerciciosPilas/ImagenesPreCarga-test.js index 5cda287d8..2b652c0b7 100644 --- a/tests/integration/ejerciciosPilas/ImagenesPreCarga-test.js +++ b/tests/integration/ejerciciosPilas/ImagenesPreCarga-test.js @@ -16,17 +16,61 @@ moduloEjerciciosPilas('Imagenes Pre-carga', () => { testDePrecarga('EscenaDuba', `new EscenaDuba("[O,-,A,P,*]")`, [ - "fondo.duba.png", "actor.duba.png", "actor.churrasco.png", - "casillas.duba.png", "obstaculo.duba1.png", - "obstaculo.duba2.png", "obstaculo.duba3.png", "obstaculo.duba4.png" + "fondo.duba.png", + "actor.duba.png", "actor.churrasco.png", + "marcador-duba.png", + "obstaculo.duba1.png", "obstaculo.duba2.png", "obstaculo.duba3.png", "obstaculo.duba4.png", + "casillas.duba.png" ] ) testDePrecarga('EscenaLita', `new EscenaLita("[O,-,A,T,L,E]")`, [ - "fondo.lita.png", "actor.lita.png", "actor.ensaladera.png", "actor.tomate.png", "actor.lechuga.png", - "casillas.lita.png", "obstaculo.lita1.png", - "obstaculo.lita2.png", "obstaculo.lita3.png", "obstaculo.lita4.png" + "fondo.lita.png", + "actor.lita.png", "actor.ensaladera.png", "actor.tomate.png", "actor.lechuga.png", + "marcador-lita.png", + "obstaculo.lita1.png", "obstaculo.lita2.png", "obstaculo.lita3.png", "obstaculo.lita4.png", + "casillas.lita.png" + ] + ) + + testDePrecarga('EscenaChuy', `new EscenaChuy("[O,-,A,T,E,U,P,G]")`, + [ + "fondo.chuy.png", + "actor.chuy.png", "actor.trofeo.png", "actor.paleta.png", 'pelotaAnimada.png', "actor.pelota.png", 'actor.pelotita.png', + "marcador-chuy.png", + "obstaculo.chuy1.png", "obstaculo.chuy2.png", "obstaculo.chuy3.png", "obstaculo.chuy4.png", + "casillas.chuy.png" + ] + ) + + testDePrecarga('EscenaCapy', `new EscenaCapy("[O,-,A,T,Y,L,P]")`, + [ + "fondo.capy.png", + "actor.capy.png", "actor.tacho.png", "actor.lata.png", "actor.papel.png", + "marcador-capy.png", + "obstaculo.capy1.png", "obstaculo.capy2.png", "obstaculo.capy3.png", "obstaculo.capy4.png", + "casillas.capy.png" + ] + ) + + testDePrecarga('EscenaManic', `new EscenaManic("[O,-,A,T,R,E,P]")`, + [ + "fondo.manic.png", + "actor.manic.png", "actor.telescopio.png", "actor.estrella.png", "actor.planeta.png", + "marcador-manic.png", + "obstaculo.manic1.png", "obstaculo.manic2.png", "obstaculo.manic3.png", "obstaculo.manic4.png", + "casillas.manic.png" + ] + ) + + testDePrecarga('EscenaYvoty', `new EscenaYvoty("[O,-,A,C,P,K,L,M,T]")`, + [ + "fondo.yvoty.png", + "actor.yvoty.png", "actor.celular.png", "actor.luciernaga.png", "actor.cargador.png", "actor.mariposa.png", "compu_animada.png", + "marcador-yvoty.png", + "obstaculo.yvoty1.png", "obstaculo.yvoty2.png", "obstaculo.yvoty3.png", "obstaculo.yvoty4.png", + "casillas.yvoty.png" ] ) From 9fef37a968839a121f052737fb879dfcccbeb7c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 17 Oct 2023 00:18:01 -0300 Subject: [PATCH 105/212] sensor meta --- app/services/blocks-gallery.js | 5 +++++ public/iconos/icono.marcadorBlanco.png | Bin 0 -> 424 bytes 2 files changed, 5 insertions(+) create mode 100644 public/iconos/icono.marcadorBlanco.png diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 3c034a4bb..afe1598d2 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1256,6 +1256,11 @@ export default Service.extend({ icono: 'icono.titoFinalizacion.png', funcionSensor: 'estoyUltimaFila()', }); + + this.crearBloqueSensor('TocandoMeta', 'comeToTheEnd', { + icono: 'icono.marcadorBlanco.png', + funcionSensor: 'tocando("MetaFinal")', + }); this.crearBloqueSensor('KmsTotales', 'kmToTravel', { icono: 'icono.kms.png', diff --git a/public/iconos/icono.marcadorBlanco.png b/public/iconos/icono.marcadorBlanco.png new file mode 100644 index 0000000000000000000000000000000000000000..8593bb159f79a345ea0afbbed057ce2d60a8eef0 GIT binary patch literal 424 zcmV;Z0ayNsP)bB0jSBN&-PLufX*_yziV)a_4Z)y{f9h zVHi+72SLEdGY0~9Krs-Xrir(0%kwU^@qM2F_k@qO`d(JcvJ9(zDI;C*A7c#dNTIHS)!6qvfesQ_+M0k; zngEMXb{t3g?r)8N!N`)0InnuQ6WF$m?0vKGkBuACCHTdUWm&{^T@+8SdECnZ Date: Tue, 17 Oct 2023 13:15:00 +0000 Subject: [PATCH 106/212] Bump @babel/traverse from 7.16.5 to 7.23.2 Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.16.5 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 207 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 154 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index d983625c1..06cc60d88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -294,6 +294,11 @@ "@babel/types": "^7.16.0" } }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + }, "@babel/helper-validator-identifier": { "version": "7.15.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", @@ -1104,20 +1109,121 @@ } }, "@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + } + }, + "@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "requires": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } } }, "@babel/types": { @@ -5982,9 +6088,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -7982,7 +8088,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -7992,14 +8097,12 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/source-map": { "version": "0.3.2", @@ -8014,14 +8117,12 @@ "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { "version": "0.3.15", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -17473,9 +17574,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19144,9 +19245,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19479,9 +19580,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20094,9 +20195,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20364,9 +20465,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -21603,9 +21704,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22600,9 +22701,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22700,9 +22801,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -23248,9 +23349,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -26011,9 +26112,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", From a701a0d6b45bc4d8c43f1ced47cb6aaa9e246ee9 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 17 Oct 2023 10:20:01 -0300 Subject: [PATCH 107/212] surfing --- app/services/blocks-gallery.js | 37 +++++++++++++++++++++++++++++++ app/utils/staticData/desafios.js | 8 ++++++- public/iconos/icono.yacare.png | Bin 0 -> 453 bytes translations/blocks/en-us.yaml | 4 ++++ translations/blocks/es-ar.yaml | 4 ++++ translations/blocks/pt-br.yaml | 4 ++++ 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 public/iconos/icono.yacare.png diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 3c034a4bb..a63273c33 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -754,6 +754,43 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('Colocar', 'putIntoTheTrash', { + icono: 'icono.tacho.png', + comportamiento: 'Soltar', + argumentos: `{ + idTransicion: "colocar", + etiqueta: "Tacho", + }`, + }); + + this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { + icono: 'icono.yacare.png', + comportamiento: 'Irse', + argumentos: `{ + irseCon: "yacare", + nombreAnimacion: "surfear" + }`, + }); + + this.crearBloqueAccion('TomarLata', 'takeCan', { + icono: 'icono.lata.png', + comportamiento: 'Sostener', + argumentos: `{ + etiqueta: "Lata", + nombreAnimacion: "recoger" + }`, + }); + + this.crearBloqueAccion('TomarPapel', 'takePaper', { + id: 'TomarPapel', + icono: 'icono.papel.png', + comportamiento: 'Sostener', + argumentos: `{ + etiqueta: "Papel", + nombreAnimacion: "recoger" + }`, + }); + this.crearBloqueAccion('AvanzarMono', 'moveRight', { icono: 'icono.derecha.png', comportamiento: 'MoverACasillaDerecha', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index deca6a3d1..6688aa322 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -207,7 +207,13 @@ export const desafios = [ conditionalRepetition: true, } }, - { +{ + id: 'nuevo12', + nombre: 'LimpiandoElHumedal', + escena: 'LimpiandoElHumedal', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + }, + { id: "nuevo22", nombre: 'CapyBuscaAGuyra', escena: `new EscenaCapySolo("\ diff --git a/public/iconos/icono.yacare.png b/public/iconos/icono.yacare.png new file mode 100644 index 0000000000000000000000000000000000000000..c4de2515d017d7b4deb5a2dd4864b0b59515ba73 GIT binary patch literal 453 zcmV;$0XqJPP)J0uW;ve%7BK@{>X|?U z3k!KlxVyVY4AghVHfs=>PfmfJ`VatqP49nVnGJJdkatK2` z3mZcKpAaKh420i4|7QR)80Jk78)Rku_b>k$L}eHmp5Fe?@blY$24;vu3Nm^*L9Su= z^@D-o{mXw0T)d15K>7ENuKxpRE(EH{X9P0-g9OCo85!8Q7zqaQk@deBj;#C5kkG{O z;mNIk0$|U{X)=K|Yx5d17%Hj}6pdnT+&+p1H;Ytf(-A!er9;A!h_cZkD)Z<{ty5EQy!EzBpi+4 Date: Tue, 17 Oct 2023 10:32:30 -0300 Subject: [PATCH 108/212] adding tests --- .../desafios/LimpiandoElHumedal-test.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/integration/desafios/LimpiandoElHumedal-test.js diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js new file mode 100644 index 000000000..14ed58003 --- /dev/null +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -0,0 +1,23 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = 'LimpiandoElHumedal'; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: '33AgarrarPapel4334agarrarLata33', + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al querer irse sin limpiar el humedal', + solucion:'', + errorEsperado: 'Para irse hace falta un transporte' + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al tirar en el tacho cuando no tengo nada', + solucion: '', + errorEsperado: 'No tengo nada en la mano' + }); + +}); \ No newline at end of file From 98a5a96605ab6eeb8da32ed984af6b3b64b538b2 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 17 Oct 2023 10:41:23 -0300 Subject: [PATCH 109/212] ordenando y traduciendo --- app/utils/staticData/desafios.js | 36 ++++++++++++++++---------------- translations/en-us.yaml | 12 +++++++---- translations/es-ar.yaml | 4 ++++ translations/pt-br.yaml | 4 ++++ 4 files changed, 34 insertions(+), 22 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 6688aa322..20905efbc 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -207,24 +207,6 @@ export const desafios = [ conditionalRepetition: true, } }, -{ - id: 'nuevo12', - nombre: 'LimpiandoElHumedal', - escena: 'LimpiandoElHumedal', - bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], - }, - { - id: "nuevo22", - nombre: 'CapyBuscaAGuyra', - escena: `new EscenaCapySolo("\ - [*,*,*,*,*],\ - ", { coleccion: ["G", "A"] })`, - bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', - 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], - expectations: { - conditionalRepetition: true, - } - }, { id: 23, nombre: 'FutbolRobots', @@ -2840,6 +2822,12 @@ export const desafios = [ escena: 'InstalandoJuegosYvoty', bloques: ['PasarASiguienteComputadora', 'PrenderComputadora', 'ApagarComputadora', 'EscribirC', 'EscribirB', 'EscribirA', 'InstalarJuego', 'Repetir', 'Procedimiento'], }, + { + id: 'nuevo12', + nombre: 'LimpiandoElHumedal', + escena: 'LimpiandoElHumedal', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + }, { id: 'nuevo13', nombre: 'PateandoAVeces', @@ -2944,6 +2932,18 @@ export const desafios = [ conditionalRepetition: true, } }, + { + id: "nuevo22", + nombre: 'CapyBuscaAGuyra', + escena: `new EscenaCapySolo("\ + [*,*,*,*,*],\ + ", { coleccion: ["G", "A"] })`, + bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', + 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], + expectations: { + conditionalRepetition: true, + } + }, { id: 'nuevo23', nombre: 'FutbolAlSur', diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 911387f9c..ec56572d8 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -121,10 +121,6 @@ model: description: | The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' - 'nuevo22': - title: Capy looks for Guyrá - description: Help Capy to find Guyrá - clue: '' '22': title: Detective Chaparro description: 'The detective should discover the guilty of a crime. Starting by the first on the left, interrogate each one of the suspects until you find the guilty party!' @@ -694,6 +690,10 @@ model: description: | Yvoty needs to install a game in 3 different computers to have fun with his friends. The steps to install the game in each computer are: powering the computer on, writing the password ("ABC"), installing the game, and finally powering the computer off. Clue: make the most of the fact that you have to do the same work in each computer. clue: '' + 'nuevo12': + title: cleaning the wetland + description: 'Capy needs to clean the wetland to go surfing. To achieve this, Capy needs to carry 3 cans and 3 papers to the trash, but Capy cannot throw more than one at a time.' + clue: '' 'nuevo16': title: Three telescopes description: | @@ -714,6 +714,10 @@ model: description: | Super Yvoty should wake up all the fireflies, but opposite to the previous challenge, there are cells without any firefly here. Could you use the same procedure you used in Super Tito 1? clue: The "Repeat until" block will repeat a sequence of actions until one condition is met. This is called "Conditional repetition". + 'nuevo22': + title: Capy looks for Guyrá + description: Help Capy to find Guyrá + clue: '' 'nuevo24': title: Powering all computers on description: | diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 5fa9c01cb..a61087e1c 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -700,6 +700,10 @@ model: description: | Yvoty va a instalar un juego en tres computadoras para que ella y sus amigas tengan todo listo para divertirse esta noche. Los pasos para instalarlo son: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Ayudala a completar la instalación de las tres compus. clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' + 'nuevo12': + title: Limpiando el humedal + description: 'Capy necesita limpiar el humedal antes de ir a surfear. Para lograrlo, Capy necesita agarrar 3 latas y 3 papeles y llevarlos hasta el tacho, pero no puede tirar más de uno a la vez.' + clue: '' 'nuevo13': title: Chuy y la pelota indecisa description: | diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index fa5656dcd..2b5c448c9 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -680,6 +680,10 @@ model: description: | Yvoty tiene que instalar un juego en 3 compus para divertirse con sus amigos. Los pasos para instalarlo en cada una son: encenderla, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Pista: aprovechá que en cada compu hay que hacer el mismo trabajo. clue: '' + 'nuevo12': + title: Limpando o pantanal + description: 'Capy precisa limpar o pântano antes de surfar. Para conseguir isso, Capy precisa pegar 3 latas e 3 pedaços de papel e levá-los para o lixo, mas não pode jogar mais de um de cada vez.' + clue: '' 'nuevo16': title: Tres telescopios description: | From ac3d469da72b4a3c6a9146b7ccc4e91dbc3fed89 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 17 Oct 2023 11:07:41 -0300 Subject: [PATCH 110/212] fixing Tests --- tests/integration/desafios/LimpiandoElHumedal-test.js | 8 ++++---- translations/en-us.yaml | 2 +- translations/es-ar.yaml | 2 +- translations/pt-br.yaml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index 14ed58003..da9c24e68 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -9,15 +9,15 @@ moduloActividad(nombre, () => { }); actividadTest(nombre, { - descripcionAdicional: 'Da error al querer irse sin limpiar el humedal', + descripcionAdicional: 'Da error al tirar en el tacho cuando no tengo nada', solucion:'', - errorEsperado: 'Para irse hace falta un transporte' + errorEsperado: 'No tengo nada en la mano' }); actividadTest(nombre, { - descripcionAdicional: 'Da error al tirar en el tacho cuando no tengo nada', + descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', solucion: '', - errorEsperado: 'No tengo nada en la mano' + errorEsperado: 'Para irse hace falta un transporte' }); }); \ No newline at end of file diff --git a/translations/en-us.yaml b/translations/en-us.yaml index ec56572d8..c7cb79eb6 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -692,7 +692,7 @@ model: clue: '' 'nuevo12': title: cleaning the wetland - description: 'Capy needs to clean the wetland to go surfing. To achieve this, Capy needs to carry 3 cans and 3 papers to the trash, but Capy cannot throw more than one at a time.' + description: 'Capy needs to clean the wetland to go surfing. To achieve this, Capy needs to carry 3 cans and 3 papers to the trash, but Capy cannot throw more than one at a time. Then, Capy gets on the alligator and finally goes surfing!' clue: '' 'nuevo16': title: Three telescopes diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index a61087e1c..4e7289d94 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -702,7 +702,7 @@ model: clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' 'nuevo12': title: Limpiando el humedal - description: 'Capy necesita limpiar el humedal antes de ir a surfear. Para lograrlo, Capy necesita agarrar 3 latas y 3 papeles y llevarlos hasta el tacho, pero no puede tirar más de uno a la vez.' + description: 'Capy necesita limpiar el humedal antes de ir a surfear. Para lograrlo, Capy necesita agarrar 3 latas y 3 papeles y llevarlos hasta el tacho, pero no puede tirar más de uno a la vez. Luego, se sube al yacaré y se va a surfear!' clue: '' 'nuevo13': title: Chuy y la pelota indecisa diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 2b5c448c9..0ac168fc6 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -682,7 +682,7 @@ model: clue: '' 'nuevo12': title: Limpando o pantanal - description: 'Capy precisa limpar o pântano antes de surfar. Para conseguir isso, Capy precisa pegar 3 latas e 3 pedaços de papel e levá-los para o lixo, mas não pode jogar mais de um de cada vez.' + description: 'Capy precisa limpar o pântano antes de surfar. Para conseguir isso, Capy precisa pegar 3 latas e 3 pedaços de papel e levá-los para o lixo, mas não pode jogar mais de um de cada vez. Aí ele sobe no jacaré e finalmente a surfar!' clue: '' 'nuevo16': title: Tres telescopios From 26c2b5238f469944544c2fec242b085dc97e55b3 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 17 Oct 2023 11:20:49 -0300 Subject: [PATCH 111/212] exercises 1.4.11 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d983625c1..b70be9595 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.7.tgz", - "integrity": "sha512-TLT5YBblR0MlNYCI+EyAwYo3fTalFFze96aVCjnaQY3nOage837InrUniZsjx071WgIBKHbG6G6x/caB3dqlKg==", + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.11.tgz", + "integrity": "sha512-YNsRAg2D8UIJeYhUIvUShDlBOwPtUhF6Qweh3nAvkbt7W2SzWXZGs2HFWHUtri/JYPaEiX9RCy2rbxoRxaKCDA==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 7c28fb9bf..89ca552b4 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.7", + "pilas-bloques-exercises": "1.4.11", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index b372bdfb7..8770ee061 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 7efa7ff14e7eae58b396b9f45781008633074168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 17 Oct 2023 16:55:17 -0300 Subject: [PATCH 112/212] bump exercises --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 216fb2f6a..db7b3f021 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.7", + "pilas-bloques-exercises": "1.4.12", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", From 6459177ee5cc18e335750cdb367aaaef928e3065 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 18 Oct 2023 13:24:06 -0300 Subject: [PATCH 113/212] test running more than expected --- tests/integration/desafios/LaSupermaraton-test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/integration/desafios/LaSupermaraton-test.js b/tests/integration/desafios/LaSupermaraton-test.js index 27c6248ee..2d35fd83a 100644 --- a/tests/integration/desafios/LaSupermaraton-test.js +++ b/tests/integration/desafios/LaSupermaraton-test.js @@ -22,4 +22,10 @@ moduloActividad(nombre, () => { `, }); + actividadTest(nombre, { + descripcionAdicional: 'Da error al querer correr más de lo que debería', + solucion: '100', + errorEsperado: 'Ya llegué, ¡no debo seguir corriendo!', + }); + }); \ No newline at end of file From 2e42a6ba5238da99903621c423a5d11b46d9ef4a Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 19 Oct 2023 10:35:24 -0300 Subject: [PATCH 114/212] add error test --- tests/integration/desafios/ChuyHaciendoJueguito-test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js index dd87353e4..b6f8573b0 100644 --- a/tests/integration/desafios/ChuyHaciendoJueguito-test.js +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -13,4 +13,10 @@ moduloActividad(nombre, () =>{ solucion: `CalentarHacerJueguito"` }); + actividadTest(nombre, { + descripcionAdicional: 'Da error al no seguir la secuencia esperada', + solucion: 'CalentarHacerJueguito', + errorEsperado: 'Primero hay que entrar en calor y agarrar la pelota' + }); + }); \ No newline at end of file From 2c36cc469f10fd8b0a3479831f572fdd2c9d5244 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 19 Oct 2023 14:47:24 -0300 Subject: [PATCH 115/212] books --- app/utils/staticData/libros.js | 2 +- package-lock.json | 6 +++--- public/pilas.html | 2 +- translations/es-ar.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/utils/staticData/libros.js b/app/utils/staticData/libros.js index 42a2210cb..e8b785b70 100644 --- a/app/utils/staticData/libros.js +++ b/app/utils/staticData/libros.js @@ -24,7 +24,7 @@ export const libros = [ decomposition: true } }, - { id: 400, + { id: 1000, capituloIds:['capiTemporal'], imagen: 'nuevos_personajes.png', modoLecturaSimple: false, diff --git a/package-lock.json b/package-lock.json index d983625c1..54439f380 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.7.tgz", - "integrity": "sha512-TLT5YBblR0MlNYCI+EyAwYo3fTalFFze96aVCjnaQY3nOage837InrUniZsjx071WgIBKHbG6G6x/caB3dqlKg==", + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.12.tgz", + "integrity": "sha512-tBqfIGwhoPFidKo34ZlrbSntdD5ADIlaYQWwPWibA5ZwDjM//AWyuhmAAjQWII1wFQ9kz4qkdEI/vXZ6UyvfUA==", "requires": { "pilasweb": "^0.5.0" } diff --git a/public/pilas.html b/public/pilas.html index b372bdfb7..5ecf4276d 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 5fa9c01cb..31d22ba32 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -992,7 +992,7 @@ model: '3': title: Nivel Avanzado description: Desafios avanzados - '400': + '1000': title: Nuevos personajes description: TEMPORAL - SE BORRARÁ chapters: From 882b96c16846a6e16668d5cb04eb1635c8ade01d Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 20 Oct 2023 14:58:00 -0300 Subject: [PATCH 116/212] Volver x Retroceder y Teststs --- app/utils/staticData/desafios.js | 2 +- tests/integration/desafios/ChuyHaciendoJueguito-test.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index d7829cc35..9a2706dd3 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2750,7 +2750,7 @@ export const desafios = [ id: 'nuevo2', nombre: 'ChuyHaciendoJueguito', escena: 'ChuyHaciendoJueguito', - bloques: ['Avanzar', 'Volver', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Repetir', 'Procedimiento'], + bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Repetir', 'Procedimiento'], expectations: { simpleRepetition: false } diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js index b6f8573b0..e826c46d1 100644 --- a/tests/integration/desafios/ChuyHaciendoJueguito-test.js +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -5,17 +5,17 @@ const nombre = "ChuyHaciendoJueguito"; moduloActividad(nombre, () =>{ actividadTest(nombre, { - solucion: `CalentarHacerJueguito` + solucion: `CalentarHacerJueguito` }); actividadTest(nombre, { descripcionAdicional: 'Invirtiendo acciones sigue funcionando la solución', - solucion: `CalentarHacerJueguito"` + solucion: `CalentarHacerJueguito"` }); actividadTest(nombre, { descripcionAdicional: 'Da error al no seguir la secuencia esperada', - solucion: 'CalentarHacerJueguito', + solucion: 'CalentarHacerJueguito', errorEsperado: 'Primero hay que entrar en calor y agarrar la pelota' }); From d01dd92c49528237fbff44bdc1a3534ced5986c7 Mon Sep 17 00:00:00 2001 From: Daniel Ferro <91342656+danielferro69@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:19:25 -0300 Subject: [PATCH 117/212] Update translations/en-us.yaml Co-authored-by: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> --- translations/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index c7cb79eb6..4f7bdb467 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -691,7 +691,7 @@ model: Yvoty needs to install a game in 3 different computers to have fun with his friends. The steps to install the game in each computer are: powering the computer on, writing the password ("ABC"), installing the game, and finally powering the computer off. Clue: make the most of the fact that you have to do the same work in each computer. clue: '' 'nuevo12': - title: cleaning the wetland + title: Cleaning the wetland description: 'Capy needs to clean the wetland to go surfing. To achieve this, Capy needs to carry 3 cans and 3 papers to the trash, but Capy cannot throw more than one at a time. Then, Capy gets on the alligator and finally goes surfing!' clue: '' 'nuevo16': From 96a87dfea6bd11f95f57bfa8759bae80f38b69f4 Mon Sep 17 00:00:00 2001 From: Daniel Ferro <91342656+danielferro69@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:25:48 -0300 Subject: [PATCH 118/212] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 58504ea9a..b625813a2 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "clientjs": "^0.1.11", "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", - "pilas-bloques-ember-intl": "^1.1.2" + "pilas-bloques-ember-intl": "^1.1.2", "pilas-bloques-exercises": "1.4.12", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", From 4ce809d3d254ad5cc4f7fd8d9808ec258b8a41fe Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 20 Oct 2023 16:11:40 -0300 Subject: [PATCH 119/212] update pb-exercises 1.4.13 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a46900bb9..14d80eb74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.8.tgz", - "integrity": "sha512-g/BLtu9ts63eSyIWioeVM3NFHjt9Ln/xXShYiG/1n8ST5K7AOgafoOjds1tYtpAbdqAf0KCIp9sXOLDoRn5M+A==", + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.13.tgz", + "integrity": "sha512-MnkR1aoXVs1raHSkaT4ESlv+wBXGYy4k5BpboiyfLdn9dZYUiiB+8AnbrFQoSx/GXSOInCfQ9nsd/A/qhaq00Q==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index b625813a2..fb4063ef2 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.12", + "pilas-bloques-exercises": "1.4.13", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index ff7f121b9..d51c8ee5a 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 52eb539bc0c9b042e2e5500df250615c33245ce8 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 20 Oct 2023 16:17:02 -0300 Subject: [PATCH 120/212] Update pb-exercises 1.4.13 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7e5dc4c4..14d80eb74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.9.tgz", - "integrity": "sha512-96Tdf5ckCzIEkBQwPHoFZpzUlVsY1uyOnHb5e6doC5imV4uE2V6EqE/QoIkGC7K6cIHcgL9rIouZJ3WJIfgZxQ==", + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.13.tgz", + "integrity": "sha512-MnkR1aoXVs1raHSkaT4ESlv+wBXGYy4k5BpboiyfLdn9dZYUiiB+8AnbrFQoSx/GXSOInCfQ9nsd/A/qhaq00Q==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index b625813a2..fb4063ef2 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.12", + "pilas-bloques-exercises": "1.4.13", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 424390784..d51c8ee5a 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 96484f0b8431097abed54783318f8f0099c4dd80 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 20 Oct 2023 16:21:02 -0300 Subject: [PATCH 121/212] Update pb-exercises 1.4.13 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index b70be9595..14d80eb74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.11.tgz", - "integrity": "sha512-YNsRAg2D8UIJeYhUIvUShDlBOwPtUhF6Qweh3nAvkbt7W2SzWXZGs2HFWHUtri/JYPaEiX9RCy2rbxoRxaKCDA==", + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.13.tgz", + "integrity": "sha512-MnkR1aoXVs1raHSkaT4ESlv+wBXGYy4k5BpboiyfLdn9dZYUiiB+8AnbrFQoSx/GXSOInCfQ9nsd/A/qhaq00Q==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index b625813a2..fb4063ef2 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.12", + "pilas-bloques-exercises": "1.4.13", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 8770ee061..d51c8ee5a 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 748c3d2f48ab4e728108f82512636f4d6a311fa0 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 23 Oct 2023 19:27:07 -0300 Subject: [PATCH 122/212] nuevo131 --- app/utils/staticData/desafios.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 1d47a4abb..4094c3bb9 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3160,6 +3160,12 @@ export const desafios = [ }})`, bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'FotografiarMariposa', 'TocandoMariposa', 'Procedimiento', 'Repetir', 'Si', 'SiNo'] }, + { + id: 'nuevo131', + nombre: 'ReciclandoPapeles', + escena: 'ReciclandoPapeles', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'MoverACasillaDerecha', 'TomarPapel', 'Colocar', 'SiguienteFilaTotal', 'Numero', 'OpAritmetica'], + }, { id: 'nuevo132', nombre: 'PrendiendoLasCompusParametrizadoYvoty', From c1171ddadbf9ae755f587e9011fa99da8fc4f5df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 23 Oct 2023 21:54:09 -0300 Subject: [PATCH 123/212] desafios con + & tests --- app/utils/staticData/desafios.js | 26 +++++------ .../Duba-AlternativaCondicional-test.js | 43 +++++++++++++++++++ .../Chuy/LaberintoConPelotas-test.js | 2 +- .../segundoCiclo/Chuy/PateandoAVeces-test.js | 31 +++++++++++++ .../segundoCiclo/Yvoty/SuperYvoty1-test.js | 2 +- .../segundoCiclo/Yvoty/SuperYvoty2-test.js | 2 +- .../YvotyDespiertaMasLuciernagas-test.js | 1 - 7 files changed, 90 insertions(+), 17 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 25d898632..7c90d0104 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2848,7 +2848,7 @@ export const desafios = [ { id: 'nuevo14', nombre: 'PelotaPaleta', - escena: `new EscenaChuy(["[A,P]", "[A,G]"],{},[1,0])`, + escena: `new EscenaChuy(["[A,P]", "[A,G]"])`, bloques: ['PatearPelotaChuy', 'RebotarPingPong', 'MoverACasillaDerecha', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoPelotaChuy', 'TocandoPingPong'], expectations: { conditionalAlternative: true, @@ -2859,7 +2859,7 @@ export const desafios = [ { id: 'nuevo15', nombre: 'LaberintoCortoChuy', - escena: `new EscenaChuy(['[A,-]', '[A],[-]'],{}, [-1,0])`, + escena: `new EscenaChuy(['[A,+]', '[A],[+]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'TocandoAbajo', 'TocandoDerecha'], expectations: { @@ -2903,9 +2903,9 @@ export const desafios = [ { id: 'nuevo19', nombre: 'SuperYvoty1', - escena: `new EscenaYvoty(["[A&L],[L],[-]","[A&L],[L],[L],[-]","[A&L],[L],[L],[L],[-]", "[A&L],[L],[L],[L],[L],[-]", "[A&L],[L],[L],[L],[L],[L],[-]"])`, + escena: `new EscenaYvoty(["[A&L],[L],[+]","[A&L],[L],[L],[+]","[A&L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[L],[+]"])`, bloques: ['Procedimiento', 'DespertarLuciernaga', 'MoverACasillaAbajo', - 'TocandoFinal', 'Repetir', 'Si', 'SiNo', 'Hasta'], + 'TocandoMeta', 'Repetir', 'Si', 'SiNo', 'Hasta'], expectations: { conditionalRepetition: true, } @@ -2913,9 +2913,9 @@ export const desafios = [ { id: 'nuevo20', nombre: 'SuperYvoty2', - escena: `new EscenaYvoty(["[A&(#L)],[#L],[-]","[A&(#L)],[#L],[#L],[-]","[A&(#L)],[#L],[#L],[#L],[-]", "[A&(#L)],[#L],[#L],[#L],[#L],[-]", "[A&(#L)],[#L],[#L],[#L],[#L],[#L],[-]"], + escena: `new EscenaYvoty(["[A&(#L)],[#L],[+]","[A&(#L)],[#L],[#L],[+]","[A&(#L)],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[#L],[+]"], { macros: { "L": "*>L?" }, coleccion: ["L"] })`, - bloques: ['Procedimiento', 'TocandoFinal', 'TocandoLuciernaga', 'DespertarLuciernaga', + bloques: ['Procedimiento', 'TocandoMeta', 'TocandoLuciernaga', 'DespertarLuciernaga', 'MoverACasillaAbajo', 'Repetir', 'Si', 'SiNo', 'Hasta'], expectations: { conditionalRepetition: true, @@ -2925,15 +2925,15 @@ export const desafios = [ id: 'nuevo21', nombre: 'LaberintoConPelotas', escena: `new EscenaChuy([ - '[A&(U?),_,_,_,_],[U?,U?,_,_,_],[_,U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,-]', - '[A&(U?),_],[U?,-]', - '[A&(U?),_,_],[U?,_,_],[U?,_,_],[U?,U?,_],[_,U?,U?],[_,_,-]', - '[A&(U?),U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,-]', - '[A&(U?),U?,U?,U?,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,U?,_,_],[_,_,_,_,_,U?,U?,_],[_,_,_,_,_,_,U?,_],[_,_,_,_,_,_,U?,-]' - ],{},[-1,0])`, + '[A&(U?),_,_,_,_],[U?,U?,_,_,_],[_,U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,+]', + '[A&(U?),_],[U?,+]', + '[A&(U?),_,_],[U?,_,_],[U?,_,_],[U?,U?,_],[_,U?,U?],[_,_,+]', + '[A&(U?),U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,+]', + '[A&(U?),U?,U?,U?,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,_,_,_],[_,_,_,_,U?,U?,_,_],[_,_,_,_,_,U?,U?,_],[_,_,_,_,_,_,U?,_],[_,_,_,_,_,_,U?,+]' + ],{})`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'PatearPulpito', 'Repetir', 'Si', 'SiNo', 'Hasta', 'PuedeMoverAbajo', - 'PuedeMoverDerecha', 'TocandoFinCamino', 'TocandoPulpito'], + 'PuedeMoverDerecha', 'TocandoMeta', 'TocandoPulpito'], expectations: { conditionalRepetition: true, } diff --git a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js index df699a51b..ae8fd1941 100644 --- a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js +++ b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js @@ -25,6 +25,21 @@ moduloActividad("Duba - Alternativa condicional", () => { ` }); + actividadTest("5.1.3a", { + descripcionAdicional: "5.1.3a: Debe estar en la posición final para resolver el desafío", + resuelveDesafio: false, + solucion: ` + + + + + + + + ` + }); + + actividadTest("5.1.3b", { descripcionAdicional: "5.1.3b: Se puede resolver", solucion: ` @@ -63,6 +78,20 @@ moduloActividad("Duba - Alternativa condicional", () => { ` }); + actividadTest("5.1.3b", { + descripcionAdicional: "5.1.3b: Debe estar en la posición final para resolver el desafío", + resuelveDesafio: false, + solucion: ` + + + + + + + + ` + }); + actividadTest("5.1.4b", { descripcionAdicional: "5.1.4b: Se puede resolver (solución 1)", solucion: ` @@ -216,6 +245,20 @@ moduloActividad("Duba - Alternativa condicional", () => { ` }); + actividadTest("5.2.1a", { + descripcionAdicional: "5.2.1a: Debe estar en la posición final para resolver el desafío", + resuelveDesafio: false, + solucion: ` + + + + + + + + ` + }); + actividadTest("5.2.1b", { descripcionAdicional: "5.2.1b: Se puede resolver", solucion: ` diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js index d2fd04c62..6865f518b 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js @@ -11,7 +11,7 @@ moduloActividad(nombre, () => { - + diff --git a/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js b/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js index b18739db5..7f0ab5297 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js @@ -31,4 +31,35 @@ moduloActividad(nombre, () => { `, }); + + actividadTest(nombre, { + descripcionAdicional: 'Debe moverse a la posición final para que esté resuelto', + resuelveDesafio: false, + solucion: ` + + + + + + + + + + + Patear pelota si hay + + + + + + + + + + + + + + ` + }) }); \ No newline at end of file diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js index c4ef38bc9..3f944f935 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js @@ -11,7 +11,7 @@ moduloActividad(nombre, () => { - + diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js index 52fd46a30..2525bb8a3 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js @@ -11,7 +11,7 @@ moduloActividad(nombre, () => { - + diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js index fa31deb51..683180291 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js @@ -88,7 +88,6 @@ moduloActividad(nombre, () => { `, resuelveDesafio: false, - skip: true }); }); \ No newline at end of file From 6466e5bb7ae09499f6f457223b0a4a25db09c0e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 23 Oct 2023 22:00:49 -0300 Subject: [PATCH 124/212] bump exercises --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b625813a2..995718583 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "build:prod": "ember build --environment=production --output-path dist_prod", "pilasweb:build": "cd ../pilasweb; make build; cd ../pilas-bloques; cp -rf ../pilasweb node_modules/pilasweb/", "exercises:watch": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt watch", - "exercises:build": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt;cd ../pilas-bloques ;cp -rf ../pilas-bloques-exercises/dist node_modules/pilas-bloques-exercises", + "exercises:build": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt run:build ;cd ../pilas-bloques ;cp -rf ../pilas-bloques-exercises/dist node_modules/pilas-bloques-exercises", "pack:linux_x64_deb": "bash ./scripts/package.sh -linux_x64_deb", "pack:linux_ia32_zip": "bash ./scripts/package.sh -linux_ia32_zip", "pack:linux_x64_zip": "bash ./scripts/package.sh -linux_x64_zip", @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.12", + "pilas-bloques-exercises": "1.4.14", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", From 5e8dde1f7a937b2b8d60dac28e19f5971266914e Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 24 Oct 2023 15:47:37 -0300 Subject: [PATCH 125/212] EscapeEnYacare --- app/services/blocks-gallery.js | 58 +++++++++++++++++++++++++++----- app/utils/staticData/desafios.js | 9 +++++ 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 274e1c0f7..dd252a505 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -682,6 +682,16 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('AgarrarTelescopio', 'takeTelescope', { + icono: 'icono.telescopio.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "TelescopioEntregable", + nombreAnimacion: "recoger", + idTransicion: "agarrarTelescopio" + }`, + }); + this.crearBloqueAccion('AbrirCofre', 'openSafeBoxTakeHat', { icono: 'icono.cofreConSombrero.png', comportamiento: 'Soltar', @@ -693,6 +703,17 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('EntregarTelescopio', 'giveTelescope', { + icono: 'icono.telescopio.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "ManicConPelota", + queSoltar: "TelescopioEntregable", + nombreAnimacion: "recoger", + idTransicion: "entregarTelescopio" + }`, + }); + this.crearBloqueAccion('DarSombrero', 'leaveHat', { icono: 'icono.sombrero.png', comportamiento: 'Interactuar', @@ -704,6 +725,28 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('EntregarPelota', 'giveBall', { + icono: 'icono.pelota-pulpo.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "ChuyConCargador", + queSoltar: "Pulpito", + nombreAnimacion: "recoger", + idTransicion: "entregarPelota" + }`, + }); + + this.crearBloqueAccion('EntregarCargador', 'giveCharger', { + icono: 'icono.cargador.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "YvotySinEntregable", + queSoltar: "Cargador", + nombreAnimacion: "recoger", + idTransicion: "entregarCargador" + }`, + }); + this.crearBloqueAccion('AtacarConEspada', 'attackWithSword', { id: 'Atacarconespada', icono: 'icono.espada.png', @@ -737,6 +780,12 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { + icono: 'icono.yacare.png', + comportamiento: 'IrseEnYacare', + argumentos: `{}`, + }); + this.crearBloqueAccion('Escapar', 'escape', { icono: 'icono.escapar.png', comportamiento: 'Escapar', @@ -793,15 +842,6 @@ export default Service.extend({ }`, }); - this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { - icono: 'icono.yacare.png', - comportamiento: 'Irse', - argumentos: `{ - irseCon: "yacare", - nombreAnimacion: "surfear" - }`, - }); - this.crearBloqueAccion('TomarLata', 'takeCan', { icono: 'icono.lata.png', comportamiento: 'Sostener', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 1d47a4abb..448594279 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -107,6 +107,15 @@ export const desafios = [ decomposition: true, }, }, + { + id: "nuevo11", + nombre: 'EscapeEnYacare', + escena: 'EscapeEnYacare', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + expectations: { + decomposition: true, + }, + }, { id: 12, nombre: 'ReparandoLaNave', From 84f0b66a9efd26a84cc0d3ee478c0b04d334887e Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 24 Oct 2023 16:35:02 -0300 Subject: [PATCH 126/212] desafio resuelto --- app/services/blocks-gallery.js | 2 +- translations/blocks/en-us.yaml | 2 +- translations/blocks/es-ar.yaml | 2 +- translations/blocks/pt-br.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 274e1c0f7..d3fe83c91 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -784,7 +784,7 @@ export default Service.extend({ }`, }); - this.crearBloqueAccion('Colocar', 'putIntoTheTrash', { + this.crearBloqueAccion('Colocar', 'putIntoTheTrashBin', { icono: 'icono.tacho.png', comportamiento: 'Soltar', argumentos: `{ diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 287beb5b7..ec16e32a2 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -44,7 +44,7 @@ putIntoTheShip: Put into the spaceship goInAlligator: Go in alligator takeCan: Take can takePaper: Take paper -putIntoTheTrash: Put into the trash +putIntoTheTrashBin: Put into the trash bin leavePresent: Leave a present nextLine: Go to the next line nextColumn: Go to the next column diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 403c0712e..a161c679f 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -44,7 +44,7 @@ putIntoTheShip: Poner en la nave goInAlligator: Irse en yacaré takeCan: Agarrar lata takePaper: Agarrar papel -putIntoTheTrash: Poner en el tacho +putIntoTheTrashBin: Poner en el tacho leavePresent: Dejar un regalo nextLine: Pasar a la siguiente fila nextColumn: Pasar a la siguiente columna diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index 540ac78bd..2a9339e24 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -44,7 +44,7 @@ putIntoTheShip: Colocar no navio goInAlligator: Vai em jacaré takeCan: Pegar a lata takePaper: Pegar um papel -putIntoTheTrash: colocar na lata de lixo +putIntoTheTrashBin: colocar na lata de lixo leavePresent: Deixar presente nextLine: Ir para a próxima linha nextColumn: Ir para a linha anterior From b1edd5dafc5dcf69112e4ab9d0688ff6245166b6 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 24 Oct 2023 17:08:01 -0300 Subject: [PATCH 127/212] tests --- .../desafios/ReciclandoPapeles-test.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/integration/desafios/ReciclandoPapeles-test.js diff --git a/tests/integration/desafios/ReciclandoPapeles-test.js b/tests/integration/desafios/ReciclandoPapeles-test.js new file mode 100644 index 000000000..cd706d9e2 --- /dev/null +++ b/tests/integration/desafios/ReciclandoPapeles-test.js @@ -0,0 +1,17 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "ReciclandoPapeles"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: 'cant. casilleros45736dejar regalos en filacant. casilleros', + }); + + actividadTest(nombre, { + descripcionAdicional: ' Da error al querer tirar un papel sin levantarlo primero', + solucion: 'cant. casilleros45736dejar regalos en filacant. casilleros = 4', + errorEsperado: 'No tengo nada en la mano' + }); + +}); \ No newline at end of file From 34c4d63a1c868ca7b6f05ce75f9da4c054db1525 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 24 Oct 2023 20:28:42 -0300 Subject: [PATCH 128/212] textos --- translations/blocks/en-us.yaml | 4 ++++ translations/blocks/es-ar.yaml | 4 ++++ translations/en-us.yaml | 9 +++++++++ translations/es-ar.yaml | 10 ++++++++++ 4 files changed, 27 insertions(+) diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 287beb5b7..1a5b4b11d 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -33,6 +33,10 @@ writeB: Write "B" writeC: Write "C" takeKey: Take the key openSafeBoxTakeHat: Open the safe box and take the hat +giveTelescope: Give telescope and take ball +takeTelescope: Take telescope +giveBall: Give ball and take charger +giveCharger: Give charger leaveHat: Leave the hat attackWithSword: Attack with the sword unicornEscape: Run away riding a unicorn diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 403c0712e..6d118d547 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -33,6 +33,10 @@ writeB: Escribir "B" writeC: Escribir "C" takeKey: Tomar la llave openSafeBoxTakeHat: Abrir el cofre y tomar sombrero +giveTelescope: Dar telescopio y agarrar pelota +takeTelescope: Agarrar telescopio +giveBall: Dar pelota y agarrar cargador +giveCharger: Dar cargador leaveHat: Dar el sombrero attackWithSword: Atacar con la espada unicornEscape: Escapar en unicornio diff --git a/translations/en-us.yaml b/translations/en-us.yaml index bbff020da..d5b31b3aa 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -68,6 +68,15 @@ model: 4) Fighting against the dark knight using her sword. 5) Running away riding a unicorn. clue: '' + 'nuevo11': + title: The great escape on alligator + description: | + Help Capy: + 1) Search for the telescope + 2) Give the telescope to Mañic + 3) Bring the ball to Chuy + 4) Bring the charger to Yvoty + 5) Leave on the alligator. '12': title: Repairing the spaceship description: 'The Martian needs to repair his spaceship to get back home. To achieve this, he needs to carry 3 units of carbon and 3 units of iron to the spaceship, but he cannot load more than one unit at a time.' diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 24c16646f..2f056801f 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -68,6 +68,16 @@ model: 4) Luchar con la espada contra el caballero oscuro. 5) Escapar en unicornio. clue: '' + 'nuevo11': + title: El gran escape en yacaré + description: | + Ayuda Capy: + 1) Buscar el telescopio + 2) Dar el telescopio a Mañic + 3) Llevar la pelota a Chuy + 4) Llevar el cargador a Yvoty + 5) Irse en Yacare. + clue: '' '12': title: Reparando la nave description: 'El marciano debe arreglar su nave para poder volver a su hogar. Para lograrlo debe llevar 3 unidades de carbón y 3 de hierro a la nave, pero no puede cargar más de una unidad a la vez.' From 5b5062c468adde8b3f238fb11256c56ddf17186c Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 25 Oct 2023 08:24:38 -0300 Subject: [PATCH 129/212] update pbe 1.4.15 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14d80eb74..6b2574f5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.13.tgz", - "integrity": "sha512-MnkR1aoXVs1raHSkaT4ESlv+wBXGYy4k5BpboiyfLdn9dZYUiiB+8AnbrFQoSx/GXSOInCfQ9nsd/A/qhaq00Q==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.15.tgz", + "integrity": "sha512-W60Lxqa8/Po9JEI4zghx3U7oe/Mz1DnjOPEVYbRlR4gAFKXTkuLaIt0XLv7jthxC1212LxooOpfLXhria0GSTw==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index fb4063ef2..a84970891 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.13", + "pilas-bloques-exercises": "1.4.15", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index d51c8ee5a..796ba34f1 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 3916ab92b1d5e309187285a491e4f8e87d8884ec Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 25 Oct 2023 09:54:55 -0300 Subject: [PATCH 130/212] fixing tests --- tests/integration/desafios/ReciclandoPapeles-test.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/integration/desafios/ReciclandoPapeles-test.js b/tests/integration/desafios/ReciclandoPapeles-test.js index cd706d9e2..02cda579f 100644 --- a/tests/integration/desafios/ReciclandoPapeles-test.js +++ b/tests/integration/desafios/ReciclandoPapeles-test.js @@ -5,13 +5,19 @@ const nombre = "ReciclandoPapeles"; moduloActividad(nombre, () => { actividadTest(nombre, { - solucion: 'cant. casilleros45736dejar regalos en filacant. casilleros', + solucion: 'cant. casilleros45736tirar papeles en filacant. casilleros', }); actividadTest(nombre, { descripcionAdicional: ' Da error al querer tirar un papel sin levantarlo primero', - solucion: 'cant. casilleros45736dejar regalos en filacant. casilleros = 4', + solucion: 'cant. casilleros45736tirar papeles en filacant. casilleros', errorEsperado: 'No tengo nada en la mano' }); + actividadTest(nombre, { + descripcionAdicional: ' Da error al querer tirar un papel donde no hay tacho', + solucion: 'cant. casilleros45736tirar papeles en filacant. casilleros', + errorEsperado: '¡Acá no hay tacho!' + }); + }); \ No newline at end of file From 5c20973650133a862b613b202ee0f573160269f3 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Wed, 25 Oct 2023 14:54:06 -0300 Subject: [PATCH 131/212] tests fix --- .../desafios/LimpiandoElHumedal-test.js | 22 ++++++++++++-- .../segundoCiclo/Capy/EscapeEnYacare-test.js | 29 +++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index da9c24e68..2531dda7f 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -5,7 +5,7 @@ const nombre = 'LimpiandoElHumedal'; moduloActividad(nombre, () => { actividadTest(nombre, { - solucion: '33AgarrarPapel4334agarrarLata33', + solucion: '\n \n \n \n \n \n \n 10\n \n \n \n \n \n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n \n \n \n 4\n \n \n \n \n \n \n \n \n \n \n \n \n \n 3\n \n \n \n \n \n \n \n \n \n \n \n 4\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', }); actividadTest(nombre, { @@ -16,8 +16,24 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', - solucion: '', - errorEsperado: 'Para irse hace falta un transporte' + solucion: ` + + + + + + + + + + + + + + + + `, + errorEsperado: '¡No puedo irme sin antes haber limpiado el humedal!' }); }); \ No newline at end of file diff --git a/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js b/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js new file mode 100644 index 000000000..668bdf045 --- /dev/null +++ b/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js @@ -0,0 +1,29 @@ +import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; + +const nombre = "EscapeEnYacare"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`, + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al agarrar la pelota sin telescopio', + solucion: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`, + errorEsperado: 'Mañic necesita su telescopio.' + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al agarrar cargador sin pelota', + solucion: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`, + errorEsperado: 'Chuy necesita su pelota.' + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al tratar de entregar cargador sin tenerlo', + solucion: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`, + errorEsperado: 'Yvoty necesita su cargador.' + }); + +}) \ No newline at end of file From 202eacbbdea3f3cc19632eb2c4c863186ee04e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 25 Oct 2023 19:17:43 -0300 Subject: [PATCH 132/212] Release 1.16.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9f9af382..8ef02ebae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.1", + "version": "1.16.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 995718583..8d5c3e658 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.1", + "version": "1.16.2", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 5a35d9c86d40c39927c2199bdd1da90bb93394f6 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Thu, 26 Oct 2023 19:12:15 -0300 Subject: [PATCH 133/212] bumpinb pb Excercises 1.4.17 --- package-lock.json | 24 +++++++++++++++++++++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14d80eb74..4338a645d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10948,6 +10948,23 @@ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + }, + "dependencies": { + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + } + } + }, "bl": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", @@ -33036,9 +33053,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.13.tgz", - "integrity": "sha512-MnkR1aoXVs1raHSkaT4ESlv+wBXGYy4k5BpboiyfLdn9dZYUiiB+8AnbrFQoSx/GXSOInCfQ9nsd/A/qhaq00Q==", + "version": "1.4.17", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.17.tgz", + "integrity": "sha512-fdAVS8W3dM6E3CeyPRA4eLWNUqE1vmf9yGvU4goGqrWkhZFSD6VftLAVicNp0O5vJ05o66Cj0m0ySaM3cTkHfA==", "requires": { "pilasweb": "^0.5.0" } @@ -38550,6 +38567,7 @@ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1" } }, diff --git a/package.json b/package.json index fb4063ef2..65b35b78d 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.13", + "pilas-bloques-exercises": "1.4.17", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index d51c8ee5a..9a4f93a95 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 288cb7e9fa005159d1f590cc20e998db8b07573a Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Thu, 26 Oct 2023 19:26:41 -0300 Subject: [PATCH 134/212] agrego desafio a grupo --- app/utils/staticData/desafios.js | 18 +++++++++--------- app/utils/staticData/grupos.js | 2 ++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 448594279..32b2a6f53 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -107,15 +107,6 @@ export const desafios = [ decomposition: true, }, }, - { - id: "nuevo11", - nombre: 'EscapeEnYacare', - escena: 'EscapeEnYacare', - bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], - expectations: { - decomposition: true, - }, - }, { id: 12, nombre: 'ReparandoLaNave', @@ -2849,6 +2840,15 @@ export const desafios = [ escena: 'InstalandoJuegosYvoty', bloques: ['PasarASiguienteComputadora', 'PrenderComputadora', 'ApagarComputadora', 'EscribirC', 'EscribirB', 'EscribirA', 'InstalarJuego', 'Repetir', 'Procedimiento'], }, + { + id: "nuevo11", + nombre: 'EscapeEnYacare', + escena: 'EscapeEnYacare', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + expectations: { + decomposition: true, + }, + }, { id: 'nuevo12', nombre: 'LimpiandoElHumedal', diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 6da2ab276..e14e4303e 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -281,6 +281,8 @@ export const grupos = [ 'nuevo8', 'nuevo9', 'nuevo10', + 'nuevo11', + 'nuevo12', 'nuevo13', 'nuevo14', 'nuevo15', From 6e16674bdaf24472a7874534946c3d09110192a5 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 13:59:43 -0300 Subject: [PATCH 135/212] nuevo135 --- app/utils/staticData/desafios.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index e22536acd..3f08bca19 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3209,4 +3209,15 @@ export const desafios = [ 'ParaLaDerecha', 'ParaLaIzquierda', 'ParaArriba', 'ParaAbajo', 'MoverA', 'RecogerTrofeo', 'Numero', 'OpAritmetica'] }, + { + id: 'nuevo135', + nombre: 'PaleteandoConParametros', + escena: 'PaleteandoConParametros', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', + 'TocandoPingPong', 'RebotarPingPong', + 'MoverACasillaAbajo', 'MoverACasillaArriba', 'MoverACasillaIzquierda', 'MoverACasillaDerecha', + 'Numero', 'OpComparacion', 'OpAritmetica', + 'ParaLaDerecha', 'ParaLaIzquierda', 'ParaArriba', 'ParaAbajo' + ] + }, ]; From c005d9c647514162443a08517492f71add8ba02e Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 14:34:14 -0300 Subject: [PATCH 136/212] tests --- .../desafios/PaleteandoConParametros-test.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 tests/integration/desafios/PaleteandoConParametros-test.js diff --git a/tests/integration/desafios/PaleteandoConParametros-test.js b/tests/integration/desafios/PaleteandoConParametros-test.js new file mode 100644 index 000000000..114e215af --- /dev/null +++ b/tests/integration/desafios/PaleteandoConParametros-test.js @@ -0,0 +1,16 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = 'PaleteandoConParametros'; + +moduloActividad(nombre, () => { + actividadTest(nombre, { + solucion: 'direccionPaletear si hay PelotaAvanzar paleteando haciadireccion4Avanzar haciadireccionEQEQEQEQ', + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al querer avanzar hacia la izquierda si no hay camino', + solucion: 'direccionPaletearSiHayPelotaAvanzarPaleteandoHaciadireccion4Avanzar haciadireccionEQEQEQEQ', + errorEsperado: 'No puedo ir para la izquierda', + }); + +}); \ No newline at end of file From 13e69ae0c1f404f6aaf479a51a449b81894a3b1b Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 14:46:42 -0300 Subject: [PATCH 137/212] exercises 1.4.18 --- package-lock.json | 6 +++--- package.json | 5 +++-- public/pilas.html | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ef02ebae..da03cdb6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33036,9 +33036,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.14.tgz", - "integrity": "sha512-kd3ZXiK6G+jNX/GqMklM0/PP4XnA7rLv741Io9rPbCIYM5PIXS1OnAgxOpH1gDYGz9mPzgU4QwN7CGPr6laUuA==", + "version": "1.4.18", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.18.tgz", + "integrity": "sha512-o+1nyle3N4El/FVSQt1VQEDVPRUBE4Djm3Rfq7nVyW6rKFYMbKy34T1xxOQJkJt0bAR6V8SZecsrEAmso4YBAw==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 8d5c3e658..eddb769de 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "Nahuel Palumbo (https://github.com/PalumboN)", "Diana López Alvas (https://github.com/dlopezalvas)", "Tomás Floxo Lodeiro (https://github.com/tfloxolodeiro)", - "Ezequiel Pereyra (https://github.com/ezequielPereyra)" + "Ezequiel Pereyra (https://github.com/ezequielPereyra)", + "Daniel Ferro (https://github.com/danielferro69)" ], "private": true, "directories": { @@ -65,7 +66,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.14", + "pilas-bloques-exercises": "1.4.18", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 40e0b79dc..8b2d2d0b5 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 945d089a050f51b2f67f942dea139cf01b9eb8b7 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 15:02:01 -0300 Subject: [PATCH 138/212] translations --- app/utils/staticData/grupos.js | 1 + translations/en-us.yaml | 4 ++++ translations/es-ar.yaml | 4 ++++ translations/pt-br.yaml | 4 ++++ 4 files changed, 13 insertions(+) diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index 6da2ab276..2fc0feb33 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -307,6 +307,7 @@ export const grupos = [ 'nuevo132', 'nuevo133', 'nuevo134', + 'nuevo135' ] } ]; diff --git a/translations/en-us.yaml b/translations/en-us.yaml index bbff020da..a37738361 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -813,6 +813,10 @@ model: title: Square butterflies description: 'Yvoty should watch on all butterflies in the square, but they are distributed in a different way each time you run the program. Take into account that the butterflies are never in the boxes in the corner, and that the size of the square doesn''t change each time you run the program.' clue: '' + 'nuevo135': + title: Bouncing the ping pong ball using parameters + description: 'In this case we must bounce all the ping pong balls in the square with the paddle, but in each execution they are distributed in a different way. Take into account that the boxes in the corner will never have a ping pong ball, and that the size of the square doesn´t change each time you run the program.' + clue: If you don´t have a procedure with parameters to move in any direction... You can create it! groups: AlienTocaBoton: title: '' diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 9c6fa2b0b..3a4b5456c 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -858,6 +858,10 @@ model: title: Trofeos y más trofeos description: La colección de trofeos de Chuy crece día a día. Acompañale a recogerlos. Tené en cuenta que la posición de los mismos no cambia y que tanto las direcciones como la cantidad de trofeos podrían ser parámetros... clue: Una característica muy útil es que podés combinar parámetros numéricos (cantidades, medidas) con parámetros de texto (direcciones, nombres). ¡Aprovechala! + 'nuevo135': + title: Paleteando con parámetros + description: En este caso debemos rebotar con la paleta todas las pelotas de ping pong del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del cuadrado no varía de una ejecución a la otra. + clue: Si no tenés un procedimiento con parámetros para mover en cualquier direccion... ¡Podés crearlo! groups: AlienTocaBoton: title: '' diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index d47cef9dd..33d69e9ce 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -804,6 +804,10 @@ model: title: Mariposas encuadradas description: Yvoty debe observar todas las mariposas del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que las casillas de la esquina nunca tienen mariposas y que el tamaño del cuadrado no varía de una ejecución a la otra. clue: '' + 'nuevo135': + title: Paleteando con parámetros + description: En este caso debemos rebotar con la paleta todas las pelotas de ping pong del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del cuadrado no varía de una ejecución a la otra. + clue: Si no tenés un procedimiento con parámetros para mover en cualquier direccion... ¡Podés crearlo! groups: AlienTocaBoton: title: '' From 196cb08a264dcd4914f6e718c83b36a38eca1574 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 15:47:55 -0300 Subject: [PATCH 139/212] Cambiando Test por comportamiento Irse inexistente --- app/services/blocks-gallery.js | 8 +++----- tests/integration/desafios/LimpiandoElHumedal-test.js | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 274e1c0f7..9877a01e2 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -793,13 +793,11 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { icono: 'icono.yacare.png', - comportamiento: 'Irse', - argumentos: `{ - irseCon: "yacare", - nombreAnimacion: "surfear" - }`, + comportamiento: 'IrseEnYacare', + argumentos: `{}`, }); this.crearBloqueAccion('TomarLata', 'takeCan', { diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index da9c24e68..0dda9a90d 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -17,7 +17,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', solucion: '', - errorEsperado: 'Para irse hace falta un transporte' + errorEsperado: 'Para escapar hace falta un transporte' }); }); \ No newline at end of file From 7c3efe121ead192d883f12de22afcc1e7f5ca185 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 27 Oct 2023 15:48:16 -0300 Subject: [PATCH 140/212] espacios --- app/services/blocks-gallery.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 9877a01e2..54bfc67d2 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -793,7 +793,6 @@ export default Service.extend({ }`, }); - this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { icono: 'icono.yacare.png', comportamiento: 'IrseEnYacare', From 217ed7089f526ee17ed13fd3b2446d302ce8996e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:32:57 +0000 Subject: [PATCH 141/212] Bump browserify-sign from 4.2.1 to 4.2.2 Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: browserify-sign dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 200 +++++++++++++++++++++++++--------------------- 1 file changed, 111 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ef02ebae..5342407e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5921,12 +5921,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "jsonfile": { @@ -5982,9 +5982,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -13532,25 +13532,30 @@ } }, "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" }, "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17382,12 +17387,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "istextorbinary": { @@ -17473,9 +17478,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19135,18 +19140,18 @@ }, "dependencies": { "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -19410,12 +19415,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-stream": { @@ -19479,9 +19484,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20020,12 +20025,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-stream": { @@ -20094,9 +20099,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -20299,12 +20304,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-stream": { @@ -20364,9 +20369,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -21575,12 +21580,12 @@ } }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "matcher-collection": { @@ -21603,9 +21608,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22531,12 +22536,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-stream": { @@ -22600,9 +22605,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -22691,18 +22696,18 @@ } }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -23212,12 +23217,12 @@ } }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "istextorbinary": { @@ -23248,9 +23253,9 @@ "dev": true }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -25964,12 +25969,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "jsonfile": { @@ -26011,9 +26016,9 @@ } }, "resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { "is-core-module": "^2.13.0", @@ -28104,6 +28109,23 @@ "pinkie-promise": "^2.0.0" } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + } + } + }, "hawk": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", From 8e265b81141d9f98aecc4618372d92d9c7210372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 27 Oct 2023 18:12:24 -0300 Subject: [PATCH 142/212] ups --- .../libroPrimaria/Duba-AlternativaCondicional-test.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js index ae8fd1941..cd681ec30 100644 --- a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js +++ b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js @@ -33,7 +33,11 @@ moduloActividad("Duba - Alternativa condicional", () => { - + + + + + ` From 0e70916aff0ff618f9d27835ab809ae8c5a62d2e Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Mon, 30 Oct 2023 12:23:04 -0300 Subject: [PATCH 143/212] exercises bump --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1756e8458..df821ac25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33053,9 +33053,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.17.tgz", - "integrity": "sha512-fdAVS8W3dM6E3CeyPRA4eLWNUqE1vmf9yGvU4goGqrWkhZFSD6VftLAVicNp0O5vJ05o66Cj0m0ySaM3cTkHfA==", + "version": "1.4.18", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.18.tgz", + "integrity": "sha512-o+1nyle3N4El/FVSQt1VQEDVPRUBE4Djm3Rfq7nVyW6rKFYMbKy34T1xxOQJkJt0bAR6V8SZecsrEAmso4YBAw==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 1d3423f3d..073b75157 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.17", + "pilas-bloques-exercises": "1.4.18", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 9a4f93a95..8b2d2d0b5 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 160762da4fa6099af6d8aba790082a883383ea91 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 31 Oct 2023 13:42:14 -0300 Subject: [PATCH 144/212] Traducciones --- translations/en-us.yaml | 66 ++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index d5b31b3aa..a44f98854 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -25,7 +25,7 @@ model: '4': title: The Martian in the desert description: | - The Martian is lost in the desert and needs to eat his favorite food: apples! Help him meet his goal. Clue: Create a procedure (block) for each group of apples + The Martian is lost in the desert and needs to eat his favorite food: apples! Help him meet his goal. Clue: Create a procedure (block) for each group of apples. clue: 'There are many ways to eat the apples. You can start by eating the apples on the right, or you can start from top to bottom! Can you figure out another strategy? Consider it always before programming.' '5': title: Tito turns the lights on @@ -51,7 +51,7 @@ model: '9': title: Feeding the fishes description: | - Our diver needs to feed the 7 fishes on screen with worms. First pick up the worms, and then go to each fish to feed them. Clue: How many steps should your strategy have? + Our diver needs to feed the 7 fishes on screen with worms. First pick up the worms, and then go to feed each fish. Clue: How many steps should your strategy have? clue: '' '10': title: Installing games @@ -61,7 +61,7 @@ model: '11': title: The great adventure of the enchanted sea description: | - Help the heroine rescue her prince. To achieve this, she needs to overcome the following challenges one after the other: + Help the heroine rescue her prince. To achieve this, she needs to overcome the following challenges in order: 1) Finding the key. 2) Opening the chest with the key, and then taking the magic hat that’s inside. 3) Giving the hat to the magician to receive the sword in return. @@ -112,7 +112,7 @@ model: '18': title: Long maze description: | - Help the mouse get out of the maze. Opposite to the previous maze, here the mouse needs to move forward a lot of boxes. How many? Is it always the same number? Clue: first think how to move forward one single box. + Help the mouse get out of the maze. Opposite to the previous maze, here the mouse needs to move forward a lot of boxes. How many? Is it always the same number? Clue: first think how to move forward by a single box. clue: '' '19': title: Super Tito 1 @@ -128,12 +128,12 @@ model: '21': title: Maze with cheese description: | - The mouse is hungrier than ever! Guide him along the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. + The mouse is hungrier than ever! Guide him through the maze so that he can eat all pieces of cheese. Clue: before starting, push the “Run” button several times to learn how the scenario changes. clue: 'It is important to consider if the block’s condition called "Repeat until" is met at any given time. Otherwise, the program might never end!' '22': title: Detective Chaparro - description: 'The detective should discover the guilty of a crime. Starting by the first on the left, interrogate each one of the suspects until you find the guilty party!' - clue: 'The "Repeat until" block allows us to finish the program when we finally find the guilty party, without need to interrogate all suspects in the row.' + description: 'The detective should discover the guilty of a crime. Starting from the first on the left, interrogate each one of the suspects until you find the guilty party!' + clue: 'The "Repeat until" block allows us to finish the program when we finally find the guilty party, without the need to interrogate all suspects in the row.' '23': title: Football for robots description: Help our football player robot kick all balls. Always remember that a proper task division using procedures can help you face the challenge better. @@ -141,7 +141,7 @@ model: '24': title: Powering all computers on description: | - We should power all computers on taking into account that the scenario width and height change each time you run the program. Clue: think how you could turn on all computers from only one rectangle, and then repeat the same action for the rest of the sides. + We should power all computers on, taking into account that the scenario width and height change each time you run the program. Clue: think how you could turn on all computers from only one rectangle, and then repeat the same action for the rest of the sides. clue: '' '25': title: The monkey who knows how to count @@ -151,12 +151,12 @@ model: '26': title: The Supertrip description: | - Our superhero should complete his morning supertrip, which consists of going through a certain distance that changes from day to day (between 15 and 45 km). Help our superhero reach his destination every day without going past! Clue: look at the "Sensors" category to see if there is something useful for you there. + Our superhero should complete his morning supertrip, which consists of travelling through a certain distance that changes from day to day (between 15 and 45 km). Help our superhero reach his destination every day without going past! Clue: look at the "Sensors" category to see if there is something useful for you there. clue: You can use the "Repeat" block with the value of a sensor. This will allow you to repeat a code sequence the number of times mentioned by the sensor. '27': title: The monkey counts again description: 'The monkey needs to count the fruits again, but now he cannot check whether he reached the end of the column! Is there any sensor to help him?' - clue: 'A sensor will allow us to get information that can change each time you run the program, even during the same run. For example, the length of a column changes depending on the column on which the monkey is standing.' + clue: 'A sensor allows to get information that can change each time you run the program, or even during the same run. For example, the length of a column changes depending on the column on which the monkey is standing.' '28': title: Nano’s planet description: | @@ -202,7 +202,7 @@ model: title: | Drawing: Inverted pyramid description: | - Draw an equilateral triangle, where each side's length is 100, as shown by the shaded figure below. Clue: consider if there exists a relationship between the different angles and the number of sides. + Draw an equilateral triangle, where each side's length is 100, as shown by the shaded figure below. Clue: check if there exists a relationship between the different angles and the number of sides. clue: 'In polygons, the sum of all exterior angles is equal to 360' '36': title: | @@ -225,7 +225,7 @@ model: '39': title: Nano’s paths description: | - Nano heard about the location of another delicious fruit in their rocky planet, though the road it's longer and more dangerous. The green road is the safest but it's not always free of rocks. + Nano heard about the location of another delicious fruit in their rocky planet, but the road is longer and more dangerous. The green road is the safest but it's not always free of rocks. clue: Is there a pattern that repeats? Could the solution of the previous challenge (Nano's rocks) help us? '40': title: | @@ -376,7 +376,7 @@ model: clue: '' '221': title: Challenge 2 - description: What happens with Duba that she can’t eat her food? Correct the program and help the puma satisfy her hunger. + description: Why can’t Duba eat her food? Correct the program and help the puma satisfy her hunger. clue: '' '222': title: Challenge 3 @@ -427,7 +427,7 @@ model: '233': title: Challenge 1 description: The llama wants to draw four lines. What’s the repeated item this time? - clue: I may be more than one block within the Repeat block + clue: I may be more than one block within the Repeat block. '234': title: Challenge 2 description: 'Now, in addition, you have to draw downwards! Will this be as easy as adding a block to what you did before? How many repetitions are needed now?' @@ -439,7 +439,7 @@ model: '236': title: Challenge 1 description: 'Great, you found the solution! Will you test it?' - clue: You can test the programs step by step to find out the errors + clue: You can test the programs step by step to find out the errors. '237': title: Challenge 2 description: 'What happens with Duba that she can’t eat her favorite dish? Remove, modify and/or add the missing blocks so that she can meet her goal.' @@ -508,7 +508,7 @@ model: title: Challenge 3 description: | Toto likes playing with the letters: make him copy the word, but make him add "ICH" when he reaches the M. - clue: 'When he copies "Cement", he will write "Cemichent"' + clue: 'When he copies "Cement", he will write "Cemichent".' '254': title: Challenge 4 description: 'Make Toto copy the word in Jeringozo language. If the word were "DUBA", he will have to copy "DUPUBAPA"' @@ -613,11 +613,11 @@ model: clue: '' '2021204': title: Level 4 - description: La llama quiere dibujar cuatro líneas. ¿Qué es lo que se repite esta vez? - clue: Puede haber más de un bloque dentro del Repetir + description: The llama now wants to draw 4 lines. What’s the repeating pattern here? + clue: The REPEAT block may contain more than one block. '2021205': title: Level 5 - description: Coty tiene ganas de dibujar una escalera. ¿Encontrás el patrón que se repite? ¿Cuántas veces se repite? + description: Coty wants to draw a staircase. Can you see the repeating pattern? How many times does it repeat? clue: '' '2021206': title: Level 6 @@ -625,7 +625,7 @@ model: clue: '' '2021207': title: Level 7 - description: ¿Encontrás el patrón que se repite? ¿Cuántas veces se repite? + description: Can you see the repeating pattern? How many times does it repeat? clue: '' '2021301': title: Level 1 @@ -643,31 +643,31 @@ model: clue: '' '2021304': title: Level 4 - description: Arreglá el programa para que Toto pueda leer un día de la semana. - clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una + description: Fix the program so that Toto can read a day of the week. + clue: Toto can execute instructions one-at-the-time with the 'STEP' button. '2021305': title: Level 5 - description: Toto tiene que leer una palabra. ¿En dónde hay un stand de Pilas Bloques? ¡En Tec....! + description: Toto has to read a word. Where can he find a Pilas Bloques stand? In Tec....! clue: '' '2021306': title: Level 6 - description: Toto tiene que leer el nombre de una provincia que se lee igual al derecho que al revés. ¿Sabés cuál es? - clue: ¡Apareció el bloque Repetir para ayudarnos a resolver el desafío! + description: Toto has to read the name of a palindromic province. Which one is it? + clue: The REPEAT block comes in clutch! '2021307': title: Level 7 description: | - Toto tiene que volver a leer Neuquén. ¡Recordá que se puede leer igual al derecho que al revés! :wink: + Toto needs to read Neuquén again. Remember it's spelled the same both ways! :wink: clue: '' '2021308': title: Level 8 - description: Ayudalo a Toto a leer SANTA CRUZ. ¡Pero esta vez usando el bloque repetición! - clue: ¿Sabías que dentro de un bloque repetir pueden ponerse muchos bloques? + description: Help Toto read SANTA CRUZ. This time, use the REPEAT block! + clue: Did you know a single REPEAT block can hold many other blocks inside? '2021309': title: Level 9 description: | - Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. - Fijate si funciona o qué hay que arreglar. - clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una + This program suggests Toto can now read the name of the province south of rio negro. + Does it work or should we fix anything? + clue: Toto can execute the instructions one-at-the-time with the 'STEP' button. 'nuevo2': title: Chuy keepie-uppie description: 'Make Chuy take a step forward, warm up moving back and forth, pick up the rubber ball, do keepie-uppie flipping the ball and bouncing it with the foot and finally come back to the original place.' @@ -680,8 +680,8 @@ model: 'nuevo4': title: Mañic in sky description: | - Mañic está facinado con el cielo y le encanta observar todo, principalmente: ¡las estrellas! Ayudalo a cumplir su objetivo. Pista: Crear un procedimiento (bloque) para cada conjunto de estrellas - clue: 'Hay muchas formas de observar estrellas. Podés empezar por las de la derecha, ¡o podés empezar por arriba! ¿Se te ocurre otra estrategia? Pensala siempre antes de programar' + Mañic is obsessed with the sky, and she particularly loves stargazing! Help her do so. Clue: Create a procedure for each block of stars. + clue: 'There are many ways to stargaze. You may start from the right side, or maybe even from the top! Are there any other strategies? Consider the options before programming them.' 'nuevo5': title: Yvoty awakens fireflies description: | From a50c70e072a167c4785aae8bc4cfadd882d49b30 Mon Sep 17 00:00:00 2001 From: Tomas Achaval <134091945+achaval-tomas@users.noreply.github.com> Date: Wed, 1 Nov 2023 00:06:08 -0300 Subject: [PATCH 145/212] =?UTF-8?q?Completada=20traducci=C3=B3n=20de=20com?= =?UTF-8?q?ponents/en-us.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tenía algo de tiempo y pude completar la traducción a Inglés en este archivo. Espero sea de ayuda! --- translations/components/en-us.yaml | 84 +++++++++++++++--------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/translations/components/en-us.yaml b/translations/components/en-us.yaml index a962b4b17..52f52c43f 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -116,68 +116,68 @@ finishedExerciseModal: spects: suggestions: # Will appear over the blocks # For the program: - uses_simple_repetition: Recordá que en lugar de poner muchos bloques iguales podés usar la repetición para hacer algo muchas veces. + uses_simple_repetition: Remember to use REPETITION to do something multiple times, instead of many equal blocks! # For program or procedure: - uses_conditional_alternative: ¿Tu programa anda a veces sí y a veces no? Podés usar alternativa condicional para considerar todos los escenarios posibles. - uses_conditional_repetition: Podés usar repetición condicional cuando tenés que repetir algo hasta que se cumpla una condición. - main_too_long: El programa principal quedó largo y por lo tanto es difícil de leer. Podrías dividirlo en subtareas usando procedimientos. - too_long: Este procedimiento quedó largo y difícil de leer. Podrías dividirlo en subtareas usando procedimientos. + uses_conditional_alternative: ¿Does your program work only sometimes? You could use conditional alternatives to check for all possible scenarios. + uses_conditional_repetition: You can use conditional repetition if you need to repeat something until the condition is met. + main_too_long: Main program is too long and hard to read. Try divinding it into simpler pieces of work using procedures. + too_long: This procedure is too long and hard to read. Try divinding it into simpler pieces of work using procedures. # For each procedure: - do_something: Este procedimiento está vacío y por lo tanto no hace nada. Agregale bloques para que tenga algún efecto. - name_was_changed: "Podés escribir un nombre para este procedimiento. Una buena forma de nombrarlo es responder a la pregunta: ¿qué hace este procedimiento?" - is_used: Este procedimiento no está siendo usado desde ninguna parte del programa. Hacé click en la manito y eso crea el nuevo comando que podés usar. - is_used_from_main: Este procedimiento está siendo usado por otro, pero ese otro no es llamado desde el programa principal. Revisá eso para que tenga efecto. - does_not_use_recursion: ¡Cuidado! ¡Este procedimiento se llama a sí mismo! Intentá resolver de otra forma este desafío. - does_not_nest_control_structures: Este bloque podría estar en un procedimiento con un buen nombre que describa qué tarea resuelve. + do_something: This procedure is empty and thus does nothing. Add blocks to it so it can work. + name_was_changed: "You can name this procedure. A good idea for any procedure's name is to think: What does it do?" + is_used: This procedure is not being used by any part of the programa. Click on the hand to create a functional command to use. + is_used_from_main: This procedure is being used by another one, but that one is not being called by the main program. Check for errors to make it work. + does_not_use_recursion: Be Careful! This procedure is trying to call itself! Try to tackle this challenge in a different way. + does_not_nest_control_structures: "This block could be inside a procedure which's name describes what it does." scoreable: # Challenge goals, used in the final window solution_works: "Your solution works!" uses_simple_repetition: | {result, select, - true {Usás} - other {Deberías usar} - } repetición para las partes de tu programa que se repiten. + true {You're using} + other {You should Use} + } repetition for the repeating parts of the program. uses_conditional_alternative: | {result, select, - true {Usás} - other {Deberías usar} - } alternativa condicional para considerar los escenarios variantes. + true {You're using} + other {You should Use} + } conditional alternatives to consider all possible scenarios. uses_conditional_repetition: | {result, select, - true {Usás} - other {Deberías usar} - } repetición condicional para considerar los escenarios variantes. + true {You're using} + other {You should Use} + } conditional repetition to consider varying scenarios. main_too_long: | {result, select, - true {El programa principal es corto y legible.} - other {El programa principal es largo, debería estar dividido en subtareas} + true {The main program is short and legible.} + other {Main program is too long, it should be divided into simpler pieces of work} } too_long: | {result, select, - true {Tus procedimientos están} - other {Tus procedimientos deberían estar} - } divididos en subtareas. + true {Your procedures are} + other {Your procedures should be} + } divided into simpler pieces of work. do_something: | {result, select, - true {Tus procedimientos no están vacíos, tienen bloques adentro} - other {Tus procedimientos están vacíos, deberían tener bloques en su interior} + true {Your procedures are not empty, they contain blocks} + other {Your procedures are empty, they should contain blocks} }. name_was_changed: | {result, select, - true {Elegiste} - other {Podrías elegir} - } un nombre para cada uno de tus procedimientos. + true {You chose} + other {You should choose} + } a name for each one of your procedures. does_not_nest_control_structures: | {result, select, - true {Tus repeticiones y alternativas están divididas} - other {Dentro de las repeticiones y alternativas también deberías dividir} - } en subtareas usando procedimientos. + true {Your repetitions and alternatives are subdivided} + other {You should also subdivide your repetitions and alternatives} + } into simpler pieces of work using procedures. control_group: - solution_works: "¡Tu solución _funciona_!" - uses_simple_repetition: Deberías usar repetición simple para las partes de tu programa que se repiten. - uses_conditional_alternative: Deberías usar alternativa condicional para considerar todos los escenarios. - uses_conditional_repetition: Deberías usar repetición condicional para considerar todos los escenarios. - main_too_long: El programa principal debería estar dividido en subtareas usando procedimientos. - too_long: Tus procedimientos no deberían ser largos, también deberían estar divididos en subtareas. - do_something: No deberías tener procedimientos vacíos, sin bloques. - name_was_changed: Deberías elegir un buen nombre para cada uno de tus procedimientos. - does_not_nest_control_structures: Dentro de las repeticiones y alternativas también deberías dividir en subtareas usando procedimientos. \ No newline at end of file + solution_works: "Your solution _works_!" + uses_simple_repetition: You should use simple repetition for the repeating parts of your program. + uses_conditional_alternative: You should use conditional alternative to consider all possible scenarios.. + uses_conditional_repetition: You should use conditional repetition to consider all scenarios. + main_too_long: The main program should be subdivided into simpler pieces of work using procedures. + too_long: Your procedures should not be that long, they may also be subdivided into simpler pieces of work (procedures). + do_something: You should not have empty procedures, with no blocks. + name_was_changed: You should choose a great name for each one of your procedures. + does_not_nest_control_structures: You may also divide your repetitions and alternatives into simpler pieces of work using procedures. From f2dfb528ae52e9624f65a73a1169817132b99dbf Mon Sep 17 00:00:00 2001 From: Tomas Achaval <134091945+achaval-tomas@users.noreply.github.com> Date: Wed, 1 Nov 2023 00:08:38 -0300 Subject: [PATCH 146/212] Small fixes --- translations/components/en-us.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/components/en-us.yaml b/translations/components/en-us.yaml index 52f52c43f..431554be9 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -125,7 +125,7 @@ spects: # For each procedure: do_something: This procedure is empty and thus does nothing. Add blocks to it so it can work. name_was_changed: "You can name this procedure. A good idea for any procedure's name is to think: What does it do?" - is_used: This procedure is not being used by any part of the programa. Click on the hand to create a functional command to use. + is_used: This procedure is not being used by any part of the program. Click on the hand to create a functional command to use. is_used_from_main: This procedure is being used by another one, but that one is not being called by the main program. Check for errors to make it work. does_not_use_recursion: Be Careful! This procedure is trying to call itself! Try to tackle this challenge in a different way. does_not_nest_control_structures: "This block could be inside a procedure which's name describes what it does." @@ -174,7 +174,7 @@ spects: control_group: solution_works: "Your solution _works_!" uses_simple_repetition: You should use simple repetition for the repeating parts of your program. - uses_conditional_alternative: You should use conditional alternative to consider all possible scenarios.. + uses_conditional_alternative: You should use conditional alternative to consider all possible scenarios. uses_conditional_repetition: You should use conditional repetition to consider all scenarios. main_too_long: The main program should be subdivided into simpler pieces of work using procedures. too_long: Your procedures should not be that long, they may also be subdivided into simpler pieces of work (procedures). From 39614f909638d43552308e8a485d0825cb37c388 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 1 Nov 2023 08:27:09 -0300 Subject: [PATCH 147/212] first --- app/services/blocks-gallery.js | 18 ++++++++++++++++++ app/utils/staticData/desafios.js | 7 +++++++ public/iconos/icono.todos.observando.png | Bin 0 -> 791 bytes translations/blocks/en-us.yaml | 3 +++ translations/blocks/es-ar.yaml | 3 +++ translations/blocks/pt-br.yaml | 3 +++ 6 files changed, 34 insertions(+) create mode 100644 public/iconos/icono.todos.observando.png diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 577f1ce63..396aaf407 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1006,6 +1006,24 @@ export default Service.extend({ argumentos: '{idTransicion: "empezarFiesta"}', }); + this.crearBloqueAccion('MoverTelescopio', 'moveTelescope', { + icono: 'icono.telescopio.png', + comportamiento: 'MoverTelescopio', + argumentos: '{}', + }); + + this.crearBloqueAccion('SiguienteTelescopio', 'moveNextTelescope', { + icono: 'icono.derecha.png', + comportamiento: 'MoverACasillaDerecha', + argumentos: '{}', + }); + + this.crearBloqueAccion('ObservarConAmigos', 'watchWithFriends', { + icono: 'icono.todos.observando.png', + comportamiento: 'TodosObservando', + argumentos: '{idTransicion: "observarConAmigos"}', + }); + this.crearBloqueAccion('VolverAlBordeIzquierdo', 'backToLeftBorder', { icono: 'icono.izquierdaTope.png', comportamiento: 'MoverTodoAIzquierda', diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index e1c2e0f89..636093745 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3169,6 +3169,13 @@ export const desafios = [ }})`, bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'FotografiarMariposa', 'TocandoMariposa', 'Procedimiento', 'Repetir', 'Si', 'SiNo'] }, + { + id: 'nuevo130', + nombre: 'BuscandoLasEstrellas', + escena: 'BuscandoLasEstrellas', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'Numero', + 'OpAritmetica', 'MoverTelescopio', 'SiguienteTelescopio', 'ObservarConAmigos'], + }, { id: 'nuevo131', nombre: 'ReciclandoPapeles', diff --git a/public/iconos/icono.todos.observando.png b/public/iconos/icono.todos.observando.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b38af911c370966dcbd4fd8a2645f78428e9d3 GIT binary patch literal 791 zcmV+y1L*vTP)EX>4Tx04R}tkv&MmKpe$iQ$;Bi1v?ZG%ut;yNELC^DionYsTEpvFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JWDYS_3;J6>}?mh0_0Yam~RI_UWP&La) zC*oo@w<`9$B7hMLAcnBSOnokuO2Tt|-NVP%yC~1{KKJM7Q}QMQd?N8I(+!JwgLrz= z(mC%FhgeBch|h_~4Z0xlBiCh@-#8Z?7Ib`7 zkz)Z>sE`~#_#gc4)+|iM+@xR}=zg*7k5Qm!7iiXP`}^3onm;4RCM> zj1?(+-Q(T8oxS~grq$mMxmj|)seloe1OUCR Ve}VR`$5Q|R002ovPDHLkV1ii~Rf+%r literal 0 HcmV?d00001 diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index 478be7d68..ecd3461ec 100644 --- a/translations/blocks/en-us.yaml +++ b/translations/blocks/en-us.yaml @@ -67,6 +67,9 @@ move1Km: Move 1 Km forward changeLightColor: Change spotlight color moveNextLight: Move to next spotlight startParty: Start the party +moveTelescope: Move telescope +moveNextTelescope: Move to next telescope +lookWithFriends: Look at the sky with friends backToLeftBorder: Get back to the left border goToFirstSuspect: Go to the first suspect nextSuspect: Go to next suspect diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 0b3d801fa..f9d1fbf57 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -67,6 +67,9 @@ move1Km: Avanzar 1 Km changeLightColor: Cambiar color del foco moveNextLight: Pasar al siguiente foco startParty: Empezar fiesta +moveTelescope: Mover telescopio +moveNextTelescope: Pasar al siguiente telescopio +lookWithFriends: Observar el cielo con amigos backToLeftBorder: Volver al borde izquierdo goToFirstSuspect: Ir al primer sospechoso nextSuspect: Pasar al siguiente sospechoso diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index 2a9339e24..f459f78a4 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -63,6 +63,9 @@ move1Km: Avançar 1 Km changeLightColor: Mudar a cor da lâmpada moveNextLight: Ir para a próxima lâmpada startParty: Começar a festa +moveTelescope: Mover telescópio +moveNextTelescope: Ir para a próximo telescópio +lookWithFriends: Perceber o céu com amigos backToLeftBorder: Voltar para a margem esquerda goToFirstSuspect: Ir para o primeiro suspeito nextSuspect: Ir para o próximo suspeito From fbab19da6454ec5428768df0cfc6a917ba75b6d4 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Wed, 1 Nov 2023 11:20:43 -0300 Subject: [PATCH 148/212] nuevo desafio 130 --- app/services/blocks-gallery.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 396aaf407..79e150a3a 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1018,7 +1018,7 @@ export default Service.extend({ argumentos: '{}', }); - this.crearBloqueAccion('ObservarConAmigos', 'watchWithFriends', { + this.crearBloqueAccion('ObservarConAmigos', 'lookWithFriends', { icono: 'icono.todos.observando.png', comportamiento: 'TodosObservando', argumentos: '{idTransicion: "observarConAmigos"}', From f39807e89f34725c11e1b2bfe3d41fa99ae2b5d4 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 3 Nov 2023 16:07:38 -0300 Subject: [PATCH 149/212] numeric challenge ids --- app/utils/staticData/desafios.js | 78 ++++++++++++++++---------------- app/utils/staticData/grupos.js | 74 +++++++++++++++--------------- translations/en-us.yaml | 62 ++++++++++++------------- translations/es-ar.yaml | 78 ++++++++++++++++---------------- translations/pt-br.yaml | 60 ++++++++++++------------ 5 files changed, 176 insertions(+), 176 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index e1c2e0f89..c0b3dd3f7 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2752,7 +2752,7 @@ export const desafios = [ ` }, { - id: 'nuevo2', + id: 1002, nombre: 'ChuyHaciendoJueguito', escena: 'ChuyHaciendoJueguito', bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Repetir', 'Procedimiento'], @@ -2761,7 +2761,7 @@ export const desafios = [ } }, { - id: 'nuevo3', + id: 1003, nombre: 'NoMeCansoDeRebotar', escena: 'NoMeCansoDeRebotar', bloques: ['RebotarUnaVezPingPong', 'Procedimiento', 'Repetir'], @@ -2770,7 +2770,7 @@ export const desafios = [ } }, { - id: 'nuevo4', + id: 1004, nombre: 'ManicEnElCielo', escena: `new EscenaManic("\ [E,-,E,-,E],\ @@ -2780,7 +2780,7 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarEstrella', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo5', + id: 1005, nombre: 'YvotyDespiertaLuciernagas', escena: `new EscenaYvoty("\ [-,-,-,L,-,-],\ @@ -2792,7 +2792,7 @@ export const desafios = [ bloques: ['DespertarLuciernaga', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo6', + id: 1006, nombre: 'LosTrofeosDeChuy', escena: `new EscenaChuy("\ [T,-,-,-,-,-],\ @@ -2804,7 +2804,7 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'RecogerTrofeo', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo7', + id: 1007, nombre: 'LaReparadoraDeTelescopios', escena: `new EscenaManic("\ [-,T,T,T,T],\ @@ -2814,7 +2814,7 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'VolverABordeIzquierdo', 'RepararTelescopio', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo8', + id: 1008, nombre: 'ManicYLosPlanetas', escena: `new EscenaManic("\ [P,P,P,P,P,P],\ @@ -2825,7 +2825,7 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarPlaneta', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo9', + id: 1009, nombre: 'CargandoCelus', escena: `new EscenaYvoty("\ [C,C,C,C,-],\ @@ -2835,13 +2835,13 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'CargarCelular', 'AgarrarCargador', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo10', + id: 1010, nombre: 'InstalandoJuegosYvoty', escena: 'InstalandoJuegosYvoty', bloques: ['PasarASiguienteComputadora', 'PrenderComputadora', 'ApagarComputadora', 'EscribirC', 'EscribirB', 'EscribirA', 'InstalarJuego', 'Repetir', 'Procedimiento'], }, { - id: "nuevo11", + id: 1011, nombre: 'EscapeEnYacare', escena: 'EscapeEnYacare', bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], @@ -2850,13 +2850,13 @@ export const desafios = [ }, }, { - id: 'nuevo12', + id: 1012, nombre: 'LimpiandoElHumedal', escena: 'LimpiandoElHumedal', bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], }, { - id: 'nuevo13', + id: 1013, nombre: 'PateandoAVeces', escena: `new EscenaChuy("[A,G?]",{},[1,0])`, bloques: ['PatearPelotaChuy', 'MoverACasillaDerecha', 'TocandoPelotaChuy', 'Repetir', 'Procedimiento', 'Si'], @@ -2867,7 +2867,7 @@ export const desafios = [ shouldShowMultipleScenarioHelp: true }, { - id: 'nuevo14', + id: 1014, nombre: 'PelotaPaleta', escena: `new EscenaChuy(["[A,P]", "[A,G]"])`, bloques: ['PatearPelotaChuy', 'RebotarPingPong', 'MoverACasillaDerecha', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoPelotaChuy', 'TocandoPingPong'], @@ -2878,7 +2878,7 @@ export const desafios = [ shouldShowMultipleScenarioHelp: true }, { - id: 'nuevo15', + id: 1015, nombre: 'LaberintoCortoChuy', escena: `new EscenaChuy(['[A,+]', '[A],[+]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', @@ -2889,13 +2889,13 @@ export const desafios = [ } }, { - id: 'nuevo16', + id: 1016, nombre: 'TresTelescopios', escena: `new EscenaManic("[A,T?,T?,T?]",{},[3,0])`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'RepararTelescopio', 'Repetir', 'Si', 'SiNo', 'TocandoTelescopio'], }, { - id: 'nuevo17', + id: 1017, nombre: 'YvotyDespiertaMasLuciernagas', escena: `new EscenaYvoty("\ [A&(*>L?)],\ @@ -2909,7 +2909,7 @@ export const desafios = [ bloques: ['DespertarLuciernaga', 'MoverACasillaAbajo', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoLuciernaga'] }, { - id: 'nuevo18', + id: 1018, nombre: 'LaberintoLargoChuy', escena: `new EscenaChuy([ '[A,_,_,_,_,_,_,_],[-,-,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,-,-,-,-,_],[_,_,_,_,_,_,-,_],[_,_,_,_,_,_,-,-],[_,_,_,_,_,_,_,-]', @@ -2922,7 +2922,7 @@ export const desafios = [ 'Repetir', 'Si', 'SiNo', 'PuedeMoverAbajo', 'PuedeMoverDerecha'], }, { - id: 'nuevo19', + id: 1019, nombre: 'SuperYvoty1', escena: `new EscenaYvoty(["[A&L],[L],[+]","[A&L],[L],[L],[+]","[A&L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[L],[+]"])`, bloques: ['Procedimiento', 'DespertarLuciernaga', 'MoverACasillaAbajo', @@ -2932,7 +2932,7 @@ export const desafios = [ } }, { - id: 'nuevo20', + id: 1020, nombre: 'SuperYvoty2', escena: `new EscenaYvoty(["[A&(#L)],[#L],[+]","[A&(#L)],[#L],[#L],[+]","[A&(#L)],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[#L],[+]"], { macros: { "L": "*>L?" }, coleccion: ["L"] })`, @@ -2943,7 +2943,7 @@ export const desafios = [ } }, { - id: 'nuevo21', + id: 1021, nombre: 'LaberintoConPelotas', escena: `new EscenaChuy([ '[A&(U?),_,_,_,_],[U?,U?,_,_,_],[_,U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,+]', @@ -2960,7 +2960,7 @@ export const desafios = [ } }, { - id: "nuevo22", + id: 1022, nombre: 'CapyBuscaAGuyra', escena: `new EscenaCapySolo("\ [*,*,*,*,*],\ @@ -2972,7 +2972,7 @@ export const desafios = [ } }, { - id: 'nuevo23', + id: 1023, nombre: 'FutbolAlSur', escena: 'FutbolAlSur', bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'SiguienteFila', @@ -2983,7 +2983,7 @@ export const desafios = [ } }, { - id: 'nuevo24', + id: 1024, nombre: 'PrendiendoLasCompusYvoty', escena: `new EscenaYvoty([ '[A,T,T,T,-], [T,-,-,-,T], [T,-,-,-,T], [T,-,-,-,T], [-,T,T,T,-]', @@ -3004,7 +3004,7 @@ export const desafios = [ } }, { - id: 'nuevo25', + id: 1025, nombre: 'ContandoPlanetasYEstrellas', escena: 'ContandoPlanetasYEstrellas', bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', @@ -3016,7 +3016,7 @@ export const desafios = [ } }, { - id: 'nuevo26', + id: 1026, nombre: 'LaSupermaraton', escena: 'SuperMaraton', bloques: ['Procedimiento', 'KmsTotales', 'Avanzar1kmChuy', 'RepetirVacio', @@ -3026,7 +3026,7 @@ export const desafios = [ } }, { - id: 'nuevo27', + id: 1027, nombre: 'ContandoDeNuevoManic', escena: 'ContandoDeNuevoManic', bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', @@ -3036,7 +3036,7 @@ export const desafios = [ 'EstoySobreElInicioManic', 'LargoColumnaActual'] }, { - id: 'nuevo28', + id: 1028, nombre: 'ElPlanetaDeCapyYGuyra', escena: `new EscenaCapy("\ [-,L,L,-,-],\ @@ -3052,7 +3052,7 @@ export const desafios = [ } }, { - id: 'nuevo38', + id: 1038, nombre: 'LasEstrellasDeManic', escena: `new EscenaManic([ '[A,_,_,_,_],[-,O,-,-,-],[-,_,_,_,-],[E,-,-,-,-]', @@ -3063,7 +3063,7 @@ export const desafios = [ 'HayObstaculoArriba', 'HayObstaculoAbajo', 'HayObstaculoIzquierda', 'HayObstaculoDerecha'] }, { - id: 'nuevo39', + id: 1039, nombre: 'LosCaminosDeManic', escena: `new EscenaManic([ '[A,_,_,_,_,_],[-,O,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,O,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', @@ -3080,7 +3080,7 @@ export const desafios = [ } }, { - id: 'nuevo40', + id: 1040, nombre: 'HileraDeLatas', escena: `new EscenaCapy([ '[L,-,-,-,A],[_,_,-,_,_],[_,_,-,_,_],[_,_,-,_,_]', @@ -3088,7 +3088,7 @@ export const desafios = [ bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'TocandoLata'] }, { - id: 'nuevo41', + id: 1041, nombre: 'MuchasHilerasDeLatas', escena: `new EscenaCapy([ '[_,_,_,-,-,L,A],[L,-,-,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,_,_]', @@ -3102,7 +3102,7 @@ export const desafios = [ } }, { - id: 'nuevo42', + id: 1042, nombre: 'AVecesLatasAVecesPapeles', escena: `new EscenaCapy("\ [A,L|P|-,L|P|-,L|P|-,L|P|-],\ @@ -3118,7 +3118,7 @@ export const desafios = [ } }, { - id: 'nuevo43', + id: 1043, nombre: 'ElPasilloCurvoDeCelus', escena: `new EscenaYvoty("\ [_,P,P?,P?],\ @@ -3136,7 +3136,7 @@ export const desafios = [ } }, { - id: 'nuevo44', + id: 1044, nombre: 'ElFestinAstronomico', escena: `new EscenaManic("\ [A,-,-,-,-],\ @@ -3149,7 +3149,7 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarEstrella', 'ObservarPlaneta', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoEstrellaManic', 'TocandoPlaneta'] }, { - id: 'nuevo45', + id: 1045, nombre: 'ObservadoraDeMariposas', escena: `new EscenaYvoty("\ [-,*a>M?,*a>M?,*a>M?,*a>M?],\ @@ -3170,13 +3170,13 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'FotografiarMariposa', 'TocandoMariposa', 'Procedimiento', 'Repetir', 'Si', 'SiNo'] }, { - id: 'nuevo131', + id: 1131, nombre: 'ReciclandoPapeles', escena: 'ReciclandoPapeles', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'MoverACasillaDerecha', 'TomarPapel', 'Colocar', 'SiguienteFilaTotal', 'Numero', 'OpAritmetica'], }, { - id: 'nuevo132', + id: 1132, nombre: 'PrendiendoLasCompusParametrizadoYvoty', escena: `new EscenaYvoty([ '[A,T,T,T,-], [T,-,-,-,T], [T,-,-,-,T], [T,-,-,-,T], [-,T,T,T,-]', @@ -3195,7 +3195,7 @@ export const desafios = [ 'OpAritmetica'], }, { - id: 'nuevo133', + id: 1133, nombre: 'MariposasEncuadradas', escena: `new EscenaYvoty("\ [A,#M,#M,#M,#M,#M,-],\ @@ -3211,7 +3211,7 @@ export const desafios = [ 'TocandoMariposa', 'FotografiarMariposa', 'Numero', 'OpAritmetica'], }, { - id: 'nuevo134', + id: 1134, nombre: 'InfinitosTrofeos', escena: `new EscenaChuy("\ [A,T,T,T,T,-],\ diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index e14e4303e..5df4d154c 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -272,43 +272,43 @@ export const grupos = [ { id: 'grupoTemporal', desafioIds: [ - 'nuevo2', - 'nuevo3', - 'nuevo4', - 'nuevo5', - 'nuevo6', - 'nuevo7', - 'nuevo8', - 'nuevo9', - 'nuevo10', - 'nuevo11', - 'nuevo12', - 'nuevo13', - 'nuevo14', - 'nuevo15', - 'nuevo18', - 'nuevo16', - 'nuevo17', - 'nuevo19', - 'nuevo20', - 'nuevo21', - 'nuevo23', - 'nuevo24', - 'nuevo25', - 'nuevo26', - 'nuevo27', - 'nuevo28', - 'nuevo38', - 'nuevo39', - 'nuevo40', - 'nuevo41', - 'nuevo42', - 'nuevo43', - 'nuevo44', - 'nuevo45', - 'nuevo132', - 'nuevo133', - 'nuevo134', + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1018, + 1016, + 1017, + 1019, + 1020, + 1021, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1132, + 1133, + 1134, ] } ]; diff --git a/translations/en-us.yaml b/translations/en-us.yaml index a44f98854..511e579f8 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -68,7 +68,7 @@ model: 4) Fighting against the dark knight using her sword. 5) Running away riding a unicorn. clue: '' - 'nuevo11': + '1011': title: The great escape on alligator description: | Help Capy: @@ -668,94 +668,94 @@ model: This program suggests Toto can now read the name of the province south of rio negro. Does it work or should we fix anything? clue: Toto can execute the instructions one-at-the-time with the 'STEP' button. - 'nuevo2': + '1002': title: Chuy keepie-uppie description: 'Make Chuy take a step forward, warm up moving back and forth, pick up the rubber ball, do keepie-uppie flipping the ball and bouncing it with the foot and finally come back to the original place.' clue: You can create new actions in _My procedures_ by defining new blocks including other actions. - 'nuevo3': + '1003': title: I love bouncing the ping pong ball description: | Help Chuy bounce the ping pong ball 30 times non-stop. Clue: you can solve this challenge with less than 30 blocks. clue: The Repeat block allows you to select the number of times you want to repeat a sequence of actions. This is called "Simple repetition". - 'nuevo4': + '1004': title: Mañic in sky description: | Mañic is obsessed with the sky, and she particularly loves stargazing! Help her do so. Clue: Create a procedure for each block of stars. clue: 'There are many ways to stargaze. You may start from the right side, or maybe even from the top! Are there any other strategies? Consider the options before programming them.' - 'nuevo5': + '1005': title: Yvoty awakens fireflies description: | Help Yvoty wake up all the fireflies. Clue: create a procedure to wake up all the fireflies in a diagonal line. clue: 'You can create a procedure once, and then use it anytime you want within the same program.' - 'nuevo7': + '1007': title: The telescope repairgirl description: | Ayudá a Mañic a reparar todos los telescopios. Pista: podés hacer un procedimiento que tome una fila de telescopios. clue: Usar muchas veces un procedimiento te ahorra trabajo. - 'nuevo8': + '1008': title: Mañic and the planets description: | Mañic needs to watch all planets in the grid. Think how you could help her do it by creating the necessary blocks. clue: You can also think if there is a strategy that allows you to **reuse** the same procedure several times. - 'nuevo9': + '1009': title: Charging cell phones description: | Yvoty needs to charge the 7 cell phones on screen with the charger. First pick up the charger, and then go to each cell phone to charge them. Clue: How many steps should your strategy have? clue: '' - 'nuevo10': + '1010': title: Installing games description: | Yvoty needs to install a game in 3 different computers to have fun with his friends. The steps to install the game in each computer are: powering the computer on, writing the password ("ABC"), installing the game, and finally powering the computer off. Clue: make the most of the fact that you have to do the same work in each computer. clue: '' - 'nuevo12': + '1012': title: Cleaning the wetland description: 'Capy needs to clean the wetland to go surfing. To achieve this, Capy needs to carry 3 cans and 3 papers to the trash, but Capy cannot throw more than one at a time. Then, Capy gets on the alligator and finally goes surfing!' clue: '' - 'nuevo16': + '1016': title: Three telescopes description: | Mañic should repair all telescopes. But they neither appear always in the same places, nor the same number of telescopes! Clue: first think what procedure you should create to repair only one telescope, if it appears. clue: '' - 'nuevo17': + '1017': title: Yvoty awakens more fireflies description: Yvoty needs to wake up all the fireflies to know the route... But they change their places each time you run the program! You can use the procedures and control blocks. clue: '' - 'nuevo19': + '1019': title: Super Yvoty 1 description: | Help Yvoty wake up all the fireflies. Watch out! There’s a firefly in every cell, but you don´t know how many cells are there each time you run the program. clue: There are new blocks that can help you solve this challenge very easily. Use them! - 'nuevo20': + '1020': title: Super Yvoty 2 description: | Super Yvoty should wake up all the fireflies, but opposite to the previous challenge, there are cells without any firefly here. Could you use the same procedure you used in Super Tito 1? clue: The "Repeat until" block will repeat a sequence of actions until one condition is met. This is called "Conditional repetition". - 'nuevo22': + '1022': title: Capy looks for Guyrá description: Help Capy to find Guyrá clue: '' - 'nuevo24': + '1024': title: Powering all computers on description: | We should power all computers on taking into account that the scenario width and height change each time you run the program. Clue: think how you could turn on all computers from only one rectangle, and then repeat the same action for the rest of the sides. clue: '' - 'nuevo25': + '1025': title: Counting planets and stars description: | Mañic should visit all boxes and count how many planets and stars are there in total. Clue: first think how you could count whether there is any planet or star in a particular box. Then think how you could count all celestial bodies in only one particular column. clue: 'Splitting a big problem into several little problems can help you better understand each of its parts. Even better: you can focus on solving smaller and easier parts!' - 'nuevo26': + '1026': title: Supermarathon description: | Chuy must carry out his morning routine, which consists of running a certain number of kilometers that varies day by day (between 15 and 45 km). Make Chuy always reach his destination without going over! Clue: look in the "Sensors" category if there is something that can help you. clue: A "Repeat" block can be used with the value of a sensor. This allows a code sequence to be repeated the number of times indicated by the sensor - 'nuevo27': + '1027': title: Mañic counts again description: 'Mañic needs to count the celestial bodies again, but now she cannot check whether she reached the end of the column! Is there any sensor to help her?' clue: 'A sensor will allow us to get information that can change each time you run the program, even during the same run. For example, the length of a column changes depending on the column on which Mañic is standing.' - 'nuevo28': + '1028': title: Capy and Guyrá’s planet description: | Help Capy and Guyrá to collect all the cans. Be careful! He cannot come down... @@ -763,62 +763,62 @@ model: clue: | You can add parameters to the procedures, so that they become more general. For instance, if we create the following procedures: "Collect 2 cans on the right", "Collect 3 cans on the right", and "Collect 4 cans on the right", we can replace these three procedures with one procedure with a parameter stating the number of cans we want to collect on the right: "Collect on the right the following number: [number]". For adding a parameter to a new procedure, you have to click on the plus sign. - 'nuevo38': + '1038': title: Mañic's stars description: | In Mañic’s paths there are usually a lot of obstacles. Some of them get in the way to watch her favorite star. If that happens, Mañic must take the long, winding and sinuous road. Help Mañic watch the star at the end of the path. Don't forget to download your solution! (you'll need it later). clue: How many roads to the stars are there? Can all of them always be traversed or does it depend on something? - 'nuevo39': + '1039': title: Mañic paths description: | Mañic heard about the location of another beautiful star in the sky, though the road it's longer and more dangerous. The road is not always free of obstacles. clue: Is there a pattern that repeats? Could the solution of the previous challenge (Mañic's stars) help us? - 'nuevo40': + '1040': title: | Row of cans description: | "Nothing better than getting up in the morning and going out to keep the world clean", Capy thinks. Help Capy to collect all the cans he finds in his path. Don't forget to download your solution (you'll need it later). clue: How can Capy easily tell if there is a row of cans? What should he does if there is no can? - 'nuevo41': + '1041': title: | A lot of row of cans description: | Today is a special day to help keep the planet clean... but there are people who throw cans on the floor. Help Capy to collect the cans from all the rows he finds in his path. clue: Is there a task that Capy has to perform multiple times? Could the solution to the previous challenge (Row of Cans) help us? - 'nuevo42': + '1042': title: | sometimes cans, sometimes papers description: | Life on the planet can be very difficult for Capy, so running into an area full of garbage is a problem. Help Capy to collect all the cans and papers that he finds in his path. clue: Think of a strategy that allows Capy to go down a row and collect all the cans and papers he finds. Can the same be done in the other rows? - 'nuevo43': + '1043': title: | The cell phones curve aisle description: | Yvoty found an aisle full of cell phones! The only problem is that the aisle turns several times and the cell phones are right there... Will Yvoty be able to unlock all the cell phones in this aisle? clue: The cell phones are found right in the curves of the aisle. A strategy to unlock the cell phones in a curve would be an excellent help. - 'nuevo44': + '1044': title: | The astronomical fest description: | Mañic came to watch the planets and stars at the usual place, although he heard rumors that a great astronomical event is taking place on the sky... Today is a great day to feast! clue: A normal observation is a column of 6 celestial bodies. How many columns does an astronomical event have? If you can get Mañic to watch the celestial bodies in a column, maybe you can do the same at a feast. - 'nuevo45': + '1045': title: | Butterflies observer description: | The universe has millions and millions of galaxies; luckily for the star collector, today he must collect only two very small galaxies. clue: 'Each galaxy is a group of stars distributed differently but always in the same space. Think of a strategy that goes from the simplest to the most complex: first a box, then a row or column, and finally a galaxy.' - 'nuevo131': + '1131': title: Recycling Papers description: | Help Capy and Guyrá throw a paper in the trash bin at the end of each row. Please take into account that the scenario doesn’t change each time you run the program! Clue: if you have to choose a parameter for your procedure... Which one would you choose? What’s the variation from row to row? clue: '' - 'nuevo132': + '1132': title: Powering all computers on by using parameters description: 'Just like before, we need to power all computers on. But this time you have to define a unique procedure to power them on, whichever side they are.' clue: 'The parameters can be directions; they don’t always need to be numbers. For example, a parameter could be the direction in which the robot should move.' - 'nuevo133': + '1133': title: Square butterflies description: 'Yvoty should watch on all butterflies in the square, but they are distributed in a different way each time you run the program. Take into account that the butterflies are never in the boxes in the corner, and that the size of the square doesn''t change each time you run the program.' clue: '' diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index a86b29a2f..309a1a328 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -68,7 +68,7 @@ model: 4) Luchar con la espada contra el caballero oscuro. 5) Escapar en unicornio. clue: '' - 'nuevo11': + '1011': title: El gran escape en yacaré description: | Ayuda Capy: @@ -675,196 +675,196 @@ model: Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. Fijate si funciona o qué hay que arreglar. clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una - 'nuevo2': + '1002': title: Chuy haciendo jueguito description: 'Hacé que Chuy avance un paso, entre en calor avanzando y retrocediendo, recoja la pelota pulpito, haga jueguito revoleando la pelota y rebotandola con el pie y por ultimo vuelva a su lugar.' clue: Se pueden crear nuevas acciones en Procedimientos definiendo nuevos bloques que incluyan otras acciones. - 'nuevo3': + '1003': title: No me canso de rebotar description: | Ayudá a Chuy a hacer rebotar la pelota de ping pong 30 veces seguidas. Pista: se puede resolver con menos de 30 bloques. clue: El bloque Repetir permite elegir la cantidad de veces que se desea repetir una secuencia de acciones. Esto se llama "Repetición simple". - 'nuevo4': + '1004': title: Mañic en el cielo description: | La ñandú Mañic está fascinada con el cielo, le encanta observarlo y estudiarlo. Sus astros preferidos son las estrellas y hay muchas formas de observarlas. Ayudala a observar todas las estrellas con su telescopio. clue: 'Una estrategia puede ser empezar por las estrellas de la derecha... o podés arrancar por las de arriba... ¿Se te ocurre otra estrategia? Pensala siempre **antes** de programar!' - 'nuevo5': + '1005': title: Yvoty despierta a las luciérnagas description: | Para sacar buenas fotos se necesita buena luz. La yaguareté Yvoty cuenta con las luciérnagas, que iluminan cualquier escenario... ¡siempre y cuando estén despiertas! Ayudá a Yvoty a despertar a todas las luciérnagas. clue: Mirá las diagonales que forman las luciérnagas... ¿Podés identificar un patrón en común? ¿Podría ayudarte crear un procedimiento? Los procedimientos se crean una vez y se pueden usar **todas las veces que quieras** dentro de un programa. - 'nuevo6': + '1006': title: Chuy, campeone desordenade description: | Le pingüine Chuy es fan de todos los deportes y ha logrado una gran cantidad de victorias, tantas son que tiene desparramados sus trofeos por varios lugares. Ayudá a Chuy a recoger todos los trofeos. clue: Pensá en cómo resolverás el problema. Identificá si hay tareas repetitivas. ¿Qué bloques te podrían ayudar a resolver estas tareas? - 'nuevo7': + '1007': title: La reparadora de telescopios description: | A Mañic le gusta mantener sus elementos de astronomía en excelente estado, así que se dispone a reparar los telescopios y dejarlos listos para la próxima observación. Ayudala a reparar todos los telescopios. clue: ¿Sería una buena estrategia crear un procedimiento que recorra y repare una fila de telescopios, luego repetirlo en cada fila? - 'nuevo8': + '1008': title: Mañic y los planetas description: | Es una noche sin nubes, ideal para observar todos los planetas que se ven desde el campo en el que está Mañic. Ayudala a observar todos los planetas con su telescopio. clue: ¿Sería posible crear una estrategia que te permita **reutilizar** un mismo procedimiento varias veces? - 'nuevo9': + '1009': title: Cargando los celus description: | Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador, y luego ir a cargar cada uno de los celulares. ¿Cómo podrías ayudarla? clue: ¿En cuántas partes te conviene dividir tu estrategia? - 'nuevo10': + '1010': title: Instalando juegos description: | Yvoty va a instalar un juego en tres computadoras para que ella y sus amigas tengan todo listo para divertirse esta noche. Los pasos para instalarlo son: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Ayudala a completar la instalación de las tres compus. clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' - 'nuevo12': + '1012': title: Limpiando el humedal description: 'Capy necesita limpiar el humedal antes de ir a surfear. Para lograrlo, Capy necesita agarrar 3 latas y 3 papeles y llevarlos hasta el tacho, pero no puede tirar más de uno a la vez. Luego, se sube al yacaré y se va a surfear!' clue: '' - 'nuevo13': + '1013': title: Chuy y la pelota indecisa description: | Chuy quedó emocionade con el campeonato de fútbol femenino y quiere imitar a sus heroínas practicando tiros libres con su pelota. Para eso, debe correr hacia ella y patearla **sólo si hay una pelota**. Si no, no hace nada. Ayudá a Chuy a hacer sus tiros libres, pateando todas las pelotas. clue: 'Antes que nada, apretá varias veces el botón **Ejecutar** y fijate cómo cambia el escenario. Para patear, Chuy y la pelota deben estar en la misma casilla.' - 'nuevo14': + '1014': title: ¿Pelota o paleta? description: | Sabemos que a Chuy le gustan todos los deportes, nunca son demasiados y se dispone a jugar varios a la vez :smile:. Según aparezca una pelota de fútbol o una de ping-pong, Chuy deberá patearla o rebotarla en la paleta. Ayudá a Chuy a practicar estos deportes. clue: 'Cuando sólo hay 2 opciones (en este caso puede haber una pelota de fútbol o una pelota de ping pong), alcanza con hacer una sola pregunta. Para estas situaciones se puede usar el bloque `Si… si no`.' - 'nuevo15': + '1015': title: | Chuy, jugadore de toda la cancha description: | ¡Chuy no se quiere perder ninguna jugada! Esta vez está practicando sus movimientos rápidos hacia abajo y hacia la derecha, según se presente la posibilidad. ¡Ayudale a practicar! clue: Hay que encontrar una manera de que Chuy pueda **sensar** si debe moverse hacia la derecha o hacia abajo ya que el escenario no siempre es el mismo. - 'nuevo16': + '1016': title: Alineando telescopios description: | Para observar correctamente a las estrellas, los telescopios de Mañic deben estar bien alineados con los astros. Ayudá a nuestra científica amiga a alinear los telescopios que encuentre en su camino. clue: 'Fijate primero cómo hacer un procedimiento para **alinear telescopio si es que lo hay**.' - 'nuevo17': + '1017': title: Yvoty saca buenas fotos description: Como fotógrafa, Yvoty es cuidadosa de la iluminación en cada paisaje que retrata. Para ello, en cada toma, prueba varias combinaciones de luces con la ayuda de las luciérnagas. ¿Cómo podría Yvoty despertar a todas las luciérnagas teniendo en cuenta que cambian de lugar? ¡Ayudala! clue: '¿Qué es lo que varía y qué es lo que se mantiene constante en cada ejecución?' - 'nuevo18': + '1018': title: Barrilete cósmico description: | Cuando Chuy lleva la pelota, no hay obstáculo que pueda detenerle. Ayudale a encontrar el recorrido para llegar a la esquina inferior derecha de la cancha, esquivando los obstáculos que se le presenten. clue: 'Los diferentes caminos posibles... ¿tienen el mismo o distinto largo? Recordá que en cada ejecución te encontrarás con un escenario distinto.' - 'nuevo19': + '1019': title: Super Yvoty 1 description: | ¡Yvoty continúa tomando fotos! Por lo que sigue necesitando la ayuda de las luciérnagas para tener una buena iluminación. Ayudala a despertar a todas las luciérnagas teniendo en cuenta que el camino que recorre puede ser más corto o más largo. clue: Aprovechá los nuevos bloques, pueden ayudarte a resolver el desafío de manera muy sencilla. - 'nuevo20': + '1020': title: Super Yvoty 2 description: | En este caso, Yvoty también debe despertar a todas las luciérnagas que encuentre para iluminar bien el paisaje, pero ahora no sólo no se conoce el largo del camino… ¡sino que tampoco se sabe si habrá o no luciérnagas en cada paso! ¿Servirá la misma ayuda que le diste en "Super Yvoty 1"? clue: El bloque `repetir hasta que` repite una secuencia de acciones **hasta que se cumpla una condición**. Esto se llama **repetición condicional**. - 'nuevo21': + '1021': title: Laberinto con pelotas description: | Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' - 'nuevo22': + '1022': title: Capy busca a Guyrá description: | Ayuda a Capy a encontrar a Guyrá clue: '' - 'nuevo23': + '1023': title: Fútbol al sur description: | ¿Es el fútbol el deporte favorito de Chuy? No lo sabemos ciertamente, pero lo que sí es seguro es que no se pierde un solo partido. En esta oportunidad, ayudá a Chuy a patear todas las pelotas. clue: 'La cantidad de filas es constante, pero la longitud de cada una es variable. Fijate cómo manejar estos dos datos para recorrer las mismas y llegar a cada una de las pelotas de fútbol. Una buena idea es hacer un procedimiento que resuelva una fila, ¿no te parece?' - 'nuevo24': + '1024': title: Prendiendo las compus description: | Yvoty siempre está predispuesta a resolver cuestiones técnicas. En este caso, la escuela le pidió ayuda para encender las computadoras de todas las aulas. El desafío es que las aulas tienen diferentes tamaños… ¡Ayudala a prender todas las computadoras! clue: '¿Sería posible prender todo un lado del rectángulo del aula, y luego repetirlo en cada tramo?' - 'nuevo25': + '1025': title: Contando planetas y estrellas description: | Mañic debe recorrer todas las casillas y contar cuántas estrellas y planetas hay en total. Pista: primero pensá cómo contarías si hay una estrella o un planeta en una casilla determinada. Luego pensá cómo harías para contar todos los astros de una sola columna. clue: Subdividir un problema grande en problemas más pequeños ayuda a comprender mejor cada una de las partes que lo componen. Además nos permite concentrarnos en resolver cuestiones más sencillas al problema original. - 'nuevo26': + '1026': title: La Supermaratón description: | Chuy debe realizar su rutina matutina que consiste en recorrer una cierta cantidad de kilómetros que varía día a día (entre 15 y 45 km). ¡Lográ que Chuy llegue siempre a destino sin pasarse! Pista: mirá en la categoría "Sensores" si hay algo que te pueda servir. clue: Se puede usar un bloque "Repetir" con el valor de un sensor. Esto permite repetir una secuencia de código la cantidad de veces que indique el sensor - 'nuevo27': + '1027': title: Mañic cuenta de nuevo description: 'Mañic tiene que contar otra vez los astros, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que la pueda ayudar?' clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parada Mañic.' - 'nuevo28': + '1028': title: El humedal de Capy y Guyrá description: | Los amigos, Capy y Guyrá, siguen limpiando el humedal. Pero esta vez la situación es un poco más complicada… ¡no se pueden mover hacia abajo! :scream: La buena noticia es que los desechos que deben limpiar están siempre en el mismo lugar. Ayudalos a recoger todas las latas. clue: | A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos `Recoger 2 latas a la derecha`, `Recoger 3 latas a la derecha` y `Recoger 4 latas a la derecha`, podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría `Recoger latas a la derecha con [cantidad]` y se reemplaza el **parámetro** `[cantidad]` por 2, 3 o 4 en cada caso. Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el **+** que aparece al lado del nombre en el bloque `Definir`. - 'nuevo38': + '1038': title: Las estrellas de Mañic description: | Mañic conoce el lugar ideal para observar su estrella favorita. Pero a veces le es difícil llegar porque hay obstáculos que se interponen en su camino, haciéndolo más largo. Ayudá a Mañic a observar la estrella, esquivando los obstáculos. ¡No te olvides de guardar la solución! La necesitarás más adelante. :wink: clue: | ¿Cuántos caminos posibles existen para llegar a la estrella? ¿Qué cambia en cada uno de ellos? - 'nuevo39': + '1039': title: La estrella interesante description: | ¡Le avisaron a Mañic sobre una nueva estrella! El punto de observación está al final de un sendero largo y peligroso. Ayudala a llegar y observar la estrella esquivando todo los obstáculos. clue: ¿Existe algún patrón que se repita? ¿Podría ayudar en algo la solución del desafío anterior (“Las estrellas de Mañic”)? - 'nuevo40': + '1040': title: | Hilera de latas description: | _“No hay mejor plan que despertar por la mañana para mejorar un poco el mundo”_, le comenta Capy a Guyrá. Ayudalos a encontrar el recorrido para recoger todas las latas que hallen a su paso. ¡No te olvides de guardar la solución! La necesitarás más adelante. :wink: clue: ¿Cómo pueden saber si hay una hilera de latas? ¿Qué deberían hacer si no hay ninguna lata? - 'nuevo41': + '1041': title: | Turistas latosos description: | Lamentablemente, la cantidad de latas desechadas por turistas aumenta constantemente :pensive:. Por eso Capy y Guyrá necesitan trabajar cada día más para mantener el humedal sin residuos. ¿Qué recorrido deberían hacer para recoger todas las latas? clue: ¿Hay alguna tarea que Capy y Guyrá tengan que realizar repetitivamente? ¿De qué forma la solución del desafío anterior (“Hilera de latas”) podría ser de ayuda? - 'nuevo42': + '1042': title: | A veces latas, a veces papeles description: | Es un día particularmente difícil en el humedal. La cantidad de residuos que dejaron les turistas es tan enorme como triste. Ayudá a Capy y Guyrá a recoger todas las latas y papeles que encuentren a su paso. clue: Pensá una estrategia que permita recorrer una fila y recoger todas las latas y papeles. Luego... ¿se podría hacer lo mismo en las demás filas? - 'nuevo43': + '1043': title: | El pasillo curvo de celus description: | Yvoty tiene mucho trabajo esta mañana. Sus amigues la llamaron porque todos los celus de la selva se bloquearon y necesitan que ella, con su conocimiento, los desbloquee. Ayudala a desbloquear todos los teléfonos que vaya encontrando. clue: Como en otros desafíos, buscá los patrones, las cosas que son iguales para resolver ese patrón y luego replicar. Por ejemplo, las curvas del sendero, ¿son iguales entre sí? - 'nuevo44': + '1044': title: | El festín astronómico description: | Mañic está de fiesta. Los astros están más brillantes que nunca. La visibilidad es óptima y la noche está para disfrutarla investigando este fenómeno que no sucede seguido. ¿Qué recorrido debería hacer Mañic para observar todas las estrellas y planetas? clue: Una observación habitual de Mañic es una columna de seis astros alineados. ¿Cuántas columnas tiene el evento astronómico? Si lográs hacer que Mañic observe los astros de una columna y luego replicar esta acción en cada una de ellas... ¡Cuidado con los obstáculos! - 'nuevo45': + '1045': title: | Fotografiando mariposas description: | Yvoty se descargó una nueva aplicación para fotografiar objetos cercanos. Nada mejor que probarla sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. Ayudá a Yvoty a fotografiar a todas las mariposas. clue: 'Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero una casilla, luego una fila o columna, y finalmente un grupo de mariposas.' - 'nuevo131': + '1131': title: Reciclando papeles description: | Ayudá a Capy y Guyrá a dejar un papel en el tacho al final de cada fila. ¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! clue: 'Si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila?' - 'nuevo132': + '1132': title: Prendiendo las compus parametrizado description: 'Yvoty es tan hábil con la tecnología que le volvieron a pedir ayuda desde la escuela para encender las computadoras de todas las aulas. Si bien las aulas siguen teniendo diferentes tamaños, Yvoty aprendió cosas nuevas que van a hacer esta tarea más rápida. ¡Ayudá a Yvoty a prender todas las computadoras!' clue: 'Podés definir un único procedimiento con un parámetro para prender las computadoras de cualquier fila o columna. En este caso, el parámetro será la dirección en que debe moverse Yvoty (¡no siempre deben ser números!)' - 'nuevo133': + '1133': title: Mariposas encuadradas description: Yvoty salió a recorrer la selva misionera y se encontró con un grupo de mariposas… ¡Una hermosa escena para fotografiar! La dificultad está en que las mariposas están en constante movimiento, por lo que no siempre se quedan en el mismo lugar. Ayudala a fotografiar a todas las mariposas. clue: 'Dos datos importantes: las mariposas nunca se posan en las casillas de la esquina y el sendero que recorre Yvoty siempre es el mismo.' - 'nuevo134': + '1134': title: Trofeos y más trofeos description: La colección de trofeos de Chuy crece día a día. Acompañale a recogerlos. Tené en cuenta que la posición de los mismos no cambia y que tanto las direcciones como la cantidad de trofeos podrían ser parámetros... clue: Una característica muy útil es que podés combinar parámetros numéricos (cantidades, medidas) con parámetros de texto (direcciones, nombres). ¡Aprovechala! diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index d47cef9dd..3cb0a67a3 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -649,95 +649,95 @@ model: Já temos um programa feito para o Toto ler a província que fica ao sul do Rio Negro. Veja se funciona ou o que precisa ser corrigido. clue: A província é Chubut. Com o botão 'PASSO' o Toto pode executar as instruções uma a uma - 'nuevo2': + '1002': title: Chuy joga uma embaixadinha description: Faça que Chuy dê um passo à frente, aqueça-se movendo-se para frente e para trás, pegue a bola pulpito, jogue uma embaixadinha virando a bola e quicando-a com o pé e, finalmente, retorne ao seu lugar. clue: Novas ações podem ser criadas em Procedimentos definindo novos blocos que incluem outras ações. - 'nuevo3': + '1003': title: Eu adoro quicar a bola de pingue-pongue description: | Ajude Chuy a quicar a bola de pingue-pongue 30 vezes seguidas. Dica: pode ser resolvido com menos de 30 blocos. clue: O bloco Repetir permite que você escolha o número de vezes que deseja repetir uma sequência de ações. Isso é chamado de "Repetição Simples". - 'nuevo4': + '1004': title: Mañic en el cielo description: | Mañic está facinado con el cielo y le encanta observar todo, principalmente: ¡las estrellas! Ayudalo a cumplir su objetivo. Pista: Crear un procedimiento (bloque) para cada conjunto de estrellas clue: 'Hay muchas formas de observar estrellas. Podés empezar por las de la derecha, ¡o podés empezar por arriba! ¿Se te ocurre otra estrategia? Pensala siempre antes de programar' - 'nuevo5': + '1005': title: Yvoty despierta las luciérnagas description: | Ayudá a Yvoty a despertar todas las luciérnagas. Pista: creá un procedimiento para despertar todas las luciérnagas de una diagonal. clue: Se puede crear un procedimiento una vez y usarlo todas las veces que quieras dentro de un programa. - 'nuevo7': + '1007': title: La Reparadora de Telescopios description: | Ayudá a Mañic a reparar todos los telescopios. Pista: podés hacer un procedimiento que tome una fila de telescopios. clue: Usar muchas veces un procedimiento te ahorra trabajo. - 'nuevo8': + '1008': title: Mañic y los planetas description: | Mañic tiene que observar todos los planetas de la cuadrícula. Pensá de qué manera puede hacerlo creando los bloques necesarios. clue: Podés también pensar si existe una estrategia que te permita **reutilizar** un mismo procedimiento varias veces. - 'nuevo9': + '1009': title: Cargando los celus description: | Yvoty debe cargar con el cargador a los 7 celus que hay en esta escena. Buscá primero el cargador y luego pasá por cada celular cargandolo. Pista: ¿Cuántas partes debería tener tu estrategia? clue: '' - 'nuevo10': + '1010': title: Instalando juegos description: | Yvoty tiene que instalar un juego en 3 compus para divertirse con sus amigos. Los pasos para instalarlo en cada una son: encenderla, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Pista: aprovechá que en cada compu hay que hacer el mismo trabajo. clue: '' - 'nuevo12': + '1012': title: Limpando o pantanal description: 'Capy precisa limpar o pântano antes de surfar. Para conseguir isso, Capy precisa pegar 3 latas e 3 pedaços de papel e levá-los para o lixo, mas não pode jogar mais de um de cada vez. Aí ele sobe no jacaré e finalmente a surfar!' clue: '' - 'nuevo16': + '1016': title: Tres telescopios description: | Mañic debe reparar todos los telescopios rotos que aparezcan en las casillas. ¡Pero no siempre aparecen en los mismos lugares ni la misma cantidad de telescopios! Pista: pensá primero cómo harías un procedimiento para reparar un solo telescopio si es que lo hay. clue: '' - 'nuevo17': + '1017': title: Yvoty despierta más luciérnagas description: Yvoty necesita despertar a las luciérnagas para poder conocer el camino... ¡Pero en cada ejecución cambian de lugar! Podés utlizar los procedimientos y bloques de control. clue: '' - 'nuevo19': + '1019': title: Súper Yvoty 1 description: | Ayudá a Yvoty a despertar las luciérnagas. ¡Ojo! En todas las celdas hay una luciérnaga, pero no sabés cuántas celdas hay en cada ejecución. clue: Hay nuevos bloques que pueden ayudarte a resolver el desafío de manera muy sencilla. ¡Aprovechalos! - 'nuevo20': + '1020': title: Súper Yvoty 2 description: | Súper Yvoty debe despertar a todas las luciérnagas, pero a diferencia del desafío anterior, hay celdas sin luciérnagas. ¿Podrás utilizar el mismo procedimiento que en Súper Yvoty 1? clue: El bloque "repetir hasta que" repite una secuencia de acciones hasta que se cumple una condición. Esto se llama "repetición condicional". - 'nuevo22': + '1022': title: Capy busca a Guyrá description: | Ayuda a Capy a encontrar a Guyrá clue: '' - 'nuevo24': + '1024': title: Prendiendo las compus description: | Debemos prender todas las compus teniendo en cuenta que el ancho y el alto del escenario cambian en cada ejecución. Pista: pensá cómo harías para prender las compus de un solo lado del rectángulo y después repetilo para el resto de los lados. clue: '' - 'nuevo25': + '1025': title: Contando planetas e estrelas description: | Mañic deve passar por todos os quadrados e contar quantas estrelas e planetas existem no total. Dica: primeiro pense em como você contaria se houvesse uma estrela ou um planeta em um determinado quadrado. Em seguida, pense em como você faria para contar todos os corpos celestiais em uma única coluna. clue: Subdividir um grande problema em problemas menores ajuda a compreender melhor cada uma de suas partes componentes. Também nos permite focar na solução de questões mais simples do problema original. - 'nuevo26': + '1026': title: A Supermaratona description: | Chuy deve realizar sua caminhada matinal, que consiste em percorrer um determinado número de quilômetros que varia de dia para dia (entre 15 e 45 km). Certifique-se de que Chuy sempre chegue ao destino sem exagerar! Dica: procure na categoria "Sensores" se há algo que pode ajudar-te. clue: Você pode usar um bloco "Repetir" com o valor de um sensor. Isso permite que uma sequência de código seja repetida o número de vezes indicado pelo sensor - 'nuevo27': + '1027': title: Mañic conta novamente description: Mañic tem que contar os astros novamente, mas agora ela não pode verificar se já atingiu o fim de uma coluna! Existe um sensor que pode ajudá-la? clue: Um sensor nos permite obter informações que podem mudar a cada execução do programa, até na mesma execução. Por exemplo, o comprimento de cada coluna varia dependendo da coluna em que Mañic está. - 'nuevo28': + '1028': title: El planeta de Capy y Guyrá description: | Ayudá a Capy y Guyrá a recoger todas las latas. ¡Cuidado! No se puede bajar... @@ -745,62 +745,62 @@ model: clue: | A los procedimientos se les pueden agregar parámetros para que resulten más generales. Por ejemplo, si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazar a los tres por un solo procedimiento que reciba como parámetro la cantidad de latas que queremos recoger a la derecha: "Recoger a la derecha esta cantidad: [cantidad]". Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". - 'nuevo38': + '1038': title: Las estrellas de Mañic description: | En los caminos de Mañic suele haber muchos obstáculos que se interponen, impidiendo que pueda ir a observar su estrella favorita. Si eso pasa, debe tomar el largo y agotador camino sinuoso. Ayudá a Mañic a observar la estrella al final del camino. ¡No te olvides de descargar tu solución! (la vas a necesitar más adelante). clue: ¿Cuántos posibles caminos hacia la estrella existen? ¿Todos ellos se pueden recorrer siempre o depende de algo? - 'nuevo39': + '1039': title: Los caminos de Mañic description: | Mañic escuchó la ubicación de otra hermosa estrella para observar, aunque el camino es más largo y peligroso. El camino no siempre está libre de obstáculos. clue: ¿Hay algún patrón que se repita? ¿Nos podría ayudar la solución del desafío anterior (Las estrellas de Mañic)? - 'nuevo40': + '1040': title: | Hilera de latas description: | “Nada mejor que despertar por la mañana y salir a mantener un mundo mas limpio” piensa Capy. Ayudá a Capy a recoger todas las latas que encuentre a su paso. No te olvides de descargar tu solución (la vas a necesitar más adelante). clue: ¿Cómo puede saber Capy fácilmente si hay una hilera de latas? ¿Qué debería hacer si no hay ninguna lata? - 'nuevo41': + '1041': title: | Muchas hileras de latas description: | Hoy es un día especial para ayudar a mantener el planeta mas limpio... pero hay personas que tiran las latas al piso. Ayudá a Capy a levantar las latas de todas las hileras que encuentre a su paso. clue: ¿Hay alguna tarea que Capy tenga que realizar varias veces? ¿Nos podría ayudar la solución del desafío anterior (Hilera de latas)? - 'nuevo42': + '1042': title: | A veces latas, a veces papeles description: | La vida en el planeta puede ser muy difícil para Capy, así que toparse con un área llena de basura es todo un problema. Ayudá a Capy a recoger todas las latas y papales que encuentre a su paso. clue: Pensá una estrategia que permita que Capy recorra una fila y recoja todas las latas y papeles que encuentre. ¿Se podrá hacer lo mismo en las demás filas? - 'nuevo43': + '1043': title: | El pasillo curvo de celus description: | ¡Yvoty encontró un pasillo lleno de celus! El único problema es que el pasillo da varias vueltas y los celus justo están ahí… ¿Podrá Yvoty desbloquear todos los celus de este pasillo? clue: Los celus se encuentran justo en las curvas que da el pasillo. Una estrategia para desbloquear los celus en una curva sería una excelente ayuda. - 'nuevo44': + '1044': title: | El festín astronómico description: | Mañic vino a observar los astros al lugar de siempre, aunque escuchó rumores que se está dando un gran evento astronómico en el cielo… ¡Hoy es un gran día para darse un festín! clue: Una observacion habitual de Mañic es una columna de 6 astros. ¿Cuántas columnas tiene un evento astronómico? Si lográs hacer que Mañic observe los astros de una columna tal vez puedas hacer lo mismo en un evento. - 'nuevo45': + '1045': title: | Observadora de mariposas description: | El universo tiene millones y millones de galaxias; por suerte para el recolector de estrellas, hoy debe recolectar solamente dos galaxias muy pequeñas. clue: 'Cada galaxia es un grupo de estrellas distribuidas de forma diferente pero siempre en un mismo espacio. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero un casillero, luego una fila o columna, y finalmente una galaxia.' - 'nuevo131': + '1131': title: Reciclando papeles description: | Ayudá a Capy y Guyrá a dejar un papel en el tacho al final de cada fila. ¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! Pista: si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila? clue: '' - 'nuevo132': + '1132': title: Prendiendo las compus parametrizado description: 'Al igual que antes, debemos prender todas las compus. Pero esta vez tenés que definir un único procedimiento que prenda cualquiera de los lados.' clue: 'Los parámetros pueden ser direcciones, no siempre deben ser números. Por ejemplo, un parámetro podría ser la dirección en que el autómata debe moverse.' - 'nuevo133': + '1133': title: Mariposas encuadradas description: Yvoty debe observar todas las mariposas del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que las casillas de la esquina nunca tienen mariposas y que el tamaño del cuadrado no varía de una ejecución a la otra. clue: '' From 9f97e7ae1121b39292d88b831491e93204701d90 Mon Sep 17 00:00:00 2001 From: Tomas Floxo <37090248+tfloxolodeiro@users.noreply.github.com> Date: Mon, 6 Nov 2023 12:24:02 -0300 Subject: [PATCH 150/212] detalles traducciones --- translations/components/en-us.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translations/components/en-us.yaml b/translations/components/en-us.yaml index 431554be9..bed3a79ab 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -95,8 +95,8 @@ acceptTermsAndConditions: toUse: ' to use Pilas Bloques' accept: I accept the terms of use and conditions backendOutage: - title: "Pilas Bloques is under manteinance" - notice: "We are performing manteinance on our servers. You may face some inconveniences when registering your user, logging in or viewing your previous solutions. Don't worry! Your previous solutions are safe 😉" + title: "Pilas Bloques is under maintenance" + notice: "We are performing maintenance on our servers. You may face some inconveniences when registering your user, logging in or viewing your previous solutions. Don't worry! Your previous solutions are safe 😉" accept: Understood finishedExerciseModal: congratulationsModal: @@ -118,7 +118,7 @@ spects: # For the program: uses_simple_repetition: Remember to use REPETITION to do something multiple times, instead of many equal blocks! # For program or procedure: - uses_conditional_alternative: ¿Does your program work only sometimes? You could use conditional alternatives to check for all possible scenarios. + uses_conditional_alternative: Does your program work only sometimes? You could use conditional alternatives to check for all possible scenarios. uses_conditional_repetition: You can use conditional repetition if you need to repeat something until the condition is met. main_too_long: Main program is too long and hard to read. Try divinding it into simpler pieces of work using procedures. too_long: This procedure is too long and hard to read. Try divinding it into simpler pieces of work using procedures. @@ -177,7 +177,7 @@ spects: uses_conditional_alternative: You should use conditional alternative to consider all possible scenarios. uses_conditional_repetition: You should use conditional repetition to consider all scenarios. main_too_long: The main program should be subdivided into simpler pieces of work using procedures. - too_long: Your procedures should not be that long, they may also be subdivided into simpler pieces of work (procedures). - do_something: You should not have empty procedures, with no blocks. - name_was_changed: You should choose a great name for each one of your procedures. - does_not_nest_control_structures: You may also divide your repetitions and alternatives into simpler pieces of work using procedures. + too_long: Your procedures should not be long, they should also be subdivided into simpler pieces of work (procedures). + do_something: You should not have empty procedures with no blocks. + name_was_changed: You should choose a good name for each one of your procedures. + does_not_nest_control_structures: You should also divide your repetitions and alternatives into simpler pieces of work using procedures. From 40696447531e0e78fda7e2589f27a1aaf027ee27 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Mon, 6 Nov 2023 20:31:54 -0300 Subject: [PATCH 151/212] test --- .../integration/desafios/BuscandoLasEstrellas=test.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/integration/desafios/BuscandoLasEstrellas=test.js diff --git a/tests/integration/desafios/BuscandoLasEstrellas=test.js b/tests/integration/desafios/BuscandoLasEstrellas=test.js new file mode 100644 index 000000000..ea930c8a4 --- /dev/null +++ b/tests/integration/desafios/BuscandoLasEstrellas=test.js @@ -0,0 +1,10 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "BuscandoLasEstrellas"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: '579' + }); +}); \ No newline at end of file From f27ddfba4260979cd49e21a2a1216c88c3619d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 6 Nov 2023 22:19:02 -0300 Subject: [PATCH 152/212] desafio 1029 --- app/services/blocks-gallery.js | 2 +- app/utils/staticData/desafios.js | 7 +++++++ translations/en-us.yaml | 5 +++++ translations/es-ar.yaml | 5 +++++ translations/pt-br.yaml | 5 +++++ 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 577f1ce63..4f4aea8f5 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1082,7 +1082,7 @@ export default Service.extend({ "name": "longitud", } ], - code: 'hacer(actor_id, "DibujarHaciaAdelante", {distancia: $longitud, voltearAlIrAIzquierda: false, velocidad: 60});' + code: 'hacer(actor_id, "DibujarHaciaAdelante", {distancia: $longitud, voltearAlIrAIzquierda: false, velocidad: 60, nombreAnimacion: "dibujar"});' }); Blockly.Blocks.DibujarLado.toolbox = ` diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index e1c2e0f89..80a55a965 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3051,6 +3051,13 @@ export const desafios = [ decomposition9: true } }, + { + id: 1029, + nombre: 'DibujandoCuadradoManic', + escena: 'DibujandoCuadradoManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero'] + }, { id: 'nuevo38', nombre: 'LasEstrellasDeManic', diff --git a/translations/en-us.yaml b/translations/en-us.yaml index d5b31b3aa..fb75a8bcf 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -763,6 +763,11 @@ model: clue: | You can add parameters to the procedures, so that they become more general. For instance, if we create the following procedures: "Collect 2 cans on the right", "Collect 3 cans on the right", and "Collect 4 cans on the right", we can replace these three procedures with one procedure with a parameter stating the number of cans we want to collect on the right: "Collect on the right the following number: [number]". For adding a parameter to a new procedure, you have to click on the plus sign. + '1029': + title: | + Drawing: Squares + description: Draw a square where each side's length is 100. + clue: '' 'nuevo38': title: Mañic's stars description: | diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index a86b29a2f..85d1f9dfa 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -804,6 +804,11 @@ model: clue: | A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos `Recoger 2 latas a la derecha`, `Recoger 3 latas a la derecha` y `Recoger 4 latas a la derecha`, podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría `Recoger latas a la derecha con [cantidad]` y se reemplaza el **parámetro** `[cantidad]` por 2, 3 o 4 en cada caso. Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el **+** que aparece al lado del nombre en el bloque `Definir`. + '1029': + title: | + Dibujando: Al cuadrado + description: Dibujá un cuadrado que tenga 100 de lado. + clue: '' 'nuevo38': title: Las estrellas de Mañic description: | diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index d47cef9dd..60fd00fbc 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -745,6 +745,11 @@ model: clue: | A los procedimientos se les pueden agregar parámetros para que resulten más generales. Por ejemplo, si creamos los procedimientos "Recoger 2 latas a la derecha", "Recoger 3 latas a la derecha" y "Recoger 4 latas a la derecha", podemos reemplazar a los tres por un solo procedimiento que reciba como parámetro la cantidad de latas que queremos recoger a la derecha: "Recoger a la derecha esta cantidad: [cantidad]". Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el + que aparece al lado del nombre en el bloque "Definir". + '1029': + title: | + Desenho: Quadrado + description: Desenhe um quadrado com 100 de cada lado. + clue: '' 'nuevo38': title: Las estrellas de Mañic description: | From 1f1c06a7c4d3395e284cae4edf85701e8c7459fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 6 Nov 2023 22:23:50 -0300 Subject: [PATCH 153/212] tests --- .../desafios/DibujandoManic-test.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/integration/desafios/DibujandoManic-test.js diff --git a/tests/integration/desafios/DibujandoManic-test.js b/tests/integration/desafios/DibujandoManic-test.js new file mode 100644 index 000000000..460cbc2be --- /dev/null +++ b/tests/integration/desafios/DibujandoManic-test.js @@ -0,0 +1,48 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +moduloActividad('DibujandoCuadradoManic', () => { + + actividadTest('DibujandoCuadradoManic', { + solucion: ` + + + + + + + + + + Dibujar cuadrado de 100 + + + + + 4 + + + + + + + 100 + + + + + + + 90 + + + + + + + + + + ` + }); + +}); \ No newline at end of file From 32ccf8b25a7eaaaec5a0526efe607d0481fb69c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Mon, 6 Nov 2023 22:28:23 -0300 Subject: [PATCH 154/212] bump exercises --- app/utils/staticData/grupos.js | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index e14e4303e..0bb4a8394 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -309,6 +309,7 @@ export const grupos = [ 'nuevo132', 'nuevo133', 'nuevo134', + '1029' ] } ]; diff --git a/package.json b/package.json index 073b75157..5b8682390 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.18", + "pilas-bloques-exercises": "1.4.19", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", From 29852e94fa6c76f13ae13dfe0e51b322c36985ff Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 08:27:01 -0300 Subject: [PATCH 155/212] test --- tests/integration/desafios/LimpiandoElHumedal-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index 536025be1..0936783ae 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -17,7 +17,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', solucion: '', - errorEsperado: 'Para escapar hace falta un transporte' + errorEsperado: 'Para irse hace falta un transporte' }); }); \ No newline at end of file From 7a0aba66f4352a0626834a03bb9f576bb5a55b3e Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 08:38:01 -0300 Subject: [PATCH 156/212] test again --- tests/integration/desafios/LimpiandoElHumedal-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index 0936783ae..536025be1 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -17,7 +17,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', solucion: '', - errorEsperado: 'Para irse hace falta un transporte' + errorEsperado: 'Para escapar hace falta un transporte' }); }); \ No newline at end of file From 3965bc850a06d2837295aeebaff4aff7f4a6e1ac Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 08:56:50 -0300 Subject: [PATCH 157/212] translations --- translations/en-us.yaml | 5 +++++ translations/es-ar.yaml | 5 +++++ translations/pt-br.yaml | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/translations/en-us.yaml b/translations/en-us.yaml index a44f98854..1aa6f9659 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -809,6 +809,11 @@ model: description: | The universe has millions and millions of galaxies; luckily for the star collector, today he must collect only two very small galaxies. clue: 'Each galaxy is a group of stars distributed differently but always in the same space. Think of a strategy that goes from the simplest to the most complex: first a box, then a row or column, and finally a galaxy.' + 'nuevo130': + title: Searching for the stars + description: | + In order for Mañic to invite his friends to observe the stars, she has to arrange the three telescopes by moving them a certain number of times until they are positioned correctly. + clue: 'Guide yourself by the shadows of the telescopes to know how far to move them' 'nuevo131': title: Recycling Papers description: | diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index a86b29a2f..9dea35d08 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -851,6 +851,11 @@ model: description: | Yvoty se descargó una nueva aplicación para fotografiar objetos cercanos. Nada mejor que probarla sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. Ayudá a Yvoty a fotografiar a todas las mariposas. clue: 'Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero una casilla, luego una fila o columna, y finalmente un grupo de mariposas.' + 'nuevo130': + title: Buscando las estrellas + description: | + Para que Mañic pueda invitar a sus amigos a observar las estrellas, tiene que acomodar los tres telescopios moviéndolos una cierta cantidad de veces hasta ubicarlos correctamente. + clue: 'Guiate por las sombras de los telescopios para saber hasta donde moverlos' 'nuevo131': title: Reciclando papeles description: | diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index d47cef9dd..c79115bfa 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -791,6 +791,11 @@ model: description: | El universo tiene millones y millones de galaxias; por suerte para el recolector de estrellas, hoy debe recolectar solamente dos galaxias muy pequeñas. clue: 'Cada galaxia es un grupo de estrellas distribuidas de forma diferente pero siempre en un mismo espacio. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero un casillero, luego una fila o columna, y finalmente una galaxia.' + 'nuevo130': + title: Procurando pela estrelas + description: | + Para que Mañic convide seus amigos para observar as estrelas, ela deve organizar os três telescópios movendo-os um certo número de vezes até que estejam posicionados corretamente. + clue: 'Guie-se pelas sombras dos telescópios para saber até onde movê-los' 'nuevo131': title: Reciclando papeles description: | From d0061753cf89451cf1d7af63d7022aa6a47cf18f Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 09:48:16 -0300 Subject: [PATCH 158/212] pbe tag --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7b1eaa635..f3844eb92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.18", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.18.tgz", - "integrity": "sha512-o+1nyle3N4El/FVSQt1VQEDVPRUBE4Djm3Rfq7nVyW6rKFYMbKy34T1xxOQJkJt0bAR6V8SZecsrEAmso4YBAw==", + "version": "1.4.20", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.20.tgz", + "integrity": "sha512-VXO/y0cXUMeOT8fS2GUsXxyVFqfxyiQBiQAEV/SzQKhU2uXHoHyV8HvwNtNecyxiuTN9gGgjGjxo2RgzELM/Pg==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 073b75157..75f1d4bda 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.18", + "pilas-bloques-exercises": "1.4.20", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 8b2d2d0b5..276d0813a 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 6aa7feedf85d0b802b524a31b753857b0dd0650d Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 10:29:25 -0300 Subject: [PATCH 159/212] test filename --- ...ndoLasEstrellas=test.js => BuscandoLasEstrellas-test.js} | 6 ++++++ 1 file changed, 6 insertions(+) rename tests/integration/desafios/{BuscandoLasEstrellas=test.js => BuscandoLasEstrellas-test.js} (50%) diff --git a/tests/integration/desafios/BuscandoLasEstrellas=test.js b/tests/integration/desafios/BuscandoLasEstrellas-test.js similarity index 50% rename from tests/integration/desafios/BuscandoLasEstrellas=test.js rename to tests/integration/desafios/BuscandoLasEstrellas-test.js index ea930c8a4..a39b84c9d 100644 --- a/tests/integration/desafios/BuscandoLasEstrellas=test.js +++ b/tests/integration/desafios/BuscandoLasEstrellas-test.js @@ -7,4 +7,10 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: '579' }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al mover menos veces el telescopio', + solucion: '379', + errorEsperado: '¡El primer telescopio debe moverse 5 veces!' + }); }); \ No newline at end of file From 859ee6d57e26269a98d013b1cbcc8ac36f8cbbd3 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Tue, 7 Nov 2023 11:41:20 -0300 Subject: [PATCH 160/212] Release 1.16.3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7b1eaa635..290924349 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.2", + "version": "1.16.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index eddb769de..5c00b8c38 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.2", + "version": "1.16.3", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 1879b66c0a5814767c21220f8da5daa9ec6df204 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 11:53:23 -0300 Subject: [PATCH 161/212] pbe 1.4.21 --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3844eb92..600ab499f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.20", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.20.tgz", - "integrity": "sha512-VXO/y0cXUMeOT8fS2GUsXxyVFqfxyiQBiQAEV/SzQKhU2uXHoHyV8HvwNtNecyxiuTN9gGgjGjxo2RgzELM/Pg==", + "version": "1.4.21", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.21.tgz", + "integrity": "sha512-0MCzAr8VFX6+K43ZNsRRn1aHKLZVZnZnFAUhldnCdWpg9MLEGSSK7MuWGTEW8JHviWJ72JxbR3DsYYV1rSKjBw==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 7059b3a18..52b78855f 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.20", + "pilas-bloques-exercises": "1.4.21", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 276d0813a..ed3f2f124 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 38b014bca2460d8ab24057bf403d62e04df6508a Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Tue, 7 Nov 2023 15:10:34 -0300 Subject: [PATCH 162/212] test con proc parametrizados --- .../desafios/BuscandoLasEstrellas-test.js | 73 ++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/tests/integration/desafios/BuscandoLasEstrellas-test.js b/tests/integration/desafios/BuscandoLasEstrellas-test.js index a39b84c9d..8314714c3 100644 --- a/tests/integration/desafios/BuscandoLasEstrellas-test.js +++ b/tests/integration/desafios/BuscandoLasEstrellas-test.js @@ -5,9 +5,80 @@ const nombre = "BuscandoLasEstrellas"; moduloActividad(nombre, () => { actividadTest(nombre, { - solucion: '579' + solucion: ` + + + + + + + + + + 5 + + + + + + + + + + + + 7 + + + + + + + + + + + + 9 + + + + + + + + + + + + + + + + + + + + + Mover telescopio veces + + + + + veces + + + + + + + + + ` }); + + actividadTest(nombre, { descripcionAdicional: 'Da error al mover menos veces el telescopio', solucion: '379', From 365b1fb93198b3f1219ebb827706763fbfe2c2b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 7 Nov 2023 20:22:44 -0300 Subject: [PATCH 163/212] fixing test --- app/services/blocks-gallery.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 8d4a5f3f9..78ebbea46 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -1180,25 +1180,25 @@ export default Service.extend({ this.crearBloqueAccion('MoverArribaDibujando', 'moveAndDrawUp', { icono: 'icono.arribaDibujando.png', comportamiento: 'DibujarLinea', - argumentos: '{direccion: [0,1], nombreAnimacion: "correrDibujando", dibujarPuntos: true}', + argumentos: '{direccion: [0,1], nombreAnimacion: "dibujar", dibujarPuntos: true}', }); this.crearBloqueAccion('MoverAbajoDibujando', 'moveAndDrawDown', { icono: 'icono.abajoDibujando.png', comportamiento: 'DibujarLinea', - argumentos: '{direccion: [0,-1], nombreAnimacion: "correrDibujando", dibujarPuntos: true}', + argumentos: '{direccion: [0,-1], nombreAnimacion: "dibujar", dibujarPuntos: true}', }); this.crearBloqueAccion('MoverDerechaDibujando', 'moveAndDrawRight', { icono: 'icono.derechaDibujando.png', comportamiento: 'DibujarLinea', - argumentos: '{direccion: [1,0], nombreAnimacion: "correrDibujando", dibujarPuntos: true}', + argumentos: '{direccion: [1,0], nombreAnimacion: "dibujar", dibujarPuntos: true}', }); this.crearBloqueAccion('MoverIzquierdaDibujando', 'moveAndDrawLeft', { icono: 'icono.izquierdaDibujando.png', comportamiento: 'DibujarLinea', - argumentos: '{direccion: [-1,0], nombreAnimacion: "correrDibujando", dibujarPuntos: true}', + argumentos: '{direccion: [-1,0], nombreAnimacion: "dibujar", dibujarPuntos: true}', }); this.crearBloqueAccion('SaltarArriba', 'jumpUp', { From c9bb698fccb94d02865ab8f49ad17f626b098a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 7 Nov 2023 20:24:19 -0300 Subject: [PATCH 164/212] bump exercises --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2554f55df..b657f1d58 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.19", + "pilas-bloques-exercises": "1.4.22", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", From 7602c381a9c030e80c261d62b00b063f40d083a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 8 Nov 2023 19:35:21 -0300 Subject: [PATCH 165/212] desafios manic dibujando --- app/utils/staticData/desafios.js | 68 ++++++++++++++++++++++++++++++++ app/utils/staticData/grupos.js | 11 +++++- 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index b370b7be3..e0507a853 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -3058,6 +3058,62 @@ export const desafios = [ bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero'] }, + { + id: 1030, + nombre: 'DibujandoRayuelaRoboticaManic', + escena: 'Dibujando5CuadradosHorizontalManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1031, + nombre: 'DibujandoCortoPorLaDiagonalManic', + escena: 'Dibujando5CuadradosDiagonalManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1032, + nombre: 'DibujandoMamushkaCuadradaManic', + escena: 'Dibujando4CuadradosInterioresManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1033, + nombre: 'DibujandoEscaleraCuadradaManic', + escena: 'DibujandoCabezaElefanteManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1034, + nombre: 'DibujandoHexagonoManic', + escena: 'DibujandoHexagonoManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1035, + nombre: 'DibujandoPiramideInvertidaManic', + escena: 'DibujandoTrianguloEquilateroManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1036, + nombre: 'DibujandoFigurasDentroDeFigurasManic', + escena: 'DibujandoPoligonosInterioresManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1037, + nombre: 'DibujandoLaCuevaDeEstalagtitasManic', + escena: 'DibujandoCuevaEstalagtitasManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, { id: 1038, nombre: 'LasEstrellasDeManic', @@ -3242,4 +3298,16 @@ export const desafios = [ 'ParaLaDerecha', 'ParaLaIzquierda', 'ParaArriba', 'ParaAbajo' ] }, + { + id: 1136, + nombre: 'DibujoLibreManic', + escena: `DibujandoLibrementeManic`, + hasAutomaticGrading: false, + bloques: ['Procedimiento', 'Repetir', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'], + expectations: { + decomposition: false, + simpleRepetition: false + } + }, ]; diff --git a/app/utils/staticData/grupos.js b/app/utils/staticData/grupos.js index d6fcfe6e0..ea852fbdc 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -298,6 +298,15 @@ export const grupos = [ 1026, 1027, 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, 1038, 1039, 1040, @@ -310,7 +319,7 @@ export const grupos = [ 1133, 1134, 1135, - 1029 + 1136 ] } ]; From df1601e43164bb2fc0430b53284b3be33110e748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 8 Nov 2023 19:50:06 -0300 Subject: [PATCH 166/212] tests --- .../desafios/DibujandoManic-test.js | 419 ++++++++++++++++++ 1 file changed, 419 insertions(+) diff --git a/tests/integration/desafios/DibujandoManic-test.js b/tests/integration/desafios/DibujandoManic-test.js index 460cbc2be..4d2d44e3c 100644 --- a/tests/integration/desafios/DibujandoManic-test.js +++ b/tests/integration/desafios/DibujandoManic-test.js @@ -45,4 +45,423 @@ moduloActividad('DibujandoCuadradoManic', () => { ` }); +}); + +moduloActividad('DibujandoRayuelaRoboticaManic', () => { + + actividadTest('DibujandoRayuelaRoboticaManic', { + solucion: ` + + + + + + 5 + + + + + + + + + + 50 + + + + + + + + + + + + Dibujar cuadrado de 50 + + + + + 4 + + + + + + + 50 + + + + + + + 90 + + + + + + + + + + ` + }); + + actividadTest('DibujandoRayuelaRoboticaManic', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: '450hacer cuadraditoDescribe esta funcin...45090', + resuelveDesafio: true + }); + +}); + +moduloActividad('DibujandoCortoPorLaDiagonalManic', () => { + + actividadTest('DibujandoCortoPorLaDiagonalManic', { + solucion: '5509050270Dibujar cuadrado de 5045090' + }); + + actividadTest('DibujandoCortoPorLaDiagonalManic', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: '5Dibujar cuadraditoDescribe esta funcin...45090Avanzar a siguiente figuraDescribe esta funcin...509050270', + resuelveDesafio: true + }); + +}); + +moduloActividad('DibujandoMamushkaCuadradaManic', () => { + + actividadTest('DibujandoMamushkaCuadradaManic', { + solucion: '50100150200Dibujar cuadrado de 504largo lado90' + }); + +}); + +moduloActividad('DibujandoEscaleraCuadradaManic', () => { + + actividadTest('DibujandoEscaleraCuadradaManic', { + solucion: '10045050Ir Siguiente grande10090100Dibujar cuadrado4largo lado90' + }); + + + actividadTest('DibujandoEscaleraCuadradaManic', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar', + solucion: '4Dibujar cuadradoDescribe esta funcin...4100905090100270Avanzar a siguiente cuadraditoDescribe esta funcin...9050270Dibujar CuadraditoDescribe esta funcin...45090', + resuelveDesafio: true + }); + + actividadTest('DibujandoEscaleraCuadradaManic', { + descripcionAdicional: 'Solución alternativa debe solucionar el desafío', + solucion: ` + + x + largo del lado + + + + + + + + + + 100 + + + + + + + + + + 100 + + + + + + + 50 + + + + + + + 4 + + + + + + + + + + 50 + + + + + + + + + + 50 + + + + + + + + + + + + + + + + + + + + dibujar un cuadrado + Describe esta función... + + + + + 4 + + + + + + + largo del lado + + + + + + + 90 + + + + + + + + + + + + + + acomodar alien en el cuadrado + Describe esta función... + + + + + 90 + + + + + + + largo del lado + + + + + + + 270 + + + + + + + + + + `, + resuelveDesafio: true + }); + + actividadTest('DibujandoEscaleraCuadradaManic', { + descripcionAdicional: 'Otra solución alternativa debe solucionar el desafío', + solucion: '90100-905049050-90dibujar cuadrado grandeDescribe esta funcin...410090dibujar cuadrado pequeoDescribe esta funcin...45090' + }); + +}); + +moduloActividad('DibujandoHexagonoManic', () => { + + actividadTest('DibujandoHexagonoManic', { + solucion: '610060' + }); + +}); + +moduloActividad('DibujandoPiramideInvertidaManic', () => { + + actividadTest('DibujandoPiramideInvertidaManic', { + solucion: '3100120' + }); + +}); + +moduloActividad('DibujandoFigurasDentroDeFigurasManic', () => { + + actividadTest('DibujandoFigurasDentroDeFigurasManic', { + solucion: '345Dibujar poligono de ladoscantidad100DIVIDE360cantidad' + }); + + actividadTest('DibujandoFigurasDentroDeFigurasManic', { + descripcionAdicional: 'Al tener un bloque con un id que contenga el caracter $, deberia funcionar correctamente, previo a la resolucion del issue no andaba', + solucion: '5100hacer algoDescribe esta funcin...xyDIVIDE360x100', + resuelveDesafio: false + }); +}); + +moduloActividad('DibujandoLaCuevaDeEstalagtitasManic', () => { + + actividadTest('DibujandoLaCuevaDeEstalagtitasManic', { + solucion: '420034040360603100Dibujar poligonocantidadlargo ladoDIVIDE360cantidad' + }); + + + actividadTest('DibujandoLaCuevaDeEstalagtitasManic', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: 'xcantidad de ladoslongitud420034040360603100Dibujar figuraDescribe esta funcin...cantidad de ladoslongitudDIVIDE360cantidad de lados100', + resuelveDesafio: true + }); + +}); + +moduloActividad('DibujoLibreManic', () => { + + actividadTest('DibujoLibreManic', { + descripcionAdicional: 'Se tiene que poder dibujar libremente.', + solucion: ` + + + + + + + 2 + + + + + + + 75 + + + + + + + 90 + + + + + + + 100 + + + + + + + 90 + + + + + + + + + + + + + + + + + 90 + + + +`, + resuelveDesafio: false + }); + + actividadTest('DibujoLibreManic', { + descripcionAdicional: 'No se puede dividir por cero.', + solucion: ` + + + + + + + DIVIDE + + + 90 + + + + + 0 + + + + + + + + `, + errorEsperado: "No se puede dividir por 0", + resuelveDesafio: false + }); + + actividadTest('DibujoLibreManic', { + descripcionAdicional: 'Se puede girar 0 grados.', + solucion: ` + + + + + + + 0 + + + + + + `, + resuelveDesafio: false + }); + }); \ No newline at end of file From 081ede6f6ca614b64c4cf46c8c0de7d13f29d3e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 8 Nov 2023 19:55:58 -0300 Subject: [PATCH 167/212] bump + traducciones --- package-lock.json | 6 ++--- package.json | 2 +- public/pilas.html | 2 +- translations/en-us.yaml | 51 +++++++++++++++++++++++++++++++++++++++++ translations/es-ar.yaml | 51 +++++++++++++++++++++++++++++++++++++++++ translations/pt-br.yaml | 51 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 158 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 290924349..84c33f68c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.18", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.18.tgz", - "integrity": "sha512-o+1nyle3N4El/FVSQt1VQEDVPRUBE4Djm3Rfq7nVyW6rKFYMbKy34T1xxOQJkJt0bAR6V8SZecsrEAmso4YBAw==", + "version": "1.4.23", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.23.tgz", + "integrity": "sha512-kFYpx6CHVqAQycmPnQpwqkv+4xIBXxWNmC9HDZuWr+3QeUNkBXsJNOQVZfEXLjGq6Jly6EJ9M4b9rUtYho0OgA==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index b657f1d58..fafed84f2 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.22", + "pilas-bloques-exercises": "1.4.23", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 8b2d2d0b5..fb093431d 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 84839092e..57d9fbe25 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -768,6 +768,53 @@ model: Drawing: Squares description: Draw a square where each side's length is 100. clue: '' + '1030': + title: | + Drawing: Robotic hopscotch + description: 'Draw 5 squares in a row, where each side''s length is 50, as shown by the shaded figure below.' + clue: '' + '1031': + title: | + Drawing: Cutting through the diagonal line + description: 'Draw 5 squares in a diagonal line, where each side''s length is 50, as shown by the shaded figure below.' + clue: '' + '1032': + title: | + Drawing: Squared mamushkas + description: | + Draw 4 squares, where each side's length is 50, 100, 150, and 200 respectively, as shown by the shaded figure below. Clue: create a new procedure for drawing different squares with different side’s length. + clue: 'Including parameters in the procedures will allow you to generalize a concept. For example, the side’s length of a square.' + '1033': + title: | + Drawing: Squared stairs + description: | + Draw 5 squares. 4 of them where each side's length is 50, and 1 of them where each side’s length is 100, as shown by the shaded figure below. + clue: 'When creating a procedure with parameters, their values are not defined (for example: "side''s length"). When you use the procedures, you have to set a particular value for such parameters (50, 100, etc.).' + '1034': + title: | + Drawing: Hexagon + description: | + Draw a hexagon, where each side's length is 100, as shown by the shaded figure below. Clue: think how many degrees the robot needs to rotate considering the interior angles of the hexagon. + clue: 'In polygons, the exterior angle value is equal to 180 degrees, less the interior angle value.' + '1035': + title: | + Drawing: Inverted pyramid + description: | + Draw an equilateral triangle, where each side's length is 100, as shown by the shaded figure below. Clue: check if there exists a relationship between the different angles and the number of sides. + clue: 'In polygons, the sum of all exterior angles is equal to 360' + '1036': + title: | + Drawing: Figures inside figures + description: | + Draw a triangle, a square, and a pentagon, where each side's length is 100, as shown by the shaded figure below. Clue: create a procedure with a parameter for the number of sides. + clue: | + Now we have the Operators: these blocks will allow us to do the numbers automatically, like a calculator!... How many degrees is a full circle rotation? What number should we divide this by? + '1037': + title: | + Drawing: The cave of stalactites + description: | + Draw 3 triangles, where each side's length is 40, 60, and 100 respectively, and a square where each side’s length is 200, as shown by the shaded figure below. Clue: create a procedure with 2 parameters, one for the number of sides and the other for their length. + clue: 'In order to use the parameters in a new procedure, you have to right click on the block that defines such procedure.' '1038': title: Mañic's stars description: | @@ -831,6 +878,10 @@ model: title: Bouncing the ping pong ball using parameters description: 'In this case we must bounce all the ping pong balls in the square with the paddle, but in each execution they are distributed in a different way. Take into account that the boxes in the corner will never have a ping pong ball, and that the size of the square doesn´t change each time you run the program.' clue: If you don´t have a procedure with parameters to move in any direction... You can create it! + '1136': + title: Free drawing! + description: In this activity you’ll be able to draw whatever you like. + clue: 'We’ve included all blocks possible, so that you can unleash your creativity.' groups: AlienTocaBoton: title: '' diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 50f2dae71..81b4fa5a3 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -809,6 +809,53 @@ model: Dibujando: Al cuadrado description: Dibujá un cuadrado que tenga 100 de lado. clue: '' + '1030': + title: | + Dibujando: Rayuela robótica + description: 'Dibujá 5 cuadrados en fila, cada uno de lado 50, como muestra la figura sombreada.' + clue: '' + '1031': + title: | + Dibujando: Corto por la diagonal + description: 'Dibujá 5 cuadrados en diagonal, cada uno de lado 50, como muestra la figura sombreada.' + clue: '' + '1032': + title: | + Dibujando: Mamushka cuadrada + description: | + Dibujá 4 cuadrados de lados 50, 100, 150 y 200, como muestra la figura sombreada. Pista: creá un procedimiento nuevo para dibujar cuadrados de cualquier longitud de lado. + clue: 'Incluir parámetros en los procedimientos permite generalizar un concepto. Por ejemplo, la longitud del lado de un cuadrado.' + '1033': + title: | + Dibujando: Escalera cuadrada + description: | + Dibujá 5 cuadrados: 4 de lado 50 y uno de 100, como muestra la figura sombreada. + clue: 'Al crear un procedimiento con parámetros, sus valores no están definidos (por ej. "longitud de lado"). Al usar los procedimientos hay que darles un valor concreto a esos parámetros (50, 100, etc.).' + '1034': + title: | + Dibujando: Hexágono + description: | + Dibujá un hexágono de lado 100, como muestra la figura sombreada. Pista: pensá cuántos grados debe girar el robot sabiendo cuánto miden los ángulos internos del hexágono. + clue: 'En los polígonos, el valor de un ángulo externo es igual a 180 menos el valor de un ángulo interno.' + '1035': + title: | + Dibujando: Pirámide invertida + description: | + Dibujá un triángulo equilátero de lado 100, como muestra la figura sombreada. Pista: pensá si existe una relación entre los ángulos y la cantidad de lados. + clue: 'En los polígonos, la suma de todos los ángulos externos es 360' + '1036': + title: | + Dibujando: Figuras dentro de figuras + description: | + Dibujá un triángulo, un cuadrado y un pentágono de lado 100, como muestra la figura sombreada. Pista: creá un procedimiento con un parámetro para la cantidad de lados. + clue: | + Ahora tenemos Operadores: estos bloques nos van a permitir realizar algunas cuentas automáticamente ¡Como una calculadora!... ¿Cuántos grados tiene un giro completo? ¿Por qué número debemos dividirlo? + '1037': + title: | + Dibujando: La cueva de estalactitas + description: | + Dibujá 3 triángulos de lados 40, 60 y 100, y un cuadrado de lado 200, como muestra la figura sombreada. Pista: creá un procedimiento con 2 parámetros, uno para la cantidad de lados y otro para la longitud de los lados. + clue: 'Para poder usar los parámetros en un nuevo procedimiento, hay que hacer clic derecho en el bloque que define dicho procedimiento.' '1038': title: Las estrellas de Mañic description: | @@ -877,6 +924,10 @@ model: title: Paleteando con parámetros description: En este caso debemos rebotar con la paleta todas las pelotas de ping pong del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del cuadrado no varía de una ejecución a la otra. clue: Si no tenés un procedimiento con parámetros para mover en cualquier direccion... ¡Podés crearlo! + '1136': + title: ¡Dibujo libre! + description: En esta actividad vas a poder realizar el dibujo que más te guste + clue: 'Incluímos todos los bloques posibles, para que puedas dar rienda suelta a tus conocimientos.' groups: AlienTocaBoton: title: '' diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 257990bf7..fbb41e81c 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -750,6 +750,53 @@ model: Desenho: Quadrado description: Desenhe um quadrado com 100 de cada lado. clue: '' + '1030': + title: | + Desenho: amarelinha robótica + description: Desenhe 5 quadrados em uma linha, cada um com um lado de 50, como mostrado na figura sombreada. + clue: '' + '1031': + title: | + Desenho: Curto na diagonal + description: Desenhe 5 quadrados na diagonal, cada um com o lado 50, como mostrado na figura sombreada. + clue: '' + '1032': + title: | + Desenho: Mamushka quadrada + description: | + Desenhe 4 quadrados com lados 50, 100, 150 e 200, como mostrado na figura sombreada. Dica: Crie um novo procedimento para desenhar quadrados de qualquer comprimento de lado. + clue: Incluir parâmetros em procedimentos permite generalizar um conceito. Por exemplo, o comprimento do lado de um quadrado. + '1033': + title: | + Desenho: Escada quadrada + description: | + Desenhe 5 quadrados: 4 de lado 50 e um de 100, como visto na figura sombreada.. + clue: Ao criar um procedimento parametrizado, seus valores são indefinidos (por exemplo, "comprimento lateral"). Ao usar os procedimentos, esses parâmetros devem receber um valor específico (50, 100, etc.). + '1034': + title: | + Desenho: Hexágono + description: | + Desenhe um hexágono de lado 100, como mostrado na figura sombreada. Dica: pense em quantos graus o robô deve girar sabendo qual é o comprimento dos ângulos internos do hexágono. + clue: Nos polígonos, o valor de um ângulo externo é igual a 180 menos o valor de um ângulo interno. + '1035': + title: | + Desenho: Pirâmide invertida + description: | + Desenhe um triângulo equilátero de lado 100, como mostrado na figura sombreada. Dica: Pense se existe uma relação entre os ângulos e o número de lados. + clue: Em polígonos, a adición de todos os ângulos externos é 360 + '1036': + title: | + Desenho: Figuras dentro de figuras + description: | + Desenhe um triângulo, um quadrado e um pentágono de lado 100, como mostrado na figura sombreada. Dica: Crie um procedimento com um parâmetro para o número de lados. + clue: | + Ahora tenemos Operadores: estos bloques nos van a permitir realizar algunas cuentas automáticamente ¡Como una calculadora!... ¿Cuántos grados tiene un giro completo? ¿Por qué número debemos dividirlo? + '1037': + title: | + Desenho: A caverna das estalactites + description: | + Desenhe 3 triângulos com lados 40, 60 e 100 e um quadrado com lados 200, como mostrado na figura sombreada. Dica: Crie um procedimento com 2 parâmetros, um para o número de lados e outro para o comprimento dos lados. + clue: Para poder utilizar os parâmetros em um novo procedimento, deve-se clicar com o botão direito do mouse no bloco que define o referido procedimento. '1038': title: Las estrellas de Mañic description: | @@ -813,6 +860,10 @@ model: title: Paleteando con parámetros description: En este caso debemos rebotar con la paleta todas las pelotas de ping pong del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del cuadrado no varía de una ejecución a la otra. clue: Si no tenés un procedimiento con parámetros para mover en cualquier direccion... ¡Podés crearlo! + '1136': + title: ¡Desenho livre! + description: Nesta atividade você poderá fazer o desenho que mais gosta + clue: Incluímos todos os blocos possíveis, para que você possa liberar seu conhecimento. groups: AlienTocaBoton: title: '' From 29341526bbfdf4b93c668b8a0dd747293011aeb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 10 Nov 2023 12:56:48 -0300 Subject: [PATCH 168/212] Release 1.16.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 117c86246..07736227e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.3", + "version": "1.16.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c2023e595..670687e4b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.3", + "version": "1.16.4", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 7a35a2f8501696c61f653c768651e88b11c30588 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Mon, 13 Nov 2023 18:56:21 -0300 Subject: [PATCH 169/212] detalles yacare --- app/services/blocks-gallery.js | 6 +++--- public/iconos/icono.yvoty.png | Bin 0 -> 1260 bytes translations/blocks/en-us.yaml | 2 +- translations/blocks/es-ar.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 public/iconos/icono.yvoty.png diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 78ebbea46..018c62117 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -704,7 +704,7 @@ export default Service.extend({ }); this.crearBloqueAccion('EntregarTelescopio', 'giveTelescope', { - icono: 'icono.telescopio.png', + icono: 'icono.pelota-pulpo.png', comportamiento: 'AgregarASeguidores', argumentos: `{ etiqueta: "ManicConPelota", @@ -726,7 +726,7 @@ export default Service.extend({ }); this.crearBloqueAccion('EntregarPelota', 'giveBall', { - icono: 'icono.pelota-pulpo.png', + icono: 'icono.cargador.png', comportamiento: 'AgregarASeguidores', argumentos: `{ etiqueta: "ChuyConCargador", @@ -737,7 +737,7 @@ export default Service.extend({ }); this.crearBloqueAccion('EntregarCargador', 'giveCharger', { - icono: 'icono.cargador.png', + icono: 'icono.yvoty.png', comportamiento: 'AgregarASeguidores', argumentos: `{ etiqueta: "YvotySinEntregable", diff --git a/public/iconos/icono.yvoty.png b/public/iconos/icono.yvoty.png new file mode 100644 index 0000000000000000000000000000000000000000..98e35079cf1308f8b1c34ba3e3a41100fac17605 GIT binary patch literal 1260 zcmV6!09IO&*qzjg%jg`$@lPiQllS*`ww z2u-xpNsDg!?&#!Xl7H9x4Ix#pPw4n^Wp3zFI2zW%arf+g{o@^)Fl6GxVuc>6>xNmom%ExIL-!-~rN zcb>jII8f;xO+ej45WI9l{T6&~2EoTc5PTj&%{`nIs{SR(Y4}a_&8imLgXT3jIj?HQ zHk__Q$DONtdReNG9ky+FK8B_Yv|d5uTqUdTbB=Byy(+)x5_Wc>NA5Sze*yHNXar*v zbHD%q010qNS#tmYE+YT{E+YYWr9XB600SgRL_t(I5oME0Ok8CchM#krGZ)&S%D~Vm zBRxnF2-+f6Yy;x0u^J*?h$hCkaMA8;qDgh*#)WI+LRr;#OBbk#RZL@yq*5ylN};v1 z$Vdmuv<0T4b7SVrne+QI#!%%X=g)up-tT?i@B0;Q`9AD=QkdQVb}^3-qVlgFtBQtP zp=c^EkAJ1y60$L!J9JEJtTxX+?t3={0D=n3-1m72mG_%r^V+7U#NiSYo`|?zJp;zp#Y|z z)QLC6w*GgNl`mcwqd!mc`?U=7%Q?P$<1w+XwGOjx7uAoyrF^pgsS1D+dvQppZ4tb| zGw4;9B>@9Nnx$z9sjSV|r4_oHYnYr*(c2cnqn2?DFHYt@3Rj}&M!iOH@;Z58671JW zq}I5!lwmQMXJBuH19yi(`rg+bqAYU`eZN4<4nN&n1339wREn}Z@ig3YW!V%WxA|zS z4e;(avy5F_#-q8|g%V{~C7ZJunOMNo49v)1h`A~Bg0IZw;tguH=Lu@-wO6<^T*c9W z78;}V_;x=-Y&^!<<6q;i4l?xi5vtQuxJW6TOXx{A$4u@TowaU7w^Kq=6};5jh`Hx^ zX0uf^A82J}W{Hjm_v76e#hb7xC8oIDDxsbmogvcX(z4s7RFZNkbrcj`4g57|GSlSr z1tJgaW4T9N?#>5{f!Ve!-^yod0($+Dooc?7(+NWaGZIRCg9HAnTbJ)L~z_?>CR&=}ERmfi% z=cgaXuv*#)we_N`zq)KP!NnhrGk11GIK^T`Mteh$>VOAb5;ja9s(%}{Q|9J!f?|C) z_xHb|Yz^)B2cY7c9R6IICI0JooH;d$-&ql+?14(Z$|SnSq$+$DyLz5etj@lFL--rN WY*zp#Q|6KY0000 Date: Mon, 13 Nov 2023 19:04:54 -0300 Subject: [PATCH 170/212] bump exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 290924349..a3adba959 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.18", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.18.tgz", - "integrity": "sha512-o+1nyle3N4El/FVSQt1VQEDVPRUBE4Djm3Rfq7nVyW6rKFYMbKy34T1xxOQJkJt0bAR6V8SZecsrEAmso4YBAw==", + "version": "1.4.25", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.25.tgz", + "integrity": "sha512-IWOOVkfyxU3XKM4Miv0H7IPMolLhkM4yWdO5UpZetg+cyBzW9V78Quf+aeP3fJQpS6aCI0StoHbeDMX3UPMxng==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index b657f1d58..db9903db9 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.22", + "pilas-bloques-exercises": "1.4.25", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 8b2d2d0b5..1cef151d3 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 882075f78485dba26b476984e3685f888455d6d2 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 14 Nov 2023 15:19:05 -0300 Subject: [PATCH 171/212] fix test --- tests/integration/desafios/LimpiandoElHumedal-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index 536025be1..b7920c26b 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -15,9 +15,9 @@ moduloActividad(nombre, () => { }); actividadTest(nombre, { - descripcionAdicional: ' Da error al querer irse sin limpiar el humedal', + descripcionAdicional: 'Da error al querer irse sin limpiar el humedal', solucion: '', - errorEsperado: 'Para escapar hace falta un transporte' + errorEsperado: 'Necesito estar sobre el yacaré para irme' }); }); \ No newline at end of file From ee48ae35551decff375cdc87253fac028bfac8da Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 16 Nov 2023 09:24:05 -0300 Subject: [PATCH 172/212] mutation vs field name --- .../Chuy/InfinitosTrofeos-test.js | 73 +++++++++---------- .../Yvoty/MariposasEncuadradas-test.js | 16 ++-- 2 files changed, 41 insertions(+), 48 deletions(-) diff --git a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js index 3c996b0d9..99fba40b1 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -7,16 +7,15 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - cantidad - direccion + cantidad - + - - + + @@ -31,8 +30,8 @@ moduloActividad(nombre, () => { - - + + @@ -47,8 +46,8 @@ moduloActividad(nombre, () => { - - + + @@ -63,8 +62,8 @@ moduloActividad(nombre, () => { - - + + @@ -92,40 +91,37 @@ moduloActividad(nombre, () => { - - + + Agarrar trofeos hacia - cantidad = 3 - direccion = abajo + cantidad + direccion - - - - - - + + + direccion + + - - - + + cantidad - + - - - - - - - + + + direccion + + + @@ -139,16 +135,16 @@ moduloActividad(nombre, () => { - + 2 - + - + @@ -156,8 +152,8 @@ moduloActividad(nombre, () => { - - + + @@ -174,8 +170,7 @@ moduloActividad(nombre, () => { - `, - skip: true + ` }); }); diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js index beb8d7b31..a60e5631c 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -7,7 +7,7 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - direccion + direccion @@ -73,12 +73,11 @@ moduloActividad(nombre, () => { - - - - - - + + + direccion + + @@ -104,8 +103,7 @@ moduloActividad(nombre, () => { - `, - skip: true + ` }); }); \ No newline at end of file From 36fa0ce6ef6df1b1281cfb36fd44b2c6d3d731e3 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 16 Nov 2023 12:38:32 -0300 Subject: [PATCH 173/212] fix id tests ? --- .../segundoCiclo/Chuy/InfinitosTrofeos-test.js | 18 ------------------ .../Yvoty/MariposasEncuadradas-test.js | 12 ------------ 2 files changed, 30 deletions(-) diff --git a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js index 99fba40b1..f22460dc6 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -6,25 +6,19 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - - cantidad - - - 4 - @@ -34,13 +28,11 @@ moduloActividad(nombre, () => { - 3 - @@ -50,13 +42,11 @@ moduloActividad(nombre, () => { - 4 - @@ -66,13 +56,11 @@ moduloActividad(nombre, () => { - 3 - @@ -112,7 +100,6 @@ moduloActividad(nombre, () => { - @@ -135,16 +122,13 @@ moduloActividad(nombre, () => { - 2 - - @@ -156,13 +140,11 @@ moduloActividad(nombre, () => { - 4 - diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js index a60e5631c..b25451dc7 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -6,18 +6,13 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - - direccion - - - @@ -26,7 +21,6 @@ moduloActividad(nombre, () => { - @@ -35,7 +29,6 @@ moduloActividad(nombre, () => { - @@ -44,7 +37,6 @@ moduloActividad(nombre, () => { - @@ -65,13 +57,11 @@ moduloActividad(nombre, () => { - 6 - @@ -93,11 +83,9 @@ moduloActividad(nombre, () => { - - From b015da927525b578c205db6a842c02cd6b5c5d5d Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 16 Nov 2023 14:37:36 -0300 Subject: [PATCH 174/212] tests y van... --- .../Chuy/InfinitosTrofeos-test.js | 266 +++++++++--------- .../Yvoty/MariposasEncuadradas-test.js | 162 +++++------ 2 files changed, 214 insertions(+), 214 deletions(-) diff --git a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js index f22460dc6..f1342c32f 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -6,153 +6,153 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - - - - - - - - - - 4 - - - - - - - - - - - - - - 3 - - - - - - - - - - - - - - 4 - - - - - - - - + + + + - - - - 3 + + + + 4 - - - - - - - + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + 3 + + + + + + + + + + + - + - + - - - - - - - - - - - - Agarrar trofeos hacia - cantidad - direccion - - - - - direccion + - - - - - - cantidad - - - - - - - - + + + + + + + + Agarrar trofeos hacia + + + + direccion + + + + + + + cantidad - - + + + + + + + direccion + + + + + + + + - - - + - - - - Agarrar trofeos centro - - - - - 2 - - - - - - - - - - - - - - - - - - 4 + + + Agarrar trofeos centro + + + + + 2 + + + + + + + + + + + + + + + + + + 4 + + + + + + + - - - - - - + - - - ` + ` }); }); diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js index b25451dc7..dfeb37b3e 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -5,93 +5,93 @@ let nombre = "MariposasEncuadradas"; moduloActividad(nombre, () => { actividadTest(nombre, { - solucion: ` - - - - - - - - - - - - - - - - - - - - - - - - - - - + solucion: ` + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - Observar mariposas hacia - direccion - - - - - 6 - - - - - - - direccion - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Observar mariposas hacia + + + + + 6 + - - - - - - + + + + + direccion + + + + + + + + + + - - - - - Observar mariposa si hay - - - - - - - + + + + Prender luz si hay + + + + + + + + + - - - - ` + + ` }); - }); \ No newline at end of file From d0e720dd2ed783e1016f6fc7a104cf7b4465ac06 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 16 Nov 2023 15:57:36 -0300 Subject: [PATCH 175/212] sin ID --- .../Chuy/InfinitosTrofeos-test.js | 60 +++++++++---------- .../Yvoty/MariposasEncuadradas-test.js | 38 ++++++------ 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js index f1342c32f..85f792ebe 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -6,65 +6,65 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - + - + - + 4 - + - + - + 3 - + - + - + 4 - + - + - + 3 - + - + @@ -78,32 +78,32 @@ moduloActividad(nombre, () => { - + Agarrar trofeos hacia - + - + direccion - + - + cantidad - + - + - + direccion @@ -116,36 +116,36 @@ moduloActividad(nombre, () => { - + Agarrar trofeos centro - + - + 2 - + - + - + - + 4 - + diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js index dfeb37b3e..b680e062b 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -7,38 +7,38 @@ moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - + - + - + - + - + - + - + - + - + @@ -49,27 +49,27 @@ moduloActividad(nombre, () => { - + Observar mariposas hacia - + - + 6 - + - + direccion - + @@ -78,16 +78,16 @@ moduloActividad(nombre, () => { - + Prender luz si hay - + - + - + From 1a28fc0eceaec47fbbacb369970c4c44f835564a Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 16 Nov 2023 19:14:51 -0300 Subject: [PATCH 176/212] highlighter id check --- app/services/highlighter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/highlighter.js b/app/services/highlighter.js index 45fbe7a8b..21221df92 100644 --- a/app/services/highlighter.js +++ b/app/services/highlighter.js @@ -133,7 +133,7 @@ export default Service.extend({ }, _hasCallOnStack(procedureBlock) { - return this._procedureCalls().some(b => getProcedureBlock(b).id === procedureBlock.id) + return this._procedureCalls().some(b => getProcedureBlock(b)?.id === procedureBlock?.id) }, _workspace() { From 78a8344a41d6d199e919dcb54370981a24985cb6 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Fri, 17 Nov 2023 14:45:15 -0300 Subject: [PATCH 177/212] en Rebotar Ping Pong --- app/services/blocks-gallery.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index d0bcbc0ad..2921b8ef6 100644 --- a/app/services/blocks-gallery.js +++ b/app/services/blocks-gallery.js @@ -335,7 +335,7 @@ export default Service.extend({ }); this.crearBloqueAccion('RebotarPingPong', 'bouncePingPong', { - icono: 'icono.paleta.png', + icono: 'icono.pelota-pingpong.png', comportamiento: 'Recolectar', argumentos: '{etiqueta: "PingPong", nombreAnimacion:"usarPaleta", animacionInteractuadoMientras: "desaparecer", "mensajeError": "Acá no hay una pelota de ping pong"}', }); From b1e76dd71f93643f4cef6d2f3606de819eed8ee6 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 23 Nov 2023 09:25:56 -0300 Subject: [PATCH 178/212] translatesChangesTests --- app/utils/staticData/desafios.js | 2 +- .../integration/desafios/ChuyHaciendoJueguito-test.js | 4 ++-- translations/blocks/es-ar.yaml | 10 +++++----- translations/blocks/pt-br.yaml | 10 +++++----- translations/en-us.yaml | 4 ++-- translations/es-ar.yaml | 6 +++--- translations/pt-br.yaml | 4 ++-- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 1e1e545cf..476b499ec 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2755,7 +2755,7 @@ export const desafios = [ id: 1002, nombre: 'ChuyHaciendoJueguito', escena: 'ChuyHaciendoJueguito', - bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Repetir', 'Procedimiento'], + bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Procedimiento'], expectations: { simpleRepetition: false } diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js index e826c46d1..8913de1a5 100644 --- a/tests/integration/desafios/ChuyHaciendoJueguito-test.js +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -5,12 +5,12 @@ const nombre = "ChuyHaciendoJueguito"; moduloActividad(nombre, () =>{ actividadTest(nombre, { - solucion: `CalentarHacerJueguito` + solucion: `CalentarHacerJueguito` }); actividadTest(nombre, { descripcionAdicional: 'Invirtiendo acciones sigue funcionando la solución', - solucion: `CalentarHacerJueguito"` + solucion: 'CalentarHacerJueguito' }); actividadTest(nombre, { diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 1684d8ce9..842381ec5 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -59,10 +59,10 @@ countStar: Contar una estrella blowUpBallon: Explotar globo kickBall: Patear pelota kickFootballBall: Patear pelota de fútbol -bounceRubberBall: Rebotar pelota pulpito -volleyRubberBall: Revolear pelota pulpito -pickRubberBall: Agarrar pelota pulpito -bounceFootRubberBall: Rebotar con el pie la pelota pulpito +bounceRubberBall: Rebotar pelota de goma +volleyRubberBall: Lanzar al aire la pelota de goma +pickRubberBall: Agarrar pelota de goma +bounceFootRubberBall: Rebotar con el pie la pelota de goma move1Km: Avanzar 1 Km changeLightColor: Cambiar color del foco moveNextLight: Pasar al siguiente foco @@ -147,7 +147,7 @@ paperHere: ¿Hay un papel acá? butterflyHere: ¿Hay una mariposa acá? cellphoneHere: ¿Hay un celular acá? fireflyHere: ¿Hay una luciérnaga acá? -pulpitoBallHere: ¿Hay una pelota pulpito acá? +pulpitoBallHere: ¿Hay una pelota de goma acá? pingPongBallHere: ¿Hay una pelota de ping pong acá? footBallHere: ¿Hay una pelota de fútbol acá? paddleHere: ¿Hay una paleta acá? diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index f459f78a4..2fd4c43da 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -55,10 +55,10 @@ countStar: Contar uma estrela blowUpBallon: Explodir balão kickBall: Chutar bola kickFootballBall: Chutar bola de futebol -bounceRubberBall: Chutar bola pulpito -volleyRubberBall: Voleio uma bola pulpito -pickRubberBall: Pegar uma bola pulpito -bounceFootRubberBall: Chutar com ó pe uma bola pulpito +bounceRubberBall: Chutar bola de borracha +volleyRubberBall: Lançar ao ar a bola de borracha +pickRubberBall: Pegar uma bola de borracha +bounceFootRubberBall: Chutar com ó pe uma bola de borracha move1Km: Avançar 1 Km changeLightColor: Mudar a cor da lâmpada moveNextLight: Ir para a próxima lâmpada @@ -142,7 +142,7 @@ paperHere: Há um papel aqui? butterflyHere: Há uma borboleta aqui? cellphoneHere: Há um celular aqui? fireflyHere: Há uma vaga-lume aqui? -pulpitoBallHere: Há uma bola pulpito aqui? +pulpitoBallHere: Há uma bola de borracha aqui? pingPongBallHere: Há uma bola de pingue-pongue aqui? footBallHere: Há uma bola de futebol aqui? paddleHere: Há uma paleta aqui? diff --git a/translations/en-us.yaml b/translations/en-us.yaml index e9261ed10..841b44737 100644 --- a/translations/en-us.yaml +++ b/translations/en-us.yaml @@ -670,7 +670,7 @@ model: clue: Toto can execute the instructions one-at-the-time with the 'STEP' button. '1002': title: Chuy keepie-uppie - description: 'Make Chuy take a step forward, warm up moving back and forth, pick up the rubber ball, do keepie-uppie flipping the ball and bouncing it with the foot and finally come back to the original place.' + description: 'Make Chuy take a step forward, warm up moving back and forth twice, pick up the rubber ball, do keepie-uppie flipping the ball and bouncing it with the foot and finally come back to the original place.' clue: You can create new actions in _My procedures_ by defining new blocks including other actions. '1003': title: I love bouncing the ping pong ball @@ -747,7 +747,7 @@ model: Mañic should visit all boxes and count how many planets and stars are there in total. Clue: first think how you could count whether there is any planet or star in a particular box. Then think how you could count all celestial bodies in only one particular column. clue: 'Splitting a big problem into several little problems can help you better understand each of its parts. Even better: you can focus on solving smaller and easier parts!' '1026': - title: Supermarathon + title: Chuy goes running description: | Chuy must carry out his morning routine, which consists of running a certain number of kilometers that varies day by day (between 15 and 45 km). Make Chuy always reach his destination without going over! Clue: look in the "Sensors" category if there is something that can help you. clue: A "Repeat" block can be used with the value of a sensor. This allows a code sequence to be repeated the number of times indicated by the sensor diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index c7dcc17f6..448a84507 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -677,7 +677,7 @@ model: clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una '1002': title: Chuy haciendo jueguito - description: 'Hacé que Chuy avance un paso, entre en calor avanzando y retrocediendo, recoja la pelota pulpito, haga jueguito revoleando la pelota y rebotandola con el pie y por ultimo vuelva a su lugar.' + description: 'Hacé que Chuy avance un paso, entre en calor (avance y retroceda dos veces), recoja la pelota de goma, haga jueguito lanzando al aire la pelota y rebotándola con el pie y por último vuelva a su lugar.' clue: Se pueden crear nuevas acciones en Procedimientos definiendo nuevos bloques que incluyan otras acciones. '1003': title: No me canso de rebotar @@ -766,7 +766,7 @@ model: '1021': title: Laberinto con pelotas description: | - Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! + Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota de goma. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas de goma! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' '1022': title: Capy busca a Guyrá @@ -789,7 +789,7 @@ model: Mañic debe recorrer todas las casillas y contar cuántas estrellas y planetas hay en total. Pista: primero pensá cómo contarías si hay una estrella o un planeta en una casilla determinada. Luego pensá cómo harías para contar todos los astros de una sola columna. clue: Subdividir un problema grande en problemas más pequeños ayuda a comprender mejor cada una de las partes que lo componen. Además nos permite concentrarnos en resolver cuestiones más sencillas al problema original. '1026': - title: La Supermaratón + title: Chuy sale a correr description: | Chuy debe realizar su rutina matutina que consiste en recorrer una cierta cantidad de kilómetros que varía día a día (entre 15 y 45 km). ¡Lográ que Chuy llegue siempre a destino sin pasarse! Pista: mirá en la categoría "Sensores" si hay algo que te pueda servir. clue: Se puede usar un bloque "Repetir" con el valor de un sensor. Esto permite repetir una secuencia de código la cantidad de veces que indique el sensor diff --git a/translations/pt-br.yaml b/translations/pt-br.yaml index 86bb89957..510f98e5c 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -651,7 +651,7 @@ model: clue: A província é Chubut. Com o botão 'PASSO' o Toto pode executar as instruções uma a uma '1002': title: Chuy joga uma embaixadinha - description: Faça que Chuy dê um passo à frente, aqueça-se movendo-se para frente e para trás, pegue a bola pulpito, jogue uma embaixadinha virando a bola e quicando-a com o pé e, finalmente, retorne ao seu lugar. + description: Faça que Chuy dê um passo à frente, aqueça-se movendo-se para frente e para trás duas vezes, pegue a bola de borracha, jogue uma embaixadinha virando a bola e quicando-a com o pé e, finalmente, retorne ao seu lugar. clue: Novas ações podem ser criadas em Procedimentos definindo novos blocos que incluem outras ações. '1003': title: Eu adoro quicar a bola de pingue-pongue @@ -729,7 +729,7 @@ model: Mañic deve passar por todos os quadrados e contar quantas estrelas e planetas existem no total. Dica: primeiro pense em como você contaria se houvesse uma estrela ou um planeta em um determinado quadrado. Em seguida, pense em como você faria para contar todos os corpos celestiais em uma única coluna. clue: Subdividir um grande problema em problemas menores ajuda a compreender melhor cada uma de suas partes componentes. Também nos permite focar na solução de questões mais simples do problema original. '1026': - title: A Supermaratona + title: Chuy vai correr description: | Chuy deve realizar sua caminhada matinal, que consiste em percorrer um determinado número de quilômetros que varia de dia para dia (entre 15 e 45 km). Certifique-se de que Chuy sempre chegue ao destino sem exagerar! Dica: procure na categoria "Sensores" se há algo que pode ajudar-te. clue: Você pode usar um bloco "Repetir" com o valor de um sensor. Isso permite que uma sequência de código seja repetida o número de vezes indicado pelo sensor From 916fdaec311a7f684303bcad5135a5c1f1111745 Mon Sep 17 00:00:00 2001 From: Daniel Ferro Date: Thu, 23 Nov 2023 09:34:58 -0300 Subject: [PATCH 179/212] pb exercises Update --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75f3021b2..dad5e8e88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.25", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.25.tgz", - "integrity": "sha512-IWOOVkfyxU3XKM4Miv0H7IPMolLhkM4yWdO5UpZetg+cyBzW9V78Quf+aeP3fJQpS6aCI0StoHbeDMX3UPMxng==", + "version": "1.4.26", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.26.tgz", + "integrity": "sha512-UrZBWZg+ARY4jhBCIBd8h1eWWUxsCpfM4KFzmKMjkKllZ6PlVpiPjRuVgBFN4yDcDbNzUgOhDTsunD+gkIJDgQ==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 43507c060..fa2ef3972 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.25", + "pilas-bloques-exercises": "1.4.26", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 1cef151d3..1d80a8bff 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 03cb0b33638291b661d3927314bfd900b02c5fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 24 Nov 2023 17:33:04 -0300 Subject: [PATCH 180/212] using name in save solution --- app/components/challenge-workspace-buttons.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index aaf6594ab..cbecbee76 100644 --- a/app/components/challenge-workspace-buttons.js +++ b/app/components/challenge-workspace-buttons.js @@ -104,7 +104,7 @@ export default Component.extend({ }, guardarSolucion() { - let activityName = this.get("actividad.nombre") || this.storage.getImportedChallenge()?.titulo || "Sin título" + let activityName = this.get("actividad.nombre") || "SinTitulo" let fileName = `${activityName}.spbq`; From aba07bd3a78cbd0daa5a8c7d06ddc8ee28c783d3 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Wed, 13 Dec 2023 16:47:01 -0300 Subject: [PATCH 181/212] imagenes desafios nuevos --- public/imagenes/desafios/1001.png | Bin 0 -> 5650 bytes public/imagenes/desafios/1002.png | Bin 0 -> 7944 bytes public/imagenes/desafios/1003.png | Bin 0 -> 7597 bytes public/imagenes/desafios/1004.png | Bin 0 -> 5692 bytes public/imagenes/desafios/1005.png | Bin 0 -> 6406 bytes public/imagenes/desafios/1006.png | Bin 0 -> 8401 bytes public/imagenes/desafios/1007.png | Bin 0 -> 7050 bytes public/imagenes/desafios/1008.png | Bin 0 -> 6218 bytes public/imagenes/desafios/1009.png | Bin 0 -> 9498 bytes public/imagenes/desafios/1010.png | Bin 0 -> 6341 bytes public/imagenes/desafios/1011.png | Bin 0 -> 7615 bytes public/imagenes/desafios/1012.png | Bin 0 -> 5237 bytes public/imagenes/desafios/1013.png | Bin 0 -> 2779 bytes public/imagenes/desafios/1014.png | Bin 0 -> 5668 bytes public/imagenes/desafios/1015.png | Bin 0 -> 9640 bytes public/imagenes/desafios/1016.png | Bin 0 -> 5959 bytes public/imagenes/desafios/1017.png | Bin 0 -> 7304 bytes public/imagenes/desafios/1018.png | Bin 0 -> 9978 bytes public/imagenes/desafios/1019.png | Bin 0 -> 4891 bytes public/imagenes/desafios/1020.png | Bin 0 -> 6971 bytes public/imagenes/desafios/1021.png | Bin 0 -> 8937 bytes public/imagenes/desafios/1022.png | Bin 0 -> 4172 bytes public/imagenes/desafios/1023.png | Bin 0 -> 9774 bytes public/imagenes/desafios/1024.png | Bin 0 -> 3620 bytes public/imagenes/desafios/1025.png | Bin 0 -> 7880 bytes public/imagenes/desafios/1026.png | Bin 0 -> 7153 bytes public/imagenes/desafios/1027.png | Bin 0 -> 7946 bytes public/imagenes/desafios/1028.png | Bin 0 -> 12671 bytes public/imagenes/desafios/1029.png | Bin 0 -> 1400 bytes public/imagenes/desafios/1030.png | Bin 0 -> 1359 bytes public/imagenes/desafios/1031.png | Bin 0 -> 1160 bytes public/imagenes/desafios/1032.png | Bin 0 -> 1168 bytes public/imagenes/desafios/1033.png | Bin 0 -> 1243 bytes public/imagenes/desafios/1034.png | Bin 0 -> 2097 bytes public/imagenes/desafios/1035.png | Bin 0 -> 1912 bytes public/imagenes/desafios/1036.png | Bin 0 -> 2672 bytes public/imagenes/desafios/1037.png | Bin 0 -> 1910 bytes public/imagenes/desafios/1038.png | Bin 0 -> 6271 bytes public/imagenes/desafios/1039.png | Bin 0 -> 3590 bytes public/imagenes/desafios/1040.png | Bin 0 -> 5801 bytes public/imagenes/desafios/1041.png | Bin 0 -> 3510 bytes public/imagenes/desafios/1042.png | Bin 0 -> 6010 bytes public/imagenes/desafios/1043.png | Bin 0 -> 6991 bytes public/imagenes/desafios/1044.png | Bin 0 -> 3742 bytes public/imagenes/desafios/1045.png | Bin 0 -> 8282 bytes public/imagenes/desafios/1046.png | Bin 0 -> 5616 bytes public/imagenes/desafios/1130.png | Bin 0 -> 6216 bytes public/imagenes/desafios/1131.png | Bin 0 -> 3974 bytes public/imagenes/desafios/1132.png | Bin 0 -> 8541 bytes public/imagenes/desafios/1133.png | Bin 0 -> 4232 bytes public/imagenes/desafios/1134.png | Bin 0 -> 4916 bytes public/imagenes/desafios/1135.png | Bin 0 -> 7091 bytes public/imagenes/desafios/1136.png | Bin 0 -> 3858 bytes 53 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/imagenes/desafios/1001.png create mode 100644 public/imagenes/desafios/1002.png create mode 100644 public/imagenes/desafios/1003.png create mode 100644 public/imagenes/desafios/1004.png create mode 100644 public/imagenes/desafios/1005.png create mode 100644 public/imagenes/desafios/1006.png create mode 100644 public/imagenes/desafios/1007.png create mode 100644 public/imagenes/desafios/1008.png create mode 100644 public/imagenes/desafios/1009.png create mode 100644 public/imagenes/desafios/1010.png create mode 100644 public/imagenes/desafios/1011.png create mode 100644 public/imagenes/desafios/1012.png create mode 100644 public/imagenes/desafios/1013.png create mode 100644 public/imagenes/desafios/1014.png create mode 100644 public/imagenes/desafios/1015.png create mode 100644 public/imagenes/desafios/1016.png create mode 100644 public/imagenes/desafios/1017.png create mode 100644 public/imagenes/desafios/1018.png create mode 100644 public/imagenes/desafios/1019.png create mode 100644 public/imagenes/desafios/1020.png create mode 100644 public/imagenes/desafios/1021.png create mode 100644 public/imagenes/desafios/1022.png create mode 100644 public/imagenes/desafios/1023.png create mode 100644 public/imagenes/desafios/1024.png create mode 100644 public/imagenes/desafios/1025.png create mode 100644 public/imagenes/desafios/1026.png create mode 100644 public/imagenes/desafios/1027.png create mode 100644 public/imagenes/desafios/1028.png create mode 100644 public/imagenes/desafios/1029.png create mode 100644 public/imagenes/desafios/1030.png create mode 100644 public/imagenes/desafios/1031.png create mode 100644 public/imagenes/desafios/1032.png create mode 100644 public/imagenes/desafios/1033.png create mode 100644 public/imagenes/desafios/1034.png create mode 100644 public/imagenes/desafios/1035.png create mode 100644 public/imagenes/desafios/1036.png create mode 100644 public/imagenes/desafios/1037.png create mode 100644 public/imagenes/desafios/1038.png create mode 100644 public/imagenes/desafios/1039.png create mode 100644 public/imagenes/desafios/1040.png create mode 100644 public/imagenes/desafios/1041.png create mode 100644 public/imagenes/desafios/1042.png create mode 100644 public/imagenes/desafios/1043.png create mode 100644 public/imagenes/desafios/1044.png create mode 100644 public/imagenes/desafios/1045.png create mode 100644 public/imagenes/desafios/1046.png create mode 100644 public/imagenes/desafios/1130.png create mode 100644 public/imagenes/desafios/1131.png create mode 100644 public/imagenes/desafios/1132.png create mode 100644 public/imagenes/desafios/1133.png create mode 100644 public/imagenes/desafios/1134.png create mode 100644 public/imagenes/desafios/1135.png create mode 100644 public/imagenes/desafios/1136.png diff --git a/public/imagenes/desafios/1001.png b/public/imagenes/desafios/1001.png new file mode 100644 index 0000000000000000000000000000000000000000..15e21e9c20393edd8754c357ba74899078e2b629 GIT binary patch literal 5650 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1002.png b/public/imagenes/desafios/1002.png new file mode 100644 index 0000000000000000000000000000000000000000..58a8260440856bdd8c2de2b73de332e4fee86bbd GIT binary patch literal 7944 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1005.png b/public/imagenes/desafios/1005.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f4ff1c5de48e14e61feb678995ff05985b76da GIT binary patch literal 6406 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 UgY$CJdH?_b07*qoM6N<$f(t+{4*&oF literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1006.png b/public/imagenes/desafios/1006.png new file mode 100644 index 0000000000000000000000000000000000000000..11ad9af02ec0550df09b50cd2be5708a7e42b4c0 GIT binary patch literal 8401 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 n|HKMKB>Cc6Y literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1007.png b/public/imagenes/desafios/1007.png new file mode 100644 index 0000000000000000000000000000000000000000..a89837ed743c8c4e4e5030171a1d8b9ca4dd39f7 GIT binary patch literal 7050 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1008.png b/public/imagenes/desafios/1008.png new file mode 100644 index 0000000000000000000000000000000000000000..cb53b423da95466bed9485ae8939436691936152 GIT binary patch literal 6218 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1010.png b/public/imagenes/desafios/1010.png new file mode 100644 index 0000000000000000000000000000000000000000..1c288f1af5b3a2c0c84f0a943af484eed1b15e46 GIT binary patch literal 6341 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1013.png b/public/imagenes/desafios/1013.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc1d016da52a24221fb49c02abf8feb204f5623 GIT binary patch literal 2779 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1014.png b/public/imagenes/desafios/1014.png new file mode 100644 index 0000000000000000000000000000000000000000..99e6bb573b29308fcfcec98cfeefe2a7bd45d1d6 GIT binary patch literal 5668 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1017.png b/public/imagenes/desafios/1017.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb1c9a69e72c25a519366daa9e620c85a9e0c9e GIT binary patch literal 7304 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 i4XnR`bNp)w%YmrT3nho~38s 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 z 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 N002ovPDHLkV1nJaQ9S?v literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1020.png b/public/imagenes/desafios/1020.png new file mode 100644 index 0000000000000000000000000000000000000000..b27108679405f6dcf1ca1eaef9d216c71c84150d GIT binary patch literal 6971 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 D*`_w| literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1022.png b/public/imagenes/desafios/1022.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7859159d4de37bade5210ab53d8fa2e808ea24 GIT binary patch literal 4172 zcmV-S5VP-zP)?ny*JRCwC#oO^Iv)t$%Bxi9Hn$+BLS zE!mbI!7)y(BsdQq3CTj*E(@lV(9+hOWp}f5w-idZ)7`ea-LgzO)6THNf9>=!bV^|w zS_-se5}>7!gc7niNof+tc@igfVmp3IvYz*~zx$9Z$#P=ZvLp{Wb8_dG<16Xvqu=lQ z`<-)-gr|=+p>msFBgzQMu*$H?u*$H?u*$H?2MC=v!qrj2J%LrMJ@qw+bS?qQT{Z;hX-r#i?IUV6*Ez!K!y916kt7*fU#?gM)hhlx z8hIT>`m@BT<-t;eRRn<-M5*W0P$+_tP>H8TwzMIZq`%Id>8D=~m-J*18JRArpiXIT~ZwJ{m7RZM2$rxHE z9i*HeN31uKmt$wVLQjY|^5OMgAa(^yk@;SY7{Q?)#7~rB81|f=`0)$D<7XASxeo2P z5A7Z{Hge*f&RA;|YOs1y^EVL5WjrcqwaOSTp%MY#z~T8&Bme6WTVY5YJ}Gzp%h=Ig zJTk8IGkw@qA#b};Iyk{#gxhLGJK;y6AynZ*1f8aF*e_G&rHn3%Y`RglZbjS;3Ojxh z$wDz;5v+0@w(WbnYya`_?%;G<2^tsB{kKae0(5_byxl9f90*Sgqlx`U<`w^<)pR-a zrf3XFhJv_1ZI{hH*}feaY7s%rrbaE*tD4$n_6FJ94*&c0uKkZa^2}W4Iv8m%N}d;( z)rJ@{AskZ0KB4zA=#_nEfrS+=Te+J>$iNqh%v>YT<##CKzQ+d?zkG)b&(<|L9z#svT(Edc1qs0Jg=YmwTXJ&})sN&!ULM z1doG;jxQ|JI!lQ!U<8;`0&R8!k^1(xo(0dE6SV=~_GxnWu;Nw~PJ&|6{(2=!Lf7mE zZt7TOMX4s$pxNM1*FF;ffk?f!_i)<7)7{G9CDz?d^OYC^jW%Mdd(K&ek>=WJmI*8s zP!=(os{y0`{?;#&p*NcpU~1Yx)wJkzfRwA5yv7sW*8BP~~k<9_8~j#$x=)$dopI?isPaf|hI~_>ndOxzE`^vX*PjV8Efiu<`K%{Sk^pW`_vCaw5P_biO$hzl_OAYkuWA3?PhUkP-^$x0%dpC@%CMGG%iBun)Y%Jt zd)|U0*v=YTW9RmY4eN7#lIVpC*IECNk-9L5Wc8n%X2|9`55=)d2Wx?)Lq;1uboA6O zU%D_F9i8UuY|J{3fuj&*vpGK5NwSdl5I->~Oe(X*_~4)vjf#;-d~hh&R{>JIC`$@2 z?TAE4u|>^Rx?;niW}E9h1k1voYz-c4WUUPznq%E!;MyI@uZUeMQC28 zc4F>MVkH+wVe1QUn6|GN%xO(1WX#mrLM zI%+D-Ofoq_dwAE=g|6T!)@WVX43z}f%sieL2tr?YFk+kxMm0Gm0}zvmxC0xEQv-qI z1E(Xxo85!{U|fqzA{Woj^K=KCYwWMRU{o-fP6Xvb#>i(^nc%n>@xnNbQ5IW~C*1C} z7!o;$p@}#z9qJh+Ri@C5CbpoOm2Br;+@o9&iKtnh0w@&pJkM;EEmR|IYn6f)9NhEs5GFWwAAFNhGcqj#K{dk zN<5NkG!nUN8qX)JzCCX#Q$?x>ZZ$hOB7L7__T(rh;;J~F1x15ayBEu?Qj;T2b*O73 z#~fuSZ?Fd5KB&2skyO;ZsLrJXU~-v|xJGi6`6kp&T6wDb7U|^|q15OYy$G;0fuHBHUr`!GDDxYbjmgr?{SJfOR_HLy z_!vu}jfBNL=OVLJ%s^p-8kJfY8XU!dWv+K?23Z=O6^_flI5wSi*%~B_r3pA%RyOD6 z2l=|Vs2#)V;L^S(%9CT+rEdqX_mzmyZ0NX!3bXA zz`f%^Ix=ny4RVpOqD_Au+gP#pT%>0-?lO_zye-T356tbWiv!Dm&ud0St@67mCWLHA z`NHD<8UcAH8EHDvi-qwyCY|Avo6G zF=TJ`U;IOz7%QPn>G))4&Q)8!Zn6&bygl~e(NO`93B;)=aXGGY0a#yObAqD;h{_AQ zy`{j5V2zG@I~TCmE^n~<-+4JOd|o!_EUxgxJ3$KAf!$Cs{Y1wHz-w&4G`P2ZQMHoI zM%!)b*0{+9JeFP2Y;0~atzJze)+vjmS$$#dq)2pbKvr5UJB`iFi+_*#@vMns zy;Cp$7De@o7F>o{i}HSAGJ1B*5L0K@U-TWh(-j20KmDr}i-Bd|*~Ha8TAcXJ%aTLi z&!10{Qa;a-nBiPVO_69Fr*E6tJ7k&Q33#{8H4FcNNMLOpJFx%c&z3Q)*;PC6A}8Wt zv>A0+foR1WBTCIxysYncLF`#tqtUHUKPJ>wJIJk2FYT zPZ-3m@vbWXx>lth<-@Q1^_hY$@+^88YtS(3IR^ZKgJm@5QmT114C8UVV%T+=eXJ=2 z-T}eLI%6;sg22>2I)lVI^h5!4GDeau`4bu7SrCtRw|6ZMSW{>FW-nlc1^xC3j_E#C z$4JSV9^UE?`%GPR5pWQvZvuJ_H40Ch2+#+{XST|L(zm%gnjAMS16cEHPD;KUN3u*} zEGBtvvc|RFoXKeCLsa^I6+eoIIO$Ls4V>%IZQor6uqe(b$#W}WR7|W%s9B%q7$&HV zz?%pCf}V$IslOlm>$c`kl)Avz+`68xn{y_S8itE`6+0u@ulWpbpZPuLeW}BuSfg=? zLm4nVu`>A2-fOV{QUxee^Haeu=_O9YiS8)|vVm4!&D8+bQae|EzK)VH!sYe;y%K}8 zbY#@|fRllm<1SY$D>WeXmw|Un9adB4_RQ&+$@FZDHnahEF! zQCVxu^7GY)mN*jg;aT}uD$3e?7QU-CqWMusphhFc(Wp_I?tqKUmi)=^*pg0w^0UaB zvGQMO$b8ySUI|Q^&OuXv2#`utxzta3+qSufpF7)<5+@1d4+pKk60Qm^;dzueaZ_X8@4gGSrQFvQS}3F`v>_}Zq|h4( zCO2EN+m7wnu^sP=Y+17QWtR7ynXxolEhpyn{LW7~8Xb-1{OA9D=l^}@j6-Z`;n6>- zPy{N=K{^F)lL#pZ+z9iCll6&k$Q49(KlN{JPoZnEw3Ya9fdxgCNKGI1&o5sKLM{g4fnMI7C7aKp#4)Q4lJ>>`N!d&xKjO zRD~=mRG>saRVV=cv%_>sqyQj*3BUr3Dyes>saNxeGti-n{c0=wT?e;Z>%%EF4c8wPlB%6%64z)g{_?hU;H zcmez1JAju-g*yOV)zh6DyWZ^I{h`~*%n7Lo%ewsjo~K`rRMw>HQ>o&Uk%E$%S#4hQ zv5Rc-Nl*eh(peO2rDD!^l4J6T#NIhM$ zzqE(m+Y|m+d>iD^IEVE9$-0)^?EAaMCw&A#o-;&g^|zU8U1 zNCHx6nI$ialx&FtQ%Rr((H^4G^`t#+eP=uEb{jg|twR&s(6DvL4zHz1sY0Yh{#zg1 z^X5l?%3F3wOW(q#K?({>-D9PGT1+;H#%N&twdeQgkGyl{c#m2|PfZ7N)LMefG#%yY z^)X+mP-ql*>KSplM#cuLzyDvu5C075zxl!>JtT17uK5?)`{ zf2jQQn_VY5&JMe=qM(S4>&k`(LZids>^UA}Fb#u|2!3<;gZ#QRlbh~JacxTOm@5$} z43=H?TlR2T%2;>rs_E=Djf^Zf*QN7#fhGVG)LB7ESHN3o>6I)pW$xym4EMEE=+6Dh z~g4${!4|mvRjRK?L94(cHARVe{s%ZQXj>OZ<9_cCkczfNazz z@@j!LJFtLRGNk6IOw$D4Pjc^agQ(OhSs#wI;`o4n#%B}IiZxWKgRu219vX9v}sp08l&GI<8VE=K8y#88^rCJS~6~Vwhv^zH2G1QiPEO;x>UO z3PCWb)I{0fz9UBl3M}fhVAZPF3I#X85@5sDr8NN7yoVIw*5Z>_Ke-frU%_nS=!ahU z;Xy#^%eUA1eayJWBlp}e<*!||DESQe1_K~C*WU#LcX%acSp;q2@OT0~pL5SH5e~VQ zi4a^1>%ZbMOD3@JyiN0$8+nTo1=*6xPXR3b;3xz%P(eviJ$-(M{f?Wfr>6Z3%K=j0 zr#M~`!%CV~sY$hlgjbb@)al6xuPj}-aB_gx(5kuqZuGR-6thXWZlxLK7Q4fn7OZIa zg3H2^4#dnmSjLY&)aZTG;04EpuJG8%wd+c!y+LWZ72GyB6tFV2l3KRf0KUfOVOfTs zcCk|v41|R59_n7Ru+nHw970ag5dfE_30aOz(>^*B48@HIehBECe36p@WU1hTVJ5YL z2Y^=OpptlYD=Vz1KQO;w5r>Xk7(WUm(yLV9vjag5{&kI#U}%e8Ha0$d^ytKx0~<~t z5&@GGlDOYK!yXo&#&T2OR(t2q>B& z6T-aNSyElBR+Wc+q|t<(LNLgMf_&4dUb9v$B7)tkP8ZW3EX#6Sa%>m{ z1y~G|X#$UctwxO|`65*sq){t)jt?_zoEhSTcbc36Ra!EE7)y2{Hp`-NGuz)e3ypQl zDry$wjShwYowxqpHR^OD7a$d5bSUHs1Vr5^x)s1{B5WQB=EExr%7Q1_zslG_6SGg*U~5#WM8)`| z@9ZgGim=Q`RX6BWO3V`a><{iu__(4Z=QFq0IrFM7EV>z9C4h5shERCkgB~qQoH{qw z);$TP0s0W!0yIP_;X6c$6E0#TB}SE%v)BY~Cd0>c5+ z)iYgPWfUQEw>-J`tu`UmF#oy~nB@Zc(6lE)_PG?@F0CDvLLBmXH@czBTWP@VX*8hu zaM%iXeX1)IE_Z0KH<&^Un&|?oWKZ(YE!u-c>|@g?^0nI9SJECa|1gyfUnzkXBp) zeCqjCPrV+WGM7rXs}fT5smzpq56q9JDNtUufd>3NS;Dlx!ZK$-9roTkhq#C|59% z5C>sHWZox4J;!>e|;fl#|NXtaR)IT zAiQCWO9HdxZyO8wA{{^bQrIHdRH-oL0JEx)YJS1eacq1nrX>i)e4X5P;KYi%uj}*@ zc}jGJiQj0!F#Uau1f+mLQD`!h&sFi?TFOD^ul+Zfaehr^2^ub7&E}4Gj3uqKum@)YI7=Y_7FOn+`5q4bu*g@tjeUN0J>o@I?yxkK5GUk zH9^d0puS+S_2w_Gg~rZN6695h8a3wf-?nj+A)>>Lz+r)Fj|njvRqA-~(F^nl1j5o> zVIt*Gp%%}B-7W$<_;kNisK(wsp|BNJm?-8KtRf+cKoBH&tBd$Lh%D1WYfdn5A%0FM zUS|8sGhg~7q;0mNfdKa3r(9?^j~gJk*5&b!)^I)sLuOH7m;fx05v@~LNx)Rt>>vOj zcPQrX*ICnpRj$E1$KtGzKxAp@yeDc3BjFhXoU?)}`R11VTi3xz9?0XY3VzqAu}?-r zFgz;XOy-$ia!CRzp`7y&?bC$15B=8)_A|v;Iy`fh>~#~#v!T2k7$#B&Txtp#l{h2A z%4la|s?BT-Yt@C0!&@@@Ecd(M9D$&nZLP!l*1<130a^)^kNjkcI){Vo{h_6yiN z>rDKbd~AlZv-tK$o=h=A>2WFmSDAai#j=zRO3Lz`23< zUOPN7;;dR}n?Q;HH*?LRe3w@g_ZFg@eWN5zqT9;(8%lU3iOn#fkNj;4JZS<8QM`LI z-YiCgh_0>uG?--zdRug+xqj=)4RsBd*&0^cdOAnn*>Q0Ho>Tv5YTx$aHzrGp- zcYeY8b3x^f0%>JaXV6sDSh2M61bfeoq*faS&9g7xXR9fO_Q>GC{kPq8-@iV_M#^7! zW{=LG2E2+ES${P|4hD(1pf6dS&m0lE{b(t-#=?Wwf3BI-DX_+bPpfixh=Ih|Fa=o4 zO-P;K$_UgtjeJ6KL$~?XTieIx7px;W`7d0tZq52~hyBbQ_uf-ozf`*Ip1?ah4(<5O zzJ&hIynH`!3L1O<`r6N*_>r}&{KdES8jMB&_Xl5p5$xu<*B>%kb6b7nR2Z9&fCw)p z8(@l$M%0<2aRLh7WKpH^JMVzw%mfS$Xu+eY;OS_xMgZt#%!Lvg!T3029y(dcOA2LBEeHEXGd#$o{sc zzq|eNYipl){>ua*zuhx~&g=nsy#7cCyOC&;n8m@DX>pX3;MxZRD7q(@X>VVB`uzNY zr3{36Z{2vI%YNBaH@yDhZ~y$l^P__U)%6WP7OYxpis8~*j`xb4mnh{$8SH}_TB9q7Z&Yn%j%^-AMx{BzqA$zC1sF?onUw0+x8y< z5kljmAARY8jo|E~C%gN>P4K#V$3a3M6cImBfk{I2<7IG4Dq3NHV6X{wIDk$%(T8?i zJ3P2g+-wM1mQ9j|WAW)N#TB1Qq6Rgc`t=*%z3;Z0CMIxR4cykXn{O7GC7Rx*&#r)SaDwX2A;KNxwOlJc|nUuLS zoDpR?#K>xxMed{x0DTm{&s+pk7&vB_@_iIN@6Z`?jQ4&2N2?mw$%R5}LfGF{UAI*9 zYg_L4VoFs3vTI~0ZLV%Yw!=6_ks2xJBO(PtN{syIDDDY_fZ}Z71w0>ojO3_9v-WK$PSipY)9D7c*#@sRzWZ}%E zi^w`gow-(X1{B1SpC)#QnpEYCkfI|qb_W1Qc=_@QK0Xyek$Az?{Mx<*q_Aly)KCSY z8K1e(d{J%-tGN5W{}`Tpr>Dh6g0_+~>;4~Z5vHyX3j0tbhmA8bxk9@=v1(7MG9y^b2JR&rVIf0d@c1-a;gWNE+c3SX360h*SWrprOyv zfEhCJxd5nRAtXPTuR@{?%PW8Y{)ZEI2k{Im%35Gnh{wSoNn&(jB;v7Edsvj9HpW{L zX%!51s#FW)IRmgqaQ~Z}7p3xn6n+;9xe*tUxdRH(I;1foweHFP`&*C{aO|x={p@Jd z&hle@9e4pOEsdgkyP{ukL`RJW z_0r_6q#RFAM~9@sL!n(Sy=|+h z7#-{qj~AAf>I{a9z-ZMnZha%WxQeURJo?J>rwjX~hva+#)Y-?IBc`F!@AOqZfu*J* zMyu#B$HK@h1Tk6?nH4dx#114N<>8Q5Rvj$nT1cqkv?#WHGd3tflbi^KBVdWW2ixH5 zej%t7t7&1GwDMRGw->Bt*)kzs;euXO)xzAd{t;-y5ulhN{S!HzXInCWwb;h3zsj(x z0Y>skVSa2Ap-zJustGmks_c7uLHGB}N+D6sC)R-wHYsSpBq$%d*dPHNpMX*H6(+$j zpW;ORvyyiQuax0(yWcw4w*AAYQ73R-tokY`-!f%)&-gpM>#odZYuvbz3u|nPa5m9e zVhH(ZI0z=GRH@QAqjU}nVxuqK_rR*p?kv7;94$FNPW|WjWZb=>L0$@5KP{8HEy~!q z@L&pSumD%djAtkET*FQSwaZk&m$Y`=q zmOrT&4{Y)E|4vRWC`LUoZ09xXw3oy%#l|SK`+}H3c$QRP5V&}UbuNHtUy^7*slej; zQfGKWp*}%sRe}NHZX5(WxRrIdR|s zxF=f04G&J2lo>-oc4XK|9Q(vp^W_Z8O#w}+(%U)W>o2%+Rh-rd3il|GcXco+G65ml zKNAL(swFKIo%diS?Fk|hSQi$mNX2k`jUDl&Py@gwo(~y~H-KVLD2kzqsEO_@JnkIZ zcM_Nj5eB_Q+RD;=OuG7j&nG%~rIJ+XRDBnwdwWKVxxCly9_;PC^t{FRu+!^LWT-EI zL7FQ4NJZ zkv90HNfwc}Y$SAe!Flh_BNAACA2=+WPFS+!3*WeV)9vexx$~LoX*tn*c2 zPP*yjoG!YCa@|!O*!I|O{93(faM1nGQ^Ily_1MquD6O;<7MJ9hOz2Z6&pp0#-)?-V z&elqH0ZSfYFR|i%*hNl`2%EjPqqs+WlC3L7TFE`^jhs&Y`#^doKP+cugHS z;iURT=LFWZzAicvZfUqen{Q-}p5~m>G;KP0xTmlj5&X<}1WhnPKAk`%LSj8K^AS{lsXrv4K^1)KNeL7p z4j>LCzJ(g8vnkJXkuFb`*Zq*XO-nF~dd?oa<|d!kz`HzrYbPjSmZ47_8R+jBFSixt z7tR~G!1Nw};N>Ix+a!TvF$b<$9Yu;Fa26qgB(T_-#!wi0E_kb_ke-%0L}uzh7_VAO zVC8-5$z&3xeXCIL3WfT3TQ--zjviY_k4t%o{Ni&9>(SXh)Y=ZG5x4i*N8BI0dA#)m z%zZ>riCL+-_$?GZPvDQwfAHKBZ#XAoHxj@Ku3sI!ej|;SuUKBI!&G6~v6_LW(hqBn9fm)JH`DcgF&nUVUTx*1+$Ije!Lt#AK<=^AJuIXes5H9%2%`P~3&z<|Xu z+iHp%R>SOATv%)tm+2E_!SP<0?^=)dh>f^CCN;&48|uUrf0mDh$_7gEQ}V$=2gl43 zgNejSiil^%L?mt-3{ifTPp8_`9r^XM59W7tJri8!Pqi0rB{g}MswbZarh~GB(fv7S z?PoO z%dh^|zy3mG%Dt-2K~7gj`oQ|+PAZ`sj1*2f)O#((8$Umo_lA_KQoa5ccJX2^KVPF$ zu52v7^-I?>5nlB75C-?08wE#}Orok9t8H;H-o}<@Dgd2@y}QLMtyU12M8Twdfs2v+ z5hWm%;H|=3BCT-S(9F+?R$}@0SGL`DcyE^X{~T)qgT)z`QqMPkc*y*oBIlrFypgqQ zgZF-2Y-@D7(u&HIv5U_g5Vx+)8s&g?2duwz`_V18cU(qxxsgdh;+ZaC5(ImS0z@Vy zqYz4bI6{I_dxp^ddw=as;}&ZISU@zE&(=rBjwny_ zbNGVneeK}+*PnYZGhToca7y&F(Q)z-!#Lh9B3v0(p1*WczTQHEL+QU}bZHNjyr&04B2dj?BTemM*&S-?sn!)ooXH zol0kYuZOGTNX1fyHVz$>+AEB$Z=amp|K4eF`RB?FR~DA!gTg8-F^elSa{Y-nns$zi z4?E#i+}>7bac^4NbL)+#5|W~lX*W99J<87<-21C7{}LTh{HkQuw8CRQm5EvDio7#` z_3d9jTOS$|wG~(#z;v3)JH_TFd`qoie)KF}`%?Fkg)d49E4*$jw00~IRCe_i4vm_- z`zl7pO9H`6`U?QEl}|J*83Z2LDkd`YWF1N%7igWEAKyNdXPtvWO7$5nrJ4yer$59i z2l!C+N_YM3CI2&f_NJy`JjHkl@RX-fhnLk3LIr(}7Z%O@&{#=wXT3I*8J&be<%OZ< zI6U9k^M^;j@&u9H?MF#V@sb%zYngo3L`s1f-~HK*vw{V*TK}1DsofiUEQm9vkfSVz z61>kv7iG04a3pW*k-aZ&xU;Qv(X7HKg9{?#c7^jPtGJ0IedYN;p0V}bt(h>3-&5mczVroq1a@?o_`N|u1gviwO>@NBs^vNZKyiil*~YRL?0oWHFC=PmbUfQYi% zYkr`I(6R|;7;S%V?@NPb>tC<bYvppZc#gD#`-6k9H;CWq)Luy#LQPfBnVv zUvO*mS&1w8bb-G1;}p+JrK^ZfZ>>@d^U8hXCiMlXvF8k@K~Mo5c$?Ft$a`A>%z_gf zu3G-hZ#;e{_xlW>>vbq4Sgt?Vn6b3`zc{x7F{G+4PIHCYjB*+_cAwtR@sD>_ZV1uJ zY+Vo^XNG**+-M?W`D{q{tE#W=HgEpkf4{Q1?NCm@8~yx)`nA8mYAb*xWc)IniDgsM z3f$8yDdvv~^f!+tkSn3o4WF+cJb!rMitOx0q6nSzq$iQJ(WUAsLvqkm@bDLY@Gv5B zg5LU(?m=_WU~bXOuj78l6l>Q+4y8Lg-VTuzCI*|cTHS~YY2~g;QRYv87;NyYwMrU$ z!d_55O9xM+q8LAmGL7|3)6=cg9h4J8$L{G(xtq4HCF{~TGD5iBC%E7Px31kYq;hKka-|6pK%)xRBD3^2)~dO8qX@xot^ zednI+T@ao2k7s1BC&XSnk)7Izwf;d~nLQ%_DNs_RmL)W7yuwO~tCqVG?Cvz1e~>9k z?wNbOf8pN_bl-SYmM(})Yd&l$a;EK>#&V;T6)JAC^5er9EiqcW?^#8pOb_&u8K*h; z)bNGGpfaLKo5NW6{(+pKu`FE>ncf*iyRx&pu()TAvw>AQGE9`FmFe<_95t+nlxJsY zB)!{$KA=dcyu`@7|LWDA;?Z(|NFDF})#>FQ)S$dYZFC9NKxiFNS3&TA+h}t#i z$gB=td!1c#r2~X}6e++3#6i@B0YG4VY2_8qAA8`=>;L-4MPv^|U~m9JdNHamD)m4p zrcnItbL{p$wk&f_i$>hcD#q-?n~MsY-G$-v4x!Sl(r11u0V$DXQ8v+Kfz0W*h)U`G zYW9ok>0v!SyYVNAfNbK#OegHff?43*#T{}$1){QFtasb{@pz?YnC z=ilmo9$izpXlnW8!%$<17lJL&x?dUnT&BO*CPDI-p1EeM=4Q6D-GCkBm)8)-QmkTW zP^oo({_ai3frhtUu9NFhwT5Y2-+#+3&ABR%zGcCg=_vBND zr=NByJRZDP)d`I#US3`os9E@dw`!;3n!}73b+NM!`Tq$p0D*Pot=fx}E&u=k07*qo IM6N<$f*x+%k^lez literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1024.png b/public/imagenes/desafios/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5f5fd2f4d4f4ff80ba143e5cb45f7d6b266ca1 GIT binary patch literal 3620 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1027.png b/public/imagenes/desafios/1027.png new file mode 100644 index 0000000000000000000000000000000000000000..077a98b233f40a60612122d8fd4c9202d5b25703 GIT binary patch literal 7946 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1029.png b/public/imagenes/desafios/1029.png new file mode 100644 index 0000000000000000000000000000000000000000..79043d731e829dea5ec6997ed8462a41e3fa7026 GIT binary patch literal 1400 zcmV-;1&8{HP)wwl(3NPg2Nj42h^p9rZA?h7QrF}8wJ++jy8hDq#GlH2fUu!fZRQ8(X^jcUXdIenaZ%Ev1V6X7JUfESw`a(4iDh2b;>+hgzFf|DZFcmt5#~ z7f6>)vow>A&r9v8kEedzrYR=0!8&U!7YG-lb&#~ufb`RDkB3$ zjWsT1W>GGQEH0jAg@rFo$a%nYIxWs)QJYeNSq6(>kpqy6r_Ok;?NEHlmZ#-fH)^^>qilo~dZ;*67&krvj*F zEo+y{c{t$5$%)oxoKqO8>Eb{nE-&t;KA4!qIl;=J&Twzlp4$5plWShpV?PT+=FwnC z93nYy#;tqL(*Kb&6E7V)!#)2u1ei{r{IUII^#Y!qN z)JL$GbU5JuvZ5TfoOHXR)}gxlJ8%Rkr381KvK;p`_~>>gQ{aLd@)Rj)X>apFxQD`U zZ2?v~oz8IYwc+c=!_xUBQFhsv=E13GY$-5{j33}d-mwEF3{q8lYH^h1gz*DBNF53I z(Zhc}`-?aOJTK*JJZ=8b?GDX`1dCu1EE2&YSOkk;5iEj5B3J~=Kv*rUv+n9w>UI2q zxvX^z5l7>hVD*HH+d7_}JTs%@Z^@9;wa_;dLt|oQ8slg@6Rfyw4FyYpKb89?C66~T zI1)u+C|D|H>~J)m^`!xThl|kU;Karyj2nTbGLaJ<@iJb+PHB2pC9709 zCy(clRmmuEF@B@u&*Ead<~?|flVen-L*UH z4<;tRu4y#T40G(1s=vBSJxfH<9z4M!SOkk;5iHVs0R{l6vlokMq^(5&0000*#7&vcO@)~BS6IKi=#Jp zy6%mSS#C|57H)u%n*{Zr} zL{mpGOY`w8qBAg@Zg5J>G3~+(mC$}HYV8ix=_|mOV(^bh4UMK2SzK$gBO~gpEjB5f zV_7y;KIXpIx0LUf56#@s$l$gz#Bn?tQ^+bP!Ey-osbsqNlmz+R!O%|&OKywDjvQ72 zR&02nfT45+}T_ zaJi>F-VBTG%emjKBtB)KswZ@Vx>|VLdCUO`3hhL~D>_>2MsCYUyuP(rV0{R73b14c zypa`a2-BCJt(M!qbkf91sFkG09l(0jP0xrm)I}gWdh#r@HF8oNIipFtOB175v{w1y zk$C9{mWGx^?xte3%8ywUCcpwLzyd750xSry01L1H3$Os|xodxLYJ1atX?{8nLY2sFY0iGDK84_K=scCNOsq=p^Qn9F2 zmE2n4mgNxa1;6*H-35P$N)3lj(9T0{+{(|DWW`md;&1I}G8TDnsbpHAg3??E71Q^s zt4=s#6Hds7R}u&BiLV!bS>^P-F5e2HI7KnbF3iX!>Oceowsdj{A&bXqsfYFQ`Wf0%n+RBs)Z2gE z%FhPc*M9d6FHc6zibi5YTlemN{*?^lV-~pK^Pdl(r`C`t_L#l6?5V-UEnPO7zyd4?umB6N%0T}MFaTmb>>?<1 R3K;+Z002ovPDHLkV1gZ$m%#u4 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1031.png b/public/imagenes/desafios/1031.png new file mode 100644 index 0000000000000000000000000000000000000000..15744e757c7d64f7d5151d3cd24dcb0b1cfcffe6 GIT binary patch literal 1160 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 y1{MR0fyEjFi-Eafi3jWFN<0000lWuh_i0m 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1038.png b/public/imagenes/desafios/1038.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c774b8caba10cf758a5a068abf5942ebde5521 GIT binary patch literal 6271 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1039.png b/public/imagenes/desafios/1039.png new file mode 100644 index 0000000000000000000000000000000000000000..774a5461a2c151ced27b0dd14353cc273c403f8e GIT binary patch literal 3590 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1042.png b/public/imagenes/desafios/1042.png new file mode 100644 index 0000000000000000000000000000000000000000..b400fac9f17249128dd9c702f9d0f20fc4f6bf31 GIT binary patch literal 6010 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1132.png b/public/imagenes/desafios/1132.png new file mode 100644 index 0000000000000000000000000000000000000000..fc34f113f30b63d19d5c946251543083bfb8ebc6 GIT binary patch literal 8541 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 m$QMkP0@RCev6znV=L!@X7(Lqy> zEJON`IeqM0%$SgYS8X0-ReYggB|u7vA_fe>;y*qDW!L2zfOGkD=ZfEEB^Z0mXND5z zMO*+e%$D|PEiTbW1FqR?~6ScOQeALS1C(Mh$ z5HlS+Mgv|h66tq}-7*?8Hxy3_^EnP>9KPR@kA0DkZ-MdXzm5?Z1Q}hlsF=3HhFDzV z0ZTk7Fg*x3i7_)8M`Yv9O9+;DQv3`?z!`y+8S!`Y=<#?@8<3f(TRZ863Gf1Y6cfHe zFk$y53QHs@%$LE)qm$BO$1|~gaWOi)zo_n5PD@j|O5?ify6V#Mv)ueHdLgJRUSu@8 zB1=uULD&VnTx9&PM3R#GOb?5~2mpbh#nro2?wG#m%}dN(+F+SX?SAL;*I*o&lK`^u z;uQgwNKyi(_n)%zm^!Mh$*8Nz=9>)R-8i)Y zrE3E-Gq8Otr2E7pgJaIZVy8q9ND3rFA<7a%O2G8EcB5=!1k*!x3|dNKmp=cPrE;5t z|Ch3hN`I*7h_P2Dv_q7(#Zd^@%F+= zO&GNSqqdGl_PP7mc=3Xs5qL#TcP6M}lY&SpW|^ge_;X;Ilzd7`-k|V%{G=XvFN_q5 zVi=|r@29~|-*|2(pocAcWhNTGCFDY)$4iKpM5f%yv2qNRBtkNTae1F!5qlrnSfoH! z0Rv>P1#niuXrQWg_m;!q`^GdO73FvugXY1N0A!$C{-uJ5S5yKgB842CJo;gYEOo{s zt2cOxaDoAjA|*%BxT|SPR+fh$qlo8%+D9xU_}|AdRcAH{P*$aVRV{CIE-XlQ3AK_{dHSFYrzQUW7|) z)ltO5d|833O3zAN^XpaS&c1hF-s+Q;Dy9Ld)C%YUZ(O$+FvSRti1mbLSwLKHB>TK? ziRUH7Vx*A3%S*8?ALE=^%sP$|6)!6w6+FG&TMu8oX6b92AE`as$dN)(35rT%o<^&w zYuks1@4M-rA8o9P5pc4-ZC=EK5m^Grh;=6=CyA95Ax2gjOsuR}CxYL@|5N$gsS~nO z-+Os$;glTEm${=4!-Bm@!IVtwHr$5y1YlHUn}XCerqxuG4Vf4k;co7Dlb z!ttbKt1Ey7ha*6wrJScsdA}pqNhmf5RDXY+M!Dn%P>pisR*wwc#g^5X13;+4)y+6N;bul0R z>-`Tlz6ukivkRVia~%kZTNofdcJH0HUVh#0)@}ffFdy)J`1;9?QJn+O*)#f42 zX9c=~-Y!e57~*cexZv1CCO{&2VPi>g0+-HrNh3rFYl#x_4K^9bMp(P6ZH{dqNJEf8Hnqaup<4CmeH!hhU;y1P0=imOIU~(n|UlWZPf}ZOh zoZP@qfROQPLdw!&;$#)Y07Hvbg&2<8t=9IImeGHOK5^a8u6$taP0>~djzANX6|F$X z&lba~5gtaD7#bojSOTs+ANLp6ec{3?;k|-uhrvEPy#1q(zS*&(rJ-T4uMZ~79sZi1 z=|tUQ|9G|H;`vc8%*FGK(@I31BtM4eivNa?04zelwF`g@B=@ACtO_P)*MD!y$v3bT zA!DB}aM^39-H;?FSoQ0gnDU&)y$I84DFO zLpP!uM>8Z62(L1+eGtV2e5w$vDcSrmqM&%D>DY-0nQF^`LSsm+nD3X;itBHB?7!~> z`GkoJ%+ol%H1M;fv8#ASP7G4?e!kD@r)QjZSi+ezKYqdJtzpqkhyZ65u}9oH%oett zPV>2@p&>iKa=A#lf0)x6*E6oX;pgkFz7nJq^i#t_lc$wH3=x=9ceFVcEDO%d5ZR3| zc?qL&iG-yTD=P#eHweH=&(zObRCc(kw)RMKdWH;Kl|Eh8(dqVjhiIqO<8}vlt-Ssw z7y@Pp)c8S`*emb-Ek8YkW=r%@i8z!c&<}=%#c*&aQ_EG^BevByF9ujuU)J3B__aEH z%H)z#ug6old9zBR36SDD^5_M4Cq(ww|7u}$1Kf&H?}g3mW6rY~N~34aVX_)=sP9ok znSdpNn{PVVUA6uAl2sJ|2!^ZHtcmwPE4Ne&8zABRRir|~csh72-l#o7t!LEr3~NhQ z&xP^kcWXa;^RT(ICxN5<;{5}!KfO(;KI6F-VZ!6jvBV9cU}1s|tCLh`CB;8Cx39fe2Na6sO(822Bl}FaR}< z1t8D zUViP&E3cdT-8aqqcAV-sGZ5C(jb3Zn>WZbSXL0pEAJgzu95ls$S|r4^Bf9=^?Fu8n z>ZRG|K7^Z<$v07J!|ITjAgt0^Mi}c2>=Q+EE-i#XsWcotU;;*9ae?YPr=#@D(<=aHrknr zd`c^3^V+NyQ-cIWH3UI2^e{? z4JTgwLwry8LL`wPc-iZzdrOFy`1b{%JBR$k+Pcnk&tb}HD_uW>oYURMGddbUArD{dJ@)YBKw2NUo1%bCGK>YROeHBEA zJbQOyXI|b(*@8VCfuiYzL^^UeAL~)jY5s8B1Lw|rs?@$WjZcbeLvQCvjaCj5AC~{G zr#r96d&cPWKQ9Ncwxv{d)(>1#_3`ArTVT!>Z~k@2Hh{gAmuBcB~I1lL~&p)hJujm?8 zu9AP~E}VMcSH?8<8O+1ggF!kO z7paxxK<77&4u_Mb6(Srb*5imxv{&$1FHT%+S7^iQemS}3jr3lU5g^4HczQ6)bB78A zA}Qg6k!1UixL%(9sI#JmN-ZgF_XqlIX?3Tv&AmyHQ*KOZ?f%r-{Tb!$QyDIkDDq_! z=Unl5l{v+*sk@tGVm!dyBaskZ3W+H$GFBQ?O+I>tUY+yF)70sPlP>ZzcUGB7wL;pR zjXOt^qH=AFEa<2x8br$k%q{9wRrpsym6Rhbqw&UHw#-?a`pUMmUsuPx*lg%e$>rKv zggg_Mq|&6-F;Jz@7ZhIgrnmm&ByVZV`}1$AJII}0_O^l?rGBqEGYJoh2vbwu%g#9_g%q0&%%_H;V&lu6ZdmtMo^95vzHHEGgbGkPg#Zs|8lKbpbJJH3BthlJ?SnJfJNMhInUpZ#SQ;x14U6oyqzT zB1x;BQrbt+&Z22#jz5$4zci4giT%wT;m2|ODT3+To;#kQX(uNZ10j7uRTChU^6bfB z%+ue3M}x)rCNAdWlhWSWCYurLaQU#Ztl};|0LVxByc?G z7qZ6rM7LL^>3nKA1l&ybS#9H{5Ed94m$FCPu7IF{BPE|5A)$j9&&5?OVAEiapS?QR7-k5UqCA5H>QB;2{#BA zb|rr%yo_=J$RU{@6M=oZC%{c4y&WDL?zhkS_uOn@ad((;t%!4%C6>uOUr z>E$hImej-|f2ypCT*GnI>Nrvme?s&CQW8%p-sWJCAtsS8+XP{W6c-msaAWsKvYkrS zg``@T{{`Cb?|zNKHPCqlWlw0swx;lTb9tEs#HE-w0Coq#0lcOR3?>|`gO8EW0BXy}EsXWFY z=dC$>mlH4zkH@FD!gE8Bo-54jcfp~^R-H-j(ORn%uEvIXYt{SyhijWZKQQOWj%5SK zAdIX`DL?gYW#cKbx+3#;YyEY1nRNUajosoz!4mJe!VV7f#lAG8Su~_sq`L+wcI-a& zP9@t1q2wj~^$3bE?|)Y9YGPAmcmMWpD8?JXVGm)p4HYI#K zGY`FQJ8A+<04sQDDaz`0+gvVyVspDWG|4IzfngfCTrQEwrBaPd28nLevho`u8>I7aybk}r82IK2*CnzHCvF}B=!rRV{fGIgTT5&d$8_~z+DWZ%NXmsDwRl^T~RFs+Uq z$GW>ivR{pzpdPo+aqD*lWd)j&q3m_ofBXH%R$d=%l?89URKD$_z|W-KuDJG?I&}8R ze{Xo_e@?DmR;a*beP``aWh=+z3M?s^kjYVC1f+sR&0+WPhThn3NK*{^)x}{qTTR8s z_H{_9xdW8tuR)_&CL!fCB|wTT7GJc04=W3VcD;yw4fH@L0K-)B^w&r0=FG@QPgM;M zhU7n5mJ6oRV1P!c!3iS5>A@;r9cpfD89>B;deiD*zm=4e6#G?up%|~ZL5X5A-ytOv zlJ1fUa6m0{7R2&XHu1ZlPB$3$ZUIJt{_fcDV9^w9S+OCoOo~A=(I^K@;W4_EvfC)P zi-8Fz>FytJnfvTkm#cT=R&gBP?BKq|rB|>Yu1Ty}E?(l!Fi!7hgS~H8+;HNK2gR@e zU$*`3hmFtuaf(!ep=j$xQQZHO3I4;<#wDv0aHefj8DgI zr2&e$$H}b%aRZE5G&l}X1;1yE`vWKaPBu#_kU3C=GTwDFhW8IFp})0js_V0--ZUk^ zA_n3j{l)UX)s$y5d1vYLw64pGqZVYIen@X0uCZFwG8x1H89E(|a|%MT1mIO)XXzhw zb#&SIXds>67;I^smt@_KdN{b;nGc6pL{ZLwju*`dKkG%SzAtfb4 z7rB%QbUyvEi9-V*;QWCOpn>=kpg=sqp@EQsqG=aNf~-6~d>Vyfz-B|n@;&$@N8d%K zwv?T&tevzhCbFcSE=AV>)}u(8#+Dq43WlpR4~yJUli`;615Xs@^#A9-jrU|E1hDU;zCCM5`lVfbj=_Nd(@J}Wgf5oIOG%8Jui*t8d- znCY$iV4_c(OW~3I|7~|%J+*R&^mwY2!e!HjB?PiL`Cl$^)pQDzYaJ%_5c?r9nGA94 zNh^D5bMda7XQx&4sr6o(?R>~T-!qwXw)OXeSrr%zVO<^!EKo1%8X`a@GKmCYEiX-j zxL|pf6iw5-+xOrZWj>)PrBba@+1k^?{dIi)n+}=R0V5{3FGyhn4;dAf<-p zocV20?|bAeQdMUXb1*HC`X$qCgLv%c)VXhmN^EUTC*pLn{V3{t7$Uv!#BKE}D>Xm= z5M8g{@$U3p^E_9mk?BDkAQ0|9nBabT=#c+!qUVEb zgHa=$Y&G|y`ehx-SD)jaf4h-+0`Kkk{-f^{I$is~K`ydy=m-vO z&}W;3*MTPhtIt8!xcg_$&__$eh{~@_CR@rn_R(vd770Ah<1uNhpJaD;X_O})DiHm6 zq|4)R*5|n}#<%(-}-6%T0%|LBXNy{uC zF?J5?*R`e-$>7wH3(|-V5$cV+rb6h}33N#_^W<<6)DI3zjax=hLo%6NA{ok%k{C8K zp*_OZ6kf0FbeiIXi(qIP!@8BKb`&M4GZzTfdD<=*4(Ck=xjxL_!_)B!DqOHW*NCWt zacq~xf?TL}zF^6v(qyIb0-S&)dRR2>4MTov=NndDR??cQr~MdCz)Mj-DNA(O+U@=c z){n6fKOu-+FVSkb&g%aWESx}98r*J;+s6gU82{(ZaAsa!X--ao!H}$qQNRUK6N|?5 d(&qmPFaRgkQi^H$Gr0f&002ovPDHLkV1m#k)!hI9 literal 0 HcmV?d00001 diff --git a/public/imagenes/desafios/1136.png b/public/imagenes/desafios/1136.png new file mode 100644 index 0000000000000000000000000000000000000000..13642c26f9309439c2e9ebf919b1956016e9f63c GIT binary patch literal 3858 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 literal 0 HcmV?d00001 From 9a0d2409cf3643d2997fef54e1d1baf5904ad3b9 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Wed, 13 Dec 2023 16:47:27 -0300 Subject: [PATCH 182/212] cambio en nombre de imagenes de desafios --- app/utils/staticData/desafios.js | 106 +++++++++++++++---------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 476b499ec..65d158d9a 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -1916,7 +1916,7 @@ export const desafios = [ // Nuevos renumerados { id: 1001, - nombre: 'CapyYGuyra', + nombre: '1001', escena: `new EscenaCapySolo("[A,-,-,G]")`, bloques: ['MoverACasillaDerecha', 'SubirPajarito'], expectations: { @@ -1926,7 +1926,7 @@ export const desafios = [ }, { id: 1046, - nombre: 'NuevosComandosCapy', + nombre: '1046', escena: `new EscenaCapy("\ [A,-,L],\ [-,_,L],\ @@ -2753,7 +2753,7 @@ export const desafios = [ }, { id: 1002, - nombre: 'ChuyHaciendoJueguito', + nombre: '1002', escena: 'ChuyHaciendoJueguito', bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Procedimiento'], expectations: { @@ -2762,7 +2762,7 @@ export const desafios = [ }, { id: 1003, - nombre: 'NoMeCansoDeRebotar', + nombre: '1003', escena: 'NoMeCansoDeRebotar', bloques: ['RebotarUnaVezPingPong', 'Procedimiento', 'Repetir'], expectations: { @@ -2771,7 +2771,7 @@ export const desafios = [ }, { id: 1004, - nombre: 'ManicEnElCielo', + nombre: '1004', escena: `new EscenaManic("\ [E,-,E,-,E],\ [-,-,-,-,E],\ @@ -2781,7 +2781,7 @@ export const desafios = [ }, { id: 1005, - nombre: 'YvotyDespiertaLuciernagas', + nombre: '1005', escena: `new EscenaYvoty("\ [-,-,-,L,-,-],\ [-,-,L,-,-,L],\ @@ -2793,7 +2793,7 @@ export const desafios = [ }, { id: 1006, - nombre: 'LosTrofeosDeChuy', + nombre: '1006', escena: `new EscenaChuy("\ [T,-,-,-,-,-],\ [-,T,-,-,-,-],\ @@ -2805,7 +2805,7 @@ export const desafios = [ }, { id: 1007, - nombre: 'LaReparadoraDeTelescopios', + nombre: '1007', escena: `new EscenaManic("\ [-,T,T,T,T],\ [-,T,T,T,T],\ @@ -2815,7 +2815,7 @@ export const desafios = [ }, { id: 1008, - nombre: 'ManicYLosPlanetas', + nombre: '1008', escena: `new EscenaManic("\ [P,P,P,P,P,P],\ [P,-,-,-,-,-],\ @@ -2826,7 +2826,7 @@ export const desafios = [ }, { id: 1009, - nombre: 'CargandoCelus', + nombre: '1009', escena: `new EscenaYvoty("\ [C,C,C,C,-],\ [-,-,-,-,K],\ @@ -2836,13 +2836,13 @@ export const desafios = [ }, { id: 1010, - nombre: 'InstalandoJuegosYvoty', + nombre: '1010', escena: 'InstalandoJuegosYvoty', bloques: ['PasarASiguienteComputadora', 'PrenderComputadora', 'ApagarComputadora', 'EscribirC', 'EscribirB', 'EscribirA', 'InstalarJuego', 'Repetir', 'Procedimiento'], }, { id: 1011, - nombre: 'EscapeEnYacare', + nombre: '1011', escena: 'EscapeEnYacare', bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], expectations: { @@ -2851,13 +2851,13 @@ export const desafios = [ }, { id: 1012, - nombre: 'LimpiandoElHumedal', + nombre: '1012', escena: 'LimpiandoElHumedal', bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], }, { id: 1013, - nombre: 'PateandoAVeces', + nombre: '1013', escena: `new EscenaChuy("[A,G?]",{},[1,0])`, bloques: ['PatearPelotaChuy', 'MoverACasillaDerecha', 'TocandoPelotaChuy', 'Repetir', 'Procedimiento', 'Si'], expectations: { @@ -2868,7 +2868,7 @@ export const desafios = [ }, { id: 1014, - nombre: 'PelotaPaleta', + nombre: '1014', escena: `new EscenaChuy(["[A,P]", "[A,G]"])`, bloques: ['PatearPelotaChuy', 'RebotarPingPong', 'MoverACasillaDerecha', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoPelotaChuy', 'TocandoPingPong'], expectations: { @@ -2879,7 +2879,7 @@ export const desafios = [ }, { id: 1015, - nombre: 'LaberintoCortoChuy', + nombre: '1015', escena: `new EscenaChuy(['[A,+]', '[A],[+]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'TocandoAbajo', 'TocandoDerecha'], @@ -2890,13 +2890,13 @@ export const desafios = [ }, { id: 1016, - nombre: 'TresTelescopios', + nombre: '1016', escena: `new EscenaManic("[A,T?,T?,T?]",{},[3,0])`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'RepararTelescopio', 'Repetir', 'Si', 'SiNo', 'TocandoTelescopio'], }, { id: 1017, - nombre: 'YvotyDespiertaMasLuciernagas', + nombre: '1017', escena: `new EscenaYvoty("\ [A&(*>L?)],\ [*>L?],\ @@ -2910,7 +2910,7 @@ export const desafios = [ }, { id: 1018, - nombre: 'LaberintoLargoChuy', + nombre: '1018', escena: `new EscenaChuy([ '[A,_,_,_,_,_,_,_],[-,-,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,_,_,_,_,_],[_,_,-,-,-,-,-,_],[_,_,_,_,_,_,-,_],[_,_,_,_,_,_,-,-],[_,_,_,_,_,_,_,-]', '[A,-,-,_,_,_,_,_],[_,_,-,-,-,_,_,_],[_,_,_,_,-,-,_,_],[_,_,_,_,_,-,_,_],[_,_,_,_,_,-,-,_],[_,_,_,_,_,_,-,-],[_,_,_,_,_,_,_,-],[_,_,_,_,_,_,_,-]', @@ -2923,7 +2923,7 @@ export const desafios = [ }, { id: 1019, - nombre: 'SuperYvoty1', + nombre: '1019', escena: `new EscenaYvoty(["[A&L],[L],[+]","[A&L],[L],[L],[+]","[A&L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[+]", "[A&L],[L],[L],[L],[L],[L],[+]"])`, bloques: ['Procedimiento', 'DespertarLuciernaga', 'MoverACasillaAbajo', 'TocandoMeta', 'Repetir', 'Si', 'SiNo', 'Hasta'], @@ -2933,7 +2933,7 @@ export const desafios = [ }, { id: 1020, - nombre: 'SuperYvoty2', + nombre: '1020', escena: `new EscenaYvoty(["[A&(#L)],[#L],[+]","[A&(#L)],[#L],[#L],[+]","[A&(#L)],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[+]", "[A&(#L)],[#L],[#L],[#L],[#L],[#L],[+]"], { macros: { "L": "*>L?" }, coleccion: ["L"] })`, bloques: ['Procedimiento', 'TocandoMeta', 'TocandoLuciernaga', 'DespertarLuciernaga', @@ -2944,7 +2944,7 @@ export const desafios = [ }, { id: 1021, - nombre: 'LaberintoConPelotas', + nombre: '1021', escena: `new EscenaChuy([ '[A&(U?),_,_,_,_],[U?,U?,_,_,_],[_,U?,U?,_,_],[_,_,U?,_,_],[_,_,U?,U?,+]', '[A&(U?),_],[U?,+]', @@ -2961,7 +2961,7 @@ export const desafios = [ }, { id: 1022, - nombre: 'CapyBuscaAGuyra', + nombre: '1022', escena: `new EscenaCapySolo("\ [*,*,*,*,*],\ ", { coleccion: ["G", "A"] })`, @@ -2973,7 +2973,7 @@ export const desafios = [ }, { id: 1023, - nombre: 'FutbolAlSur', + nombre: '1023', escena: 'FutbolAlSur', bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'SiguienteFila', 'PatearPelotaChuy', 'TocandoInicio', 'TocandoPelotaChuy', 'Repetir', 'Si', @@ -2984,7 +2984,7 @@ export const desafios = [ }, { id: 1024, - nombre: 'PrendiendoLasCompusYvoty', + nombre: '1024', escena: `new EscenaYvoty([ '[A,T,T,T,-], [T,-,-,-,T], [T,-,-,-,T], [T,-,-,-,T], [-,T,T,T,-]', '[A,T,T,T,T,-], [T,-,-,-,-,T], [T,-,-,-,-,T], [T,-,-,-,-,T], [-,T,T,T,T,-]', @@ -3005,7 +3005,7 @@ export const desafios = [ }, { id: 1025, - nombre: 'ContandoPlanetasYEstrellas', + nombre: '1025', escena: 'ContandoPlanetasYEstrellas', bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'SiguienteColumna', 'ContarPlaneta', 'ContarEstrella', @@ -3017,7 +3017,7 @@ export const desafios = [ }, { id: 1026, - nombre: 'LaSupermaraton', + nombre: '1026', escena: 'SuperMaraton', bloques: ['Procedimiento', 'KmsTotales', 'Avanzar1kmChuy', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta'], @@ -3027,7 +3027,7 @@ export const desafios = [ }, { id: 1027, - nombre: 'ContandoDeNuevoManic', + nombre: '1027', escena: 'ContandoDeNuevoManic', bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'SiguienteColumna', @@ -3037,7 +3037,7 @@ export const desafios = [ }, { id: 1028, - nombre: 'ElPlanetaDeCapyYGuyra', + nombre: '1028', escena: `new EscenaCapy("\ [-,L,L,-,-],\ [-,L,L,L,L],\ @@ -3053,70 +3053,70 @@ export const desafios = [ }, { id: 1029, - nombre: 'DibujandoCuadradoManic', + nombre: '1029', escena: 'DibujandoCuadradoManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero'] }, { id: 1030, - nombre: 'DibujandoRayuelaRoboticaManic', + nombre: '1030', escena: 'Dibujando5CuadradosHorizontalManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] }, { id: 1031, - nombre: 'DibujandoCortoPorLaDiagonalManic', + nombre: '1031', escena: 'Dibujando5CuadradosDiagonalManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] }, { id: 1032, - nombre: 'DibujandoMamushkaCuadradaManic', + nombre: '1032', escena: 'Dibujando4CuadradosInterioresManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] }, { id: 1033, - nombre: 'DibujandoEscaleraCuadradaManic', + nombre: '1033', escena: 'DibujandoCabezaElefanteManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] }, { id: 1034, - nombre: 'DibujandoHexagonoManic', + nombre: '1034', escena: 'DibujandoHexagonoManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] }, { id: 1035, - nombre: 'DibujandoPiramideInvertidaManic', + nombre: '1035', escena: 'DibujandoTrianguloEquilateroManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] }, { id: 1036, - nombre: 'DibujandoFigurasDentroDeFigurasManic', + nombre: '1036', escena: 'DibujandoPoligonosInterioresManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] }, { id: 1037, - nombre: 'DibujandoLaCuevaDeEstalagtitasManic', + nombre: '1037', escena: 'DibujandoCuevaEstalagtitasManic', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] }, { id: 1038, - nombre: 'LasEstrellasDeManic', + nombre: '1038', escena: `new EscenaManic([ '[A,_,_,_,_],[-,O,-,-,-],[-,_,_,_,-],[E,-,-,-,-]', '[A,_,_,_,_],[-,-,-,-,-],[O,_,_,_,-],[E,-,-,-,-]'])`, @@ -3127,7 +3127,7 @@ export const desafios = [ }, { id: 1039, - nombre: 'LosCaminosDeManic', + nombre: '1039', escena: `new EscenaManic([ '[A,_,_,_,_,_],[-,O,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,O,-,-,-],[_,-,_,_,_,-],[_,E,-,-,-,-]', '[A,_,_,_,_,_],[-,O,-,-,-,_],[-,_,_,_,-,_],[-,-,-,-,-,_],[-,_,_,_,_,_],[-,-,-,-,-,-],[_,O,_,_,_,-],[_,E,-,-,-,-]', @@ -3144,7 +3144,7 @@ export const desafios = [ }, { id: 1040, - nombre: 'HileraDeLatas', + nombre: '1040', escena: `new EscenaCapy([ '[L,-,-,-,A],[_,_,-,_,_],[_,_,-,_,_],[_,_,-,_,_]', '[L,-,L,-,A],[_,_,L,_,_],[_,_,L,_,_],[_,_,L,_,_]'])`, @@ -3152,7 +3152,7 @@ export const desafios = [ }, { id: 1041, - nombre: 'MuchasHilerasDeLatas', + nombre: '1041', escena: `new EscenaCapy([ '[_,_,_,-,-,L,A],[L,-,-,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,L,_],[L,_,_,L,_,_,_]', '[_,_,_,-,-,L,A],[-,-,-,L,_,L,_],[-,_,_,L,_,L,_],[-,_,_,L,_,L,_],[-,_,_,L,_,_,_]', @@ -3166,7 +3166,7 @@ export const desafios = [ }, { id: 1042, - nombre: 'AVecesLatasAVecesPapeles', + nombre: '1042', escena: `new EscenaCapy("\ [A,L|P|-,L|P|-,L|P|-,L|P|-],\ [-,_,_,_,_],\ @@ -3182,7 +3182,7 @@ export const desafios = [ }, { id: 1043, - nombre: 'ElPasilloCurvoDeCelus', + nombre: '1043', escena: `new EscenaYvoty("\ [_,P,P?,P?],\ [_,_,_,P?],\ @@ -3200,7 +3200,7 @@ export const desafios = [ }, { id: 1044, - nombre: 'ElFestinAstronomico', + nombre: '1044', escena: `new EscenaManic("\ [A,-,-,-,-],\ [E|P,_,E|P,E|P,E|P],\ @@ -3213,7 +3213,7 @@ export const desafios = [ }, { id: 1045, - nombre: 'ObservadoraDeMariposas', + nombre: '1045', escena: `new EscenaYvoty("\ [-,*a>M?,*a>M?,*a>M?,*a>M?],\ [-,*b>M?,*b>M?,*b>M?,*b>M?],\ @@ -3234,20 +3234,20 @@ export const desafios = [ }, { id: 1130, - nombre: 'BuscandoLasEstrellas', + nombre: '1130', escena: 'BuscandoLasEstrellas', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'Numero', 'OpAritmetica', 'MoverTelescopio', 'SiguienteTelescopio', 'ObservarConAmigos'], }, { id: 1131, - nombre: 'ReciclandoPapeles', + nombre: '1131', escena: 'ReciclandoPapeles', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'MoverACasillaDerecha', 'TomarPapel', 'Colocar', 'SiguienteFilaTotal', 'Numero', 'OpAritmetica'], }, { id: 1132, - nombre: 'PrendiendoLasCompusParametrizadoYvoty', + nombre: '1132', escena: `new EscenaYvoty([ '[A,T,T,T,-], [T,-,-,-,T], [T,-,-,-,T], [T,-,-,-,T], [-,T,T,T,-]', '[A,T,T,T,T,-], [T,-,-,-,-,T], [T,-,-,-,-,T], [T,-,-,-,-,T], [-,T,T,T,T,-]', @@ -3266,7 +3266,7 @@ export const desafios = [ }, { id: 1133, - nombre: 'MariposasEncuadradas', + nombre: '1133', escena: `new EscenaYvoty("\ [A,#M,#M,#M,#M,#M,-],\ [#M,O,O,O,O,O,#M],\ @@ -3282,7 +3282,7 @@ export const desafios = [ }, { id: 1134, - nombre: 'InfinitosTrofeos', + nombre: '1134', escena: `new EscenaChuy("\ [A,T,T,T,T,-],\ [T,_,_,_,_,T],\ @@ -3296,7 +3296,7 @@ export const desafios = [ }, { id: 1135, - nombre: 'PaleteandoConParametros', + nombre: '1135', escena: 'PaleteandoConParametros', bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'TocandoPingPong', 'RebotarPingPong', @@ -3307,7 +3307,7 @@ export const desafios = [ }, { id: 1136, - nombre: 'DibujoLibreManic', + nombre: '1136', escena: `DibujandoLibrementeManic`, hasAutomaticGrading: false, bloques: ['Procedimiento', 'Repetir', 'DibujarLado', From a0a8058caa5223afeee7d39aecb9b828c3709da1 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 12:18:54 -0300 Subject: [PATCH 183/212] arreglando tests --- .../desafios/BuscandoLasEstrellas-test.js | 2 +- .../desafios/ChuyHaciendoJueguito-test.js | 2 +- .../desafios/ContandoDeNuevoManic-test.js | 2 +- .../ContandoPlanetasYEstrellas-test.js | 2 +- .../desafios/DibujandoManic-test.js | 56 +++++++++---------- .../desafios/LaSupermaraton-test.js | 2 +- .../desafios/LimpiandoElHumedal-test.js | 2 +- .../desafios/NoMeCansoDeRebotar-test.js | 2 +- .../desafios/PaleteandoConParametros-test.js | 2 +- .../desafios/ReciclandoPapeles-test.js | 2 +- .../Capy/AVecesLatasAVecesPapeles-test.js | 2 +- .../segundoCiclo/Capy/CapyBuscaAGuyra-test.js | 2 +- .../segundoCiclo/Capy/CapyYGuyra-test.js | 2 +- .../Capy/ElPlanetaDeCapyYGuyra-test.js | 2 +- .../segundoCiclo/Capy/EscapeEnYacare-test.js | 2 +- .../segundoCiclo/Capy/HileraDeLatas-test.js | 2 +- .../Capy/MuchasHilerasDeLatas-test.js | 2 +- .../Capy/NuevosComandosCapy-test.js | 2 +- .../segundoCiclo/Chuy/FutbolAlSur-test.js | 2 +- .../Chuy/InfinitosTrofeos-test.js | 2 +- .../Chuy/LaberintoConPelotas-test.js | 2 +- .../Chuy/LaberintoCortoChuy-test .js | 2 +- .../Chuy/LaberintoLargoChuy-test.js | 2 +- .../Chuy/LosTrofeosDeChuy-test.js | 2 +- .../segundoCiclo/Chuy/PateandoAVeces-test.js | 2 +- .../segundoCiclo/Chuy/PelotaPaleta-test.js | 2 +- .../Manic/ElFestinAstronomico-test.js | 2 +- .../Manic/LaReparadoraDeTelescopios-test.js | 2 +- .../Manic/LasEstrellasDeManic-test.js | 2 +- .../Manic/LosCaminosDeManic-test.js | 2 +- .../segundoCiclo/Manic/ManicEnElCielo-test.js | 2 +- .../Manic/ManicYLosPlanetas-test.js | 2 +- .../Manic/TresTelescopios-test.js | 2 +- .../segundoCiclo/Yvoty/CargandoCelus-test.js | 2 +- .../Yvoty/ElPasilloCurvoDeCelus-test.js | 2 +- .../Yvoty/InstalandoJuegosYvoty-test.js | 2 +- .../Yvoty/MariposasEncuadradas-test.js | 2 +- .../Yvoty/ObservadoraDeMariposas-test.js | 2 +- ...ndiendoLasCompusParametrizadoYvoty-test.js | 2 +- .../Yvoty/PrendiendoLasCompusYvoty-test.js | 2 +- .../segundoCiclo/Yvoty/SuperYvoty1-test.js | 2 +- .../segundoCiclo/Yvoty/SuperYvoty2-test.js | 2 +- .../Yvoty/YvotyDespiertaLuciernagas-test.js | 2 +- .../YvotyDespiertaMasLuciernagas-test.js | 2 +- 44 files changed, 71 insertions(+), 71 deletions(-) diff --git a/tests/integration/desafios/BuscandoLasEstrellas-test.js b/tests/integration/desafios/BuscandoLasEstrellas-test.js index 8314714c3..f7b5c83d4 100644 --- a/tests/integration/desafios/BuscandoLasEstrellas-test.js +++ b/tests/integration/desafios/BuscandoLasEstrellas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = "BuscandoLasEstrellas"; +const nombre = "1130"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js index 8913de1a5..7675cf660 100644 --- a/tests/integration/desafios/ChuyHaciendoJueguito-test.js +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = "ChuyHaciendoJueguito"; +const nombre = "1002"; moduloActividad(nombre, () =>{ diff --git a/tests/integration/desafios/ContandoDeNuevoManic-test.js b/tests/integration/desafios/ContandoDeNuevoManic-test.js index 4e76cb602..806c79839 100644 --- a/tests/integration/desafios/ContandoDeNuevoManic-test.js +++ b/tests/integration/desafios/ContandoDeNuevoManic-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = "ContandoDeNuevoManic"; +const nombre = "1027"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js index ccafa8885..34374e8ad 100644 --- a/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js +++ b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = 'ContandoPlanetasYEstrellas'; +const nombre = '1025'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/DibujandoManic-test.js b/tests/integration/desafios/DibujandoManic-test.js index 4d2d44e3c..19a1443a8 100644 --- a/tests/integration/desafios/DibujandoManic-test.js +++ b/tests/integration/desafios/DibujandoManic-test.js @@ -1,8 +1,8 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -moduloActividad('DibujandoCuadradoManic', () => { +moduloActividad('1029', () => { - actividadTest('DibujandoCuadradoManic', { + actividadTest('1029', { solucion: ` @@ -47,9 +47,9 @@ moduloActividad('DibujandoCuadradoManic', () => { }); -moduloActividad('DibujandoRayuelaRoboticaManic', () => { +moduloActividad('1030', () => { - actividadTest('DibujandoRayuelaRoboticaManic', { + actividadTest('1030', { solucion: ` @@ -118,13 +118,13 @@ moduloActividad('DibujandoRayuelaRoboticaManic', () => { }); -moduloActividad('DibujandoCortoPorLaDiagonalManic', () => { +moduloActividad('1031', () => { - actividadTest('DibujandoCortoPorLaDiagonalManic', { + actividadTest('1031', { solucion: '5509050270Dibujar cuadrado de 5045090' }); - actividadTest('DibujandoCortoPorLaDiagonalManic', { + actividadTest('1031', { descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', solucion: '5Dibujar cuadraditoDescribe esta funcin...45090Avanzar a siguiente figuraDescribe esta funcin...509050270', resuelveDesafio: true @@ -132,28 +132,28 @@ moduloActividad('DibujandoCortoPorLaDiagonalManic', () => { }); -moduloActividad('DibujandoMamushkaCuadradaManic', () => { +moduloActividad('1032', () => { - actividadTest('DibujandoMamushkaCuadradaManic', { + actividadTest('1032', { solucion: '50100150200Dibujar cuadrado de 504largo lado90' }); }); -moduloActividad('DibujandoEscaleraCuadradaManic', () => { +moduloActividad('1033', () => { - actividadTest('DibujandoEscaleraCuadradaManic', { + actividadTest('1033', { solucion: '10045050Ir Siguiente grande10090100Dibujar cuadrado4largo lado90' }); - actividadTest('DibujandoEscaleraCuadradaManic', { + actividadTest('1033', { descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar', solucion: '4Dibujar cuadradoDescribe esta funcin...4100905090100270Avanzar a siguiente cuadraditoDescribe esta funcin...9050270Dibujar CuadraditoDescribe esta funcin...45090', resuelveDesafio: true }); - actividadTest('DibujandoEscaleraCuadradaManic', { + actividadTest('1033', { descripcionAdicional: 'Solución alternativa debe solucionar el desafío', solucion: ` @@ -300,50 +300,50 @@ moduloActividad('DibujandoEscaleraCuadradaManic', () => { resuelveDesafio: true }); - actividadTest('DibujandoEscaleraCuadradaManic', { + actividadTest('1033', { descripcionAdicional: 'Otra solución alternativa debe solucionar el desafío', solucion: '90100-905049050-90dibujar cuadrado grandeDescribe esta funcin...410090dibujar cuadrado pequeoDescribe esta funcin...45090' }); }); -moduloActividad('DibujandoHexagonoManic', () => { +moduloActividad('1034', () => { - actividadTest('DibujandoHexagonoManic', { + actividadTest('1034', { solucion: '610060' }); }); -moduloActividad('DibujandoPiramideInvertidaManic', () => { +moduloActividad('1035', () => { - actividadTest('DibujandoPiramideInvertidaManic', { + actividadTest('1035', { solucion: '3100120' }); }); -moduloActividad('DibujandoFigurasDentroDeFigurasManic', () => { +moduloActividad('1036', () => { - actividadTest('DibujandoFigurasDentroDeFigurasManic', { + actividadTest('1036', { solucion: '345Dibujar poligono de ladoscantidad100DIVIDE360cantidad' }); - actividadTest('DibujandoFigurasDentroDeFigurasManic', { + actividadTest('1036', { descripcionAdicional: 'Al tener un bloque con un id que contenga el caracter $, deberia funcionar correctamente, previo a la resolucion del issue no andaba', solucion: '5100hacer algoDescribe esta funcin...xyDIVIDE360x100', resuelveDesafio: false }); }); -moduloActividad('DibujandoLaCuevaDeEstalagtitasManic', () => { +moduloActividad('1037', () => { - actividadTest('DibujandoLaCuevaDeEstalagtitasManic', { + actividadTest('1037', { solucion: '420034040360603100Dibujar poligonocantidadlargo ladoDIVIDE360cantidad' }); - actividadTest('DibujandoLaCuevaDeEstalagtitasManic', { + actividadTest('1037', { descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', solucion: 'xcantidad de ladoslongitud420034040360603100Dibujar figuraDescribe esta funcin...cantidad de ladoslongitudDIVIDE360cantidad de lados100', resuelveDesafio: true @@ -351,9 +351,9 @@ moduloActividad('DibujandoLaCuevaDeEstalagtitasManic', () => { }); -moduloActividad('DibujoLibreManic', () => { +moduloActividad('1136', () => { - actividadTest('DibujoLibreManic', { + actividadTest('1136', { descripcionAdicional: 'Se tiene que poder dibujar libremente.', solucion: ` @@ -415,7 +415,7 @@ moduloActividad('DibujoLibreManic', () => { resuelveDesafio: false }); - actividadTest('DibujoLibreManic', { + actividadTest('1136', { descripcionAdicional: 'No se puede dividir por cero.', solucion: ` @@ -445,7 +445,7 @@ moduloActividad('DibujoLibreManic', () => { resuelveDesafio: false }); - actividadTest('DibujoLibreManic', { + actividadTest('1136', { descripcionAdicional: 'Se puede girar 0 grados.', solucion: ` diff --git a/tests/integration/desafios/LaSupermaraton-test.js b/tests/integration/desafios/LaSupermaraton-test.js index 2d35fd83a..ef9faa49e 100644 --- a/tests/integration/desafios/LaSupermaraton-test.js +++ b/tests/integration/desafios/LaSupermaraton-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = 'LaSupermaraton'; +const nombre = '1026'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js index b7920c26b..6996a7c1e 100644 --- a/tests/integration/desafios/LimpiandoElHumedal-test.js +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = 'LimpiandoElHumedal'; +const nombre = '1012'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/NoMeCansoDeRebotar-test.js b/tests/integration/desafios/NoMeCansoDeRebotar-test.js index f676048cf..bcbd69781 100644 --- a/tests/integration/desafios/NoMeCansoDeRebotar-test.js +++ b/tests/integration/desafios/NoMeCansoDeRebotar-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = 'NoMeCansoDeRebotar'; +const nombre = '1003'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/PaleteandoConParametros-test.js b/tests/integration/desafios/PaleteandoConParametros-test.js index 114e215af..59873da63 100644 --- a/tests/integration/desafios/PaleteandoConParametros-test.js +++ b/tests/integration/desafios/PaleteandoConParametros-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = 'PaleteandoConParametros'; +const nombre = '1135'; moduloActividad(nombre, () => { actividadTest(nombre, { diff --git a/tests/integration/desafios/ReciclandoPapeles-test.js b/tests/integration/desafios/ReciclandoPapeles-test.js index 02cda579f..c7d90a4f8 100644 --- a/tests/integration/desafios/ReciclandoPapeles-test.js +++ b/tests/integration/desafios/ReciclandoPapeles-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; -const nombre = "ReciclandoPapeles"; +const nombre = "1131"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/AVecesLatasAVecesPapeles-test.js b/tests/integration/desafios/segundoCiclo/Capy/AVecesLatasAVecesPapeles-test.js index c4b9d3420..8ad682003 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/AVecesLatasAVecesPapeles-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/AVecesLatasAVecesPapeles-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "AVecesLatasAVecesPapeles"; +const nombre = "1042"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js b/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js index fdba25efd..75abfa885 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "CapyBuscaAGuyra"; +const nombre = "1022"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js index d3a250599..b5f12ca6f 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "CapyYGuyra"; +const nombre = "1001"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/ElPlanetaDeCapyYGuyra-test.js b/tests/integration/desafios/segundoCiclo/Capy/ElPlanetaDeCapyYGuyra-test.js index 300a74028..0e611428d 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/ElPlanetaDeCapyYGuyra-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/ElPlanetaDeCapyYGuyra-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "ElPlanetaDeCapyYGuyra"; +const nombre = "1028"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js b/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js index 668bdf045..a8458e154 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "EscapeEnYacare"; +const nombre = "1011"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js b/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js index f351879f7..92c34230a 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'HileraDeLatas'; +const nombre = '1040'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/MuchasHilerasDeLatas-test.js b/tests/integration/desafios/segundoCiclo/Capy/MuchasHilerasDeLatas-test.js index fe8cf9669..018b063d6 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/MuchasHilerasDeLatas-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/MuchasHilerasDeLatas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'MuchasHilerasDeLatas'; +const nombre = '1041'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Capy/NuevosComandosCapy-test.js b/tests/integration/desafios/segundoCiclo/Capy/NuevosComandosCapy-test.js index fd362a3fa..f4536ca6e 100644 --- a/tests/integration/desafios/segundoCiclo/Capy/NuevosComandosCapy-test.js +++ b/tests/integration/desafios/segundoCiclo/Capy/NuevosComandosCapy-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'NuevosComandosCapy'; +const nombre = '1046'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/FutbolAlSur-test.js b/tests/integration/desafios/segundoCiclo/Chuy/FutbolAlSur-test.js index 676218b83..2ba64bd20 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/FutbolAlSur-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/FutbolAlSur-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'FutbolAlSur'; +const nombre = '1023'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js index 85f792ebe..eefccfdc7 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "InfinitosTrofeos"; +const nombre = "1134"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js index 6865f518b..eff3f6af2 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'LaberintoConPelotas'; +const nombre = '1021'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoCortoChuy-test .js b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoCortoChuy-test .js index 70060407e..d0342ea6e 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoCortoChuy-test .js +++ b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoCortoChuy-test .js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'LaberintoCortoChuy'; +const nombre = '1015'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoLargoChuy-test.js b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoLargoChuy-test.js index f52700d8e..89f909ef2 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoLargoChuy-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoLargoChuy-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'LaberintoLargoChuy'; +const nombre = '1018'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LosTrofeosDeChuy-test.js b/tests/integration/desafios/segundoCiclo/Chuy/LosTrofeosDeChuy-test.js index 9077fab08..d773c86c6 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/LosTrofeosDeChuy-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/LosTrofeosDeChuy-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'LosTrofeosDeChuy'; +const nombre = '1006'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js b/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js index 7f0ab5297..c17c3adca 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/PateandoAVeces-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "PateandoAVeces"; +const nombre = "1013"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Chuy/PelotaPaleta-test.js b/tests/integration/desafios/segundoCiclo/Chuy/PelotaPaleta-test.js index 7741d9888..de280fe06 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/PelotaPaleta-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/PelotaPaleta-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'PelotaPaleta'; +const nombre = '1014'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js b/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js index eb6a3315f..0176a2dae 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/ElFestinAstronomico-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "ElFestinAstronomico"; +const nombre = "1044"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/LaReparadoraDeTelescopios-test.js b/tests/integration/desafios/segundoCiclo/Manic/LaReparadoraDeTelescopios-test.js index 93e688fa1..e42a1ab15 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LaReparadoraDeTelescopios-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LaReparadoraDeTelescopios-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'LaReparadoraDeTelescopios'; +const nombre = '1007'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/LasEstrellasDeManic-test.js b/tests/integration/desafios/segundoCiclo/Manic/LasEstrellasDeManic-test.js index 125777375..6dc66a54f 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LasEstrellasDeManic-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LasEstrellasDeManic-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "LasEstrellasDeManic"; +const nombre = "1038"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js index 1321cf796..f5f5c9715 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/LosCaminosDeManic-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "LosCaminosDeManic"; +const nombre = "1039"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/ManicEnElCielo-test.js b/tests/integration/desafios/segundoCiclo/Manic/ManicEnElCielo-test.js index 049c54634..771c6a973 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/ManicEnElCielo-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/ManicEnElCielo-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "ManicEnElCielo"; +const nombre = "1004"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/ManicYLosPlanetas-test.js b/tests/integration/desafios/segundoCiclo/Manic/ManicYLosPlanetas-test.js index 32d292190..4dfb78ac4 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/ManicYLosPlanetas-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/ManicYLosPlanetas-test.js @@ -1,7 +1,7 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'ManicYLosPlanetas'; +const nombre = '1008'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Manic/TresTelescopios-test.js b/tests/integration/desafios/segundoCiclo/Manic/TresTelescopios-test.js index 2c90104cf..ec21f34ea 100644 --- a/tests/integration/desafios/segundoCiclo/Manic/TresTelescopios-test.js +++ b/tests/integration/desafios/segundoCiclo/Manic/TresTelescopios-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'TresTelescopios'; +const nombre = '1016'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/CargandoCelus-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/CargandoCelus-test.js index 6d932a7ca..38c33ce06 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/CargandoCelus-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/CargandoCelus-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "CargandoCelus"; +const nombre = "1009"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/ElPasilloCurvoDeCelus-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/ElPasilloCurvoDeCelus-test.js index bd49b57f6..fa8b54289 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/ElPasilloCurvoDeCelus-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/ElPasilloCurvoDeCelus-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'ElPasilloCurvoDeCelus'; +const nombre = '1043'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/InstalandoJuegosYvoty-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/InstalandoJuegosYvoty-test.js index 15f085833..32cc6629b 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/InstalandoJuegosYvoty-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/InstalandoJuegosYvoty-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'InstalandoJuegosYvoty'; +const nombre = '1010'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js index b680e062b..5da5e9e00 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -let nombre = "MariposasEncuadradas"; +let nombre = "1133"; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/ObservadoraDeMariposas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/ObservadoraDeMariposas-test.js index 14941edc3..751a589ab 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/ObservadoraDeMariposas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/ObservadoraDeMariposas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'ObservadoraDeMariposas'; +const nombre = '1045'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusParametrizadoYvoty-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusParametrizadoYvoty-test.js index 9186ac60a..52107221b 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusParametrizadoYvoty-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusParametrizadoYvoty-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'PrendiendoLasCompusParametrizadoYvoty'; +const nombre = '1132'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusYvoty-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusYvoty-test.js index 369ee1fc3..80b0c2597 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusYvoty-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/PrendiendoLasCompusYvoty-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'PrendiendoLasCompusYvoty'; +const nombre = '1024'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js index 3f944f935..5bd19a8bf 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty1-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'SuperYvoty1'; +const nombre = '1019'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js index 2525bb8a3..a4faaf028 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/SuperYvoty2-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'SuperYvoty2'; +const nombre = '1020'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaLuciernagas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaLuciernagas-test.js index 0544f36fb..d5e6f59c4 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaLuciernagas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaLuciernagas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'YvotyDespiertaLuciernagas'; +const nombre = '1005'; moduloActividad(nombre, () => { diff --git a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js index 683180291..afce4df5c 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/YvotyDespiertaMasLuciernagas-test.js @@ -1,6 +1,6 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = 'YvotyDespiertaMasLuciernagas'; +const nombre = '1017'; moduloActividad(nombre, () => { From bbde5d91f3c3cc5296d57afbdf13d72c3f8274c7 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 13:49:43 -0300 Subject: [PATCH 184/212] arreglando tests otra vez --- tests/integration/desafios/DibujandoManic-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/desafios/DibujandoManic-test.js b/tests/integration/desafios/DibujandoManic-test.js index 19a1443a8..fb7f305b1 100644 --- a/tests/integration/desafios/DibujandoManic-test.js +++ b/tests/integration/desafios/DibujandoManic-test.js @@ -110,7 +110,7 @@ moduloActividad('1030', () => { ` }); - actividadTest('DibujandoRayuelaRoboticaManic', { + actividadTest('1030', { descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', solucion: '450hacer cuadraditoDescribe esta funcin...45090', resuelveDesafio: true From 52e8a4e12e4c227c647920d5d73a203c5035b6fd Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 20:13:04 -0300 Subject: [PATCH 185/212] enunciados finales --- translations/es-ar.yaml | 203 ++++++++++++++++++---------------------- 1 file changed, 93 insertions(+), 110 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 448a84507..de0bf3929 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -68,16 +68,6 @@ model: 4) Luchar con la espada contra el caballero oscuro. 5) Escapar en unicornio. clue: '' - '1011': - title: El gran escape en yacaré - description: | - Ayuda Capy: - 1) Buscar el telescopio - 2) Dar el telescopio a Mañic - 3) Llevar la pelota a Chuy - 4) Llevar el cargador a Yvoty - 5) Irse en Yacare. - clue: '' '12': title: Reparando la nave description: 'El marciano debe arreglar su nave para poder volver a su hogar. Para lograrlo debe llevar 3 unidades de carbón y 3 de hierro a la nave, pero no puede cargar más de una unidad a la vez.' @@ -157,7 +147,7 @@ model: '27': title: El mono cuenta de nuevo description: 'El mono tiene que contar otra vez las frutas, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que lo pueda ayudar?' - clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' + clue: 'Una sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' '28': title: El planeta de Nano description: | @@ -518,16 +508,6 @@ model: title: ¡Coty dibuja libre! description: En esta actividad vas a poder realizar el dibujo que más te guste clue: 'Incluímos todos los bloques posibles, para que puedas dar rienda suelta a tus conocimientos.' - '1001': - title: Capy y Guyrá - description: | - El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. - clue: 'Fijate bien el orden de las _primitivas_: qué cosa tenés que hacer primero y qué cosa va después.' - '1046': - title: Nuevos comandos - description: | - Capy y Guyrá quieren cuidar su estero. Para lograrlo van a limpiar los desechos tirados por turistas. Empiezan por las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. Ayudalos a recoger todas las latas. - clue: ¿Viste los **procedimientos**? Combinando primitivas podés **crear nuevos comandos** para luego usarlos **cuantas veces quieras.** '202101': title: Introducción description: | @@ -675,15 +655,21 @@ model: Tenemos un programa ya hecho para que toto lea la provincia que está al sur de rio negro. Fijate si funciona o qué hay que arreglar. clue: Con el botón 'PASO' Toto puede ir realizando las instrucciones una por una + '1001': + title: Capy y Guyrá + description: | + El carpincho Capy y su inseparable amigo, el picabuey Guyrá, tienen una forma muy particular de recorrer los esteros. Ayudá a Capy a pasar a buscar a su amigo para subirlo a su cabeza y así emprender juntos una nueva aventura. + clue: 'Fijate bien el orden de las primitivas: qué cosa tenés que hacer primero y qué cosa va después.' '1002': - title: Chuy haciendo jueguito - description: 'Hacé que Chuy avance un paso, entre en calor (avance y retroceda dos veces), recoja la pelota de goma, haga jueguito lanzando al aire la pelota y rebotándola con el pie y por último vuelva a su lugar.' - clue: Se pueden crear nuevas acciones en Procedimientos definiendo nuevos bloques que incluyan otras acciones. + title: Chuy hace jueguito + description: | + Hacé que Chuy avance un paso, entre en calor (avance y retroceda dos veces), recoja la pelota de goma, haga jueguito lanzando al aire la pelota y rebotándola con el pie y, por último, vuelva a su lugar. + clue: '`Calentar` y `Hacer jueguito` no están como primitivas... ¿Cómo podés armar esas acciones con las primitivas disponibles? Tené en cuenta que "calentar" implica avanzar y retroceder dos veces. Y, por otro lado, "hacer jueguito" comprende tomar la pelota, lanzarla al aire y hacerla rebotar en el pie dos veces. ¡Hay mucho para hacer!' '1003': title: No me canso de rebotar description: | - Ayudá a Chuy a hacer rebotar la pelota de ping pong 30 veces seguidas. Pista: se puede resolver con menos de 30 bloques. - clue: El bloque Repetir permite elegir la cantidad de veces que se desea repetir una secuencia de acciones. Esto se llama "Repetición simple". + La única manera de adquirir confianza con la paleta es practicar y practicar... Ayudá a Chuy en este objetivo haciendo que paletee 30 veces seguidas sin que se le caiga la pelotita. + clue: Este desafío se puede resolver con mucho menos de 30 bloques... Fijate atentamente, ¡hay nuevas herramientas disponibles! '1004': title: Mañic en el cielo description: | @@ -714,15 +700,21 @@ model: description: | Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador, y luego ir a cargar cada uno de los celulares. ¿Cómo podrías ayudarla? clue: ¿En cuántas partes te conviene dividir tu estrategia? - '1010': + '10010': title: Instalando juegos description: | Yvoty va a instalar un juego en tres computadoras para que ella y sus amigas tengan todo listo para divertirse esta noche. Los pasos para instalarlo son: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Ayudala a completar la instalación de las tres compus. - clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' + clue: '¿Hay algo que se repita? Seguramente te diste cuenta que en cada computadora hay que hacer exactamente el mismo trabajo. ¿Cómo podría ayudarte tener en cuenta eso?' + '1011': + title: El gran escape en yacaré + description: | + Capy y Guyrá están planeando escapar en yacaré junto a Yvoty, Chuy y Mañic. Para lograrlo, necesitan recuperar ciertos objetos, ¡pero en un orden específico! Primero deberán agarrar el telescopio para luego intercambiarlo por la pelota que tiene Mañic, así después pueden intercambiar la pelota por el cargador que tiene Chuy y, por último, darle el cargador a Yvoty para finalmente escapar en el yacaré. Ayuda a Capy y Guyrá en esta aventura. + clue: No pienses el desafío como un todo. Acordate de separar el problema grande en pequeños problemas e ir resolviendo cada uno tranquilamente. '1012': title: Limpiando el humedal - description: 'Capy necesita limpiar el humedal antes de ir a surfear. Para lograrlo, Capy necesita agarrar 3 latas y 3 papeles y llevarlos hasta el tacho, pero no puede tirar más de uno a la vez. Luego, se sube al yacaré y se va a surfear!' - clue: '' + description: | + Antes de irse de paseo en yacaré, Capy y Guyrá deben separar los residuos para facilitar su reciclado. Ayudalos a recoger todos los papeles y las latas tirando cada tipo de residuo en el tacho correspondiente. + clue: Son 3 latas y 3 papeles. Fijate cómo podés automatizar el proceso de recolección. Y... ¡no olvides que hay que irse en yacaré al terminar el trabajo! '1013': title: Chuy y la pelota indecisa description: | @@ -766,13 +758,13 @@ model: '1021': title: Laberinto con pelotas description: | - Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota de goma. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas de goma! + Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' '1022': - title: Capy busca a Guyrá + title: Encontrando el principio description: | - Ayuda a Capy a encontrar a Guyrá - clue: '' + Capy tiene que pasar a buscar a Guyrá para hacer su recorrida por los humedales. Ayudalo a subir a Guyrá a su cabeza. + clue: Guyrá no siempre aparece en el mismo casillero… ¿Qué bloque deberías utilizar? '1023': title: Fútbol al sur description: | @@ -784,19 +776,20 @@ model: Yvoty siempre está predispuesta a resolver cuestiones técnicas. En este caso, la escuela le pidió ayuda para encender las computadoras de todas las aulas. El desafío es que las aulas tienen diferentes tamaños… ¡Ayudala a prender todas las computadoras! clue: '¿Sería posible prender todo un lado del rectángulo del aula, y luego repetirlo en cada tramo?' '1025': - title: Contando planetas y estrellas + title: Contando planetas y estrellas description: | - Mañic debe recorrer todas las casillas y contar cuántas estrellas y planetas hay en total. Pista: primero pensá cómo contarías si hay una estrella o un planeta en una casilla determinada. Luego pensá cómo harías para contar todos los astros de una sola columna. - clue: Subdividir un problema grande en problemas más pequeños ayuda a comprender mejor cada una de las partes que lo componen. Además nos permite concentrarnos en resolver cuestiones más sencillas al problema original. + Es una noche clara, ideal para la observación de astros. Mañic debe recorrer el campo y contar la cantidad de planetas y de estrellas que encuentre. ¡Ayudala! + clue: Una estrategia posible podría ser contar los astros que se vean en una columna y luego replicarlo. ¿Qué te parece a vos? '1026': - title: Chuy sale a correr + title: Chuy sale a correr description: | - Chuy debe realizar su rutina matutina que consiste en recorrer una cierta cantidad de kilómetros que varía día a día (entre 15 y 45 km). ¡Lográ que Chuy llegue siempre a destino sin pasarse! Pista: mirá en la categoría "Sensores" si hay algo que te pueda servir. - clue: Se puede usar un bloque "Repetir" con el valor de un sensor. Esto permite repetir una secuencia de código la cantidad de veces que indique el sensor + Al comenzar el entrenamiento diario, el primer ejercicio de Chuy es correr una distancia variable, según lo indique su preparadora física. Ayudá a Chuy a recorrer exactamente esa distancia. + clue: ¿Te fijaste en la categoría **sensores**? ¿Hay algún bloque que te pueda servir para medir exactamente la distancia recorrida? '1027': - title: Mañic cuenta de nuevo - description: 'Mañic tiene que contar otra vez los astros, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que la pueda ayudar?' - clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parada Mañic.' + title: Contando de nuevo + description: | + Mañic está de suerte, el cielo está descubierto y lleno de estrellas y planetas. Para documentar su observación, Mañic necesita contar cuántas estrellas y cuántos planetas están visibles. Ayudala a tomar nota de las cantidades pasando por todos los astros visibles. + clue: En esta oportunidad, Mañic no puede verificar si llegó al fin de una columna, pero seguramente en la categoría **sensores** podrás encontrar recursos para compensar esta falencia. '1028': title: El humedal de Capy y Guyrá description: | @@ -805,57 +798,50 @@ model: A los procedimientos se les pueden agregar **parámetros** para que resulten más generales. Por ejemplo: si creamos los procedimientos `Recoger 2 latas a la derecha`, `Recoger 3 latas a la derecha` y `Recoger 4 latas a la derecha`, podemos reemplazarlos por un solo procedimiento que reciba como **parámetro** la cantidad de latas que queremos recoger. La definicioń quedaría `Recoger latas a la derecha con [cantidad]` y se reemplaza el **parámetro** `[cantidad]` por 2, 3 o 4 en cada caso. Para agregar un parámetro a un procedimiento nuevo, hay que hacer clic en el **+** que aparece al lado del nombre en el bloque `Definir`. '1029': - title: | - Dibujando: Al cuadrado - description: Dibujá un cuadrado que tenga 100 de lado. + title: Constelación cuadrada + description: | + Mañic debe dibujar una constelación cuadrada con un largo de 100 en cada lado del cuadrado. ¡Ayudala! clue: '' '1030': - title: | - Dibujando: Rayuela robótica - description: 'Dibujá 5 cuadrados en fila, cada uno de lado 50, como muestra la figura sombreada.' + title: Constelación rayuela + description: | + Mañic descubrió una constelación que se parece a una rayuela. Son 5 cuadrados en fila con un lado de 50 cada uno. Ayudá a Mañic a dibujarla. clue: '' '1031': - title: | - Dibujando: Corto por la diagonal - description: 'Dibujá 5 cuadrados en diagonal, cada uno de lado 50, como muestra la figura sombreada.' + title: Constelación diagonal + description: | + Ayudá a Mañic a repasar la constelación diagonal dibujando 5 cuadrados con un lado de 50 cada uno clue: '' '1032': - title: | - Dibujando: Mamushka cuadrada - description: | - Dibujá 4 cuadrados de lados 50, 100, 150 y 200, como muestra la figura sombreada. Pista: creá un procedimiento nuevo para dibujar cuadrados de cualquier longitud de lado. - clue: 'Incluir parámetros en los procedimientos permite generalizar un concepto. Por ejemplo, la longitud del lado de un cuadrado.' + title: Constelación Mamushka + description: | + Mañic descubrió una constelación que tiene 4 cuadrados de lados 50, 100, 150 y 200. ¡Ayudala a dibujarla! + clue: 'Creá un procedimiento nuevo para dibujar cuadrados de cualquier longitud de lado. Incluir parámetros en los procedimientos permite generalizar un concepto. Por ejemplo, la longitud del lado de un cuadrado.' '1033': - title: | - Dibujando: Escalera cuadrada - description: | - Dibujá 5 cuadrados: 4 de lado 50 y uno de 100, como muestra la figura sombreada. - clue: 'Al crear un procedimiento con parámetros, sus valores no están definidos (por ej. "longitud de lado"). Al usar los procedimientos hay que darles un valor concreto a esos parámetros (50, 100, etc.).' + title: Constelación escalera + description: | + ¡Mañic encontró una escalera en el cielo! Ayudala a repasar la constelación, dibujando 5 cuadrados: 4 de lado 50 y uno de 100. + clue: 'Al crear un procedimiento con parámetros, sus valores no están definidos (por ejemplo, "longitud de lado"). Al usar los procedimientos hay que darles un valor concreto a esos parámetros como 50, 100 u otro número.' '1034': - title: | - Dibujando: Hexágono - description: | - Dibujá un hexágono de lado 100, como muestra la figura sombreada. Pista: pensá cuántos grados debe girar el robot sabiendo cuánto miden los ángulos internos del hexágono. - clue: 'En los polígonos, el valor de un ángulo externo es igual a 180 menos el valor de un ángulo interno.' + title: Constelación hexágono + description: | + Ayudá a Mañic a dibujar la constelación hexágono, de lado 100. + clue: 'En los polígonos, el valor de un ángulo externo es igual a 180 menos el valor de un ángulo interno. Pensá cuántos grados debe girar el robot sabiendo cuánto miden los ángulos internos del hexágono.' '1035': - title: | - Dibujando: Pirámide invertida - description: | - Dibujá un triángulo equilátero de lado 100, como muestra la figura sombreada. Pista: pensá si existe una relación entre los ángulos y la cantidad de lados. - clue: 'En los polígonos, la suma de todos los ángulos externos es 360' + title: Constelación triángulo + description: | + Ayudá a Mañic a dibujar la constelación triángulo equilátero, de lado 100. + clue: 'Pensá si existe una relación entre los ángulos y la cantidad de lados. En los polígonos, la suma de todos los ángulos externos es 360.' '1036': - title: | - Dibujando: Figuras dentro de figuras - description: | - Dibujá un triángulo, un cuadrado y un pentágono de lado 100, como muestra la figura sombreada. Pista: creá un procedimiento con un parámetro para la cantidad de lados. - clue: | - Ahora tenemos Operadores: estos bloques nos van a permitir realizar algunas cuentas automáticamente ¡Como una calculadora!... ¿Cuántos grados tiene un giro completo? ¿Por qué número debemos dividirlo? + title: Constelación dentro de constelación + description: | + ¡Mañic descubrió una combinación de constelaciones! Ayudala a dibujar la constelación triángulo, la constelación cuadrado y la constelación pentágono, una dentro de la otra y cada una de lado 100. + clue: 'Creá un procedimiento con un parámetro para la cantidad de lados. Además, ahora tenemos **operadores**: estos bloques nos van a permitir realizar algunas cuentas automáticamente… ¡Como una calculadora! Para pensar: ¿Cuántos grados tiene un giro completo? ¿Por qué número debemos dividirlo?' '1037': - title: | - Dibujando: La cueva de estalactitas - description: | - Dibujá 3 triángulos de lados 40, 60 y 100, y un cuadrado de lado 200, como muestra la figura sombreada. Pista: creá un procedimiento con 2 parámetros, uno para la cantidad de lados y otro para la longitud de los lados. - clue: 'Para poder usar los parámetros en un nuevo procedimiento, hay que hacer clic derecho en el bloque que define dicho procedimiento.' + title: Constelación estalactita + description: | + Ayudá a Mañic a dibujar la constelación estalactita compuesta por 3 triángulos de lados 40, 60 y 100, dentro un cuadrado de lado 200. + clue: 'Creá un procedimiento con 2 parámetros, uno para la cantidad de lados y otro para la longitud de los lados. Para poder usar los parámetros en un nuevo procedimiento, hay que hacer **clic derecho** en el bloque que define dicho procedimiento.' '1038': title: Las estrellas de Mañic description: | @@ -903,16 +889,21 @@ model: description: | Yvoty se descargó una nueva aplicación para fotografiar objetos cercanos. Nada mejor que probarla sacando fotos a las coloridas mariposas de la selva misionera. Las mariposas aparecen por todos lados, a veces más y a veces menos. Ayudá a Yvoty a fotografiar a todas las mariposas. clue: 'Parece haber unos sectores por los que las mariposas no vuelan. Ese dato puede servirte para armar una secuencia de recorrido. Pensá una estrategia que vaya de lo más simple a lo más complejo: primero una casilla, luego una fila o columna, y finalmente un grupo de mariposas.' - '1130': - title: Buscando las estrellas + '1046': + title: Nuevos comandos description: | - Para que Mañic pueda invitar a sus amigos a observar las estrellas, tiene que acomodar los tres telescopios moviéndolos una cierta cantidad de veces hasta ubicarlos correctamente. - clue: 'Guiate por las sombras de los telescopios para saber hasta donde moverlos' + Capy y Guyrá quieren cuidar su estero. Para lograrlo van a limpiar los desechos tirados por turistas. Empiezan por las dos latas a su derecha, luego las dos de más abajo, dejando una para el final. Ayudalos a recoger todas las latas. + clue: ¿Viste los **procedimientos**? Combinando primitivas podés **crear nuevos comandos** para luego usarlos **cuantas veces quieras.** + '1130': + title: Buscando las estrellas + description: | + Mañic está buscando 3 nuevas estrellas y, para eso, tiene que acomodar los tres telescopios. Ayudala a moverlos una cierta cantidad de veces hasta ubicarlos correctamente. + clue: 'Guiate por las sombras de los telescopios para saber hasta donde moverlos.' '1131': title: Reciclando papeles - description: | - Ayudá a Capy y Guyrá a dejar un papel en el tacho al final de cada fila. ¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! - clue: 'Si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila?' + description: | + Capy y Guyrá están reciclando por lo que deben agarrar los papeles que están tirados en el humedal y ponerlos en cada tacho. ¡Ayudalos a reciclar! + clue: '¡Tené en cuenta que el escenario no cambia de una ejecución a la otra! Y si tuvieses que elegir un parámetro para tu procedimiento… ¿Cuál elegirías? ¿Qué varía de fila a fila?' '1132': title: Prendiendo las compus parametrizado description: 'Yvoty es tan hábil con la tecnología que le volvieron a pedir ayuda desde la escuela para encender las computadoras de todas las aulas. Si bien las aulas siguen teniendo diferentes tamaños, Yvoty aprendió cosas nuevas que van a hacer esta tarea más rápida. ¡Ayudá a Yvoty a prender todas las computadoras!' @@ -924,26 +915,22 @@ model: '1134': title: Trofeos y más trofeos description: La colección de trofeos de Chuy crece día a día. Acompañale a recogerlos. Tené en cuenta que la posición de los mismos no cambia y que tanto las direcciones como la cantidad de trofeos podrían ser parámetros... - clue: Una característica muy útil es que podés combinar parámetros numéricos (cantidades, medidas) con parámetros de texto (direcciones, nombres). ¡Aprovechala! + clue: Una característica muy útil es que podés combinar parámetros numéricos (cantidades, medidas) con parámetros de texto (direcciones, nombres). ¡Aprovechala! '1135': title: Paleteando con parámetros - description: En este caso debemos rebotar con la paleta todas las pelotas de ping pong del cuadrado pero en cada ejecución están distribuidas de una manera diferente. Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del cuadrado no varía de una ejecución a la otra. - clue: Si no tenés un procedimiento con parámetros para mover en cualquier direccion... ¡Podés crearlo! + description: | + Chuy está entrenando para el próximo torneo de ping pong. Para probar su destreza, se armó un recorrido en donde a veces puede haber pelotas de ping pong y a veces no. Le recomendaron que deje las esquinas libres para practicar mejor. Ayudá a Chuy a entrenar. + clue: 'Tené en cuenta que en las casillas de la esquina nunca habrá una pelota de ping pong y que el tamaño del escenario no varía de una ejecución a la otra pero sí variará la distribución de las pelotas de ping pong en las casillas. Si no tenés un procedimiento con parámetros para moverte en cualquier dirección… ¡Podés crearlo!' '1136': - title: ¡Dibujo libre! - description: En esta actividad vas a poder realizar el dibujo que más te guste - clue: 'Incluímos todos los bloques posibles, para que puedas dar rienda suelta a tus conocimientos.' + title: ¡Tu propia constelación! + description: | + ¡Ahora te toca a vos! Con la ayuda de Mañic, realizá el dibujo que más te guste. + clue: 'Vas a encontrar todos los bloques posibles para que puedas dar rienda suelta a tus conocimientos.' groups: AlienTocaBoton: title: '' - CapyYGuyra: - title: '' - CapyBuscaAGuyra: - title: '' NuevosComandos: title: '' - NuevosComandosCapy: - title: '' ElGatoEnLaCalle: title: '' NoMeCansoDeSaltar: @@ -1070,22 +1057,20 @@ model: title: 'Con Coty' tecnopolis2021ConToto: title: 'Con Toto' - grupoTemporal: - title: 'Grupo temporal' books: '1': - title: Nivel Principiante + title: Primer Ciclo description: 'Desafíos del manual para docentes "Ciencias de la Computación para el aula, 1° ciclo de primaria"' '2': - title: Nivel Intermedio + title: Segundo Ciclo description: Desafíos del cuaderno para docentes "Actividades para aprender a Program.AR", para 2° ciclo de primaria en adelante. '100': title: Tecnópolis 2021 description: Desafios de Tecnópolis 2021 '3': - title: Nivel Avanzado + title: Avanzado description: Desafios avanzados - '1000': + '400': title: Nuevos personajes description: TEMPORAL - SE BORRARÁ chapters: @@ -1107,5 +1092,3 @@ model: title: Parametrización de soluciones Desafios complementarios: title: Desafios complementarios - capiTemporal: - title: Desafíos temporales From 7795c729347c6b2a82fb919d4096af643bacd36b Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 20:20:48 -0300 Subject: [PATCH 186/212] =?UTF-8?q?peque=C3=B1a=20correccion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index de0bf3929..2ece2f161 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -700,7 +700,7 @@ model: description: | Yvoty es experta en tecnología y se comprometió a cargar los celus de siete amigues. ¡Pero cuenta solo con un cargador! Tiene que buscar el cargador, y luego ir a cargar cada uno de los celulares. ¿Cómo podrías ayudarla? clue: ¿En cuántas partes te conviene dividir tu estrategia? - '10010': + '1010': title: Instalando juegos description: | Yvoty va a instalar un juego en tres computadoras para que ella y sus amigas tengan todo listo para divertirse esta noche. Los pasos para instalarlo son: encender la computadora, escribir la contraseña ("ABC"), instalar el juego y apagar la máquina. Ayudala a completar la instalación de las tres compus. From 64a79ba98334add8f0be66565180bf251c640216 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 20:31:21 -0300 Subject: [PATCH 187/212] =?UTF-8?q?hab=C3=ADa=20roto=20todo=20pero=20ya=20?= =?UTF-8?q?est=C3=A1=20ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/es-ar.yaml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 2ece2f161..2969c4379 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -147,7 +147,7 @@ model: '27': title: El mono cuenta de nuevo description: 'El mono tiene que contar otra vez las frutas, ¡pero ahora no puede verificar si ya llegó al final de una columna! ¿Habrá algún sensor que lo pueda ayudar?' - clue: 'Una sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' + clue: 'Un sensor nos permite obtener información que puede cambiar en cada ejecución del programa, incluso en una misma ejecución. Por ejemplo, el largo de cada columna varía dependiendo en qué columna esté parado el mono.' '28': title: El planeta de Nano description: | @@ -929,8 +929,14 @@ model: groups: AlienTocaBoton: title: '' + CapyYGuyra: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' + NuevosComandosCapy: + title: '' ElGatoEnLaCalle: title: '' NoMeCansoDeSaltar: @@ -1057,20 +1063,22 @@ model: title: 'Con Coty' tecnopolis2021ConToto: title: 'Con Toto' + grupoTemporal: + title: 'Grupo temporal' books: '1': - title: Primer Ciclo + title: Nivel Principiante description: 'Desafíos del manual para docentes "Ciencias de la Computación para el aula, 1° ciclo de primaria"' '2': - title: Segundo Ciclo + title: Nivel Intermedio description: Desafíos del cuaderno para docentes "Actividades para aprender a Program.AR", para 2° ciclo de primaria en adelante. '100': title: Tecnópolis 2021 description: Desafios de Tecnópolis 2021 '3': - title: Avanzado + title: Nivel Avanzado description: Desafios avanzados - '400': + '1000': title: Nuevos personajes description: TEMPORAL - SE BORRARÁ chapters: @@ -1092,3 +1100,5 @@ model: title: Parametrización de soluciones Desafios complementarios: title: Desafios complementarios + capiTemporal: + title: Desafíos temporales From 1d42d0740803ef4d51e15874ebde488b325f8352 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Mon, 18 Dec 2023 23:14:10 -0300 Subject: [PATCH 188/212] cambio pelota "pulpito" a "de goma" --- translations/es-ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es-ar.yaml b/translations/es-ar.yaml index 2969c4379..b07d40eed 100644 --- a/translations/es-ar.yaml +++ b/translations/es-ar.yaml @@ -758,7 +758,7 @@ model: '1021': title: Laberinto con pelotas description: | - Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota pulpito. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas pulpito! + Chuy preparó diferentes recorridos, en diferentes terrenos, para practicar rebotar la pelota de goma. El terreno puede ser más chico o más grande y la pelota puede que esté o no… ¡Ayudale a rebotar todas las pelotas de goma! clue: 'Es fundamental saber, antes de moverse, dónde está la próxima casilla libre y si hay una pelota en la misma. ¿Qué herramientas te sirven para esas comprobaciones?' '1022': title: Encontrando el principio From 0b76eaa5fd0041be7df259a47b34525e9d298ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 19 Dec 2023 12:02:28 -0300 Subject: [PATCH 189/212] Release 1.16.5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index dad5e8e88..f0f983709 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.4", + "version": "1.16.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fa2ef3972..f9f260d79 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.4", + "version": "1.16.5", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 11eb79056f1f646ad91c52a70646b40978554a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 19 Dec 2023 12:43:48 -0300 Subject: [PATCH 190/212] bumping exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0f983709..71e4f1306 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.26", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.26.tgz", - "integrity": "sha512-UrZBWZg+ARY4jhBCIBd8h1eWWUxsCpfM4KFzmKMjkKllZ6PlVpiPjRuVgBFN4yDcDbNzUgOhDTsunD+gkIJDgQ==", + "version": "1.4.29", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.29.tgz", + "integrity": "sha512-TFa623ULWEer2yJVYM3kw+/8axHpVahvDx3nGW70IYC0Zjttn84y3C+0GOQv//UVk2UJ0nSmhEpZ+vCgV/8Stg==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index f9f260d79..d91b563b4 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.26", + "pilas-bloques-exercises": "1.4.29", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index 1d80a8bff..b89492f24 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From 8c1a6a3c4d6cdd2111ec2955aa56c529f4808b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Tue, 19 Dec 2023 12:44:03 -0300 Subject: [PATCH 191/212] Release 1.16.6 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 71e4f1306..a166c4781 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.5", + "version": "1.16.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d91b563b4..4e482d4b5 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.5", + "version": "1.16.6", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 5cb79349ddd42939948be99c7bcc49386f835bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Wed, 20 Dec 2023 13:34:55 -0300 Subject: [PATCH 192/212] Release 1.16.7 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a166c4781..35131c3eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.6", + "version": "1.16.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4e482d4b5..0530ec5ff 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.6", + "version": "1.16.7", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 2427d7fabe782be01965c092762d59b266722b8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 17:55:41 +0000 Subject: [PATCH 193/212] Bump follow-redirects from 1.14.8 to 1.15.4 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.8 to 1.15.4. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.8...v1.15.4) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 88 +++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35131c3eb..c601a4825 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5960,12 +5960,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.2.tgz", - "integrity": "sha512-AUgJ71xG8kjuTx8XB1AQNBiebJuXRfhcHr318dCwnQz9VRXdYSnEEqf38XRvGYIoCvIyn/3c72LrSwzaJqknOA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.4.tgz", + "integrity": "sha512-A6tXvfwnscx66QO0R3c2dIJwEltfsTL4ihsYjMtgP9ODCCmQlCaRlZDQYw5Drta0ER9Fj3nXntu4naV5Wt5XLA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.5.0", + "@embroider/shared-internals": "2.5.1", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -5976,9 +5976,9 @@ } }, "@embroider/shared-internals": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.0.tgz", - "integrity": "sha512-7qzrb7GVIyNqeY0umxoeIvjDC+ay1b+wb2yCVuYTUYrFfLAkLEy9FNI3iWCi3RdQ9OFjgcAxAnwsAiPIMZZ3pQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.1.tgz", + "integrity": "sha512-b+TWDBisH1p6HeTbJIO8pgu1WzfTP0ZSAlZBqjXwOyrS0ZxP1qNYRrEX+IxyzIibEFjXBxeLakiejz3DJvZX5A==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -6117,9 +6117,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true } } @@ -16695,9 +16695,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", - "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz", + "integrity": "sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -17226,12 +17226,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.2.tgz", - "integrity": "sha512-AUgJ71xG8kjuTx8XB1AQNBiebJuXRfhcHr318dCwnQz9VRXdYSnEEqf38XRvGYIoCvIyn/3c72LrSwzaJqknOA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.4.tgz", + "integrity": "sha512-A6tXvfwnscx66QO0R3c2dIJwEltfsTL4ihsYjMtgP9ODCCmQlCaRlZDQYw5Drta0ER9Fj3nXntu4naV5Wt5XLA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.5.0", + "@embroider/shared-internals": "2.5.1", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -17242,9 +17242,9 @@ } }, "@embroider/shared-internals": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.0.tgz", - "integrity": "sha512-7qzrb7GVIyNqeY0umxoeIvjDC+ay1b+wb2yCVuYTUYrFfLAkLEy9FNI3iWCi3RdQ9OFjgcAxAnwsAiPIMZZ3pQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.1.tgz", + "integrity": "sha512-b+TWDBisH1p6HeTbJIO8pgu1WzfTP0ZSAlZBqjXwOyrS0ZxP1qNYRrEX+IxyzIibEFjXBxeLakiejz3DJvZX5A==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -17312,9 +17312,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", - "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz", + "integrity": "sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -17653,9 +17653,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true }, "walk-sync": { @@ -19643,9 +19643,9 @@ "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true }, "walk-sync": { @@ -21025,9 +21025,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", - "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz", + "integrity": "sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -21968,9 +21968,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", - "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz", + "integrity": "sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -22764,9 +22764,9 @@ "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true }, "walk-sync": { @@ -23779,9 +23779,9 @@ "dev": true }, "babel-plugin-ember-template-compilation": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.0.tgz", - "integrity": "sha512-1I7f5gf06h5wKdKUvaYEIaoSFur5RLUvTMQG4ak0c5Y11DWUxcoX9hrun1xe9fqfY2dtGFK+ZUM6sn6z8sqK/w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-ember-template-compilation/-/babel-plugin-ember-template-compilation-2.2.1.tgz", + "integrity": "sha512-alinprIQcLficqkuIyeKKfD4HQOpMOiHK6pt6Skj/yjoPoQYBuwAJ2BoPAlRe9k/URPeVkpMefbN3m6jEp7RsA==", "dev": true, "requires": { "@glimmer/syntax": "^0.84.3", @@ -26695,9 +26695,9 @@ } }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true }, "for-each": { From 9d73b1395969aede3986957f445e2be15f060d9a Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 12 Jan 2024 11:07:12 -0300 Subject: [PATCH 194/212] changes for repo rename --- app/components/bug-report-modal.js | 2 +- app/templates/components/bug-report-modal.hbs | 2 +- app/templates/components/version.hbs | 2 +- package.json | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/components/bug-report-modal.js b/app/components/bug-report-modal.js index a7271f338..ebaab8479 100644 --- a/app/components/bug-report-modal.js +++ b/app/components/bug-report-modal.js @@ -5,7 +5,7 @@ export default Component.extend({ actions: { // Only used with alternative version with github integration. createIssue() { - fetch('https://api.github.com/repos/Program-AR/pilas-bloques/issues', { + fetch('https://api.github.com/repos/Program-AR/pilas-bloques-app/issues', { method: 'POST', headers: { 'Authorization': 'token githubFakeToken' diff --git a/app/templates/components/bug-report-modal.hbs b/app/templates/components/bug-report-modal.hbs index aa2e6cd99..a9f255f4d 100644 --- a/app/templates/components/bug-report-modal.hbs +++ b/app/templates/components/bug-report-modal.hbs @@ -4,7 +4,7 @@

{{t "components.bugReportModal.error"}}

{{t "components.bugReportModal.askTeacher"}}

{{t "components.bugReportModal.mail"}}pilasbloques@program.ar

-

{{t "components.bugReportModal.githubReport"}}{{ t "components.bugReportModal.issueTracker"}}

+

{{t "components.bugReportModal.githubReport"}}{{ t "components.bugReportModal.issueTracker"}}

diff --git a/app/templates/components/version.hbs b/app/templates/components/version.hbs index c2d80e2a5..9c706dc09 100644 --- a/app/templates/components/version.hbs +++ b/app/templates/components/version.hbs @@ -1,6 +1,6 @@
{{concat (app-version versionOnly=true) this.groupId}} {{paper-icon "code"}} - + {{app-version shaOnly=true}}
\ No newline at end of file diff --git a/package.json b/package.json index 0530ec5ff..9660344cc 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "test:CI": "ember test", "build": "ember build", "build:prod": "ember build --environment=production --output-path dist_prod", - "pilasweb:build": "cd ../pilasweb; make build; cd ../pilas-bloques; cp -rf ../pilasweb node_modules/pilasweb/", + "pilasweb:build": "cd ../pilasweb; make build; cd ../pilas-bloques-ember; cp -rf ../pilasweb node_modules/pilasweb/", "exercises:watch": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt watch", - "exercises:build": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt run:build ;cd ../pilas-bloques ;cp -rf ../pilas-bloques-exercises/dist node_modules/pilas-bloques-exercises", + "exercises:build": "cd ../pilas-bloques-exercises; node_modules/grunt-cli/bin/grunt run:build ;cd ../pilas-bloques-ember ;cp -rf ../pilas-bloques-exercises/dist node_modules/pilas-bloques-exercises", "pack:linux_x64_deb": "bash ./scripts/package.sh -linux_x64_deb", "pack:linux_ia32_zip": "bash ./scripts/package.sh -linux_ia32_zip", "pack:linux_x64_zip": "bash ./scripts/package.sh -linux_x64_zip", From 48fe6d61e4a27aee0ab141b3243766511095fd99 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 12 Jan 2024 11:22:18 -0300 Subject: [PATCH 195/212] Saco builds de linux mac y windows del CI --- .github/workflows/build.yml | 43 ++----------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7222e8a3c..c758151de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,48 +40,9 @@ jobs: - run: echo "EXPERIMENT_GROUP=autoassign" >> $GITHUB_ENV - run: npm install - run: npm run build:prod - - run: npm run pack:linux - run: npm run pack:html - uses: ncipollo/release-action@v1 with: allowUpdates: true - artifacts: "binaries/*.zip,binaries/*.deb,binaries/*.tar.gz" - token: ${{ secrets.GITHUB_TOKEN }} - - pack-macos: # When there is a tag, pack the installers and upload to Github. - runs-on: macos-latest - if: startsWith(github.ref, 'refs/tags') - needs: test - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - - run: echo "EXPERIMENT_GROUP=autoassign" >> $GITHUB_ENV - - run: npm install - - run: npm run build:prod - - run: npm run pack:osx - - uses: ncipollo/release-action@v1 - with: - allowUpdates: true - artifacts: "binaries/*.dmg" - token: ${{ secrets.GITHUB_TOKEN }} - - pack-windows: # When there is a tag, pack the installers and upload to Github. - runs-on: windows-latest - if: startsWith(github.ref, 'refs/tags') - needs: test - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - - run: echo "EXPERIMENT_GROUP=autoassign" >> $env:GITHUB_ENV - - run: npm install - - run: npm run build:prod - - run: npm run pack:win32 - - uses: ncipollo/release-action@v1 - with: - allowUpdates: true - artifacts: "binaries/*.exe" - token: ${{ secrets.GITHUB_TOKEN }} + artifacts: "binaries/*.tar.gz" + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 2351434ddfd313b04017b9b2fd075e76ab6be94a Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 12 Jan 2024 11:23:04 -0300 Subject: [PATCH 196/212] Release 1.17.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35131c3eb..6d3c1e288 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.16.7", + "version": "1.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9660344cc..fc2c40711 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.16.7", + "version": "1.17.0", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 224eb770cc42abdd21d4d50769fe794c507ee43b Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Fri, 26 Jan 2024 15:13:44 -0300 Subject: [PATCH 197/212] cambio de avatars --- public/imagenes/avatars/avatar-13.png | Bin 1552 -> 0 bytes public/imagenes/avatars/avatar-14.png | Bin 2542 -> 0 bytes public/imagenes/avatars/avatar-15.png | Bin 2955 -> 0 bytes public/imagenes/avatars/avatar-16.png | Bin 2506 -> 0 bytes public/imagenes/avatars/avatar-17.png | Bin 0 -> 2486 bytes public/imagenes/avatars/avatar-18.png | Bin 0 -> 2110 bytes public/imagenes/avatars/avatar-19.png | Bin 0 -> 3509 bytes public/imagenes/avatars/avatar-20.png | Bin 0 -> 3084 bytes 8 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/imagenes/avatars/avatar-13.png delete mode 100644 public/imagenes/avatars/avatar-14.png delete mode 100644 public/imagenes/avatars/avatar-15.png delete mode 100644 public/imagenes/avatars/avatar-16.png create mode 100644 public/imagenes/avatars/avatar-17.png create mode 100644 public/imagenes/avatars/avatar-18.png create mode 100644 public/imagenes/avatars/avatar-19.png create mode 100644 public/imagenes/avatars/avatar-20.png diff --git a/public/imagenes/avatars/avatar-13.png b/public/imagenes/avatars/avatar-13.png deleted file mode 100644 index d5b4a4faaada9a97d291058aadcc8263fd5f0168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1552 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 Ef}}b0bN~PV diff --git a/public/imagenes/avatars/avatar-15.png b/public/imagenes/avatars/avatar-15.png deleted file mode 100644 index 60134e0c72a5e32a72ca4d1746279ad8ba2b70b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2955 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/avatars/avatar-19.png b/public/imagenes/avatars/avatar-19.png new file mode 100644 index 0000000000000000000000000000000000000000..528c570f911cf0fdd2bb2f71dfe54c8cdedfdd99 GIT binary patch literal 3509 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 literal 0 HcmV?d00001 diff --git a/public/imagenes/avatars/avatar-20.png b/public/imagenes/avatars/avatar-20.png new file mode 100644 index 0000000000000000000000000000000000000000..0f326000a33a6251d53b23824d72c583ea1502c6 GIT binary patch literal 3084 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 a1sDK5tB`9`;M%qT0000 Date: Fri, 26 Jan 2024 15:25:35 -0300 Subject: [PATCH 198/212] cambio de nombre archivos --- .../avatars/{avatar-17.png => avatar-13.png} | Bin .../avatars/{avatar-18.png => avatar-14.png} | Bin .../avatars/{avatar-19.png => avatar-15.png} | Bin .../avatars/{avatar-20.png => avatar-16.png} | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename public/imagenes/avatars/{avatar-17.png => avatar-13.png} (100%) rename public/imagenes/avatars/{avatar-18.png => avatar-14.png} (100%) rename public/imagenes/avatars/{avatar-19.png => avatar-15.png} (100%) rename public/imagenes/avatars/{avatar-20.png => avatar-16.png} (100%) diff --git a/public/imagenes/avatars/avatar-17.png b/public/imagenes/avatars/avatar-13.png similarity index 100% rename from public/imagenes/avatars/avatar-17.png rename to public/imagenes/avatars/avatar-13.png diff --git a/public/imagenes/avatars/avatar-18.png b/public/imagenes/avatars/avatar-14.png similarity index 100% rename from public/imagenes/avatars/avatar-18.png rename to public/imagenes/avatars/avatar-14.png diff --git a/public/imagenes/avatars/avatar-19.png b/public/imagenes/avatars/avatar-15.png similarity index 100% rename from public/imagenes/avatars/avatar-19.png rename to public/imagenes/avatars/avatar-15.png diff --git a/public/imagenes/avatars/avatar-20.png b/public/imagenes/avatars/avatar-16.png similarity index 100% rename from public/imagenes/avatars/avatar-20.png rename to public/imagenes/avatars/avatar-16.png From 7ec412ba89067eacfa902a9c0d65052c3892fb0d Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 26 Jan 2024 16:33:24 -0300 Subject: [PATCH 199/212] Disabling experiments. New mode: off --- .github/workflows/build.yml | 2 +- README.md | 1 + README_en.md | 3 +- app/components/personal-survey.js | 3 +- app/services/experiments.js | 10 +++++-- config/environment.js | 2 +- .../components/personal-survey-test.js | 10 ++++++- tests/unit/services/experiments-test.js | 28 +++++++++++-------- 8 files changed, 39 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c758151de..65d2e0445 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version-file: '.nvmrc' - - run: echo "EXPERIMENT_GROUP=autoassign" >> $GITHUB_ENV + - run: echo "EXPERIMENT_GROUP=off" >> $GITHUB_ENV - run: npm install - run: npm run build:prod - run: npm run pack:html diff --git a/README.md b/README.md index 71ba0d248..36da60cf8 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment` y `a - `control`: al finalizar un desafío muestra las expectativas existentes para el mismo, sin informar si se cumplieron o no. - `treatment`: tiene un período de entrenamiento en el cual muestra las expectativas existentes sobre el desafío, junto con una barra de progreso para las que se cumplieron. Se agrega feedback sobre los bloques. Una vez terminado el período de entrenamiento pasa a tener un comportamiento similar a *control*. - `autoassign`: asigna aleatoriamente un grupo experimental en tiempo de ejecución (elige entre `control` y `treatment). +- `off`: Siempre muestra las expectativas y la barra de progreso. Deja de mostrar la encuesta de preguntas al usuario. ### Empaquetando instaladores: diff --git a/README_en.md b/README_en.md index 0c32841e5..ddf268645 100644 --- a/README_en.md +++ b/README_en.md @@ -114,12 +114,13 @@ In Windows this is done with: SET "EXPERIMENT_GROUP=treatment" && npm run start ``` -The experiment groups are: `notAffected`, `control`, `treatment` and `autoassign`. +The experiment groups are: `notAffected`, `control`, `treatment`, `autoassign` and `off`. - `notAffected`: (default) it does not show any feedback on current solution, just challenge completion. - `control`: after completing a challenge its expectations are shown, but with no information regarding whether they were fulfilled. - `treatment`: this one has a training period. During this time expectations are shown for each challenge, alongside a progress bar that awards points for each passed expectation. Blocks in the workspace have their own feedback too. Once the training period is over, the app behavior changes to *control*. - `autoassign`: randomly assigns an experiment group at run time (between `control` and `treatment`). +- `off`: always shows expectations and points. Doesn't show survey questions to the user. ### Packing installers: diff --git a/app/components/personal-survey.js b/app/components/personal-survey.js index 44c622625..fa964f1a0 100644 --- a/app/components/personal-survey.js +++ b/app/components/personal-survey.js @@ -7,6 +7,7 @@ export default Component.extend({ pilasBloquesApi: service(), pilasBloquesAnalytics: service(), paperToaster: service(), + experiments: service(), /** Dialog descriptions according to SurveyJS library. ** Additional field: askEachSession, which tells the app to ask the question each time*/ @@ -71,7 +72,7 @@ export default Component.extend({ ], didInsertElement() { - if (this.pilasBloquesApi.isConnected()) this.showNextQuestion() + if (!this.experiments.isOff() && this.pilasBloquesApi.isConnected()) this.showNextQuestion() }, showNextQuestion() { diff --git a/app/services/experiments.js b/app/services/experiments.js index 56ab83954..f5cfbba5f 100644 --- a/app/services/experiments.js +++ b/app/services/experiments.js @@ -11,7 +11,7 @@ export default Service.extend({ challengeExpectations: service(), //This order is important, do NOT change - possibleGroups: ["treatment", "control", "notAffected"], + possibleGroups: ["treatment", "control", "notAffected", "off"], decompositionTreatmentLength: ENV.decompositionTreatmentLength, solvedChallenges: computed('storage', function () { @@ -30,6 +30,10 @@ export default Service.extend({ return !(this.isTreatmentGroup() || this.isControlGroup()) }, + isOff(){ + return this.experimentGroup() === "off" + }, + isAutoAssignStrategy() { return this.groupSelectionStrategy === "autoassign" }, @@ -102,11 +106,11 @@ export default Service.extend({ }, shouldShowBlocksWarningExpectationFeedback() { - return this.isTreatmentGroup() && !this.feedbackIsDisabled() + return this.isOff() || this.isTreatmentGroup() && !this.feedbackIsDisabled() }, shouldShowScoredExpectations() { - return !(this.isControlGroup() || this.feedbackIsDisabled()) + return this.isOff() || !(this.isControlGroup() || this.feedbackIsDisabled()) }, feedbackIsDisabled() { diff --git a/config/environment.js b/config/environment.js index cb36b0a98..e98f3ff6b 100644 --- a/config/environment.js +++ b/config/environment.js @@ -2,7 +2,7 @@ var experimentGroup = process.env.EXPERIMENT_GROUP if (!experimentGroup) { - experimentGroup = 'notAffected' + experimentGroup = 'off' console.log(`\nInfo: EXPERIMENT_GROUP variable not set. Building Pilas Bloques in default mode: ${experimentGroup}. See README.md for valid EXPERIMENT_GROUP values`) } diff --git a/tests/integration/components/personal-survey-test.js b/tests/integration/components/personal-survey-test.js index bad89e8c5..02b14712f 100644 --- a/tests/integration/components/personal-survey-test.js +++ b/tests/integration/components/personal-survey-test.js @@ -6,7 +6,7 @@ import { setupLoggedUser, setUpTestLocale } from '../../helpers/utils' import fetchMock from 'fetch-mock' module('Integration | Component | survey-window', function (hooks) { - var api + var api, experiments setupRenderingTest(hooks) setupLoggedUser(hooks) @@ -14,6 +14,8 @@ module('Integration | Component | survey-window', function (hooks) { hooks.beforeEach(function () { api = this.owner.lookup('service:pilas-bloques-api') + experiments = this.owner.lookup('service:experiments') + experiments.set('groupSelectionStrategy', 'notAffected') }) hooks.afterEach(function () { @@ -46,4 +48,10 @@ module('Integration | Component | survey-window', function (hooks) { await render(hbs``) assert.notOk(surveyExists()) }) + + test('When experiments are off, survey doesnt show', async function (assert) { + experiments.set('groupSelectionStrategy', 'off') + await render(hbs``) + assert.notOk(surveyExists()) + }) }) diff --git a/tests/unit/services/experiments-test.js b/tests/unit/services/experiments-test.js index 2123c34c0..95245ce01 100644 --- a/tests/unit/services/experiments-test.js +++ b/tests/unit/services/experiments-test.js @@ -53,16 +53,19 @@ module('Unit | Service | experiments', function (hooks) { //Show non scored expects - testShouldShowScoredExpectations('control', 'enabled', false) - testShouldShowScoredExpectations('treatment', 'enabled', true) - testShouldShowScoredExpectations('treatment', 'disabled', false, solvedChallengesFeedbackDisabled) + testShouldShowScoredExpectations('control', false) + testShouldShowScoredExpectations('treatment', true) + testShouldShowScoredExpectations('treatment', false, solvedChallengesFeedbackDisabled) + testShouldShowScoredExpectations('off', true) + testShouldShowScoredExpectations('off', true, solvedChallengesFeedbackDisabled) //Show feedback expectations (bubbles) - testShouldShowBlocksWarningExpectationsFeedback('control', 'enabled', false) - testShouldShowBlocksWarningExpectationsFeedback('treatment', 'enabled', true) - testShouldShowBlocksWarningExpectationsFeedback('treatment', 'disabled', false, solvedChallengesFeedbackDisabled) - + testShouldShowBlocksWarningExpectationsFeedback('control', false) + testShouldShowBlocksWarningExpectationsFeedback('treatment', true) + testShouldShowBlocksWarningExpectationsFeedback('treatment', false, solvedChallengesFeedbackDisabled) + testShouldShowBlocksWarningExpectationsFeedback('off', true) + testShouldShowBlocksWarningExpectationsFeedback('off', true, solvedChallengesFeedbackDisabled) //Congratulations modal @@ -167,15 +170,16 @@ module('Unit | Service | experiments', function (hooks) { assert.ok(pilasBloquesApiMock.saveExperimentGroup.called) }) - function testShouldShowScoredExpectations(group, feedback, shouldShow, solvedChallenges) { - testShouldShow('scored expects', group, feedback, shouldShow, (() => experiments.shouldShowScoredExpectations()), solvedChallenges) + function testShouldShowScoredExpectations(group, shouldShow, solvedChallenges) { + testShouldShow('scored expects', group, shouldShow, (() => experiments.shouldShowScoredExpectations()), solvedChallenges) } - function testShouldShowBlocksWarningExpectationsFeedback(group, feedback, shouldShow, solvedChallenges) { - testShouldShow('blocks warning expectation feedback', group, feedback, shouldShow, (() => experiments.shouldShowBlocksWarningExpectationFeedback()), solvedChallenges) + function testShouldShowBlocksWarningExpectationsFeedback(group, shouldShow, solvedChallenges) { + testShouldShow('blocks warning expectation feedback', group, shouldShow, (() => experiments.shouldShowBlocksWarningExpectationFeedback()), solvedChallenges) } - function testShouldShow(name, group, feedback, shouldShow, callback, solvedChallenges = []) { + function testShouldShow(name, group, shouldShow, callback, solvedChallenges = []) { + const feedback = solvedChallenges.length == 0 ? 'enabled' : 'disabled' test(`Should ${shouldShow ? "" : "NOT"} show ${name} - ${group} group and feedback ${feedback}`, function (assert) { storageMock.solvedChallenges = solvedChallenges experiments.set('groupSelectionStrategy', group) From 51ce2ef0fc0e58408639b3c4d3f4d02f50c2374b Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 2 Feb 2024 15:05:36 -0300 Subject: [PATCH 200/212] Moving contribution. Redoing README --- CODE_OF_CONDUCT.md | 89 ------------------------- CODE_OF_CONDUCT_en.md | 135 -------------------------------------- CONTRIBUTING.md | 45 ------------- CONTRIBUTING_en.md | 46 ------------- README.md | 107 ++---------------------------- README_en.md | 148 ------------------------------------------ 6 files changed, 6 insertions(+), 564 deletions(-) delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CODE_OF_CONDUCT_en.md delete mode 100644 CONTRIBUTING.md delete mode 100644 CONTRIBUTING_en.md delete mode 100644 README_en.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 9631fe316..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,89 +0,0 @@ -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/CODE_OF_CONDUCT_en.md) - -# Código de Conducta convenido para Contribuyentes - -## Nuestro compromiso - -Nosotros, como miembros, contribuyentes y administradores nos comprometemos a hacer de la participación en nuestra comunidad una experiencia libre de acoso para todo el mundo, independientemente de la edad, dimensión corporal, minusvalía visible o invisible, etnicidad, características sexuales, identidad y expresión de género, nivel de experiencia, educación, nivel socio-económico, nacionalidad, apariencia personal, raza, religión, o identidad u orientación sexual. - -Nos comprometemos a actuar e interactuar de maneras que contribuyan a una comunidad abierta, acogedora, diversa, inclusiva y sana. - -## Nuestros estándares - -Ejemplos de comportamiento que contribuyen a crear un ambiente positivo para nuestra comunidad: - -* Demostrar empatía y amabilidad ante otras personas -* Respeto a diferentes opiniones, puntos de vista y experiencias -* Dar y aceptar adecuadamente retroalimentación constructiva -* Aceptar la responsabilidad y disculparse ante quienes se vean afectados por nuestros errores, aprendiendo de la experiencia -* Centrarse en lo que sea mejor no sólo para nosotros como individuos, sino para la comunidad en general -* Aprender y enseñar con nuestros errores y los del prójimo. El código abierto es una construcción colectiva. - -Ejemplos de comportamiento inaceptable: - -* El uso de lenguaje o imágenes sexualizadas, y aproximaciones o - atenciones sexuales de cualquier tipo -* Comentarios despectivos (_trolling_), insultantes o derogatorios, y ataques personales o políticos -* El acoso en público o privado -* Publicar información privada de otras personas, tales como direcciones físicas o de correo - electrónico, sin su permiso explícito -* Otras conductas que puedan ser razonablemente consideradas como inapropiadas en un - entorno profesional -* _Culpar_ a quien haya escrito cierto código en el pasado. - -## Aplicación de las responsabilidades - -Los administradores de la comunidad son responsables de aclarar y hacer cumplir nuestros estándares de comportamiento aceptable y tomarán acciones apropiadas y correctivas de forma justa en respuesta a cualquier comportamiento que consideren inapropiado, amenazante, ofensivo o dañino. - -Los administradores de la comunidad tendrán el derecho y la responsabilidad de eliminar, editar o rechazar comentarios, _commits_, código, ediciones de páginas de wiki, _issues_ y otras contribuciones que no se alineen con este Código de Conducta, y comunicarán las razones para sus decisiones de moderación cuando sea apropiado. - -## Alcance - -Este código de conducta aplica tanto a espacios del proyecto como a espacios públicos donde un individuo esté en representación del proyecto o comunidad. Ejemplos de esto incluyen el uso de la cuenta oficial de correo electrónico, publicaciones a través de las redes sociales oficiales, o presentaciones con personas designadas en eventos en línea o no. - -## Aplicación - -Instancias de comportamiento abusivo, acosador o inaceptable de otro modo podrán ser reportadas a los administradores de la comunidad responsables del cumplimiento a través de pilasbloques@program.ar. Todas las quejas serán evaluadas e investigadas de una manera puntual y justa. - -Todos los administradores de la comunidad están obligados a respetar la privacidad y la seguridad de quienes reporten incidentes. - -## Guías de Aplicación - -Los administradores de la comunidad seguirán estas Guías de Impacto en la Comunidad para determinar las consecuencias de cualquier acción que juzguen como un incumplimiento de este Código de Conducta: - -### 1. Corrección - -**Impacto en la Comunidad**: El uso de lenguaje inapropiado u otro comportamiento considerado no profesional o no acogedor en la comunidad. - -**Consecuencia**: Un aviso escrito y privado por parte de los administradores de la comunidad, proporcionando claridad alrededor de la naturaleza de este incumplimiento y una explicación de por qué el comportamiento es inaceptable. Una disculpa pública podría ser solicitada. - -### 2. Aviso - -**Impacto en la Comunidad**: Un incumplimiento causado por un único incidente o por una cadena de acciones. - -**Consecuencia**: Un aviso con consecuencias por comportamiento prolongado. No se interactúa con las personas involucradas, incluyendo interacción no solicitada con quienes se encuentran aplicando el Código de Conducta, por un periodo especificado de tiempo. Esto incluye evitar las interacciones en espacios de la comunidad, así como a través de canales externos como las redes sociales. Incumplir estos términos puede conducir a una expulsión temporal o permanente. - -### 3. Expulsión temporal - -**Impacto en la Comunidad**: Una serie de incumplimientos de los estándares de la comunidad, incluyendo comportamiento inapropiado continuo. - -**Consecuencia**: Una expulsión temporal de cualquier forma de interacción o comunicación pública con la comunidad durante un intervalo de tiempo especificado. No se permite interactuar de manera pública o privada con las personas involucradas, incluyendo interacciones no solicitadas con quienes se encuentran aplicando el Código de Conducta, durante este periodo. Incumplir estos términos puede conducir a una expulsión permanente. - -### 4. Expulsión permanente - -**Impacto en la Comunidad**: Demostrar un patrón sistemático de incumplimientos de los estándares de la comunidad, incluyendo conductas inapropiadas prolongadas en el tiempo, acoso de individuos, o agresiones o menosprecio a grupos de individuos. - -**Consecuencia**: Una expulsión permanente de cualquier tipo de interacción pública con la comunidad del proyecto. - -## Atribución - -Este Código de Conducta es una adaptación del [Contributor Covenant][homepage], versión 2.0, -disponible en https://www.contributor-covenant.org/es/version/2/0/code_of_conduct.html - -Las Guías de Impacto en la Comunidad están inspiradas en la [escalera de aplicación del código de conducta de Mozilla](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -Para respuestas a las preguntas frecuentes de este código de conducta, consulta las FAQ en -https://www.contributor-covenant.org/faq. Hay traducciones disponibles en https://www.contributor-covenant.org/translations - diff --git a/CODE_OF_CONDUCT_en.md b/CODE_OF_CONDUCT_en.md deleted file mode 100644 index d9eef2216..000000000 --- a/CODE_OF_CONDUCT_en.md +++ /dev/null @@ -1,135 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community -* Learning and teaching through our errors and those of our pairs. Open Source code is a collective construction. - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting -* _Blaming_ a piece of code to a past contributor. - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -pilasbloques@program.ar. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 34a9092b6..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,45 +0,0 @@ -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/CONTRIBUTING_en.md) - -# Cómo contribuir a Pilas Bloques - -Muchas gracias por querer colaborar en Pilas Bloques :heart:. Si no lo hiciste todavia leé el [README del proyecto](https://github.com/Program-AR/pilas-bloques/blob/develop/README.md) para tener una mejor idea de cuál es nuestro objetivo con Pilas Bloques y también instrucciones para instalar el ambiente de desarrollo. -En Pilas Bloques trabajamos con Pull Requests, por eso si queres aportar al proyecto vas a tener que forkearlo, hacerte una branch y tirar un PR al repo original. -Si no sabés con qué colaborar podés ver los [first good issues](https://github.com/Program-AR/pilas-bloques/labels/good%20first%20issue) o también el [project de Pilas Bloques](https://github.com/orgs/Program-AR/projects/1). - -## Issues - -Si encontraste un bug y querés reportarlo, o si tenés una idea para un feature para Pilas Bloques, [creá un issue describiéndolo](https://github.com/Program-AR/pilas-bloques/issues/new). - -## Pull Requests - -* El PR tiene que tener el o los issues que resuelve linkeado. Esto se puede hacer escribiendo `Fixes #` en la descripción del PR. Esto permite que el issue se cierre automáticamente al mergear el PR. -* Si el PR incluye cambios visuales se alienta incluír imágenes mostrando el cambio. -* Cada cambio o agregado debe incluír sus **tests automatizados**, ya sean unitarios o de integración. -* Todos los tests tienen que pasar. -* Todo nuevo código debe estar codificado **en inglés**. Ver apartado el apartado "Sobre el idioma" de este archivo para saber por qué. - -Ejemplo de un buen PR: https://github.com/Program-AR/pilas-bloques/pull/878 - -## Traducciones - -* Si querés mejorar o completar una traducción ya existente de Pilas Bloques podés hacerlo buscando el archivo del lenguaje en la [carpeta de traducciones](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) y haciendo un pull request con tus cambios propuestos. - -* Si querés empezar la traducción de Pilas Bloques a un lenguaje que todavía no tiene, podés hacerlo creando un nuevo archivo en la [carpeta de traducciones](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) y haciendo un pull request con tu traducción propuesta. - -## ¿Tenés alguna pregunta? -Nos podés arrobar acá en Github con `@pilasbloqueros` o también nos podés mandar un mail a pilasbloques@program.ar - -¡¡¡De nuevo muchas gracias por querer colaborar con el proyecto!!! :heart: :heart: - -_____________ - -## Sobre el idioma -Pilas Bloques es una aplicación cuya comunidad usuaria y desarrolladora es principalmente hispanohablante. Es por eso que la documentación y discusiones en issues y pull requests están en **español**. - -Sin embargo, viendo la necesidad de recibir aportes de varios lugares del mundo que necesitan también utilizar Pilas Bloques, estamos **admitiendo el inglés como idioma secundario** en las discusiones, y ya tenemos las primeras versiones en inglés de la documentación. - -Pero además, y fundamentalmente, **estamos comenzando el proceso de traducción de todo el código al inglés**, con el objetivo de ampliar la comunidad. Es por esto que: - -* Todo el nuevo código que se proponga en un pull request, debe estar en inglés. :gb: -* Si quien quiere hacer el aporte open source no maneja bien el inglés, el equipo de Pilas Bloques con gusto le ayudará con la traducción. :+1: -* Si un pull request modifica extensivamente un componente que estaba codificado en español, se valorarán los esfuerzos por traducir el componente. :mechanical_arm: diff --git a/CONTRIBUTING_en.md b/CONTRIBUTING_en.md deleted file mode 100644 index 61e0600eb..000000000 --- a/CONTRIBUTING_en.md +++ /dev/null @@ -1,46 +0,0 @@ -# How to contribute to Pilas Bloques - -Thanks for your support! :heart:. If you hadn't done it yet, please read the [project README](https://github.com/Program-AR/pilas-bloques/blob/develop/README_en.md). There you'll find our app's main goals and instructions to get started with the development environment. -In Pilas Bloques we work using Pull Requests and feature branches. So if you want to contribute, fork the project, make your changes in a branch, and make a Pull Request to the original repo. -You can check the [first good issues](https://github.com/Program-AR/pilas-bloques/labels/good%20first%20issue) or also the [Pilas Bloques Github Projects](https://github.com/orgs/Program-AR/projects) for hints on what is there to do. - -## Issues - -If you found a bug and you want to report it, or if you have an idea for a feature for Pilas Bloques, [create an issue describing it](https://github.com/Program-AR/pilas-bloques/issues/new). - -## Pull Requests - -* Link the solved issue in your PR description using `Fixes #`. -* If you make visual changes, you are encouraged to include a screen capture showing the change. -* Include unit or integration tests for each feature or fix you make. -* Every test in the app should pass. -* Todo el nuevo codigo tiene que estar en ingles. El objetivo a futuro es que todo Pilas Bloques esté traducido al inglés. Es por ello que el código introducido con cada Pull Request debe estar en inglés. Además, si el código modifica bastante de un componente, se espera que se aproveche el PR para hacer la traducción del mismo. - -Example of a good PR: https://github.com/Program-AR/pilas-bloques/pull/878 - - -## Translations - -* If you want to improve or complete an already existing translation you can do so by editing the proper translation file in the [translations folder](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) and making a pull request with your proposed changes. - -* If you want to start the translation to a language that Pilas Bloques doesn't support yet, you can do so by creating a translation file in the [translations folder](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) and making a pull request with your proposed translation. - -## Do you have any questions? -You can tag us in Github with `@pilasbloqueros` or you can also send us an email to pilasbloques@program.ar - - -Thank you so much for wanting to collaborate with Pilas Bloques!!! :heart: :heart: - -_____________ - -## About the language - -Pilas Bloques has a user and developer community that are mainly spanish-speakers. That's why the documentation and PRs are mainly written in **spanish**, as well as _the code_. - -However, in order to broaden these communities we are beggining to **accept english as a secondary language for our issues and discussions** and we already have our first english docs. - -Furthermore we have a very ambitious goal: **we're starting to translate app code to english**. That's why: - -* Every newly added code in the pull request should be written in English. :gb: -* Pilas Bloques team will eagerly help you with any issues with the existing or new code. :+1: -* If a PR does extensive changes to a component, you are encouraged to translate the entire component to English. :mechanical_arm: \ No newline at end of file diff --git a/README.md b/README.md index 36da60cf8..c6e453a22 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,16 @@ ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Ember](https://img.shields.io/badge/ember-1C1E24?style=for-the-badge&logo=ember.js&logoColor=#D04A37) -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Program-AR/pilas-bloques/issues) -[![open issues](https://badgen.net/github/open-issues/Program-AR/pilas-bloques)](https://github.com/Program-AR/pilas-bloques/issues) -![downloads](https://img.shields.io/github/downloads/Program-AR/pilas-bloques/total.svg) -[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) +¡Hola! :vulcan_salute: Este es un proyecto relacionado a [Pilas Bloques](https://pilasbloques.program.ar) :heart:. En el repositorio de ese proyecto encontrarás las guías sobre [cómo contribuir](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CONTRIBUTING.md) y el [código de conducta](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CODE_OF_CONDUCT.md), que son guías que aplican también a este proyecto. -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/README_en.md) +Hi! :vulcan_salute: This is a project related to [Pilas Bloques](https://pilasbloques.program.ar) :heart:. In that project's repository you'll find the [contribution guidelines](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CONTRIBUTING_en.md) and the [code of conduct](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CODE_OF_CONDUCT_en.md) which also apply to this project. _____________ -# Pilas Bloques - Una herramienta para aprender a programar +## Sobre este proyecto -

- -

+Este es el repositorio de las primeras versiones de Pilas Bloques, desarrolladas en la tecnología Ember.JS. Este proyecto ya no es el principal de Pilas Bloques, el proyecto principal es [pilas-bloques-app](https://github.com/Program-AR/pilas-bloques-app). -## Sobre la aplicación - -Pilas Bloques es una aplicación para enseñar y aprender a programar, desarrollada especialmente para el aula. Se proponen desafíos con diversos niveles de dificultad para acercar a las y los estudiantes al mundo de la programación por medio de bloques. Para más información, ver el [Acerca De](https://pilasbloques.program.ar/acerca-de-pilas-bloques/) de Pilas Bloques. - -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/desafios.png) -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/editor.png) - - - -## Cómo contribuír - -¡En la guia de [CONTRIBUTING](https://github.com/Program-AR/pilas-bloques/blob/develop/CONTRIBUTING.md) tenés toda la informacion necesaria para contribuir al proyecto! - -## Cómo instalar el entorno de desarrollo - -Para colaborar en Pilas Bloques vas a tener que instalar [Git](https://git-scm.com/) y clonar el repositorio de [Pilas Bloques](https://github.com/Program-AR/pilas-bloques): - -``` -git clone https://github.com/Program-AR/pilas-bloques.git -``` - -### Pre-requisitos - -* Node. La version requerida para el proyecto está en el archivo `.nvmrc`. - - Debian/Ubuntu: - ``` - git clone https://github.com/nvm-sh/nvm.git ~/.nvm - source ~/.nvm/nvm.sh - source ~/.nvm/install.sh - nvm install . - ``` - -### Usá la version de NodeJS de Pilas Bloques: -``` -nvm use -``` - -### Instalá las dependencias del proyecto: -``` -npm install -``` - -## Comandos comunes de desarrollo - -### Correr todos los tests: -``` -npm test -``` - -### Levantar Pilas Bloques: -``` -npm run start -``` - -### Buildear Pilas Bloques: - -``` -npm run build -``` +Para contribuir o aportar, se recomienda empezar por ese proyecto. Este proyecto pronto será deprecado. ### Sobre los grupos experimentales: @@ -89,7 +25,7 @@ En Windows esto se tiene que hacer con: SET "EXPERIMENT_GROUP=treatment" && npm run start ``` -Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment` y `autoassign`. +Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment`, `autoassign` y `off`. - `notAffected`: (default) no muestra ningún tipo de feedback sobre la solución propuesta. - `control`: al finalizar un desafío muestra las expectativas existentes para el mismo, sin informar si se cumplieron o no. @@ -97,34 +33,3 @@ Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment` y `a - `autoassign`: asigna aleatoriamente un grupo experimental en tiempo de ejecución (elige entre `control` y `treatment). - `off`: Siempre muestra las expectativas y la barra de progreso. Deja de mostrar la encuesta de preguntas al usuario. -### Empaquetando instaladores: - -- Por defecto, al hacer un _release_ de la aplicación, el CI se encarga de generar todos los instaladores empaquetados. Por ejemplo: al correr `npm run release:patch`. -- Para hacerlo de manera local, primero hay que correr el comando `EXPERIMENT_GROUP=treatment npm run build:prod` (seteando la variable de entorno relacionada al grupo experimental) y luego buildear el instalador correspondiente a tu SO. Por ejemplo: `npm run pack:linux`. -- Si se desea buildear para otro SO (que no sea el tuyo) hay que tener en cuenta que solamente se puede hacer desde linux. Además, hay que tener instaladas ciertas dependencias: - - **Windows:** se necesita tener instalado `nsis`, `wine` y `wine-mono`. - - Debian/Ubuntu: - - ``` - sudo apt install nsis - ``` - - Arch: - - ``` - yay -S nsis - ``` - - **macOS:** no disponible. - -### Preparar el backend (opcional): - -Para tener un backend para probar funcionalidades relacionadas a usuarios y a guardar desafios es necesario tener levantado los proyectos de Pilas Bloques API, Pilas Bloques Analytics, (ambos disponibles en el proyecto [backend](https://github.com/Program-AR/pilas-bloques-backend)) y una base de datos [MongoDB](https://www.mongodb.com/). - -_____________ - -### Release & deploy (Solo para el equipo de Pilas Bloques) -https://github.com/Program-AR/pilas-bloques/wiki/Release-y-Deploy - -_____________ - -### Registro de cambios -[aquí](notasDeVersion.md) diff --git a/README_en.md b/README_en.md deleted file mode 100644 index ddf268645..000000000 --- a/README_en.md +++ /dev/null @@ -1,148 +0,0 @@ -![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -![Ember](https://img.shields.io/badge/ember-1C1E24?style=for-the-badge&logo=ember.js&logoColor=#D04A37) - -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Program-AR/pilas-bloques/issues) -[![open issues](https://badgen.net/github/open-issues/Program-AR/pilas-bloques)](https://github.com/Program-AR/pilas-bloques/issues) -![downloads](https://img.shields.io/github/downloads/Program-AR/pilas-bloques/total.svg) -[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) - -[:argentina: Leer en español](https://github.com/Program-AR/pilas-bloques/blob/develop/README.md) -_____________ - -# Pilas Bloques - A tool to learn computer programming - -

- -

- -## About - -Pilas Bloques is an application to learn computer programming, specially developed for the classroom. We offer challenges with different levels of complexity to introduce students into the universe of computer programming with blocks. For more information read [the spanish about page](https://pilasbloques.program.ar/acerca-de-pilas-bloques/). - -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/desafios.png) -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/editor.png) - -### What does computer programming with blocks mean? - -It means developing programs with actions and instructions introduced by combining blocks. The result of fitting blocks together is a program that (hopefully!) solves the problem or challenge offered. - -### Why is this learning methodology positive? - -- Because each abstract concept associated with programming has its visual representation. -- Because it avoids the difficulties produced by the formal syntax of a written language (and the frustration when we make a mistake in writing!). -- The blocks are selected, dragged, fit together, and the task is ready. - -### What makes Pilas Bloques different from the other tools? - -The main difference is that this platform was created in support of a didactic sequence to learn programming at school. - -### What’s a didactic sequence? - -It’s the plan by means of which teachers expect students to learn a topic. Pilas Bloques didactic sequence was created and tested by Argentine teachers and researchers. Nowadays, this proposal is being studied in depth and expanded. Learn more about the initiatives we are working on. - -### Who can solve Pilas Bloques challenges? - -These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of the activities of the First Cycle, and children between 9 and 12 years old will be able to take advantage of the activities of the Second Cycle. - -### And can anyone solve these challenges on their own? - -This tool was thought as an aid for the teacher and the student along the teaching-learning process of computer programming at school. In these didactic sequences, the inquiry-based methodology is fundamental. However, our recommendation is that the teacher serves as the guide and assists during the student’s learning process. - -## Contributing - -You can find all the information you need to start contributing in Pilas Bloques in the [CONTRIBUTING](https://github.com/Program-AR/pilas-bloques/blob/guidelines/CONTRIBUTING_en.md) guidelines! - -## Getting Started - -In order to collaborate, first of all you will install [Git](https://git-scm.com/) and then you must clone the [Pilas Bloques](https://github.com/Program-AR/pilas-bloques) repository. - -``` -git clone https://github.com/Program-AR/pilas-bloques.git -``` - -### Prerequisites - -* Node. The version required is indicated in `.nvmrc` file. - - Install it: - ``` - git clone https://github.com/nvm-sh/nvm.git ~/.nvm - source ~/.nvm/nvm.sh - source ~/.nvm/install.sh - nvm install . - ``` - -### Use Pilas Bloques NodeJS target version: -``` -nvm use -``` - -### Install all project dependencies: -``` -npm install -``` - -## Daily Development commands - -### Run all tests: -``` -npm test -``` - -### Start Pilas Bloques: -``` -npm run start -``` - -### Build Pilas Bloques - -``` -npm run build -``` - -### About experiment groups: - -Pilas Bloques can be compiled in different ways depending on the experiment group. This can be achieved by setting the environment variable `EXPERIMENT_GROUP` at build time: - -``` -EXPERIMENT_GROUP=treatment npm run start -``` - -In Windows this is done with: - -``` -SET "EXPERIMENT_GROUP=treatment" && npm run start -``` - -The experiment groups are: `notAffected`, `control`, `treatment`, `autoassign` and `off`. - -- `notAffected`: (default) it does not show any feedback on current solution, just challenge completion. -- `control`: after completing a challenge its expectations are shown, but with no information regarding whether they were fulfilled. -- `treatment`: this one has a training period. During this time expectations are shown for each challenge, alongside a progress bar that awards points for each passed expectation. Blocks in the workspace have their own feedback too. Once the training period is over, the app behavior changes to *control*. -- `autoassign`: randomly assigns an experiment group at run time (between `control` and `treatment`). -- `off`: always shows expectations and points. Doesn't show survey questions to the user. - -### Packing installers: - -- By default, after _releasing_ the app, the CI handles all installers generations. E.g.: after running `npm run release:patch`. -- If you want to do it locally, first you need to run the command `EXPERIMENT_GROUP=treatment npm run build:prod` (setting EXPERIMENT_GROUP environment variable) and then build the installer corresponding to your OS. E.g.: `npm run pack:linux`. -- If you want to pack an installer for another OS you need to know that this is only possible if you use linux. In addition, you need to install the following dependencies: - - **Windows:** you need to install `nsis`, `wine` and `wine-mono`. - - Debian/Ubuntu: - - ``` - sudo apt install nsis - ``` - - Arch: - - ``` - yay -S nsis - ``` - - **macOS:** unavailable. - -### Preparing backend (for users stuff): - -If you want to test users stuff or save challenges it is necessary to fulfill some requirements: Run the apps Pilas Bloques API, Pilas Bloques Analytics (both accesible in the [backend project](https://github.com/Program-AR/pilas-bloques)) and a [MongoDB](https://www.mongodb.com/) database. - -### Changeslog -[here](notasDeVersion.md) From c65547b747db3ea638fd949ccb5f46c86969f00d Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Fri, 2 Feb 2024 15:49:58 -0300 Subject: [PATCH 201/212] Release 1.17.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8cd8bd2b4..db2ba068a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.17.0", + "version": "1.17.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fc2c40711..736572068 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.17.0", + "version": "1.17.1", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 02c737129d834e96576d6716e6bf983deccb6138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 23 Feb 2024 16:09:29 -0300 Subject: [PATCH 202/212] bumping exercises --- package-lock.json | 6 +++--- package.json | 2 +- public/pilas.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index db2ba068a..b28440c24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33176,9 +33176,9 @@ } }, "pilas-bloques-exercises": { - "version": "1.4.29", - "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.29.tgz", - "integrity": "sha512-TFa623ULWEer2yJVYM3kw+/8axHpVahvDx3nGW70IYC0Zjttn84y3C+0GOQv//UVk2UJ0nSmhEpZ+vCgV/8Stg==", + "version": "1.4.30", + "resolved": "https://registry.npmjs.org/pilas-bloques-exercises/-/pilas-bloques-exercises-1.4.30.tgz", + "integrity": "sha512-KfzR2shZKshYkeWLiA7AxwNEwL0r1EnXQKLsHZjZ88aTZXnd71fYktmq+QDl6lgCTtJaOsAxPIv8Tb1sG7SqlQ==", "requires": { "pilasweb": "^0.5.0" } diff --git a/package.json b/package.json index 736572068..0b7b719e4 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "creador-de-desafios-pilasbloques": "^1.0.1", "mulang": "^6.0.5", "pilas-bloques-ember-intl": "^1.1.2", - "pilas-bloques-exercises": "1.4.29", + "pilas-bloques-exercises": "1.4.30", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", diff --git a/public/pilas.html b/public/pilas.html index b89492f24..0f5eddf68 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + From dc8d4132c0307ef5def80444fdefd956bbca23a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 23 Feb 2024 16:10:05 -0300 Subject: [PATCH 203/212] Release 1.17.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b28440c24..ea86d745b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.17.1", + "version": "1.17.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0b7b719e4..0074bf661 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.17.1", + "version": "1.17.2", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 165eb35be367866dad319fc80905e29fdfc42e41 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Wed, 28 Feb 2024 11:59:47 -0300 Subject: [PATCH 204/212] sacando bloques --- app/utils/staticData/desafios.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index 65d158d9a..412be08cb 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -2811,7 +2811,7 @@ export const desafios = [ [-,T,T,T,T],\ [-,T,T,T,T],\ [A,T,T,T,T],\")`, - bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'VolverABordeIzquierdo', 'RepararTelescopio', 'Procedimiento', 'Repetir'] + bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'RepararTelescopio', 'Procedimiento', 'Repetir'] }, { id: 1008, From 3520d70d199c1b46b55b9e3a98cab2dcb3030d04 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Wed, 28 Feb 2024 16:02:34 -0300 Subject: [PATCH 205/212] Release 1.17.3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea86d745b..fec0e0d79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.17.2", + "version": "1.17.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0074bf661..d524b9335 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.17.2", + "version": "1.17.3", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From eb1a833d785f0e1cfa255f983946563058ae3fad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 19:07:56 +0000 Subject: [PATCH 206/212] Bump ip from 1.1.8 to 1.1.9 Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9. - [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 94 +++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index fec0e0d79..3c6b0ddaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5960,12 +5960,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.4.tgz", - "integrity": "sha512-A6tXvfwnscx66QO0R3c2dIJwEltfsTL4ihsYjMtgP9ODCCmQlCaRlZDQYw5Drta0ER9Fj3nXntu4naV5Wt5XLA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.14.0.tgz", + "integrity": "sha512-V+jkc8mU6mJ4McW6qdEhCiD74CzMDd1T4CeJ9IkidC3pPwTMRIKJMkbiSnjmGDy7NCxT66XtFwJH7HGM2B/fXA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.5.1", + "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -5976,9 +5976,9 @@ } }, "@embroider/shared-internals": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.1.tgz", - "integrity": "sha512-b+TWDBisH1p6HeTbJIO8pgu1WzfTP0ZSAlZBqjXwOyrS0ZxP1qNYRrEX+IxyzIibEFjXBxeLakiejz3DJvZX5A==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.2.tgz", + "integrity": "sha512-jNDJ9YlV6Qp9Na9v17qirUewVuq6T0t32nn+bbnFlCRTvmllKluZdYPSC5RuRnEZKTloVYRSF0+f1rgkTIEvxQ==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -6108,9 +6108,9 @@ } }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -16892,9 +16892,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17226,12 +17226,12 @@ }, "dependencies": { "@embroider/macros": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.13.4.tgz", - "integrity": "sha512-A6tXvfwnscx66QO0R3c2dIJwEltfsTL4ihsYjMtgP9ODCCmQlCaRlZDQYw5Drta0ER9Fj3nXntu4naV5Wt5XLA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.14.0.tgz", + "integrity": "sha512-V+jkc8mU6mJ4McW6qdEhCiD74CzMDd1T4CeJ9IkidC3pPwTMRIKJMkbiSnjmGDy7NCxT66XtFwJH7HGM2B/fXA==", "dev": true, "requires": { - "@embroider/shared-internals": "2.5.1", + "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", "ember-cli-babel": "^7.26.6", @@ -17242,9 +17242,9 @@ } }, "@embroider/shared-internals": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.1.tgz", - "integrity": "sha512-b+TWDBisH1p6HeTbJIO8pgu1WzfTP0ZSAlZBqjXwOyrS0ZxP1qNYRrEX+IxyzIibEFjXBxeLakiejz3DJvZX5A==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.5.2.tgz", + "integrity": "sha512-jNDJ9YlV6Qp9Na9v17qirUewVuq6T0t32nn+bbnFlCRTvmllKluZdYPSC5RuRnEZKTloVYRSF0+f1rgkTIEvxQ==", "dev": true, "requires": { "babel-import-util": "^2.0.0", @@ -17631,9 +17631,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -19619,9 +19619,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -21222,9 +21222,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -22165,9 +22165,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -22740,9 +22740,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23976,9 +23976,9 @@ "dev": true }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -28228,9 +28228,9 @@ } }, "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "requires": { "function-bind": "^1.1.2" @@ -28884,9 +28884,9 @@ } }, "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, "ip-regex": { @@ -32513,9 +32513,9 @@ }, "dependencies": { "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", "dev": true } } From 1e2d2851fbc66039105d1b9f8a04d0cd20bf9efd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 12:06:41 +0000 Subject: [PATCH 207/212] Bump es5-ext from 0.10.53 to 0.10.64 Bumps [es5-ext](https://github.com/medikoo/es5-ext) from 0.10.53 to 0.10.64. - [Release notes](https://github.com/medikoo/es5-ext/releases) - [Changelog](https://github.com/medikoo/es5-ext/blob/main/CHANGELOG.md) - [Commits](https://github.com/medikoo/es5-ext/compare/v0.10.53...v0.10.64) --- updated-dependencies: - dependency-name: es5-ext dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 54 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c6b0ddaa..5f88668f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24981,13 +24981,21 @@ } }, "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "dependencies": { + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + } } }, "es6-error": { @@ -25164,6 +25172,40 @@ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true }, + "esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + }, + "dependencies": { + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + } + } + }, + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", From c8ddf9bc9eb0606515fd6ea45209461fa42624a5 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Fri, 1 Mar 2024 12:43:26 -0300 Subject: [PATCH 208/212] Release 1.17.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f88668f0..2420a88b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.17.3", + "version": "1.17.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d524b9335..9dea650fe 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.17.3", + "version": "1.17.4", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", From 7d739c906b0b67dc9078e0438b543ad58ad36ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20L=C3=B3pez=20Alvas?= Date: Fri, 15 Mar 2024 16:16:39 -0300 Subject: [PATCH 209/212] showing expects on off group --- app/services/experiments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/experiments.js b/app/services/experiments.js index f5cfbba5f..c0f5b3d8d 100644 --- a/app/services/experiments.js +++ b/app/services/experiments.js @@ -27,11 +27,11 @@ export default Service.extend({ }, isNotAffected() { - return !(this.isTreatmentGroup() || this.isControlGroup()) + return this.experimentGroup() === this.possibleGroups[2] }, isOff(){ - return this.experimentGroup() === "off" + return this.experimentGroup() === this.possibleGroups[3] }, isAutoAssignStrategy() { From f4afffeedd8a9e5ac394c816299f2ebc00bda0ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 23:31:57 +0000 Subject: [PATCH 210/212] Bump follow-redirects from 1.15.4 to 1.15.6 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 4690 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 4603 insertions(+), 87 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2420a88b0..bdd1fb3a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,45 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, "@babel/code-frame": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", @@ -363,6 +402,30 @@ "@babel/plugin-proposal-optional-chaining": "^7.16.0" } }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz", @@ -564,6 +627,49 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -644,6 +750,117 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + } + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz", @@ -652,6 +869,134 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/plugin-transform-async-to-generator": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz", @@ -678,6 +1023,355 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, "@babel/plugin-transform-classes": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz", @@ -726,6 +1420,24 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz", @@ -735,6 +1447,24 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-transform-for-of": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz", @@ -752,6 +1482,24 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-transform-literals": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz", @@ -760,6 +1508,24 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-transform-member-expression-literals": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz", @@ -826,6 +1592,42 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, "@babel/plugin-transform-object-assign": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz", @@ -843,35 +1645,560 @@ } } }, - "@babel/plugin-transform-object-super": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", - "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-replace-supers": "^7.16.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", - "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", - "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", + "@babel/plugin-transform-object-rest-spread": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", - "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "caniuse-lite": { + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", + "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-replace-supers": "^7.16.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + } + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", + "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", + "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", + "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", "requires": { "regenerator-transform": "^0.14.2" } @@ -963,6 +2290,117 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + } + } + }, "@babel/plugin-transform-unicode-regex": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz", @@ -972,6 +2410,117 @@ "@babel/helper-plugin-utils": "^7.16.5" } }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + } + } + }, "@babel/polyfill": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", @@ -1081,6 +2630,12 @@ "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", @@ -5959,20 +7514,940 @@ "ember-modifier-manager-polyfill": "^1.2.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz", + "integrity": "sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.0" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", + "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.18", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", + "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, "@embroider/macros": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.14.0.tgz", - "integrity": "sha512-V+jkc8mU6mJ4McW6qdEhCiD74CzMDd1T4CeJ9IkidC3pPwTMRIKJMkbiSnjmGDy7NCxT66XtFwJH7HGM2B/fXA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.15.0.tgz", + "integrity": "sha512-gXh46ZafqYb6AJVoCCaQwYRsqFIwAat/PVCaJgEDKnOgOP/BTyIXwAld0gLZlIgSKkqOccBih83bXMShflKkLg==", "dev": true, "requires": { + "@babel/core": "^7.24.0", "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", - "ember-cli-babel": "^7.26.6", + "ember-cli-babel": "^8.2.0", "find-up": "^5.0.0", "lodash": "^4.17.21", "resolve": "^1.20.0", "semver": "^7.3.2" + }, + "dependencies": { + "ember-cli-babel": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ember-cli-babel/-/ember-cli-babel-8.2.0.tgz", + "integrity": "sha512-8H4+jQElCDo6tA7CamksE66NqBXWs7VNpS3a738L9pZCjg2kXIX4zoyHzkORUqCtr0Au7YsCnrlAMi1v2ALo7A==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.16.5", + "@babel/plugin-proposal-decorators": "^7.20.13", + "@babel/plugin-proposal-private-methods": "^7.16.5", + "@babel/plugin-proposal-private-property-in-object": "^7.20.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-runtime": "^7.13.9", + "@babel/plugin-transform-typescript": "^7.20.13", + "@babel/preset-env": "^7.20.2", + "@babel/runtime": "7.12.18", + "amd-name-resolver": "^1.3.1", + "babel-plugin-debug-macros": "^0.3.4", + "babel-plugin-ember-data-packages-polyfill": "^0.1.2", + "babel-plugin-ember-modules-api-polyfill": "^3.5.0", + "babel-plugin-module-resolver": "^5.0.0", + "broccoli-babel-transpiler": "^8.0.0", + "broccoli-debug": "^0.6.4", + "broccoli-funnel": "^3.0.8", + "broccoli-source": "^3.0.1", + "calculate-cache-key-for-tree": "^2.0.0", + "clone": "^2.1.2", + "ember-cli-babel-plugin-helpers": "^1.1.1", + "ember-cli-version-checker": "^5.1.2", + "ensure-posix-path": "^1.0.2", + "resolve-package-path": "^4.0.3", + "semver": "^7.3.8" + } + } } }, "@embroider/shared-internals": { @@ -5992,12 +8467,320 @@ "typescript-memoize": "^1.0.1" } }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "async-disk-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-2.1.0.tgz", + "integrity": "sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "heimdalljs": "^0.2.3", + "istextorbinary": "^2.5.1", + "mkdirp": "^0.5.0", + "rimraf": "^3.0.0", + "rsvp": "^4.8.5", + "username-sync": "^1.0.2" + } + }, "babel-import-util": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.1.tgz", "integrity": "sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==", "dev": true }, + "babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "requires": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "broccoli-babel-transpiler": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/broccoli-babel-transpiler/-/broccoli-babel-transpiler-8.0.0.tgz", + "integrity": "sha512-3HEp3flvasUKJGWERcrPgM1SWvHJ0O/fmbEtY9L4kDyMSnqjY6hTYvNvgWCIgbwXAYAUlZP0vjAQsmyLNGLwFw==", + "dev": true, + "requires": { + "broccoli-persistent-filter": "^3.0.0", + "clone": "^2.1.2", + "hash-for-dep": "^1.4.7", + "heimdalljs": "^0.2.1", + "heimdalljs-logger": "^0.1.9", + "json-stable-stringify": "^1.0.1", + "rsvp": "^4.8.4", + "workerpool": "^6.0.2" + } + }, + "broccoli-funnel": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/broccoli-funnel/-/broccoli-funnel-3.0.8.tgz", + "integrity": "sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==", + "dev": true, + "requires": { + "array-equal": "^1.0.0", + "broccoli-plugin": "^4.0.7", + "debug": "^4.1.1", + "fs-tree-diff": "^2.0.1", + "heimdalljs": "^0.2.0", + "minimatch": "^3.0.0", + "walk-sync": "^2.0.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "broccoli-persistent-filter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.3.tgz", + "integrity": "sha512-Q+8iezprZzL9voaBsDY3rQVl7c7H5h+bvv8SpzCZXPZgfBFCbx7KFQ2c3rZR6lW5k4Kwoqt7jG+rZMUg67Gwxw==", + "dev": true, + "requires": { + "async-disk-cache": "^2.0.0", + "async-promise-queue": "^1.0.3", + "broccoli-plugin": "^4.0.3", + "fs-tree-diff": "^2.0.0", + "hash-for-dep": "^1.5.0", + "heimdalljs": "^0.2.1", + "heimdalljs-logger": "^0.1.7", + "promise-map-series": "^0.2.1", + "rimraf": "^3.0.0", + "symlink-or-copy": "^1.0.1", + "sync-disk-cache": "^2.0.0" + } + }, + "broccoli-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz", + "integrity": "sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==", + "dev": true, + "requires": { + "broccoli-node-api": "^1.7.0", + "broccoli-output-wrapper": "^3.2.5", + "fs-merger": "^3.2.1", + "promise-map-series": "^0.3.0", + "quick-temp": "^0.1.8", + "rimraf": "^3.0.2", + "symlink-or-copy": "^1.3.1" + }, + "dependencies": { + "promise-map-series": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.3.0.tgz", + "integrity": "sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==", + "dev": true + } + } + }, + "broccoli-source": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/broccoli-source/-/broccoli-source-3.0.1.tgz", + "integrity": "sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==", + "dev": true, + "requires": { + "broccoli-node-api": "^1.6.0" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "caniuse-lite": { + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-js-compat": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dev": true, + "requires": { + "browserslist": "^4.22.3" + } + }, + "editions": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", + "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", + "dev": true, + "requires": { + "errlop": "^2.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", + "dev": true + }, + "ember-cli-version-checker": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz", + "integrity": "sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==", + "dev": true, + "requires": { + "resolve-package-path": "^3.1.0", + "semver": "^7.3.4", + "silent-error": "^1.1.1" + }, + "dependencies": { + "resolve-package-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/resolve-package-path/-/resolve-package-path-3.1.0.tgz", + "integrity": "sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==", + "dev": true, + "requires": { + "path-root": "^0.1.1", + "resolve": "^1.17.0" + } + } + } + }, + "find-babel-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", + "dev": true, + "requires": { + "json5": "^2.1.1", + "path-exists": "^4.0.0" + } + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6006,6 +8789,35 @@ "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "fs-extra": { @@ -6020,6 +8832,32 @@ "universalify": "^2.0.0" } }, + "fs-tree-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz", + "integrity": "sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==", + "dev": true, + "requires": { + "@types/symlink-or-copy": "^1.2.0", + "heimdalljs-logger": "^0.1.7", + "object-assign": "^4.1.0", + "path-posix": "^1.0.0", + "symlink-or-copy": "^1.1.8" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -6035,6 +8873,23 @@ "hasown": "^2.0.0" } }, + "istextorbinary": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", + "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", + "dev": true, + "requires": { + "binaryextensions": "^2.1.2", + "editions": "^2.2.0", + "textextensions": "^2.5.0" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -6046,47 +8901,189 @@ } }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } } }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, + "matcher-collection": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", + "integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "minimatch": "^3.0.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^2.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "dev": true + }, "resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -6107,6 +9104,56 @@ "path-root": "^0.1.1" } }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, "semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", @@ -6114,13 +9161,94 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, + "sync-disk-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sync-disk-cache/-/sync-disk-cache-2.1.0.tgz", + "integrity": "sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "heimdalljs": "^0.2.6", + "mkdirp": "^0.5.0", + "rimraf": "^3.0.0", + "username-sync": "^1.0.2" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, "universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true + }, + "walk-sync": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz", + "integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "ensure-posix-path": "^1.1.0", + "matcher-collection": "^2.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -17225,20 +20353,940 @@ "ember-truth-helpers": "^2.1.0 || ^3.0.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz", + "integrity": "sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.0" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", + "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.18", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", + "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, "@embroider/macros": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.14.0.tgz", - "integrity": "sha512-V+jkc8mU6mJ4McW6qdEhCiD74CzMDd1T4CeJ9IkidC3pPwTMRIKJMkbiSnjmGDy7NCxT66XtFwJH7HGM2B/fXA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.15.0.tgz", + "integrity": "sha512-gXh46ZafqYb6AJVoCCaQwYRsqFIwAat/PVCaJgEDKnOgOP/BTyIXwAld0gLZlIgSKkqOccBih83bXMShflKkLg==", "dev": true, "requires": { + "@babel/core": "^7.24.0", "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", "babel-import-util": "^2.0.0", - "ember-cli-babel": "^7.26.6", + "ember-cli-babel": "^8.2.0", "find-up": "^5.0.0", "lodash": "^4.17.21", "resolve": "^1.20.0", "semver": "^7.3.2" + }, + "dependencies": { + "ember-cli-babel": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ember-cli-babel/-/ember-cli-babel-8.2.0.tgz", + "integrity": "sha512-8H4+jQElCDo6tA7CamksE66NqBXWs7VNpS3a738L9pZCjg2kXIX4zoyHzkORUqCtr0Au7YsCnrlAMi1v2ALo7A==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.16.5", + "@babel/plugin-proposal-decorators": "^7.20.13", + "@babel/plugin-proposal-private-methods": "^7.16.5", + "@babel/plugin-proposal-private-property-in-object": "^7.20.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-runtime": "^7.13.9", + "@babel/plugin-transform-typescript": "^7.20.13", + "@babel/preset-env": "^7.20.2", + "@babel/runtime": "7.12.18", + "amd-name-resolver": "^1.3.1", + "babel-plugin-debug-macros": "^0.3.4", + "babel-plugin-ember-data-packages-polyfill": "^0.1.2", + "babel-plugin-ember-modules-api-polyfill": "^3.5.0", + "babel-plugin-module-resolver": "^5.0.0", + "broccoli-babel-transpiler": "^8.0.0", + "broccoli-debug": "^0.6.4", + "broccoli-funnel": "^3.0.8", + "broccoli-source": "^3.0.1", + "calculate-cache-key-for-tree": "^2.0.0", + "clone": "^2.1.2", + "ember-cli-babel-plugin-helpers": "^1.1.1", + "ember-cli-version-checker": "^5.1.2", + "ensure-posix-path": "^1.0.2", + "resolve-package-path": "^4.0.3", + "semver": "^7.3.8" + } + } } }, "@embroider/shared-internals": { @@ -17290,6 +21338,16 @@ "@simple-dom/interface": "^1.4.0" } }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "async-disk-cache": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-2.1.0.tgz", @@ -17334,6 +21392,148 @@ "string.prototype.matchall": "^4.0.5" } }, + "babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "requires": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "broccoli-babel-transpiler": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/broccoli-babel-transpiler/-/broccoli-babel-transpiler-8.0.0.tgz", + "integrity": "sha512-3HEp3flvasUKJGWERcrPgM1SWvHJ0O/fmbEtY9L4kDyMSnqjY6hTYvNvgWCIgbwXAYAUlZP0vjAQsmyLNGLwFw==", + "dev": true, + "requires": { + "broccoli-persistent-filter": "^3.0.0", + "clone": "^2.1.2", + "hash-for-dep": "^1.4.7", + "heimdalljs": "^0.2.1", + "heimdalljs-logger": "^0.1.9", + "json-stable-stringify": "^1.0.1", + "rsvp": "^4.8.4", + "workerpool": "^6.0.2" + } + }, + "broccoli-funnel": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/broccoli-funnel/-/broccoli-funnel-3.0.8.tgz", + "integrity": "sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==", + "dev": true, + "requires": { + "array-equal": "^1.0.0", + "broccoli-plugin": "^4.0.7", + "debug": "^4.1.1", + "fs-tree-diff": "^2.0.1", + "heimdalljs": "^0.2.0", + "minimatch": "^3.0.0", + "walk-sync": "^2.0.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "broccoli-persistent-filter": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.3.tgz", @@ -17376,6 +21576,48 @@ } } }, + "broccoli-source": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/broccoli-source/-/broccoli-source-3.0.1.tgz", + "integrity": "sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==", + "dev": true, + "requires": { + "broccoli-node-api": "^1.6.0" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "caniuse-lite": { + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-js-compat": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dev": true, + "requires": { + "browserslist": "^4.22.3" + } + }, "editions": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", @@ -17394,6 +21636,12 @@ } } }, + "electron-to-chromium": { + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", + "dev": true + }, "ember-cli-htmlbars": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-6.3.0.tgz", @@ -17449,6 +21697,16 @@ "ember-cli-babel": "^7.26.6" } }, + "find-babel-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", + "dev": true, + "requires": { + "json5": "^2.1.1", + "path-exists": "^4.0.0" + } + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -17457,6 +21715,35 @@ "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "fs-extra": { @@ -17485,17 +21772,16 @@ } }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, "graceful-fs": { @@ -17524,6 +21810,12 @@ "textextensions": "^2.5.0" } }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -17535,21 +21827,36 @@ } }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } } }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "matcher-collection": { @@ -17560,41 +21867,149 @@ "requires": { "@types/minimatch": "^3.0.3", "minimatch": "^3.0.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^2.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "dev": true + }, "resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -17622,6 +22037,41 @@ "dev": true, "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "rsvp": { @@ -17637,6 +22087,23 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "sync-disk-cache": { @@ -17652,6 +22119,12 @@ "username-sync": "^1.0.2" } }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, "universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -17668,7 +22141,40 @@ "ensure-posix-path": "^1.1.0", "matcher-collection": "^2.0.0", "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } + }, + "workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -22577,9 +27083,9 @@ } }, "ember-cli-typescript": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-5.2.1.tgz", - "integrity": "sha512-qqp5TAIuPHxHiGXJKL+78Euyhy0zSKQMovPh8sJpN/ZBYx0H90pONufHR3anaMcp1snVfx4B+mb9+7ijOik8ZA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-5.3.0.tgz", + "integrity": "sha512-gFA+ZwmsvvFwo2Jz/B9GMduEn+fPoGb69qWGP0Tp3+Tu5xypDtIKVSZ5086I3Cr19cLXD4HkrOR3YQvdUKzAkQ==", "dev": true, "requires": { "ansi-to-html": "^0.6.15", @@ -26737,9 +31243,9 @@ } }, "follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true }, "for-each": { @@ -28270,9 +32776,9 @@ } }, "hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "requires": { "function-bind": "^1.1.2" @@ -38275,6 +42781,16 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "optional": true }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "update-notifier": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.0.tgz", From 597649996b6f7c8ef7b64421d2e1e73f8c002d2a Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Tue, 16 Apr 2024 16:10:45 -0300 Subject: [PATCH 211/212] fixing alternative spelling --- translations/blocks/es-ar.yaml | 2 +- translations/blocks/pt-br.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index 842381ec5..bd4c8ec96 100644 --- a/translations/blocks/es-ar.yaml +++ b/translations/blocks/es-ar.yaml @@ -133,7 +133,7 @@ simpleRepetitionBeginning: Repetir simpleRepetitionEnd: veces conditionalRepetition: Repetir hasta que simpleAlternative: Si -completeAlternative: sino +completeAlternative: si no wakeUpFirefly: Despertar luciérnaga photographButterfly: Fotografiar mariposa unlockCellphone: Desbloquear celular diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index 2fd4c43da..0d50af9ae 100644 --- a/translations/blocks/pt-br.yaml +++ b/translations/blocks/pt-br.yaml @@ -129,7 +129,7 @@ simpleRepetitionBeginning: Repetir simpleRepetitionEnd: vezes conditionalRepetition: Repetir até que simpleAlternative: Si -completeAlternative: senão +completeAlternative: se não wakeUpFirefly: Acordar vaga-lume photographButterfly: Fotografar borboleta unlockCellphone: Desbloquear celular From c3c0403a03dcb1f6694175505d9c039bc73ef282 Mon Sep 17 00:00:00 2001 From: Rocio Gonzalez Date: Tue, 16 Apr 2024 16:47:44 -0300 Subject: [PATCH 212/212] Release 1.17.5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdd1fb3a3..e036fdd74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilasbloques", - "version": "1.17.4", + "version": "1.17.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9dea650fe..2a32cb46e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Pilas Bloques", "genericName": "Programacion con bloques", "description": "Una herramienta para aprender a programar utilizando bloques", - "version": "1.17.4", + "version": "1.17.5", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR",