diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7222e8a3c..65d2e0445 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,51 +37,12 @@ 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: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 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 71ba0d248..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,41 +25,11 @@ 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. - `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: - -- 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 0c32841e5..000000000 --- a/README_en.md +++ /dev/null @@ -1,147 +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` and `autoassign`. - -- `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`). - -### 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) 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/components/challenge-workspace-buttons.js b/app/components/challenge-workspace-buttons.js index fc5b5eac8..cbecbee76 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; @@ -12,6 +13,7 @@ export default Component.extend({ deleteDialogIsOpen: false, platform: service(), intl: service(), + storage: service(), version() { return VERSION_DEL_FORMATO_DE_ARCHIVO; @@ -83,13 +85,27 @@ export default Component.extend({ input.value = null; }, + changeWarningVisibility(visible) { + changeWarningVisibility(visible) + this.set('warningsVisible', visible) + }, + actions: { abrirSolucion() { this.fileInput().click(); }, + + enableWarnings() { + this.changeWarningVisibility(true) + }, + + disableWarnings() { + this.changeWarningVisibility(false) + }, guardarSolucion() { - let activityName = this.get("actividad.nombre"); + let activityName = this.get("actividad.nombre") || "SinTitulo" + let fileName = `${activityName}.spbq`; let contenido = { 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/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/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 19639d141..f4618edb6 100644 --- a/app/router.js +++ b/app/router.js @@ -1,9 +1,21 @@ import EmberRouter from '@ember/routing/router'; import config from 'pilasbloques/config/environment'; + +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 }, '*'); +} + const Router = EmberRouter.extend({ location: config.locationType, - rootURL: config.rootURL + rootURL: config.rootURL, + + didTransition() { + sendRouteToParent(window.location.hash); + this._super(...arguments); + } }); Router.map(function () { diff --git a/app/services/blocks-gallery.js b/app/services/blocks-gallery.js index 0ad791ebd..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"}', }); @@ -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', @@ -411,6 +435,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', @@ -548,6 +578,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', @@ -646,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', @@ -657,6 +703,17 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('EntregarTelescopio', 'giveTelescope', { + icono: 'icono.pelota-pulpo.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "ManicConPelota", + queSoltar: "TelescopioEntregable", + nombreAnimacion: "recoger", + idTransicion: "entregarTelescopio" + }`, + }); + this.crearBloqueAccion('DarSombrero', 'leaveHat', { icono: 'icono.sombrero.png', comportamiento: 'Interactuar', @@ -668,6 +725,28 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('EntregarPelota', 'giveBall', { + icono: 'icono.cargador.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "ChuyConCargador", + queSoltar: "Pulpito", + nombreAnimacion: "recoger", + idTransicion: "entregarPelota" + }`, + }); + + this.crearBloqueAccion('EntregarCargador', 'giveCharger', { + icono: 'icono.yvoty.png', + comportamiento: 'AgregarASeguidores', + argumentos: `{ + etiqueta: "YvotySinEntregable", + queSoltar: "Cargador", + nombreAnimacion: "recoger", + idTransicion: "entregarCargador" + }`, + }); + this.crearBloqueAccion('AtacarConEspada', 'attackWithSword', { id: 'Atacarconespada', icono: 'icono.espada.png', @@ -748,6 +827,40 @@ export default Service.extend({ }`, }); + this.crearBloqueAccion('Colocar', 'putIntoTheTrashBin', { + icono: 'icono.tacho.png', + comportamiento: 'Soltar', + argumentos: `{ + idTransicion: "colocar", + etiqueta: "Tacho", + }`, + }); + + this.crearBloqueAccion('IrseEnYacare', 'goInAlligator', { + icono: 'icono.yacare.png', + comportamiento: 'IrseEnYacare', + argumentos: `{}`, + }); + + 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', @@ -801,6 +914,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', @@ -857,6 +982,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', @@ -875,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', 'lookWithFriends', { + icono: 'icono.todos.observando.png', + comportamiento: 'TodosObservando', + argumentos: '{idTransicion: "observarConAmigos"}', + }); + this.crearBloqueAccion('VolverAlBordeIzquierdo', 'backToLeftBorder', { icono: 'icono.izquierdaTope.png', comportamiento: 'MoverTodoAIzquierda', @@ -951,7 +1100,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 = ` @@ -1049,25 +1198,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', { @@ -1153,6 +1302,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', @@ -1233,6 +1387,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', @@ -1254,6 +1413,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', @@ -1269,6 +1438,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 +1504,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/app/services/experiments.js b/app/services/experiments.js index 56ab83954..c0f5b3d8d 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 () { @@ -27,7 +27,11 @@ export default Service.extend({ }, isNotAffected() { - return !(this.isTreatmentGroup() || this.isControlGroup()) + return this.experimentGroup() === this.possibleGroups[2] + }, + + isOff(){ + return this.experimentGroup() === this.possibleGroups[3] }, isAutoAssignStrategy() { @@ -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/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() { diff --git a/app/services/pilas-bloques-api.js b/app/services/pilas-bloques-api.js index 0aeb14bb2..6679e5f4f 100644 --- a/app/services/pilas-bloques-api.js +++ b/app/services/pilas-bloques-api.js @@ -40,6 +40,12 @@ export default Service.extend({ this._send('PUT', `solutions/${solutionId}`, { staticAnalysis, executionResult }, false).catch(logger('executionFinished')) }, + isCreatorURL(){ + const currentURL = window.location.href + const creatorURLs = ['react-imported-challenge'] + return creatorURLs.some(url => currentURL.includes(url)) + }, + // LOGIN - REGISTER async login(credentials) { return this._send('POST', 'login', credentials) @@ -99,6 +105,8 @@ export default Service.extend({ }, async _send(method, resource, body, critical = true) { + 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}` const flag = `loading.${resource.split('?')[0].replace('/', '-')}` @@ -146,7 +154,7 @@ export default Service.extend({ _alertServerError() { this.paperToaster.show("Problemas con el servidor, intentar más tarde", { duration: 4000, - position: "top" + position: "bottom" }) }, 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/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/challenge-workspace-buttons.hbs b/app/templates/components/challenge-workspace-buttons.hbs index bf99798bf..6793fb805 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/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 @@ {{concat (app-version versionOnly=true) this.groupId}} {{paper-icon "code"}} - + {{app-version shaOnly=true}} \ No newline at end of file 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/app/utils/blocks.js b/app/utils/blocks.js index ba8418429..e23610c92 100644 --- a/app/utils/blocks.js +++ b/app/utils/blocks.js @@ -169,25 +169,51 @@ 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) => { + 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) - block.warning.setVisible(true) + setWarningColour(block, colour, secondaryColour) + block.warning.setVisible(visible) +} + +export function addWarning(block, message, index, visible) { + addWarningToBlock(block, '☆', message, index, 'yellow', 'black', visible) } -export function addWarning(block, message, index) { - addWarningToBlock(block, '☆', message, index, 'yellow') +export function addError(block, message, index, visible) { + addWarningToBlock(block, '★', message, index, 'red', 'white', visible) } -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) { diff --git a/app/utils/staticData/capitulos.js b/app/utils/staticData/capitulos.js index 556b432f4..771021b95 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', 'NuevosComandosCapy', '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', 'ElDetectiveChaparro' , 'FutbolRobots', 'PrendiendoLasCompus', 'ElMonoQueSabeContar'] }, { id: 'Sensores Numéricos', @@ -52,6 +52,6 @@ export const capitulos = [ }, { id: 'capiTemporal', - grupoIds: ['grupoTemporal'] + grupoIds: ['grupoTemporal', 'AlienTocaBoton', 'NuevosComandos'] }, ]; diff --git a/app/utils/staticData/desafios.js b/app/utils/staticData/desafios.js index d5c7a44d2..412be08cb 100644 --- a/app/utils/staticData/desafios.js +++ b/app/utils/staticData/desafios.js @@ -1636,7 +1636,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', @@ -1655,7 +1655,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', @@ -1776,7 +1776,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', @@ -1794,7 +1794,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', @@ -1913,6 +1913,33 @@ export const desafios = [ bloques: [ 'MoverArribaDibujando', 'MoverAbajoDibujando', 'MoverDerechaDibujando', 'MoverIzquierdaDibujando', 'SaltarAbajo', 'SaltarArriba', 'SaltarDerecha', 'SaltarIzquierda', 'Repetir', 'DibujarLado', 'GirarGrados', 'Numero', 'OpAritmetica'] }, + // Nuevos renumerados + { + id: 1001, + nombre: '1001', + escena: `new EscenaCapySolo("[A,-,-,G]")`, + bloques: ['MoverACasillaDerecha', 'SubirPajarito'], + expectations: { + decomposition: false, + simpleRepetition: false + } + }, + { + id: 1046, + nombre: '1046', + 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, @@ -2725,8 +2752,26 @@ export const desafios = [ ` }, { - id: 'nuevo4', - nombre: 'ManicEnElCielo', + id: 1002, + nombre: '1002', + escena: 'ChuyHaciendoJueguito', + bloques: ['Avanzar', 'Retroceder', 'RecogerPulpito', 'RebotarPiePulpito', 'RevolearPulpito', 'Procedimiento'], + expectations: { + simpleRepetition: false + } + }, + { + id: 1003, + nombre: '1003', + escena: 'NoMeCansoDeRebotar', + bloques: ['RebotarUnaVezPingPong', 'Procedimiento', 'Repetir'], + expectations: { + decomposition: false + } + }, + { + id: 1004, + nombre: '1004', escena: `new EscenaManic("\ [E,-,E,-,E],\ [-,-,-,-,E],\ @@ -2735,8 +2780,8 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarEstrella', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo5', - nombre: 'YvotyDespiertaLuciernagas', + id: 1005, + nombre: '1005', escena: `new EscenaYvoty("\ [-,-,-,L,-,-],\ [-,-,L,-,-,L],\ @@ -2747,8 +2792,8 @@ export const desafios = [ bloques: ['DespertarLuciernaga', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo6', - nombre: 'LosTrofeosDeChuy', + id: 1006, + nombre: '1006', escena: `new EscenaChuy("\ [T,-,-,-,-,-],\ [-,T,-,-,-,-],\ @@ -2759,18 +2804,18 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'RecogerTrofeo', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo7', - nombre: 'LaReparadoraDeTelescopios', + id: 1007, + nombre: '1007', escena: `new EscenaManic("\ [-,T,T,T,T],\ [-,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: 'nuevo8', - nombre: 'ManicYLosPlanetas', + id: 1008, + nombre: '1008', escena: `new EscenaManic("\ [P,P,P,P,P,P],\ [P,-,-,-,-,-],\ @@ -2780,8 +2825,8 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'ObservarPlaneta', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo9', - nombre: 'CargandoCelus', + id: 1009, + nombre: '1009', escena: `new EscenaYvoty("\ [C,C,C,C,-],\ [-,-,-,-,K],\ @@ -2790,14 +2835,29 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'CargarCelular', 'AgarrarCargador', 'Procedimiento', 'Repetir'] }, { - id: 'nuevo10', - nombre: 'InstalandoJuegosYvoty', + id: 1010, + nombre: '1010', escena: 'InstalandoJuegosYvoty', bloques: ['PasarASiguienteComputadora', 'PrenderComputadora', 'ApagarComputadora', 'EscribirC', 'EscribirB', 'EscribirA', 'InstalarJuego', 'Repetir', 'Procedimiento'], }, { - id: 'nuevo13', - nombre: 'PateandoAVeces', + id: 1011, + nombre: '1011', + escena: 'EscapeEnYacare', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'AgarrarTelescopio', 'EntregarTelescopio', 'EntregarPelota', 'EntregarCargador', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + expectations: { + decomposition: true, + }, + }, + { + id: 1012, + nombre: '1012', + escena: 'LimpiandoElHumedal', + bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaArriba', 'MoverACasillaAbajo', 'TomarLata', 'TomarPapel', 'Colocar', 'IrseEnYacare', 'Repetir', 'Procedimiento'], + }, + { + id: 1013, + nombre: '1013', escena: `new EscenaChuy("[A,G?]",{},[1,0])`, bloques: ['PatearPelotaChuy', 'MoverACasillaDerecha', 'TocandoPelotaChuy', 'Repetir', 'Procedimiento', 'Si'], expectations: { @@ -2807,9 +2867,9 @@ export const desafios = [ shouldShowMultipleScenarioHelp: true }, { - id: 'nuevo14', - nombre: 'PelotaPaleta', - escena: `new EscenaChuy(["[A,P]", "[A,G]"],{},[1,0])`, + id: 1014, + nombre: '1014', + escena: `new EscenaChuy(["[A,P]", "[A,G]"])`, bloques: ['PatearPelotaChuy', 'RebotarPingPong', 'MoverACasillaDerecha', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoPelotaChuy', 'TocandoPingPong'], expectations: { conditionalAlternative: true, @@ -2818,9 +2878,9 @@ export const desafios = [ shouldShowMultipleScenarioHelp: true }, { - id: 'nuevo15', - nombre: 'LaberintoCortoChuy', - escena: `new EscenaChuy(['[A,-]', '[A],[-]'],{}, [-1,0])`, + id: 1015, + nombre: '1015', + escena: `new EscenaChuy(['[A,+]', '[A],[+]'])`, bloques: ['Procedimiento', 'Repetir', 'Si', 'SiNo', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'TocandoAbajo', 'TocandoDerecha'], expectations: { @@ -2829,14 +2889,14 @@ export const desafios = [ } }, { - id: 'nuevo16', - nombre: 'TresTelescopios', + id: 1016, + nombre: '1016', escena: `new EscenaManic("[A,T?,T?,T?]",{},[3,0])`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'RepararTelescopio', 'Repetir', 'Si', 'SiNo', 'TocandoTelescopio'], }, { - id: 'nuevo17', - nombre: 'YvotyDespiertaMasLuciernagas', + id: 1017, + nombre: '1017', escena: `new EscenaYvoty("\ [A&(*>L?)],\ [*>L?],\ @@ -2849,59 +2909,71 @@ export const desafios = [ bloques: ['DespertarLuciernaga', 'MoverACasillaAbajo', 'Procedimiento', 'Repetir', 'Si', 'SiNo', 'TocandoLuciernaga'] }, { - id: 'nuevo18', - nombre: 'LaberintoLargoChuy', + id: 1018, + nombre: '1018', 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'], }, { - 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],[-]"])`, + id: 1019, + 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', - 'TocandoFinal', 'Repetir', 'Si', 'SiNo', 'Hasta'], + 'TocandoMeta', 'Repetir', 'Si', 'SiNo', 'Hasta'], expectations: { conditionalRepetition: true, } }, { - 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],[-]"], + id: 1020, + 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', 'TocandoFinal', 'TocandoLuciernaga', 'DespertarLuciernaga', + bloques: ['Procedimiento', 'TocandoMeta', 'TocandoLuciernaga', 'DespertarLuciernaga', 'MoverACasillaAbajo', 'Repetir', 'Si', 'SiNo', 'Hasta'], expectations: { conditionalRepetition: true, } }, { - id: 'nuevo21', - nombre: 'LaberintoConPelotas', + id: 1021, + nombre: '1021', 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?,+]' + ],{})`, bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaAbajo', 'PatearPulpito', 'Repetir', 'Si', 'SiNo', 'Hasta', 'PuedeMoverAbajo', - 'PuedeMoverDerecha', 'TocandoFinCamino', 'TocandoPulpito'], + 'PuedeMoverDerecha', 'TocandoMeta', 'TocandoPulpito'], + expectations: { + conditionalRepetition: true, + } + }, + { + id: 1022, + nombre: '1022', + escena: `new EscenaCapySolo("\ + [*,*,*,*,*],\ + ", { coleccion: ["G", "A"] })`, + bloques: ['Repetir', 'Si', 'SiNo', 'Hasta', 'Procedimiento', + 'VolverAlBordeIzquierdo', 'MoverACasillaDerecha', 'TocandoGuyra','SubirPajarito'], expectations: { conditionalRepetition: true, } }, { - id: 'nuevo23', - nombre: 'FutbolAlSur', + id: 1023, + nombre: '1023', escena: 'FutbolAlSur', bloques: ['Procedimiento', 'MoverACasillaDerecha', 'MoverACasillaIzquierda', 'SiguienteFila', 'PatearPelotaChuy', 'TocandoInicio', 'TocandoPelotaChuy', 'Repetir', 'Si', @@ -2911,8 +2983,8 @@ export const desafios = [ } }, { - id: 'nuevo24', - nombre: 'PrendiendoLasCompusYvoty', + id: 1024, + 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,-]', @@ -2932,8 +3004,40 @@ export const desafios = [ } }, { - id: 'nuevo28', - nombre: 'ElPlanetaDeCapyYGuyra', + id: 1025, + nombre: '1025', + escena: 'ContandoPlanetasYEstrellas', + bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', + 'SiguienteColumna', 'ContarPlaneta', 'ContarEstrella', + 'TocandoPlaneta', 'TocandoEstrellaManic', 'Repetir', 'Si', 'SiNo', + 'Hasta', 'EstoySobreElInicioManic', 'EstoySobreElFinalManic'], + expectations: { + conditionalRepetition: true, + } + }, + { + id: 1026, + nombre: '1026', + escena: 'SuperMaraton', + bloques: ['Procedimiento', 'KmsTotales', 'Avanzar1kmChuy', 'RepetirVacio', + 'Repetir', 'Si', 'SiNo', 'Hasta'], + expectations: { + decomposition: false + } + }, + { + id: 1027, + nombre: '1027', + escena: 'ContandoDeNuevoManic', + bloques: ['Procedimiento', 'MoverACasillaArriba', 'MoverACasillaAbajo', + 'SiguienteColumna', + 'ContarPlaneta', 'ContarEstrella', 'TocandoPlaneta', + 'TocandoEstrellaManic', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', + 'EstoySobreElInicioManic', 'LargoColumnaActual'] + }, + { + id: 1028, + nombre: '1028', escena: `new EscenaCapy("\ [-,L,L,-,-],\ [-,L,L,L,L],\ @@ -2948,47 +3052,112 @@ export const desafios = [ } }, { - id: 'nuevo38', - nombre: 'LasEstrellasDeManic', + id: 1029, + nombre: '1029', + escena: 'DibujandoCuadradoManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero'] + }, + { + id: 1030, + nombre: '1030', + escena: 'Dibujando5CuadradosHorizontalManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1031, + nombre: '1031', + escena: 'Dibujando5CuadradosDiagonalManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1032, + nombre: '1032', + escena: 'Dibujando4CuadradosInterioresManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1033, + nombre: '1033', + escena: 'DibujandoCabezaElefanteManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'SaltarHaciaAdelante'] + }, + { + id: 1034, + nombre: '1034', + escena: 'DibujandoHexagonoManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1035, + nombre: '1035', + escena: 'DibujandoTrianguloEquilateroManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1036, + nombre: '1036', + escena: 'DibujandoPoligonosInterioresManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1037, + nombre: '1037', + escena: 'DibujandoCuevaEstalagtitasManic', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'DibujarLado', + 'GirarGrados', 'Numero', 'OpAritmetica', 'SaltarHaciaAdelante'] + }, + { + id: 1038, + nombre: '1038', escena: `new EscenaManic([ - '[A,O,O,O,O],[-,O,-,-,-],[-,O,O,O,-],[E,-,-,-,-]', - '[A,O,O,O,O],[-,-,-,-,-],[O,O,O,O,-],[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', + id: 1039, + nombre: '1039', 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,_,_,_,_,_],[-,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 } }, { - id: 'nuevo40', - nombre: 'HileraDeLatas', + id: 1040, + nombre: '1040', 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', + id: 1041, + nombre: '1041', 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, @@ -2996,15 +3165,15 @@ export const desafios = [ } }, { - id: 'nuevo42', - nombre: 'AVecesLatasAVecesPapeles', + id: 1042, + nombre: '1042', 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, @@ -3012,17 +3181,17 @@ export const desafios = [ } }, { - id: 'nuevo43', - nombre: 'ElPasilloCurvoDeCelus', + id: 1043, + nombre: '1043', 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, @@ -3030,21 +3199,21 @@ export const desafios = [ } }, { - id: 'nuevo44', - nombre: 'ElFestinAstronomico', + id: 1044, + nombre: '1044', 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'] }, { - id: 'nuevo45', - nombre: 'ObservadoraDeMariposas', + id: 1045, + nombre: '1045', escena: `new EscenaYvoty("\ [-,*a>M?,*a>M?,*a>M?,*a>M?],\ [-,*b>M?,*b>M?,*b>M?,*b>M?],\ @@ -3064,24 +3233,21 @@ export const desafios = [ bloques: ['MoverACasillaDerecha', 'MoverACasillaArriba', 'VolverABordeIzquierdo', 'FotografiarMariposa', 'TocandoMariposa', 'Procedimiento', 'Repetir', 'Si', 'SiNo'] }, { - id: 'nuevo46', - nombre: 'NuevosComandosCapy', - escena: `new EscenaCapy("\ - [A,-,L],\ - [-,O,L],\ - [-,O,O],\ - [-,-,L],\ - [L,O,L],\")`, - bloques: ['MoverACasillaDerecha', 'MoverACasillaIzquierda', 'MoverACasillaAbajo', 'MoverACasillaArriba', 'RecogerLata', 'Procedimiento'], - expectations: { - simpleRepetition: false, - decomposition: false, - decomposition9: true - } + id: 1130, + nombre: '1130', + escena: 'BuscandoLasEstrellas', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'Numero', + 'OpAritmetica', 'MoverTelescopio', 'SiguienteTelescopio', 'ObservarConAmigos'], + }, + { + id: 1131, + nombre: '1131', + escena: 'ReciclandoPapeles', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', 'MoverACasillaDerecha', 'TomarPapel', 'Colocar', 'SiguienteFilaTotal', 'Numero', 'OpAritmetica'], }, { - id: 'nuevo132', - nombre: 'PrendiendoLasCompusParametrizadoYvoty', + id: 1132, + 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,-]', @@ -3099,14 +3265,14 @@ export const desafios = [ 'OpAritmetica'], }, { - id: 'nuevo133', - nombre: 'MariposasEncuadradas', + id: 1133, + nombre: '1133', 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"] })`, @@ -3115,17 +3281,40 @@ export const desafios = [ 'TocandoMariposa', 'FotografiarMariposa', 'Numero', 'OpAritmetica'], }, { - id: 'nuevo134', - nombre: 'InfinitosTrofeos', + id: 1134, + nombre: '1134', 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', 'RecogerTrofeo', 'Numero', 'OpAritmetica'] }, + { + id: 1135, + nombre: '1135', + escena: 'PaleteandoConParametros', + bloques: ['Procedimiento', 'RepetirVacio', 'Repetir', 'Si', 'SiNo', 'Hasta', + 'TocandoPingPong', 'RebotarPingPong', + 'MoverACasillaAbajo', 'MoverACasillaArriba', 'MoverACasillaIzquierda', 'MoverACasillaDerecha', + 'Numero', 'OpComparacion', 'OpAritmetica', + 'ParaLaDerecha', 'ParaLaIzquierda', 'ParaArriba', 'ParaAbajo' + ] + }, + { + id: 1136, + nombre: '1136', + 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 97a7caea8..2c5502821 100644 --- a/app/utils/staticData/grupos.js +++ b/app/utils/staticData/grupos.js @@ -241,6 +241,14 @@ export const grupos = [ id: 'manual1cPrimariaOtros', desafioIds: [255] }, + { + id: 'CapyYGuyra', + desafioIds: [1001] + }, + { + id: 'NuevosComandosCapy', + desafioIds: [1046] + }, { id: 'tecnopolis2021EjercicioModelo', desafioIds: [202101, 202102] @@ -264,37 +272,56 @@ export const grupos = [ { id: 'grupoTemporal', desafioIds: [ - 'nuevo46', - 'nuevo4', - 'nuevo5', - 'nuevo6', - 'nuevo7', - 'nuevo8', - 'nuevo9', - 'nuevo10', - 'nuevo13', - 'nuevo14', - 'nuevo38', - 'nuevo39', - 'nuevo40', - 'nuevo41', - 'nuevo15', - 'nuevo18', - 'nuevo16', - 'nuevo17', - 'nuevo42', - 'nuevo43', - 'nuevo44', - 'nuevo45', - 'nuevo19', - 'nuevo20', - 'nuevo21', - 'nuevo23', - 'nuevo24', - 'nuevo28', - '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, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136 ] } ]; 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/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/package-lock.json b/package-lock.json index 06ed6883f..e036fdd74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,48 @@ { "name": "pilasbloques", - "version": "1.14.5", + "version": "1.17.5", "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", @@ -294,6 +333,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", @@ -358,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", @@ -559,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", @@ -639,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", @@ -647,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", @@ -673,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", @@ -721,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", @@ -730,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", @@ -747,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", @@ -755,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", @@ -821,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", @@ -838,6 +1645,112 @@ } } }, + "@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/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", @@ -847,6 +1760,75 @@ "@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", @@ -855,6 +1837,356 @@ "@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", @@ -958,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", @@ -967,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", @@ -1076,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", @@ -1104,20 +2664,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": { @@ -5853,29 +7514,950 @@ "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.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.15.0.tgz", + "integrity": "sha512-gXh46ZafqYb6AJVoCCaQwYRsqFIwAat/PVCaJgEDKnOgOP/BTyIXwAld0gLZlIgSKkqOccBih83bXMShflKkLg==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@babel/core": "^7.24.0", + "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", - "ember-cli-babel": "^7.26.6", + "babel-import-util": "^2.0.0", + "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": { - "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.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": "^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 +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", @@ -5893,18 +8789,73 @@ "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": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "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" } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, "graceful-fs": { @@ -5914,14 +8865,31 @@ "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.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": { + "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", @@ -5933,54 +8901,196 @@ } }, "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.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "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.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -5994,19 +9104,150 @@ "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.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" + }, + "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.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": { + "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 } } @@ -7975,7 +11216,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", @@ -7985,14 +11225,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", @@ -8007,14 +11245,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" @@ -10941,6 +14177,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", @@ -13525,25 +16778,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", @@ -15722,20 +18980,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.25", + "resolved": "https://registry.npmjs.org/electron/-/electron-22.3.25.tgz", + "integrity": "sha512-AjrP7bebMs/IPsgmyowptbA7jycTkrJC7jLZTb5JoH30PkBC6pZx/7XQ0aDok82SsmSiF4UJDOg+HoLrEBiqmg==", "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.57", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", + "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", + "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 } } @@ -15845,8 +19309,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", @@ -16352,15 +19817,15 @@ } }, "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": { - "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.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", @@ -16441,9 +19906,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", @@ -16555,9 +20020,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" @@ -16888,29 +20353,950 @@ "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.12.3", - "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.12.3.tgz", - "integrity": "sha512-ZdgDo7ckNbZ0DxMgEmcX70PUNPqodKSkgifDoX3Ysf5P5LkpST/PV1E49GZTxv9p17+XwQ8j0JSf5yd7KY1f/w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.15.0.tgz", + "integrity": "sha512-gXh46ZafqYb6AJVoCCaQwYRsqFIwAat/PVCaJgEDKnOgOP/BTyIXwAld0gLZlIgSKkqOccBih83bXMShflKkLg==", "dev": true, "requires": { - "@embroider/shared-internals": "2.2.3", + "@babel/core": "^7.24.0", + "@embroider/shared-internals": "2.5.2", "assert-never": "^1.2.1", - "babel-import-util": "^1.1.0", - "ember-cli-babel": "^7.26.6", + "babel-import-util": "^2.0.0", + "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": { - "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.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": "^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", @@ -16952,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", @@ -16967,22 +21363,20 @@ "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-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.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", "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": { @@ -16998,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", @@ -17040,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", @@ -17058,10 +21636,16 @@ } } }, + "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.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", @@ -17113,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", @@ -17121,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": { @@ -17149,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": { @@ -17169,12 +21791,12 @@ "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.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": { @@ -17188,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", @@ -17199,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": { @@ -17224,48 +21867,156 @@ "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.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "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.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -17286,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": { @@ -17295,12 +22081,29 @@ "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" + }, + "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": { @@ -17316,10 +22119,16 @@ "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.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": { @@ -17332,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 } } }, @@ -18922,21 +23764,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.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.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "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.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19197,12 +24039,12 @@ "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.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": { @@ -19266,12 +24108,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -19283,9 +24125,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" @@ -19307,9 +24149,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": { @@ -19807,12 +24649,12 @@ "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.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": { @@ -19881,12 +24723,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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,12 +24928,12 @@ "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.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": { @@ -20151,12 +24993,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -20683,15 +25525,15 @@ } }, "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": { - "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.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", @@ -20772,9 +25614,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", @@ -20886,9 +25728,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" @@ -21362,12 +26204,12 @@ } }, "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.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": { @@ -21390,12 +26232,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -21626,15 +26468,15 @@ } }, "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": { - "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.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", @@ -21715,9 +26557,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", @@ -21829,9 +26671,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" @@ -22241,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", @@ -22318,12 +27160,12 @@ "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.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": { @@ -22387,12 +27229,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -22404,9 +27246,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" @@ -22428,9 +27270,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": { @@ -22478,21 +27320,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.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.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "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.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -22748,265 +27590,265 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "merge-trees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-trees/-/merge-trees-1.0.1.tgz", - "integrity": "sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==", - "dev": true, - "requires": { - "can-symlink": "^1.0.0", - "fs-tree-diff": "^0.5.4", - "heimdalljs": "^0.2.1", - "heimdalljs-logger": "^0.1.7", - "rimraf": "^2.4.3", - "symlink-or-copy": "^1.0.0" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "workerpool": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-2.3.4.tgz", - "integrity": "sha512-c2EWrgB9IKHi1jbf4LG9sxKgHYOY+Ej5li6siEGtFecCXWG7eQOqATPEJ0rg1KFETXROEkErc1t5XiNrLG666Q==", - "dev": true, - "requires": { - "object-assign": "4.1.1" - } - } - } - }, - "ember-page-title": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ember-page-title/-/ember-page-title-6.2.2.tgz", - "integrity": "sha512-YTXA+cylZrh9zO0zwjlaAGReT2MVOxAMnVO1OOygFrs1JBs4D6CKV3tImoilg3AvIXFBeJfFNNUbJOdRd9IGGg==", - "dev": true, - "requires": { - "ember-cli-babel": "^7.23.1" - } - }, - "ember-paper": { - "version": "git+https://github.com/Program-AR/ember-paper.git#37603c2bcd992e8f27692d3fd44953d3f098acdd", - "from": "git+https://github.com/Program-AR/ember-paper.git", - "dev": true, - "requires": { - "@html-next/vertical-collection": "^2.1.0", - "angular-material-styles": "1.1.21", - "broccoli-file-creator": "^2.1.1", - "broccoli-funnel": "^3.0.8", - "broccoli-merge-trees": "^4.2.0", - "broccoli-persistent-filter": "^3.1.2", - "classlist-polyfill": "^1.2.0", - "element-closest": "^3.0.2", - "ember-auto-import": "^1.12.0", - "ember-basic-dropdown": "^4.0.0", - "ember-cli-babel": "^7.26.6", - "ember-cli-htmlbars": "^5.7.1", - "ember-cli-polyfill-importer": "^0.0.4", - "ember-cli-sass": "^10.0.1", - "ember-composability-tools": "^0.0.12", - "ember-css-transitions": "^2.1.1", - "ember-decorators": "^6.1.1", - "ember-get-config": "^0.5.0", - "ember-maybe-in-element": "^2.0.3", - "ember-power-select": "^5.0.0", - "fastboot-transform": "^0.1.3", - "hammerjs": "^2.0.8", - "matchmedia-polyfill": "^0.3.2", - "polyfill-nodelist-foreach": "^1.1.2", - "propagating-hammerjs": "^2.0.1", - "resolve": "^1.13.1", - "sass": "^1.23.7", - "tinycolor2": "^1.4.1" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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" - }, - "dependencies": { - "promise-map-series": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.2.3.tgz", - "integrity": "sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==", - "dev": true, - "requires": { - "rsvp": "^3.0.14" - } - }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true - } - } - }, - "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" - } - }, - "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" - } - }, - "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": "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" } }, + "merge-trees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-trees/-/merge-trees-1.0.1.tgz", + "integrity": "sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==", + "dev": true, + "requires": { + "can-symlink": "^1.0.0", + "fs-tree-diff": "^0.5.4", + "heimdalljs": "^0.2.1", + "heimdalljs-logger": "^0.1.7", + "rimraf": "^2.4.3", + "symlink-or-copy": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "workerpool": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-2.3.4.tgz", + "integrity": "sha512-c2EWrgB9IKHi1jbf4LG9sxKgHYOY+Ej5li6siEGtFecCXWG7eQOqATPEJ0rg1KFETXROEkErc1t5XiNrLG666Q==", + "dev": true, + "requires": { + "object-assign": "4.1.1" + } + } + } + }, + "ember-page-title": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ember-page-title/-/ember-page-title-6.2.2.tgz", + "integrity": "sha512-YTXA+cylZrh9zO0zwjlaAGReT2MVOxAMnVO1OOygFrs1JBs4D6CKV3tImoilg3AvIXFBeJfFNNUbJOdRd9IGGg==", + "dev": true, + "requires": { + "ember-cli-babel": "^7.23.1" + } + }, + "ember-paper": { + "version": "git+https://github.com/Program-AR/ember-paper.git#37603c2bcd992e8f27692d3fd44953d3f098acdd", + "from": "git+https://github.com/Program-AR/ember-paper.git", + "dev": true, + "requires": { + "@html-next/vertical-collection": "^2.1.0", + "angular-material-styles": "1.1.21", + "broccoli-file-creator": "^2.1.1", + "broccoli-funnel": "^3.0.8", + "broccoli-merge-trees": "^4.2.0", + "broccoli-persistent-filter": "^3.1.2", + "classlist-polyfill": "^1.2.0", + "element-closest": "^3.0.2", + "ember-auto-import": "^1.12.0", + "ember-basic-dropdown": "^4.0.0", + "ember-cli-babel": "^7.26.6", + "ember-cli-htmlbars": "^5.7.1", + "ember-cli-polyfill-importer": "^0.0.4", + "ember-cli-sass": "^10.0.1", + "ember-composability-tools": "^0.0.12", + "ember-css-transitions": "^2.1.1", + "ember-decorators": "^6.1.1", + "ember-get-config": "^0.5.0", + "ember-maybe-in-element": "^2.0.3", + "ember-power-select": "^5.0.0", + "fastboot-transform": "^0.1.3", + "hammerjs": "^2.0.8", + "matchmedia-polyfill": "^0.3.2", + "polyfill-nodelist-foreach": "^1.1.2", + "propagating-hammerjs": "^2.0.1", + "resolve": "^1.13.1", + "sass": "^1.23.7", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + }, + "dependencies": { + "promise-map-series": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.2.3.tgz", + "integrity": "sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==", + "dev": true, + "requires": { + "rsvp": "^3.0.14" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + } + } + }, + "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" + } + }, + "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" + } + }, + "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": "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" + }, + "dependencies": { + "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" + } + } + } + }, + "is-core-module": { + "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": { + "hasown": "^2.0.0" + } + }, "istextorbinary": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", @@ -23035,12 +27877,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -23437,15 +28279,15 @@ } }, "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": { - "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.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", @@ -23526,9 +28368,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", @@ -23640,9 +28482,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" @@ -24645,13 +29487,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": { @@ -24828,6 +29678,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", @@ -25751,12 +30635,12 @@ "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.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": { @@ -25798,12 +30682,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.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "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" } @@ -26359,9 +31243,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.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true }, "for-each": { @@ -27891,6 +32775,23 @@ "pinkie-promise": "^2.0.0" } }, + "hasown": { + "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" + }, + "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", @@ -28531,9 +33432,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": { @@ -32160,9 +37061,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 } } @@ -32823,9 +37724,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.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" } @@ -37880,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", @@ -38337,6 +43248,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 5eb280ffa..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.14.5", + "version": "1.17.5", "homepage": "http://pilasbloques.program.ar", "author": { "name": "Program.AR", @@ -26,7 +26,9 @@ "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)", + "Rocío González (https://github.com/rgonzalezt)" ], "private": true, "directories": { @@ -42,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;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", @@ -65,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.3.1", + "pilas-bloques-exercises": "1.4.30", "pilasweb": "^0.5.0", "proceds-blockly": "^1.1.0", "ramda": "^0.28.0", @@ -85,7 +87,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.25", "electron-packager": "15.1.0", "electron-rebuild": "2.0.0", "ember-ajax": "^5.0.0", @@ -138,7 +140,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": { diff --git a/public/iconos/icono.casillafinmanic.png b/public/iconos/icono.casillafinmanic.png new file mode 100644 index 000000000..cc0c4d231 Binary files /dev/null and b/public/iconos/icono.casillafinmanic.png differ diff --git a/public/iconos/icono.casillainiciomanic.png b/public/iconos/icono.casillainiciomanic.png new file mode 100644 index 000000000..34cb12d29 Binary files /dev/null and b/public/iconos/icono.casillainiciomanic.png differ diff --git a/public/iconos/icono.guyra.png b/public/iconos/icono.guyra.png new file mode 100644 index 000000000..88eaa6f87 Binary files /dev/null and b/public/iconos/icono.guyra.png differ diff --git a/public/iconos/icono.marcadorBlanco.png b/public/iconos/icono.marcadorBlanco.png new file mode 100644 index 000000000..8593bb159 Binary files /dev/null and b/public/iconos/icono.marcadorBlanco.png differ diff --git a/public/iconos/icono.todos.observando.png b/public/iconos/icono.todos.observando.png new file mode 100644 index 000000000..b0b38af91 Binary files /dev/null and b/public/iconos/icono.todos.observando.png differ diff --git a/public/iconos/icono.yacare.png b/public/iconos/icono.yacare.png new file mode 100644 index 000000000..c4de2515d Binary files /dev/null and b/public/iconos/icono.yacare.png differ diff --git a/public/iconos/icono.yvoty.png b/public/iconos/icono.yvoty.png new file mode 100644 index 000000000..98e35079c Binary files /dev/null and b/public/iconos/icono.yvoty.png differ diff --git a/public/imagenes/avatars/avatar-13.png b/public/imagenes/avatars/avatar-13.png index d5b4a4faa..fb7c81da9 100644 Binary files a/public/imagenes/avatars/avatar-13.png and b/public/imagenes/avatars/avatar-13.png differ diff --git a/public/imagenes/avatars/avatar-14.png b/public/imagenes/avatars/avatar-14.png index cc1b4396b..59f51820f 100644 Binary files a/public/imagenes/avatars/avatar-14.png and b/public/imagenes/avatars/avatar-14.png differ diff --git a/public/imagenes/avatars/avatar-15.png b/public/imagenes/avatars/avatar-15.png index 60134e0c7..528c570f9 100644 Binary files a/public/imagenes/avatars/avatar-15.png and b/public/imagenes/avatars/avatar-15.png differ diff --git a/public/imagenes/avatars/avatar-16.png b/public/imagenes/avatars/avatar-16.png index bfe11fc1c..0f326000a 100644 Binary files a/public/imagenes/avatars/avatar-16.png and b/public/imagenes/avatars/avatar-16.png differ diff --git a/public/imagenes/desafios/1001.png b/public/imagenes/desafios/1001.png new file mode 100644 index 000000000..15e21e9c2 Binary files /dev/null and b/public/imagenes/desafios/1001.png differ diff --git a/public/imagenes/desafios/1002.png b/public/imagenes/desafios/1002.png new file mode 100644 index 000000000..58a826044 Binary files /dev/null and b/public/imagenes/desafios/1002.png differ diff --git a/public/imagenes/desafios/1003.png b/public/imagenes/desafios/1003.png new file mode 100644 index 000000000..c5b340345 Binary files /dev/null and b/public/imagenes/desafios/1003.png differ diff --git a/public/imagenes/desafios/1004.png b/public/imagenes/desafios/1004.png new file mode 100644 index 000000000..121013cd5 Binary files /dev/null and b/public/imagenes/desafios/1004.png differ diff --git a/public/imagenes/desafios/1005.png b/public/imagenes/desafios/1005.png new file mode 100644 index 000000000..d8f4ff1c5 Binary files /dev/null and b/public/imagenes/desafios/1005.png differ diff --git a/public/imagenes/desafios/1006.png b/public/imagenes/desafios/1006.png new file mode 100644 index 000000000..11ad9af02 Binary files /dev/null and b/public/imagenes/desafios/1006.png differ diff --git a/public/imagenes/desafios/1007.png b/public/imagenes/desafios/1007.png new file mode 100644 index 000000000..a89837ed7 Binary files /dev/null and b/public/imagenes/desafios/1007.png differ diff --git a/public/imagenes/desafios/1008.png b/public/imagenes/desafios/1008.png new file mode 100644 index 000000000..cb53b423d Binary files /dev/null and b/public/imagenes/desafios/1008.png differ diff --git a/public/imagenes/desafios/1009.png b/public/imagenes/desafios/1009.png new file mode 100644 index 000000000..b8a63e8f7 Binary files /dev/null and b/public/imagenes/desafios/1009.png differ diff --git a/public/imagenes/desafios/1010.png b/public/imagenes/desafios/1010.png new file mode 100644 index 000000000..1c288f1af Binary files /dev/null and b/public/imagenes/desafios/1010.png differ diff --git a/public/imagenes/desafios/1011.png b/public/imagenes/desafios/1011.png new file mode 100644 index 000000000..7131535fe Binary files /dev/null and b/public/imagenes/desafios/1011.png differ diff --git a/public/imagenes/desafios/1012.png b/public/imagenes/desafios/1012.png new file mode 100644 index 000000000..ed9a86f76 Binary files /dev/null and b/public/imagenes/desafios/1012.png differ diff --git a/public/imagenes/desafios/1013.png b/public/imagenes/desafios/1013.png new file mode 100644 index 000000000..0bc1d016d Binary files /dev/null and b/public/imagenes/desafios/1013.png differ diff --git a/public/imagenes/desafios/1014.png b/public/imagenes/desafios/1014.png new file mode 100644 index 000000000..99e6bb573 Binary files /dev/null and b/public/imagenes/desafios/1014.png differ diff --git a/public/imagenes/desafios/1015.png b/public/imagenes/desafios/1015.png new file mode 100644 index 000000000..f08f8cd96 Binary files /dev/null and b/public/imagenes/desafios/1015.png differ diff --git a/public/imagenes/desafios/1016.png b/public/imagenes/desafios/1016.png new file mode 100644 index 000000000..189ff7f6e Binary files /dev/null and b/public/imagenes/desafios/1016.png differ diff --git a/public/imagenes/desafios/1017.png b/public/imagenes/desafios/1017.png new file mode 100644 index 000000000..3cb1c9a69 Binary files /dev/null and b/public/imagenes/desafios/1017.png differ diff --git a/public/imagenes/desafios/1018.png b/public/imagenes/desafios/1018.png new file mode 100644 index 000000000..49f0d4e51 Binary files /dev/null and b/public/imagenes/desafios/1018.png differ diff --git a/public/imagenes/desafios/1019.png b/public/imagenes/desafios/1019.png new file mode 100644 index 000000000..851a01a3e Binary files /dev/null and b/public/imagenes/desafios/1019.png differ diff --git a/public/imagenes/desafios/1020.png b/public/imagenes/desafios/1020.png new file mode 100644 index 000000000..b27108679 Binary files /dev/null and b/public/imagenes/desafios/1020.png differ diff --git a/public/imagenes/desafios/1021.png b/public/imagenes/desafios/1021.png new file mode 100644 index 000000000..f03c97cfd Binary files /dev/null and b/public/imagenes/desafios/1021.png differ diff --git a/public/imagenes/desafios/1022.png b/public/imagenes/desafios/1022.png new file mode 100644 index 000000000..aa7859159 Binary files /dev/null and b/public/imagenes/desafios/1022.png differ diff --git a/public/imagenes/desafios/1023.png b/public/imagenes/desafios/1023.png new file mode 100644 index 000000000..3f4937181 Binary files /dev/null and b/public/imagenes/desafios/1023.png differ diff --git a/public/imagenes/desafios/1024.png b/public/imagenes/desafios/1024.png new file mode 100644 index 000000000..8a5f5fd2f Binary files /dev/null and b/public/imagenes/desafios/1024.png differ diff --git a/public/imagenes/desafios/1025.png b/public/imagenes/desafios/1025.png new file mode 100644 index 000000000..db38df4be Binary files /dev/null and b/public/imagenes/desafios/1025.png differ diff --git a/public/imagenes/desafios/1026.png b/public/imagenes/desafios/1026.png new file mode 100644 index 000000000..13fe857f0 Binary files /dev/null and b/public/imagenes/desafios/1026.png differ diff --git a/public/imagenes/desafios/1027.png b/public/imagenes/desafios/1027.png new file mode 100644 index 000000000..077a98b23 Binary files /dev/null and b/public/imagenes/desafios/1027.png differ diff --git a/public/imagenes/desafios/1028.png b/public/imagenes/desafios/1028.png new file mode 100644 index 000000000..83fbf4d3d Binary files /dev/null and b/public/imagenes/desafios/1028.png differ diff --git a/public/imagenes/desafios/1029.png b/public/imagenes/desafios/1029.png new file mode 100644 index 000000000..79043d731 Binary files /dev/null and b/public/imagenes/desafios/1029.png differ diff --git a/public/imagenes/desafios/1030.png b/public/imagenes/desafios/1030.png new file mode 100644 index 000000000..ccfbe4a2e Binary files /dev/null and b/public/imagenes/desafios/1030.png differ diff --git a/public/imagenes/desafios/1031.png b/public/imagenes/desafios/1031.png new file mode 100644 index 000000000..15744e757 Binary files /dev/null and b/public/imagenes/desafios/1031.png differ diff --git a/public/imagenes/desafios/1032.png b/public/imagenes/desafios/1032.png new file mode 100644 index 000000000..ffb5dc18c Binary files /dev/null and b/public/imagenes/desafios/1032.png differ diff --git a/public/imagenes/desafios/1033.png b/public/imagenes/desafios/1033.png new file mode 100644 index 000000000..cba8bc37d Binary files /dev/null and b/public/imagenes/desafios/1033.png differ diff --git a/public/imagenes/desafios/1034.png b/public/imagenes/desafios/1034.png new file mode 100644 index 000000000..7b9a9e120 Binary files /dev/null and b/public/imagenes/desafios/1034.png differ diff --git a/public/imagenes/desafios/1035.png b/public/imagenes/desafios/1035.png new file mode 100644 index 000000000..9f4cb7a25 Binary files /dev/null and b/public/imagenes/desafios/1035.png differ diff --git a/public/imagenes/desafios/1036.png b/public/imagenes/desafios/1036.png new file mode 100644 index 000000000..9daa2037a Binary files /dev/null and b/public/imagenes/desafios/1036.png differ diff --git a/public/imagenes/desafios/1037.png b/public/imagenes/desafios/1037.png new file mode 100644 index 000000000..bd386b2b5 Binary files /dev/null and b/public/imagenes/desafios/1037.png differ diff --git a/public/imagenes/desafios/1038.png b/public/imagenes/desafios/1038.png new file mode 100644 index 000000000..f6c774b8c Binary files /dev/null and b/public/imagenes/desafios/1038.png differ diff --git a/public/imagenes/desafios/1039.png b/public/imagenes/desafios/1039.png new file mode 100644 index 000000000..774a5461a Binary files /dev/null and b/public/imagenes/desafios/1039.png differ diff --git a/public/imagenes/desafios/1040.png b/public/imagenes/desafios/1040.png new file mode 100644 index 000000000..ee7b74e06 Binary files /dev/null and b/public/imagenes/desafios/1040.png differ diff --git a/public/imagenes/desafios/1041.png b/public/imagenes/desafios/1041.png new file mode 100644 index 000000000..9e48b7cd7 Binary files /dev/null and b/public/imagenes/desafios/1041.png differ diff --git a/public/imagenes/desafios/1042.png b/public/imagenes/desafios/1042.png new file mode 100644 index 000000000..b400fac9f Binary files /dev/null and b/public/imagenes/desafios/1042.png differ diff --git a/public/imagenes/desafios/1043.png b/public/imagenes/desafios/1043.png new file mode 100644 index 000000000..31069eec6 Binary files /dev/null and b/public/imagenes/desafios/1043.png differ diff --git a/public/imagenes/desafios/1044.png b/public/imagenes/desafios/1044.png new file mode 100644 index 000000000..8f7b3fc4a Binary files /dev/null and b/public/imagenes/desafios/1044.png differ diff --git a/public/imagenes/desafios/1045.png b/public/imagenes/desafios/1045.png new file mode 100644 index 000000000..bfd4c1ca5 Binary files /dev/null and b/public/imagenes/desafios/1045.png differ diff --git a/public/imagenes/desafios/1046.png b/public/imagenes/desafios/1046.png new file mode 100644 index 000000000..413aa4a9f Binary files /dev/null and b/public/imagenes/desafios/1046.png differ diff --git a/public/imagenes/desafios/1130.png b/public/imagenes/desafios/1130.png new file mode 100644 index 000000000..a981da6d0 Binary files /dev/null and b/public/imagenes/desafios/1130.png differ diff --git a/public/imagenes/desafios/1131.png b/public/imagenes/desafios/1131.png new file mode 100644 index 000000000..b630eb800 Binary files /dev/null and b/public/imagenes/desafios/1131.png differ diff --git a/public/imagenes/desafios/1132.png b/public/imagenes/desafios/1132.png new file mode 100644 index 000000000..fc34f113f Binary files /dev/null and b/public/imagenes/desafios/1132.png differ diff --git a/public/imagenes/desafios/1133.png b/public/imagenes/desafios/1133.png new file mode 100644 index 000000000..eb1795c26 Binary files /dev/null and b/public/imagenes/desafios/1133.png differ diff --git a/public/imagenes/desafios/1134.png b/public/imagenes/desafios/1134.png new file mode 100644 index 000000000..a2434c4e1 Binary files /dev/null and b/public/imagenes/desafios/1134.png differ diff --git a/public/imagenes/desafios/1135.png b/public/imagenes/desafios/1135.png new file mode 100644 index 000000000..b5f6c1722 Binary files /dev/null and b/public/imagenes/desafios/1135.png differ diff --git a/public/imagenes/desafios/1136.png b/public/imagenes/desafios/1136.png new file mode 100644 index 000000000..13642c26f Binary files /dev/null and b/public/imagenes/desafios/1136.png differ diff --git a/public/imagenes/desafios/CapyBuscaAGuyra.png b/public/imagenes/desafios/CapyBuscaAGuyra.png new file mode 100644 index 000000000..579c0846e Binary files /dev/null and b/public/imagenes/desafios/CapyBuscaAGuyra.png differ diff --git a/public/imagenes/desafios/CapyYGuyra.png b/public/imagenes/desafios/CapyYGuyra.png new file mode 100644 index 000000000..579c0846e Binary files /dev/null and b/public/imagenes/desafios/CapyYGuyra.png differ diff --git a/public/imagenes/desafios/NuevosComandosCapy.png b/public/imagenes/desafios/NuevosComandosCapy.png new file mode 100644 index 000000000..1f4fbdf4e Binary files /dev/null and b/public/imagenes/desafios/NuevosComandosCapy.png differ diff --git a/public/pilas.html b/public/pilas.html index b8d8631b4..0f5eddf68 100644 --- a/public/pilas.html +++ b/public/pilas.html @@ -22,7 +22,7 @@ - + diff --git a/tests/acceptance/challenge-content-test.js b/tests/acceptance/challenge-content-test.js index 0decc9c57..d337ed405 100644 --- a/tests/acceptance/challenge-content-test.js +++ b/tests/acceptance/challenge-content-test.js @@ -29,10 +29,10 @@ 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.') + 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.') // 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/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/integration/desafios/BuscandoLasEstrellas-test.js b/tests/integration/desafios/BuscandoLasEstrellas-test.js new file mode 100644 index 000000000..f7b5c83d4 --- /dev/null +++ b/tests/integration/desafios/BuscandoLasEstrellas-test.js @@ -0,0 +1,87 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "1130"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + 5 + + + + + + + + + + + + 7 + + + + + + + + + + + + 9 + + + + + + + + + + + + + + + + + + + + + Mover telescopio veces + + + + + veces + + + + + + + + + ` + }); + + + + 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 diff --git a/tests/integration/desafios/ChuyHaciendoJueguito-test.js b/tests/integration/desafios/ChuyHaciendoJueguito-test.js new file mode 100644 index 000000000..7675cf660 --- /dev/null +++ b/tests/integration/desafios/ChuyHaciendoJueguito-test.js @@ -0,0 +1,22 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "1002"; + +moduloActividad(nombre, () =>{ + + actividadTest(nombre, { + solucion: `CalentarHacerJueguito` + }); + + actividadTest(nombre, { + descripcionAdicional: 'Invirtiendo acciones sigue funcionando la solución', + 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 diff --git a/tests/integration/desafios/ContandoDeNuevoManic-test.js b/tests/integration/desafios/ContandoDeNuevoManic-test.js new file mode 100644 index 000000000..806c79839 --- /dev/null +++ b/tests/integration/desafios/ContandoDeNuevoManic-test.js @@ -0,0 +1,110 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "1027"; + +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 new file mode 100644 index 000000000..34374e8ad --- /dev/null +++ b/tests/integration/desafios/ContandoPlanetasYEstrellas-test.js @@ -0,0 +1,110 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = '1025'; + +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/tests/integration/desafios/DibujandoManic-test.js b/tests/integration/desafios/DibujandoManic-test.js new file mode 100644 index 000000000..fb7f305b1 --- /dev/null +++ b/tests/integration/desafios/DibujandoManic-test.js @@ -0,0 +1,467 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +moduloActividad('1029', () => { + + actividadTest('1029', { + solucion: ` + + + + + + + + + + Dibujar cuadrado de 100 + + + + + 4 + + + + + + + 100 + + + + + + + 90 + + + + + + + + + + ` + }); + +}); + +moduloActividad('1030', () => { + + actividadTest('1030', { + solucion: ` + + + + + + 5 + + + + + + + + + + 50 + + + + + + + + + + + + Dibujar cuadrado de 50 + + + + + 4 + + + + + + + 50 + + + + + + + 90 + + + + + + + + + + ` + }); + + actividadTest('1030', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: '450hacer cuadraditoDescribe esta funcin...45090', + resuelveDesafio: true + }); + +}); + +moduloActividad('1031', () => { + + actividadTest('1031', { + solucion: '5509050270Dibujar cuadrado de 5045090' + }); + + actividadTest('1031', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: '5Dibujar cuadraditoDescribe esta funcin...45090Avanzar a siguiente figuraDescribe esta funcin...509050270', + resuelveDesafio: true + }); + +}); + +moduloActividad('1032', () => { + + actividadTest('1032', { + solucion: '50100150200Dibujar cuadrado de 504largo lado90' + }); + +}); + +moduloActividad('1033', () => { + + actividadTest('1033', { + solucion: '10045050Ir Siguiente grande10090100Dibujar cuadrado4largo lado90' + }); + + + 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('1033', { + 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('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('1034', () => { + + actividadTest('1034', { + solucion: '610060' + }); + +}); + +moduloActividad('1035', () => { + + actividadTest('1035', { + solucion: '3100120' + }); + +}); + +moduloActividad('1036', () => { + + actividadTest('1036', { + solucion: '345Dibujar poligono de ladoscantidad100DIVIDE360cantidad' + }); + + 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('1037', () => { + + actividadTest('1037', { + solucion: '420034040360603100Dibujar poligonocantidadlargo ladoDIVIDE360cantidad' + }); + + + actividadTest('1037', { + descripcionAdicional: 'La habilidad saltar hacia adelante debe funcionar.', + solucion: 'xcantidad de ladoslongitud420034040360603100Dibujar figuraDescribe esta funcin...cantidad de ladoslongitudDIVIDE360cantidad de lados100', + resuelveDesafio: true + }); + +}); + +moduloActividad('1136', () => { + + actividadTest('1136', { + descripcionAdicional: 'Se tiene que poder dibujar libremente.', + solucion: ` + + + + + + + 2 + + + + + + + 75 + + + + + + + 90 + + + + + + + 100 + + + + + + + 90 + + + + + + + + + + + + + + + + + 90 + + + +`, + resuelveDesafio: false + }); + + actividadTest('1136', { + descripcionAdicional: 'No se puede dividir por cero.', + solucion: ` + + + + + + + DIVIDE + + + 90 + + + + + 0 + + + + + + + + `, + errorEsperado: "No se puede dividir por 0", + resuelveDesafio: false + }); + + actividadTest('1136', { + descripcionAdicional: 'Se puede girar 0 grados.', + solucion: ` + + + + + + + 0 + + + + + + `, + resuelveDesafio: false + }); + +}); \ No newline at end of file diff --git a/tests/integration/desafios/LaSupermaraton-test.js b/tests/integration/desafios/LaSupermaraton-test.js new file mode 100644 index 000000000..ef9faa49e --- /dev/null +++ b/tests/integration/desafios/LaSupermaraton-test.js @@ -0,0 +1,31 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = '1026'; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + `, + }); + + 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 diff --git a/tests/integration/desafios/LimpiandoElHumedal-test.js b/tests/integration/desafios/LimpiandoElHumedal-test.js new file mode 100644 index 000000000..6996a7c1e --- /dev/null +++ b/tests/integration/desafios/LimpiandoElHumedal-test.js @@ -0,0 +1,23 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = '1012'; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + 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, { + descripcionAdicional: 'Da error al tirar en el tacho cuando no tengo nada', + solucion:'', + errorEsperado: 'No tengo nada en la mano' + }); + + actividadTest(nombre, { + descripcionAdicional: 'Da error al querer irse sin limpiar el humedal', + solucion: '', + errorEsperado: 'Necesito estar sobre el yacaré para irme' + }); + +}); \ 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..bcbd69781 --- /dev/null +++ b/tests/integration/desafios/NoMeCansoDeRebotar-test.js @@ -0,0 +1,23 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = '1003'; + +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é!', + }); + +}); diff --git a/tests/integration/desafios/PaleteandoConParametros-test.js b/tests/integration/desafios/PaleteandoConParametros-test.js new file mode 100644 index 000000000..59873da63 --- /dev/null +++ b/tests/integration/desafios/PaleteandoConParametros-test.js @@ -0,0 +1,16 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = '1135'; + +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 diff --git a/tests/integration/desafios/ReciclandoPapeles-test.js b/tests/integration/desafios/ReciclandoPapeles-test.js new file mode 100644 index 000000000..c7d90a4f8 --- /dev/null +++ b/tests/integration/desafios/ReciclandoPapeles-test.js @@ -0,0 +1,23 @@ +import { moduloActividad, actividadTest } from '../../helpers/actividadTest'; + +const nombre = "1131"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: 'cant. casilleros45736tirar papeles en filacant. casilleros', + }); + + actividadTest(nombre, { + descripcionAdicional: ' Da error al querer tirar un papel sin levantarlo primero', + 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 diff --git a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js index df699a51b..cd681ec30 100644 --- a/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js +++ b/tests/integration/desafios/libroPrimaria/Duba-AlternativaCondicional-test.js @@ -25,6 +25,25 @@ 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 +82,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 +249,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/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 new file mode 100644 index 000000000..75abfa885 --- /dev/null +++ b/tests/integration/desafios/segundoCiclo/Capy/CapyBuscaAGuyra-test.js @@ -0,0 +1,34 @@ +import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; + +const nombre = "1022"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + + + + + + + + + + + `} + ) +}); \ No newline at end of file diff --git a/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js new file mode 100644 index 000000000..b5f12ca6f --- /dev/null +++ b/tests/integration/desafios/segundoCiclo/Capy/CapyYGuyra-test.js @@ -0,0 +1,30 @@ +import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; + +const nombre = "1001"; + +moduloActividad(nombre, () => { + + actividadTest(nombre, { + solucion: ` + + + + + + + + + + + + + + + + + + + + `} + ) +}); \ No newline at end of file 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 new file mode 100644 index 000000000..a8458e154 --- /dev/null +++ b/tests/integration/desafios/segundoCiclo/Capy/EscapeEnYacare-test.js @@ -0,0 +1,29 @@ +import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; + +const nombre = "1011"; + +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 diff --git a/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js b/tests/integration/desafios/segundoCiclo/Capy/HileraDeLatas-test.js index 7199c235d..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, () => { @@ -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/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 3c996b0d9..eefccfdc7 100644 --- a/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js +++ b/tests/integration/desafios/segundoCiclo/Chuy/InfinitosTrofeos-test.js @@ -1,181 +1,158 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -const nombre = "InfinitosTrofeos"; +const nombre = "1134"; moduloActividad(nombre, () => { actividadTest(nombre, { solucion: ` - - cantidad - direccion - - - - - - - - - - - - - 4 - - - - - - - - - - - - - - - - 3 - - - - - - - - - - - - - - - - 4 - - - - - - - - - - - - - - - - 3 + + + + + + + + + + 4 - - - - - - - - + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + 3 + + + + + + + + + + + - + - + - - - - - - - - - - - - Agarrar trofeos hacia - cantidad = 3 - direccion = abajo - - - - - - - - - - - - - - + - - - - - - - - - - + + + + + + + + Agarrar trofeos hacia + + + + + direccion - + + + + + + cantidad + + + + + + + + + direccion + + + + + + - + - - - + - - - - Agarrar trofeos centro - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - 4 + + + Agarrar trofeos centro + + + + + 2 + + + + + + + + + + + + + + + + + + 4 + + + + + + + - - - - - - - + - - - `, - skip: true + ` }); }); diff --git a/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js b/tests/integration/desafios/segundoCiclo/Chuy/LaberintoConPelotas-test.js index d2fd04c62..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, () => { @@ -11,7 +11,7 @@ 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 b18739db5..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, () => { @@ -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/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 7a7ce0dba..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, () => { @@ -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/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 8980ca47b..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, () => { @@ -112,5 +112,4 @@ moduloActividad(nombre, () => { `, }); - }); \ No newline at end of file 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 beb8d7b31..5da5e9e00 100644 --- a/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js +++ b/tests/integration/desafios/segundoCiclo/Yvoty/MariposasEncuadradas-test.js @@ -1,111 +1,97 @@ import { moduloActividad, actividadTest } from '../../../../helpers/actividadTest'; -let nombre = "MariposasEncuadradas"; +let nombre = "1133"; moduloActividad(nombre, () => { actividadTest(nombre, { - solucion: ` - - direccion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + solucion: ` + + + + + + + + + + + + - + - - + - - - - - - - - - - - - - - Observar mariposas hacia - direccion - - - - - - 6 - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - Observar mariposa si hay - - - - - - - - - + + + + + + Observar mariposas hacia + + + + + 6 + + + + + + + direccion + + + + + + + + + + - - - - `, - skip: true + + + + Prender luz si hay + + + + + + + + + + + + ` }); - }); \ No newline at end of file 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 c4ef38bc9..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, () => { @@ -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..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, () => { @@ -11,7 +11,7 @@ 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 fa31deb51..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, () => { @@ -88,7 +88,6 @@ moduloActividad(nombre, () => { `, resuelveDesafio: false, - skip: true }); }); \ No newline at end of file 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" ] ) 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) diff --git a/translations/blocks/en-us.yaml b/translations/blocks/en-us.yaml index a9709b66d..da1713c38 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 @@ -32,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 and invite Yvoty leaveHat: Leave the hat attackWithSword: Attack with the sword unicornEscape: Run away riding a unicorn @@ -40,19 +45,31 @@ pickIron: Pick iron pickCarbon: Pick carbon lightCampfire: Light the campfire putIntoTheShip: Put into the spaceship +goInAlligator: Go in alligator +takeCan: Take can +takePaper: Take paper +putIntoTheTrashBin: Put into the trash bin leavePresent: Leave a present 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 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 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 @@ -87,6 +104,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? @@ -123,6 +142,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 Guyrá here? paperHere: Is there a paper here ? butterflyHere: Is there a butterfly here? cellphoneHere: Is there a cell phone here? @@ -131,6 +151,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 @@ -139,6 +162,7 @@ watchPlanet: Watch planet repairTelescope: Repair telescope alignTelescope: Align telescope pickCan: Pick can +pickBird: Pick Guyrá pickPaper: Pick paper holdPaper: Hold paper fillBin: Fill bin diff --git a/translations/blocks/es-ar.yaml b/translations/blocks/es-ar.yaml index a829b88a6..bd4c8ec96 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 @@ -32,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 e invitar a Yvoty leaveHat: Dar el sombrero attackWithSword: Atacar con la espada unicornEscape: Escapar en unicornio @@ -40,19 +45,31 @@ pickIron: Agarrar hierro pickCarbon: Agarrar carbón lightCampfire: Prender fogata putIntoTheShip: Poner en la nave +goInAlligator: Irse en yacaré +takeCan: Agarrar lata +takePaper: Agarrar papel +putIntoTheTrashBin: Poner en el tacho leavePresent: Dejar un regalo 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 -bounceRubberBall: Rebotar 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 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 @@ -87,6 +104,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á? @@ -114,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 @@ -123,14 +142,18 @@ chargeCellphone: Cargar celular telescopeHere: ¿Hay un telescopio acá? planetHere: ¿Hay un planeta acá? canHere: ¿Hay una lata acá? +guyraHere: ¿Guyrá está acá? 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á? +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 @@ -139,6 +162,7 @@ watchPlanet: Observar planeta repairTelescope: Reparar telescopio alignTelescope: Alinear telescopio pickCan: Recoger lata +pickBird: Subir a Guyrá pickPaper: Recoger papel holdPaper: Sostener papel fillBin: Llenar tacho diff --git a/translations/blocks/pt-br.yaml b/translations/blocks/pt-br.yaml index b899c26bf..0d50af9ae 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 @@ -40,19 +41,31 @@ pickIron: Pegar ferro pickCarbon: Pegar carvão lightCampfire: Acender fogueira putIntoTheShip: Colocar no navio +goInAlligator: Vai em jacaré +takeCan: Pegar a lata +takePaper: Pegar um papel +putIntoTheTrashBin: colocar na lata de lixo leavePresent: Deixar presente 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 -bounceRubberBall: Chutar 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 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 @@ -87,6 +100,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? @@ -114,7 +129,37 @@ 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 +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 de borracha 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 +203,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 diff --git a/translations/components/descripcionAcercaDe/en-us.yaml b/translations/components/descripcionAcercaDe/en-us.yaml index 39964e336..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 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 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 489c695c5..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 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 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 d5668965f..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 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 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/components/en-us.yaml b/translations/components/en-us.yaml index c9ef93964..bed3a79ab 100644 --- a/translations/components/en-us.yaml +++ b/translations/components/en-us.yaml @@ -58,6 +58,10 @@ 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 suggestions' + enable: 'Enable suggestions' + suggestions: 'Suggestions' footer: version: 'Version:' problem: Any problem with this exercise? @@ -91,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: @@ -112,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 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." 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 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. diff --git a/translations/components/es-ar.yaml b/translations/components/es-ar.yaml index bebae12be..698b17314 100644 --- a/translations/components/es-ar.yaml +++ b/translations/components/es-ar.yaml @@ -58,6 +58,10 @@ 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 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 dabd09b7d..dacaa08e1 100644 --- a/translations/components/pt-br.yaml +++ b/translations/components/pt-br.yaml @@ -58,6 +58,10 @@ 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 sugestões' + enable: 'Ativar sugestões' + suggestions: 'Sugestões' footer: version: 'Versão:' problem: Problemas com este exercício? diff --git a/translations/en-us.yaml b/translations/en-us.yaml index 839ec18b3..841b44737 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,13 +61,22 @@ 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. 4) Fighting against the dark knight using her sword. 5) Running away riding a unicorn. clue: '' + '1011': + 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.' @@ -103,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 @@ -119,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. @@ -132,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 @@ -142,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: | @@ -193,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: | @@ -216,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: | @@ -367,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 @@ -418,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?' @@ -430,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.' @@ -499,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"' @@ -508,6 +517,16 @@ model: title: Coty practices 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.' + '1001': + title: Capy and Guyrá + description: | + The capybara Capy and his inseparable friend, the Guyrá oxpecker, have a very particular way of traveling through the estuaries. Help Capy pick up his friend to put him on his head and thus embark on a new adventure together. + clue: 'Pay attention to the order of the _primitives_: what you have to do first and what comes next.' + '1046': + title: New commands + description: | + Now Capy needs to collect two cans to his right, then two lower ones, and one at the bottom. + clue: Did you see the procedures? They can help you **create new commands** to use **as many times as you want.** '202101': title: Introduction description: Help Duba pick all beefsteaks up. @@ -594,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 @@ -606,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 @@ -624,88 +643,119 @@ 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 - 'nuevo4': + 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. + '1002': + title: Chuy keepie-uppie + 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 + 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". + '1004': 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' - 'nuevo5': + 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.' + '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: '' - 'nuevo16': + '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: '' + '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". - 'nuevo24': + '1022': + title: Capy looks for Guyrá + description: Help Capy to find Guyrá + clue: '' + '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: '' - 'nuevo28': + '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!' + '1026': + 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 + '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.' + '1028': title: Capy and Guyrá’s planet description: | Help Capy and Guyrá to collect all the cans. Be careful! He cannot come down... @@ -713,73 +763,139 @@ 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': + '1029': + title: | + 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: | 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.' - 'nuevo46': - title: New commands + '1130': + title: Searching for the stars description: | - Now Capy needs to collect two cans to his right, then two lower ones, and one at the bottom. - clue: Did you see the procedures? They can help you **create new commands** to use **as many times as you want.** - 'nuevo131': + 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' + '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: '' + '1135': + 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: '' + CapyYGuyra: + title: '' + NuevosComandosCapy: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' ElGatoEnLaCalle: @@ -908,18 +1024,20 @@ model: title: 'With Coty' tecnopolis2021ConToto: title: 'With Toto' + grupoTemporal: + title: 'Temporary Group' books: '1': - title: First Cycle + title: Beginner Level description: 'Challenges of Teachers’ Handbook "Computer Science in the classroom, 1st cycle of elementary school"' '2': - title: Second Cycle + 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: @@ -940,4 +1058,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 6c30ce686..b07d40eed 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: | @@ -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: | @@ -655,147 +655,288 @@ 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 - 'nuevo4': + '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 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: | + 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: | - 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': - title: Yvoty despierta las luciérnagas + 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!' + '1005': + 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. - 'nuevo7': - title: La Reparadora de Telescopios + 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. + '1006': + title: Chuy, campeone desordenade 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': + 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? + '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? + '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': + 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? + '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': + 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': 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: '' - '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 + 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?' + '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: | + 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: | + 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.' + '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`.' + '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. + '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**.' + '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?' + '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.' + '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. + '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**. + '1021': + title: Laberinto con pelotas 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': - title: Súper Yvoty 2 + 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 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". - 'nuevo21': - title: Laberinto con pelotas + 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: | - 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: '' - 'nuevo24': + ¿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?' + '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: '' - 'nuevo28': - title: El planeta de Capy y Guyrá + 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 + description: | + 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 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! + 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: 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: | + 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 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': + 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: | + 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? + '1039': + title: La estrella interesante 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': - 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': + ¡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”)? + '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': + _“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? + '1041': 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)? - 'nuevo42': + 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? + '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': + 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? + '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': + 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í? + '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': + 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! + '1045': 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.' - 'nuevo46': + 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.' + '1046': 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.** - 'nuevo131': + 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! Pista: si tuvieses que elegir un parámetro para tu procedimiento... ¿Cuál eligirías? ¿Qué varía de fila a fila? - clue: '' - 'nuevo132': + 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: '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': + 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!)' + '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: '' + 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.' + '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! + '1135': + title: Paleteando con parámetros + 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: ¡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: @@ -922,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: @@ -957,3 +1100,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 e4375f7ad..510f98e5c 100644 --- a/translations/pt-br.yaml +++ b/translations/pt-br.yaml @@ -492,6 +492,16 @@ model: title: ¡Coty desenha livremente! description: Nesta atividade você poderá fazer o desenho que mais goste clue: Incluímos todos os blocos possíveis, para que você possa libertar seu conhecimento. + '1001': + title: Capy e Guyrá + description: | + A capivara Capy e seu amigo inseparável, o pica-boi Guyrá, têm um jeito muito particular de viajar pelos estuários. Ajude Capy a pegar seu amigo para colocá-lo na cabeça e assim embarcar em uma nova aventura juntos. + clue: 'Preste atenção na ordem dos _primitivos_: o que você tem que fazer primeiro e o que vem a seguir.' + '1046': + title: Novos comandos + description: | + Agora Capy precisa pegar duas latas à sua direita, depois duas mais abaixo e uma no final. + clue: Você viu os procedimentos? Eles podem ajudá-lo a **criar novos comandos** para usar **quantas vezes quiser.** '202101': title: Introducción description: | @@ -639,63 +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 - 'nuevo4': + '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 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 + 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". + '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: '' - 'nuevo16': + '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: '' + '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". - 'nuevo24': + '1022': + title: Capy busca a Guyrá + description: | + Ayuda a Capy a encontrar a Guyrá + clue: '' + '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: '' - 'nuevo28': + '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. + '1026': + 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 + '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á. + '1028': title: El planeta de Capy y Guyrá description: | Ayudá a Capy y Guyrá a recoger todas las latas. ¡Cuidado! No se puede bajar... @@ -703,75 +745,141 @@ 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': + '1029': + title: | + 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: | 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.' - 'nuevo46': - title: Nuevos comandos + '1130': + title: Procurando pela estrelas 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.** - 'nuevo131': + 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' + '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: '' + '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! + '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: '' + CapyYGuyra: + title: '' + CapyBuscaAGuyra: + title: '' NuevosComandos: title: '' + NuevosComandosCapy: + title: '' ElGatoEnLaCalle: title: '' NoMeCansoDeSaltar: @@ -896,18 +1004,20 @@ model: title: 'Com Coty' tecnopolis2021ConToto: title: 'Com Toto' + grupoTemporal: + title: 'Grupo temporário' books: '1': - title: Primeiro Ciclo + 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: Segundo Ciclo + 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: @@ -928,4 +1038,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