From 8b9c54f43704c073226e0cfa5089db2da40e9337 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Wed, 12 Jun 2024 22:01:15 -0600 Subject: [PATCH 01/43] data borrada --- src/data/dataset.js | 377 +------------------------------------------- 1 file changed, 1 insertion(+), 376 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index 592bf317..1a98722d 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -1,378 +1,3 @@ export default [ - { - "id": "ada-lovelace", - "name": "Ada Lovelace", - "shortDescription": "Pionera en la programación, primera programadora de la historia.", - "description": "Una visionaria matemática británica del siglo XIX, es aclamada como la primera programadora de la historia. Su colaboración con Charles Babbage en la creación de la Máquina Analítica la llevó a desarrollar algoritmos, incluyendo el famoso \"algoritmo de Bernoulli\", destinados a ser procesados por una máquina. Su visión pionera la convirtió en una figura fundamental en la informática y la inteligencia artificial. Lovelace demostró que las computadoras podían ir más allá de simples cálculos matemáticos, anticipando un mundo donde la programación sería esencial en la resolución de problemas complejos, dejando una huella imborrable en la ciencia y la tecnología.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/ada-lovelace.jpg", - "facts": { - "yearOfBirth": "1815", - "yearOfDeath": "1852", - "birthPlace": "Londres, Reino Unido", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/genera-una-imagen-de-ada-lovelace2c-la-primera-prog/650a1eff8ff04b88833d5cdef0309441" - } - }, - { - "id": "emmy-noether", - "name": "Emmy Noether", - "shortDescription": "Matemática destacada, teorema fundamental en álgebra abstracta.", - "description": "Una brillante matemática alemana, revolucionó la física teórica con sus contribuciones al teorema de conservación de la energía y el teorema de Noether, fundamentales en la teoría de la relatividad y la mecánica cuántica. A pesar de los obstáculos que enfrentó como mujer en la academia, sus investigaciones en álgebra abstracta y teoría de grupos son fundamentales en la física moderna. Su capacidad para unificar conceptos matemáticos y físicos marcó un hito en la historia de la ciencia, allanando el camino para futuras generaciones de científicas.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/emmy-noether.jpg", - "facts": { - "yearOfBirth": "1882", - "yearOfDeath": "1935", - "birthPlace": "Erlangen, Alemania", - "mainField": "Matemáticas" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/create-an-image-of-of-a-german-woman2c-a-pioneering/6510ddb1e8254b928b8f8f1d5e95fea4" - } - }, - { - "id": "hypatia-de-alejandria", - "name": "Hypatia de Alejandría", - "shortDescription": "Matemática y filósofa en la antigua Alejandría.", - "description": "Filósofa y matemática en la antigua Alejandría, desafió las normas de género de su época al destacar en una sociedad dominada por hombres. Su legado incluye importantes contribuciones a la geometría y la astronomía, así como su destacado papel como maestra y defensora del conocimiento en una época de agitación política. Hypatia demostró que las mujeres podían sobresalir en campos intelectuales y su valentía al mantener sus creencias filosóficas la convierte en un símbolo de resistencia y sabiduría en la historia de la ciencia.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/hypatia-de-alejandria.jpg", - "facts": { - "yearOfBirth": "circa 360", - "yearOfDeath": "415", - "birthPlace": "Alejandría, Egipto", - "mainField": "Matemáticas, Filosofía" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/create-a-vivid-digital-artwork-or-painting-that-de/6510df0ebe1a4807af22175452761e1a" - } - }, - { - "id": "marjorie-lee-browne", - "name": "Marjorie Lee Browne", - "shortDescription": "Matemática, contribuyó a la teoría de números.", - "description": "Matemática estadounidense, destacó en una época en la que las mujeres afroamericanas enfrentaban múltiples barreras en la educación superior. No solo obtuvo su doctorado en matemáticas, sino que también se convirtió en una destacada educadora, promoviendo la diversidad en las ciencias matemáticas y desafiando la discriminación racial y de género. Su compromiso con la educación y su capacidad para inspirar a futuras generaciones la convierten en un modelo a seguir para las mujeres en la ciencia, dejando una huella perdurable en la historia académica.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marjorie-lee-browne.jpg", - "facts": { - "yearOfBirth": "1914", - "yearOfDeath": "1979", - "birthPlace": "Memphis, Estados Unidos", - "mainField": "Matemáticas" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/design-an-inspiring-and-historically-accurate-imag/6510df7e7bb745f69d67f695441607a8" - } - }, - { - "id": "shakuntala-devi", - "name": "Shakuntala Devi", - "shortDescription": "Matemática prodigio, conocida como la 'Calculadora Humana'.", - "description": "Conocida como \"la bruja de las matemáticas\" de la India, dejó una marca indeleble en el mundo de los números. Su capacidad mental asombrosa la llevó a resolver complejos cálculos matemáticos mentalmente en cuestión de segundos, estableciendo récords mundiales. Además de su talento innato, Devi promovió activamente la educación matemática y luchó por la igualdad de género en un país donde las mujeres enfrentaban desafíos en la ciencia y la educación. Su legado destaca el poder de la mente humana y la importancia de la igualdad de oportunidades en la ciencia.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/shakuntala-devi.jpg", - "facts": { - "yearOfBirth": "1929", - "yearOfDeath": "2013", - "birthPlace": "Bangalore, India", - "mainField": "Matemáticas" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/indian-woman-writing-math-problems-in-a-blackbard-/6510e19f3db54e14b365b7e8dc5045f6" - } - }, - { - "id": "sofia-kovalevskaya", - "name": "Sofia Kovalevskaya", - "shortDescription": "Matemática y escritora, contribuyó a la teoría de funciones.", - "description": "Matemática rusa del siglo XIX, dejó una marca indeleble en la ciencia del siglo XIX al desafiar las barreras de género. Como matemática rusa, superó las restricciones sociales de su época para convertirse en la primera mujer en obtener un doctorado en matemáticas en Europa. Sus contribuciones a la teoría de las ecuaciones diferenciales y la mecánica revolucionaron la disciplina, abriendo nuevas perspectivas en el análisis matemático. Su destacada membresía en la Academia de Ciencias de Suecia marcó un hito en la historia de las mujeres en la ciencia.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/sofia-kovalevskaya.jpg", - "facts": { - "yearOfBirth": "1850", - "yearOfDeath": "1891", - "birthPlace": "Moscú, Rusia", - "mainField": "Matemáticas" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/indian-woman-writing-math-problems-in-a-blackbard-/6510e19f3db54e14b365b7e8dc5045f6" - } - }, - { - "id": "yoko-shimomura", - "name": "Yoko Shimomura", - "shortDescription": "Compositora de música, destacada en la industria de los videojuegos.", - "description": "Compositora japonesa, es una figura destacada en la ciencia de la música y el arte sonoro. Aunque no se dedica a la ciencia en el sentido tradicional, su trabajo en la composición musical ha requerido un profundo entendimiento de la teoría musical y la tecnología de audio. Ha contribuido de manera significativa a la industria de los videojuegos, componiendo icónicas bandas sonoras que han enriquecido la experiencia de juego. Su éxito en un campo donde las mujeres estaban subrepresentadas la convierte en un modelo a seguir, incluso en campos no convencionales como la composición musical.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/yoko-shimomura.jpg", - "facts": { - "yearOfBirth": "1967", - "birthPlace": "Hyogo, Japón", - "mainField": "Composición Musical, Video Juegos" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/yoko-shimomura-making-music-for-a-video-game-in-19/6510e40dd1eb45d0906e8c1f4bb601d3" - } - }, - { - "id": "maryam-mirzakhani", - "name": "Maryam Mirzakhani", - "shortDescription": "Matemática, ganadora del Premio Fields.", - "description": "Matemática iraní, hizo historia al convertirse en la primera mujer en ganar la Medalla Fields, el premio más prestigioso en matemáticas. Sus investigaciones en la geometría de superficies y la teoría de las superficies de Riemann han tenido un impacto duradero en la matemática pura. A lo largo de su carrera, Mirzakhani inspiró a muchas mujeres a perseguir carreras en ciencia y matemáticas, derribando las barreras de género. Su enfoque innovador y su capacidad para resolver problemas complejos la convierten en un modelo a seguir para la comunidad científica y en un símbolo de la excelencia matemática.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/maryam-mirzakhani.jpg", - "facts": { - "yearOfBirth": "1977", - "yearOfDeath": "2017", - "birthPlace": "Teherán, Irán", - "mainField": "Matemáticas" - }, - "extraInfo": { - "imageSource": "https://chalkdustmagazine.com/features/mathematics-maryam-mirzakhani/" - } - }, - { - "id": "adele-goldberg", - "name": "Adele Goldberg", - "shortDescription": "Informática pionera, co-creadora del lenguaje de programación Smalltalk.", - "description": "Informática estadounidense reconocida por su influyente trabajo en la investigación y desarrollo de la programación orientada a objetos. Su contribución más destacada es la creación del lenguaje de programación Smalltalk, que revolucionó la forma en que se desarrollan software y sistemas informáticos. Goldberg ha sido una defensora incansable de la usabilidad y la accesibilidad en la informática, asegurando que las aplicaciones informáticas sean más amigables para los usuarios. Su trabajo ha allanado el camino para una programación más intuitiva y eficiente, y su legado perdura en la industria de la tecnología.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/adele-goldberg.jpg", - "facts": { - "yearOfBirth": "1945", - "birthPlace": "Chicago, Estados Unidos", - "mainField": "Ciencias de la Computación" - }, - "extraInfo": { - "imageSource": "https://pionerasinformaticas.ujaen.es/en/computer-women-pioneers/adele-goldberg-en" - } - }, - { - "id": "barbara-liskov", - "name": "Barbara Liskov", - "shortDescription": "Científica de la computación, pionera en programación orientada a objetos.", - "description": "Pionera de la informática, es conocida por su trabajo en la programación y la arquitectura de sistemas distribuidos. Fue la primera mujer en obtener un doctorado en ciencias de la computación en el Instituto de Tecnología de Stanford y desarrolló el lenguaje de programación CLU, que estableció fundamentos para la programación orientada a objetos. Liskov ha dejado una marca indeleble en la industria de la tecnología al liderar avances en sistemas de almacenamiento y seguridad informática. Su enfoque en la fiabilidad y la robustez ha influido en el diseño de sistemas críticos en todo el mundo.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/barbara-liskov.jpg", - "facts": { - "yearOfBirth": "1939", - "birthPlace": "Los Angeles, Estados Unidos", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://medium.com/a-computer-of-ones-own/barbara-liskov-inventor-of-abstract-data-types-9f8908fdcf86" - } - }, - { - "id": "grace-hopper", - "name": "Grace Hopper", - "shortDescription": "Científica de la computación, creadora del primer compilador.", - "description": "Una de las pioneras de la informática, es famosa por su contribución al desarrollo del primer compilador y al lenguaje de programación COBOL. Además, desafió los estereotipos de género en la década de 1940 al unirse a la Marina de los Estados Unidos y convertirse en la primera programadora de la computadora Harvard Mark I. Su legado abarca la creación de conceptos cruciales como la \"depuración de software\" y su influencia en el desarrollo de la informática moderna, estableciendo estándares para la programación de alto nivel y la innovación tecnológica.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/grace-hopper.jpg", - "facts": { - "yearOfBirth": "1906", - "yearOfDeath": "1992", - "birthPlace": "Nueva York, Estados Unidos", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://photos.com/featured/grace-hopper-with-early-computer-bettmann.html" - } - }, - { - "id": "margaret-hamilton", - "name": "Margaret Hamilton", - "shortDescription": "Científica de la computación, lideró desarrollo de software para Apollo 11.", - "description": "Destacada científica de la computación que desempeñó un papel fundamental en el programa Apollo de la NASA. Fue directora de la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde desarrolló el concepto de \"ingeniería de software\". Su liderazgo en el desarrollo del software de vuelo para las misiones Apollo fue fundamental para el éxito de la llegada del hombre a la Luna. Hamilton es un ejemplo de cómo la tecnología y la ciencia pueden alcanzar logros extraordinarios cuando se combinan con un enfoque innovador y una visión audaz.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/margaret-hamilton.jpg", - "facts": { - "yearOfBirth": "1936", - "birthPlace": "Paoli, Indiana, Estados Unidos", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://odetta.ai/blogs/margaret-hamilton-the-first-software-engineer" - } - }, - { - "id": "radia-perlman", - "name": "Radia Perlman", - "shortDescription": "Ingeniera de redes, inventora del algoritmo Spanning Tree.", - "description": "Científica de la computación estadounidense, ha dejado una marca indeleble en el mundo de las redes informáticas y la seguridad. Conocida como \"la madre de Internet\", su invención del algoritmo Spanning Tree Protocol (STP) revolucionó la conectividad de redes y sentó las bases para la infraestructura de Internet moderna. A pesar de operar en un campo dominado por hombres, Perlman ha demostrado que las mujeres pueden liderar avances tecnológicos vitales. Su compromiso con la resiliencia de las redes y la ciberseguridad ha influido en la estabilidad y confiabilidad de la comunicación en línea.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/radia-perlman.jpg", - "facts": { - "yearOfBirth": "1951", - "birthPlace": "Portsmouth, Estados Unidos", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://hackaday.com/2018/05/29/spanning-the-tree-dr-radia-perlman-untangling-networks/" - } - }, - { - "id": "shafi-goldwasser", - "name": "Shafi Goldwasser", - "shortDescription": "Científica de la computación, ganadora del Premio Turing.", - "description": "Es una destacada criptógrafa y científica de la computación que ha contribuido significativamente a la teoría de la computación y la seguridad de la información. Su trabajo en criptografía de probabilidad y complejidad computacional ha sentado las bases para la seguridad en línea y la privacidad de datos en un mundo cada vez más digitalizado. Goldwasser es un ejemplo de cómo la ciencia de la computación puede abordar desafíos contemporáneos y proteger la información en la era de la información.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/shafi-goldwasser.jpg", - "facts": { - "yearOfBirth": "1958", - "birthPlace": "Nueva York, Estados Unidos", - "mainField": "Ciencia de la Computación" - }, - "extraInfo": { - "imageSource": "https://www.jahresbericht2019.unibe.ch/successes_2019/einstein_lectures/index_eng.html" - } - }, - { - "id": "chien-shiung-wu", - "name": "Chien-Shiung Wu", - "shortDescription": "Física experimental, contribuyó a la física nuclear.", - "description": "Física experimental de origen chino, desafiando los prejuicios de género y nacionalidad, realizó experimentos fundamentales en física de partículas y contribuyó significativamente a la comprensión de la desintegración beta. Su famoso experimento \"Wu\" refutó la paridad en la física de partículas, lo que cambió la forma en que los científicos comprenden las fuerzas fundamentales de la naturaleza. Wu demostró que el talento y la perseverancia pueden superar cualquier barrera, y su legado sigue siendo un faro de inspiración para científicas en todo el mundo.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/chien-shiung-wu.jpg", - "facts": { - "yearOfBirth": "1912", - "yearOfDeath": "1997", - "birthPlace": "Liuhe, Taicang, China", - "mainField": "Física" - }, - "extraInfo": { - "imageSource": "https://www.thoughtco.com/chien-shiung-wu-biography-3530366" - } - }, - { - "id": "hedy-lamarr", - "name": "Hedy Lamarr", - "shortDescription": "Actriz e inventora, contribuyó al desarrollo de la tecnología de espectro ensanchado.", - "description": "Actriz austroamericana y científica, fue una mente brillante en la intersección de la tecnología y el entretenimiento. Junto con el compositor George Antheil, inventó un sistema de comunicación secreta durante la Segunda Guerra Mundial que sentó las bases para la tecnología de espectro ensanchado y la comunicación inalámbrica moderna. Lamarr demostró que las mujeres pueden destacar tanto en el cine como en la ciencia, y su legado como inventora ha sido fundamental para el desarrollo de la tecnología de comunicación inalámbrica que usamos en la actualidad.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/hedy-lamarr.jpg", - "facts": { - "yearOfBirth": "1914", - "yearOfDeath": "2000", - "birthPlace": "Viena, Austria", - "mainField": "Actuación, Física" - }, - "extraInfo": { - "imageSource": "https://www.sparkfun.com/news/6147" - } - }, - { - "id": "maria-goeppert-mayer", - "name": "Maria Goeppert Mayer", - "shortDescription": "Física teórica, ganadora del Premio Nobel de Física.", - "description": "Física teórica alemana-estadounidense, dejó una profunda huella en la física nuclear y la mecánica cuántica. Fue la segunda mujer en recibir el Premio Nobel de Física y su trabajo pionero en la estructura de capas nucleares revolucionó nuestra comprensión de los núcleos atómicos. A pesar de las barreras de género en la academia, su dedicación y talento la llevaron a contribuir significativamente a la teoría nuclear, abriendo el camino para futuras investigadoras en un campo dominado por hombres. Maria Goeppert Mayer es un ejemplo inspirador de excelencia científica y perseverancia en la búsqueda del conocimiento.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/maria-goeppert-mayer.jpg", - "facts": { - "yearOfBirth": "1906", - "yearOfDeath": "1972", - "birthPlace": "Kattowitz, Alemania", - "mainField": "Física" - }, - "extraInfo": { - "imageSource": "https://www.wsemexhibit.org/maria-goeppert-mayer.html" - } - }, - { - "id": "lise-meitner", - "name": "Lise Meitner", - "shortDescription": "Física nuclear, contribuyó a la teoría de la fisión nuclear.", - "description": "Física austriaca-sueca, dejó un legado imborrable en la física nuclear y la radioquímica. A pesar de enfrentar obstáculos de género en una era dominada por hombres, colaboró con Otto Hahn en el descubrimiento de la fisión nuclear, un avance revolucionario. Aunque no compartió el Premio Nobel por este logro, su contribución fue crucial para comprender la energía nuclear y la física de partículas. Su determinación y pasión por la ciencia han inspirado a generaciones de científicas. Lise Meitner es un símbolo perdurable de la perseverancia femenina y el impacto duradero que las mujeres pueden tener en la ciencia.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/lise-meitner.jpg", - "facts": { - "yearOfBirth": "1878", - "yearOfDeath": "1968", - "birthPlace": "Viena, Austria", - "mainField": "Física" - }, - "extraInfo": { - "imageSource": "https://www.bing.com/images/create/lise-meitner-in-nuclear-physics-lab-in-19502c-retro/651196e6bbcb4009950e9955c2199760" - } - }, - { - "id": "sau-lan-wu", - "name": "Sau Lan Wu", - "shortDescription": "Física de partículas, contribuyó a experimentos clave en física de alta energía.", - "description": "Física experimental sinoamericana, ha sido una fuerza motriz en la física de partículas. Destacó en experimentos en el CERN y lideró investigaciones cruciales, como el descubrimiento del quark c, que expandieron nuestro entendimiento de la estructura fundamental de la materia. Wu superó desafíos en una disciplina dominada por hombres y ha sido un faro de inspiración para científicas de todo el mundo. Sau Lan Wu es un ejemplo de excelencia científica y de cómo las mujeres pueden dejar huella en la investigación de vanguardia.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/sau-lan-wu.jpg", - "facts": { - "yearOfBirth": "1940", - "birthPlace": "Hong Kong, China", - "mainField": "Física de Partículas" - }, - "extraInfo": { - "imageSource": "https://repository.aip.org/islandora/object/nbla%3A315195" - } - }, - { - "id": "jocelyn-bell-burnell", - "name": "Jocelyn Bell Burnell", - "shortDescription": "Astrónoma y astrofísica, co-descubridora de los púlsares.", - "description": "Astrofísica británica, es una figura extraordinaria en la ciencia. Durante su doctorado, hizo un descubrimiento revolucionario al detectar los primeros púlsares, estrellas de neutrones altamente magnetizadas que emiten pulsos regulares de radiación. A pesar de que su asesor recibió el Premio Nobel por este descubrimiento, Bell Burnell se ha convertido en un símbolo de perseverancia y contribución de las mujeres a la astronomía. Su carrera distinguida y su activismo en favor de la diversidad de género en la ciencia han inspirado a generaciones futuras de científicas. Jocelyn Bell Burnell es un ejemplo de valentía y excelencia científica.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/jocelyn-bell-burnell.jpg", - "facts": { - "yearOfBirth": "1943", - "birthPlace": "Belfast, Reino Unido", - "mainField": "Astronomía, Astrofísica" - }, - "extraInfo": { - "imageSource": "https://womeninscienceweadmire.icfo.eu/wiswa-2/jocelyn-bell/" - } - }, - { - "id": "dorothy-crowfoot-hodgkin", - "name": "Dorothy Crowfoot Hodgkin", - "shortDescription": "Química, ganadora del Premio Nobel de Química.", - "description": "Química británica, es una figura icónica en la ciencia que superó las barreras de género de su época. Su trabajo revolucionario en la cristalografía de rayos X permitió determinar la estructura de importantes biomoléculas, como la penicilina, la vitamina B12 y la insulina. Fue galardonada con el Premio Nobel de Química en 1964, siendo la tercera mujer en recibir este prestigioso reconocimiento. Hodgkin no solo fue una científica excepcional, sino también una defensora de la igualdad de género en la ciencia, allanando el camino para futuras generaciones de científicas y dejando un legado duradero en la investigación y la equidad.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/dorothy-crowfoot-hodgkin.jpg", - "facts": { - "yearOfBirth": "1910", - "yearOfDeath": "1994", - "birthPlace": "El Cairo, Egipto / Shipston-on-Stour, Reino Unido", - "mainField": "Química" - }, - "extraInfo": { - "imageSource": "https://www.some.ox.ac.uk/news/jan-royall-why-we-must-champion-dorothy-hodgkin-for-the-50-note/" - } - }, - { - "id": "marie-curie", - "name": "Marie Curie", - "shortDescription": "Física y química, ganadora de dos Premios Nobel.", - "description": "física y química de origen polaco y nacionalizada francesa, es una de las figuras más icónicas en la historia de la ciencia. Ganadora de dos premios Nobel (Física en 1903 y Química en 1911), Curie realizó investigaciones fundamentales sobre la radiactividad y el descubrimiento de los elementos radio y polonio. Su dedicación y valentía en la investigación científica, a pesar de los desafíos de la discriminación de género y los riesgos de la radiación, la convierten en un modelo a seguir para científicas de todo el mundo.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marie-curie.jpg", - "facts": { - "yearOfBirth": "1867", - "yearOfDeath": "1934", - "birthPlace": "Varsovia, Polonia", - "mainField": "Física y Química" - }, - "extraInfo": { - "imageSource": "https://www.historyextra.com/period/first-world-war/life-of-the-week-marie-curie/" - } - }, - { - "id": "marjory-stephenson", - "name": "Marjory Stephenson", - "shortDescription": "Microbióloga y bioquímica, investigó en enzimología.", - "description": "Bioquímica británica, brilló como científica en una época en la que las mujeres enfrentaban obstáculos muy significativos en la investigación científica. Su trabajo pionero en microbiología, enzimología y bioquímica contribuyó al entendimiento de procesos fundamentales en la vida. Fue una de las primeras mujeres en ser elegida miembro de la Royal Society, un reconocimiento a su destacada contribución a la ciencia. Además, fue una mentora y defensora de las mujeres en la ciencia, inspirando y allanando el camino para futuras generaciones.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/marjory-stephenson.jpg", - "facts": { - "yearOfBirth": "1885", - "yearOfDeath": "1948", - "birthPlace": "Londres, Reino Unido", - "mainField": "Química, Microbiología, Bioquímica" - }, - "extraInfo": { - "imageSource": "https://microbiologysociety.org/grants-prizes/all-prizes-and-competitions-/prize-lectures/marjory-stephenson-prize-lecture/marjory-stephenson-a-short-history.html" - } - }, - { - "id": "rosalind-franklin", - "name": "Rosalind Franklin", - "shortDescription": "Química y cristalógrafa, contribuyó a la comprensión de la estructura del ADN.", - "description": "Química y cristalógrafa británica, destacó en un campo dominado por hombres y su contribución a la ciencia es innegable. Sus investigaciones pioneras en la cristalografía de rayos X fueron fundamentales para revelar la estructura del ADN en forma de doble hélice, un hito crucial en la biología molecular. A pesar de que su trabajo inicial fue subestimado, su determinación y habilidad científica allanaron el camino para futuros avances en genética y biología. Franklin es un ejemplo inspirador de cómo las mujeres pueden sobresalir en la ciencia, dejando un legado duradero en la investigación y la igualdad de género.", - "imageUrl": "https://laboratoria-dataverse-talks.netlify.app/public/rosalind-franklin.jpg", - "facts": { - "yearOfBirth": "1920", - "yearOfDeath": "1958", - "birthPlace": "Londres, Reino Unido", - "mainField": "Química, Cristalografía" - }, - "extraInfo": { - "imageSource": "" - } - } + ]; From dc86ef53855ff645a2f74d0f957c2433955892ca Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Wed, 12 Jun 2024 22:15:51 -0600 Subject: [PATCH 02/43] cambios html --- src/index.html | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index 05b0a0a6..0caa8a1f 100644 --- a/src/index.html +++ b/src/index.html @@ -1,11 +1,26 @@ + + - Dataverse + + + PokemonGame + +
+

POKEMON

+ + + +
+ +
+

Daniela Trejo & Dinah Gomez

+
From 487db5abd3d5364c0dca4dfe1d258874c705d4e2 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Wed, 12 Jun 2024 23:26:15 -0600 Subject: [PATCH 03/43] cambios en dataset.js --- package-lock.json | 7975 +++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +- src/data/dataset.js | 321 +- 3 files changed, 8296 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..2979a19f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7975 @@ +{ + "name": "dataverse", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dataverse", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.6.2", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "@playwright/test": "^1.36.1", + "acorn": "^8.8.2", + "babel-jest": "^27.0.1", + "css": "^3.0.0", + "eslint": "^8.3.0", + "gh-pages": "^6.1.1", + "htmlhint": "^1.0.0", + "jest": "^27.0.1", + "jsdom": "^22.1.0", + "opener": "^1.5.1", + "serve": "^14.2.1" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@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, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@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, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "dev": true, + "dependencies": { + "playwright": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@zeit/schemas": { + "version": "2.36.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz", + "integrity": "sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001633", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", + "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk-template/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/chalk-template/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk-template/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dev": true, + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.801", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.801.tgz", + "integrity": "sha512-PnlUz15ii38MZMD2/CEsAzyee8tv9vFntX5nhtd2/4tv4HqY7C5q2faUAjmkXS/UFpVooJ/5H6kayRKYWoGMXQ==", + "dev": true + }, + "node_modules/email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/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, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/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, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.1.1.tgz", + "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==", + "dev": true, + "dependencies": { + "async": "^3.2.4", + "commander": "^11.0.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^11.1.1", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlhint": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz", + "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==", + "dev": true, + "dependencies": { + "async": "3.2.3", + "chalk": "^4.1.2", + "commander": "^9.1.0", + "glob": "^7.2.0", + "is-glob": "^4.0.3", + "node-fetch": "^2.6.2", + "strip-json-comments": "3.1.0", + "xml": "1.0.1" + }, + "bin": { + "htmlhint": "bin/htmlhint" + } + }, + "node_modules/htmlhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/htmlhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/htmlhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/htmlhint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/htmlhint/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/htmlhint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "dev": true, + "dependencies": { + "playwright-core": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serve": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.3.tgz", + "integrity": "sha512-VqUFMC7K3LDGeGnJM9h56D3XGKb6KGgOw0cVNtA26yYXHCcpxf3xwCTUaQoWlVS7i8Jdh3GjQkOB23qsXyjoyQ==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.36.0", + "ajv": "8.12.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dev": true, + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/tr46/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index a0949bd6..b66b2700 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "babel-jest": "^27.0.1", "css": "^3.0.0", "eslint": "^8.3.0", - "gh-pages": "^3.1.0", + "gh-pages": "^6.1.1", "htmlhint": "^1.0.0", "jest": "^27.0.1", "jsdom": "^22.1.0", @@ -49,4 +49,4 @@ "jest": { "testEnvironment": "jsdom" } -} \ No newline at end of file +} diff --git a/src/data/dataset.js b/src/data/dataset.js index 1a98722d..0b98f0d5 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -1,3 +1,320 @@ -export default [ + -]; + const pokemonData = [ + { + name: "Bulbasaur", + type: ["Grass", "Poison"], + generation: 1, + region: "Kanto", + number: 1, + rarity: "Common", + hp: 45, + attack: 49, + defense: 49, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png" + }, + { + name: "Charmander", + type: ["Fire"], + generation: 1, + region: "Kanto", + number: 4, + rarity: "Common", + hp: 39, + attack: 52, + defense: 43, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png" + }, + { + name: "Squirtle", + type: ["Water"], + generation: 1, + region: "Kanto", + number: 7, + rarity: "Common", + hp: 44, + attack: 48, + defense: 65, + speed: 43, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png" + }, + { + name: "Pikachu", + type: ["Electric"], + generation: 1, + region: "Kanto", + number: 25, + rarity: "Common", + hp: 35, + attack: 55, + defense: 40, + speed: 90, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png" + }, + { + name: "Jigglypuff", + type: ["Normal", "Fairy"], + generation: 1, + region: "Kanto", + number: 39, + rarity: "Common", + hp: 115, + attack: 45, + defense: 20, + speed: 20, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png" + }, + { + name: "Meowth", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 52, + rarity: "Common", + hp: 40, + attack: 45, + defense: 35, + speed: 90, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png" + }, + { + name: "Psyduck", + type: ["Water"], + generation: 1, + region: "Kanto", + number: 54, + rarity: "Common", + hp: 50, + attack: 52, + defense: 48, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png" + }, + { + name: "Machop", + type: ["Fighting"], + generation: 1, + region: "Kanto", + number: 66, + rarity: "Common", + hp: 70, + attack: 80, + defense: 50, + speed: 35, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png" + }, + { + name: "Magnemite", + type: ["Electric", "Steel"], + generation: 1, + region: "Kanto", + number: 81, + rarity: "Common", + hp: 25, + attack: 35, + defense: 70, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png" + }, + { + name: "Gengar", + type: ["Ghost", "Poison"], + generation: 1, + region: "Kanto", + number: 94, + rarity: "Rare", + hp: 60, + attack: 65, + defense: 60, + speed: 110, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png" + }, + { + name: "Eevee", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 133, + rarity: "Common", + hp: 55, + attack: 55, + defense: 50, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png" + }, + { + name: "Snorlax", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 143, + rarity: "Rare", + hp: 160, + attack: 110, + defense: 65, + speed: 30, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png" + }, + { + name: "Dragonite", + type: ["Dragon", "Flying"], + generation: 1, + region: "Kanto", + number: 149, + rarity: "Rare", + hp: 91, + attack: 134, + defense: 95, + speed: 80, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png" + }, + { + name: "Mewtwo", + type: ["Psychic"], + generation: 1, + region: "Kanto", + number: 150, + rarity: "Legendary", + hp: 106, + attack: 110, + defense: 90, + speed: 130, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png" + }, + { + name: "Mew", + type: ["Psychic"], + generation: 1, + region: "Kanto", + number: 151, + rarity: "Mythical", + hp: 100, + attack: 100, + defense: 100, + speed: 100, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png" + }, + { + name: "Chikorita", + type: ["Grass"], + generation: 2, + region: "Johto", + number: 152, + rarity: "Common", + hp: 45, + attack: 49, + defense: 65, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png" + }, + { + name: "Cyndaquil", + type: ["Fire"], + generation: 2, + region: "Johto", + number: 155, + rarity: "Common", + hp: 39, + attack: 52, + defense: 43, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png" + }, + { + name: "Totodile", + type: ["Water"], + generation: 2, + region: "Johto", + number: 158, + rarity: "Common", + hp: 50, + attack: 65, + defense: 64, + speed: 43, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png" + }, + { + name: "Togepi", + type: ["Fairy"], + generation: 2, + region: "Johto", + number: 175, + rarity: "Common", + hp: 35, + attack: 20, + defense: 65, + speed: 20, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png" + }, + { + name: "Mareep", + type: ["Electric"], + generation: 2, + region: "Johto", + number: 179, + rarity: "Common", + hp: 55, + attack: 40, + defense: 40, + speed: 35, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png" + }, + { + name: "Espeon", + type: ["Psychic"], + generation: 2, + region: "Johto", + number: 196, + rarity: "Rare", + hp: 65, + attack: 65, + defense: 60, + speed: 110, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png" + }, + { + name: "Umbreon", + type: ["Dark"], + generation: 2, + region: "Johto", + number: 197, + rarity: "Rare", + hp: 95, + attack: 65, + defense: 110, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png" + }, + { + name: "Murkrow", + type: ["Dark", "Flying"], + generation: 2, + region: "Johto", + number: 198, + rarity: "Common", + hp: 60, + attack: 85, + defense: 42, + speed: 91, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png" + }, + { + name: "Blissey", + type: ["Normal"], + generation: 2, + region: "Johto", + number: 242, + rarity: "Rare", + hp: 255, + attack: 10, + defense: 10, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png" + } + ]; + + export default pokemonData; + + From 78d7632751adb565bbbf194269c9e0f4aa8dee0e Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Mon, 17 Jun 2024 14:59:39 -0600 Subject: [PATCH 04/43] modificacion view --- src/data/dataset.js | 72 ++++++++++++++++++++++++++++++--------------- src/index.html | 44 ++++++++++++++++++++------- src/view.js | 30 ++++++++++++++++--- 3 files changed, 108 insertions(+), 38 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index 0b98f0d5..ea4b8f2f 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -8,7 +8,8 @@ region: "Kanto", number: 1, rarity: "Common", - hp: 45, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 49, defense: 49, speed: 45, @@ -21,7 +22,8 @@ region: "Kanto", number: 4, rarity: "Common", - hp: 39, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 52, defense: 43, speed: 65, @@ -34,7 +36,8 @@ region: "Kanto", number: 7, rarity: "Common", - hp: 44, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 48, defense: 65, speed: 43, @@ -47,7 +50,8 @@ region: "Kanto", number: 25, rarity: "Common", - hp: 35, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 55, defense: 40, speed: 90, @@ -60,7 +64,8 @@ region: "Kanto", number: 39, rarity: "Common", - hp: 115, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 45, defense: 20, speed: 20, @@ -73,7 +78,8 @@ region: "Kanto", number: 52, rarity: "Common", - hp: 40, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 45, defense: 35, speed: 90, @@ -86,7 +92,8 @@ region: "Kanto", number: 54, rarity: "Common", - hp: 50, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 52, defense: 48, speed: 55, @@ -99,7 +106,8 @@ region: "Kanto", number: 66, rarity: "Common", - hp: 70, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 80, defense: 50, speed: 35, @@ -112,7 +120,8 @@ region: "Kanto", number: 81, rarity: "Common", - hp: 25, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 35, defense: 70, speed: 45, @@ -125,7 +134,8 @@ region: "Kanto", number: 94, rarity: "Rare", - hp: 60, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 65, defense: 60, speed: 110, @@ -138,7 +148,8 @@ region: "Kanto", number: 133, rarity: "Common", - hp: 55, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 55, defense: 50, speed: 55, @@ -151,7 +162,8 @@ region: "Kanto", number: 143, rarity: "Rare", - hp: 160, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 110, defense: 65, speed: 30, @@ -164,7 +176,8 @@ region: "Kanto", number: 149, rarity: "Rare", - hp: 91, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 134, defense: 95, speed: 80, @@ -177,7 +190,8 @@ region: "Kanto", number: 150, rarity: "Legendary", - hp: 106, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 110, defense: 90, speed: 130, @@ -190,7 +204,8 @@ region: "Kanto", number: 151, rarity: "Mythical", - hp: 100, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 100, defense: 100, speed: 100, @@ -203,7 +218,8 @@ region: "Johto", number: 152, rarity: "Common", - hp: 45, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 49, defense: 65, speed: 45, @@ -216,7 +232,8 @@ region: "Johto", number: 155, rarity: "Common", - hp: 39, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 52, defense: 43, speed: 65, @@ -229,7 +246,8 @@ region: "Johto", number: 158, rarity: "Common", - hp: 50, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 65, defense: 64, speed: 43, @@ -242,7 +260,8 @@ region: "Johto", number: 175, rarity: "Common", - hp: 35, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 20, defense: 65, speed: 20, @@ -255,7 +274,8 @@ region: "Johto", number: 179, rarity: "Common", - hp: 55, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 40, defense: 40, speed: 35, @@ -268,7 +288,8 @@ region: "Johto", number: 196, rarity: "Rare", - hp: 65, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 65, defense: 60, speed: 110, @@ -281,7 +302,8 @@ region: "Johto", number: 197, rarity: "Rare", - hp: 95, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 65, defense: 110, speed: 65, @@ -294,7 +316,8 @@ region: "Johto", number: 198, rarity: "Common", - hp: 60, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 85, defense: 42, speed: 91, @@ -307,7 +330,8 @@ region: "Johto", number: 242, rarity: "Rare", - hp: 255, + shortDescription: "es un gato tonto", + description: "es enorme", attack: 10, defense: 10, speed: 55, diff --git a/src/index.html b/src/index.html index 0caa8a1f..4466e2a1 100644 --- a/src/index.html +++ b/src/index.html @@ -11,16 +11,40 @@ +

POKEMON

- - - -
+ + +
+

Pokémon Cards

+
+ + + + + + + +
+ +
    +
    + + +
    +

    Daniela Trejo & Dinah Gomez

    +
    + + - -
    -

    Daniela Trejo & Dinah Gomez

    -
    - - + \ No newline at end of file diff --git a/src/view.js b/src/view.js index 0da7b7fa..8072e038 100644 --- a/src/view.js +++ b/src/view.js @@ -1,6 +1,28 @@ -export const renderItems = (data) => { + +export function renderItems(data) { console.log(data) - // Aquí comienza tu código y puedes retornar lo que tu necesites - return 'example'; -}; + const pokemonList = document.getElementById('pokemon-list'); + pokemonList.innerHTML = ''; + data.forEach(pokemon => { + const li = document.createElement('li'); + li.innerHTML = ` +
    + ${pokemon.name} +

    ${pokemon.name}

    +

    ELEMENTO: ${pokemon.type.join(', ')}

    +

    GENERACION: ${pokemon.generation}

    +

    REGION: ${pokemon.region}

    +

    NUMERO: ${pokemon.number}

    +

    RAREZA: ${pokemon.rarity}

    +

    PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

    +

    DESCRIPCION: ${pokemon.description}

    +

    EVOLUCION: ${pokemon.evolution}

    +

    ATAQUE: ${pokemon.attack}

    +

    DEFENSA: ${pokemon.defense}

    +

    VELOCIDAD: ${pokemon.speed}

    +
    + `; + pokemonList.appendChild(li); + }); +} From a5a744543082e5e91bc4195e90f7219c96a13efd Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Tue, 18 Jun 2024 10:55:40 -0600 Subject: [PATCH 05/43] descripcion de tarjetas pokemon --- src/data/dataset.js | 212 ++++++++++++++++++++++++-------------------- src/view.js | 2 +- 2 files changed, 119 insertions(+), 95 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index ea4b8f2f..75d34b84 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -3,13 +3,14 @@ const pokemonData = [ { name: "Bulbasaur", - type: ["Grass", "Poison"], + type: ["Planta", "Veneno"], generation: 1, region: "Kanto", number: 1, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Tras nacer, crece alimentandose durante un tiempo de los nutrientes que contiene el bulbo de su lomo ", + description: "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg, tiene una categoria semilla y una habilidad de espesura , es de tipo planta y veneno , tiene una debilidad de fuego, hielo, psiquico y volador , tiene varias evoluciones en las cuales tenemos a Bulbasaur -Ivysaur- Venusaur", + weakness: ["Fuego", "Hielo", "Psiquico", "Volador"], attack: 49, defense: 49, speed: 45, @@ -17,13 +18,14 @@ }, { name: "Charmander", - type: ["Fire"], + type: ["Fuego"], generation: 1, region: "Kanto", number: 4, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "La llama de su cola indica su fuerza vital, si esta debil, la llama ardera mas tenue", + description: "Charmander tiene una altura de 0.6m y un peso de 8.5kg , tiene una categoria lagartija y una habilidad de Mar llamas , es de tipo fuego y su debilidad es agua, tierra y roca , tiene varias evoluciones en las cuales tenemos a Charmander- Charmeleon -Charizard ", + weakness :["Agua","Tierra","Roca"], attack: 52, defense: 43, speed: 65, @@ -31,13 +33,14 @@ }, { name: "Squirtle", - type: ["Water"], + type: ["Agua"], generation: 1, region: "Kanto", number: 7, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Tras nacer, se le hincha el lomo y se le forma un caparazon. Escupe poderosa espuma por la boca", + description: "Squirtle tiene una altura de 0.5m y un peso de 9.0kg , tiene una categoria tortugita y una habilidad torrente , es de tipo agua y su debilidad es de planta y electrico , tiene varias evoluciones en las cuales tenemos a Squirtle - Wartortle- Blastoise", + weakness:["Agua"], attack: 48, defense: 65, speed: 43, @@ -45,13 +48,14 @@ }, { name: "Pikachu", - type: ["Electric"], + type: ["Electrico"], generation: 1, region: "Kanto", number: 25, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Cuando se enfada, este pokemon descarga la energia que almacena en le interior de las bolsas de las mejillas", + description: "Pikachu tiene una altura de 0.4m y un peso de 6.0kg , tiene una categoria Raton y una habilidad elec.estatica, es de tipo electrico y su debilidad es tierra , tiene varias evoluciones en las cuales tenemos Pichu- Pikachu- Raichu", + weakness:["Tierra"], attack: 55, defense: 40, speed: 90, @@ -59,13 +63,14 @@ }, { name: "Jigglypuff", - type: ["Normal", "Fairy"], + type: ["Normal", "Hada"], generation: 1, region: "Kanto", number: 39, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Cuando le tiemblan sus redondos y adorables ojos , entona una melodia agradable y misteriosa con la que duerme a sus enemigos", + description: "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg , tiene una categoria de globo y una habilidad gran encanto y tenacidad , es de tipo normal -hada y su debilidad es veneno -acero, tiene varias evoluciones en las cuales tenemos igglybuff- jigglypuff- wigglytuff", + weakness:["Veneno","Acero"], attack: 45, defense: 20, speed: 20, @@ -77,9 +82,10 @@ generation: 1, region: "Kanto", number: 52, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Durante el dia se deica a dormir de noche, vigila su territorio con un brillo en los ojos ", + description: "Meowth tiene una altura de 0.4m y un peso de 4.2kg, tiene una categoria de gato araña y una habilidad recogida y experto , es de tipo normal y su debilidad es lucha, tiene varias evoluciones en las cuales tenemos Meowth- Persian", + weakness:["Lucha"], attack: 45, defense: 35, speed: 90, @@ -87,13 +93,14 @@ }, { name: "Psyduck", - type: ["Water"], + type: ["Agua"], generation: 1, region: "Kanto", number: 54, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes", + description: "Psyduck tiene una altura de 0.8m y un peso de 19.6kg , tiene una categoria de pato y una habilidad humeda y de aclimatacion, es de tipo agua y su debilidad es planta -electrico , tiene varias evoluciones en las cuales tenemos Psyduck-Golduck", + weakness:["Planta","Electrico"], attack: 52, defense: 48, speed: 55, @@ -101,13 +108,14 @@ }, { name: "Machop", - type: ["Fighting"], + type: ["Lucha"], generation: 1, region: "Kanto", number: 66, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Es una masa de musculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas ", + description: "Machop tiene una altura de 0.8m y un peso de 19.5kg, tiene categoria super poder y una habilidad agallas e indefenso , es de tipo lucha y su debilidad volador- psiquico - hada, tiene varias evoluciones en las cuales tenemos Machop- Machoke -Machamp ", + weakness:["Volador","Psiquico","Hada"], attack: 80, defense: 50, speed: 35, @@ -115,13 +123,14 @@ }, { name: "Magnemite", - type: ["Electric", "Steel"], + type: ["Electrico", "Acero"], generation: 1, region: "Kanto", number: 81, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Las unidades laterales crean ondas electromagneticas que contrastan la gravedad y la permitenflorecer", + description: "Magnemite tiene una altura de 0.3m y un peso de 6.0kg , tiene una categoria iman y una habilidad robustez e iman , es de tipo electrico -acero y su debilidad fuego- lucha - tierra, tiene varias evoluciones en las cuales tenemos Magnemite- Magneton -Magnezone", + weakness:["Fuego","Lucha","Tierra"], attack: 35, defense: 70, speed: 45, @@ -129,13 +138,14 @@ }, { name: "Gengar", - type: ["Ghost", "Poison"], + type: ["Fantasma", "Veneno"], generation: 1, region: "Kanto", number: 94, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Para quitarle la vida a su presa , se dezlisa en su sombra y espera su oportunidad en silencio", + description: "Gengar tiene una altura de 1.5m y un peso de 40.5kg, tiene una categoria sombra y una habilidad cuerpo maldito, es de tipo fantasma -veneno y su debilidad tierra- psiquico- fantasma- siniestro, tiene varias evoluciones en las cuales tenemos Gastly- Haunter- Gengar", + weakness:["Tierra","Psiquico","Fantasma","Siniestro"], attack: 65, defense: 60, speed: 110, @@ -147,9 +157,10 @@ generation: 1, region: "Kanto", number: 133, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio ", + description: "Eevee tiene una altura de 0.3m y un peso de 6.5kg , tiene una categoria evolucion y una habilidad fuego y adaptable, es de tipo normal y si debilidad lucha , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafeon-Glaceon-Sylveon", + weakness:["Lucha"], attack: 55, defense: 50, speed: 55, @@ -161,9 +172,10 @@ generation: 1, region: "Kanto", number: 143, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Este pokemon es un gloton que lo unico que hace aparte de comer es dormir , puede ingerir hasta 400 kg de comida en un solo dia ", + description: "Snorlax tiene una altura de 2.1m y un peso de 460.0kg, tiene una categoria dormir y una habilidad sebo e inmunidad, es de tipo normal y su debilidad lucha , tiene varias evoluciones en las cuales tenemos Munchlax-Snorlax", + weakness:["Lucha"], attack: 110, defense: 65, speed: 30, @@ -171,13 +183,14 @@ }, { name: "Dragonite", - type: ["Dragon", "Flying"], + type: ["Dragon", "Volador"], generation: 1, region: "Kanto", number: 149, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Dicen que viven en una isla en algun lugar del oceano que solo ellos habitan ", + description: "Dragonite tiene una altura de 2.2m y un peso de 210.0kg , tiene una categoria dragon y una habilidad fuerza mental, es de tipo dragon y volador y su debilidad es hielo - roca- dragon- hada , tiene varias evoluciones en las cuales tenemos Dratini- Dragonar-Dragonite", + weakness:["Dragon","Volador"], attack: 134, defense: 95, speed: 80, @@ -185,13 +198,14 @@ }, { name: "Mewtwo", - type: ["Psychic"], + type: ["Psiquico"], generation: 1, - region: "Kanto", + region: "kanto", number: 150, - rarity: "Legendary", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Legendario", + shortDescription: "Su ADN es casi el mismo que el de mew. Sin emabargo, su tamaño y caracter son muy diferentes", + description: "Mewtwo tiene una altura de 2.0m y una peso de 122.0kg, tiene una categoria genetica y una habilidad presion, es de tipo psiquico y su debilidad bicho-fantasma-siniestro, este pokemon NO tiene eveoluciones ", + weakness:["Este Pokemon NO evoluciona"], attack: 110, defense: 90, speed: 130, @@ -199,13 +213,14 @@ }, { name: "Mew", - type: ["Psychic"], + type: ["Psiquico"], generation: 1, - region: "Kanto", + region: "kanto", number: 151, - rarity: "Mythical", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Mitica", + shortDescription: "Si se observa a traves de un miscroscopio puede distinguirse cuan corto , fino y delicado es el pelaje de este pokemon", + description: "Mew tiene una altura de 0.4m y un peso de 4.0kg , tiene una categoria niueva especie y una habilidad sincronica, es de tipo psiquico y su debilidad es bicho-fantasma- siniestro, este pokemon NO tiene evoluciones", + weakness:["Este Pokemon NO tiene evoluciones"], attack: 100, defense: 100, speed: 100, @@ -213,13 +228,14 @@ }, { name: "Chikorita", - type: ["Grass"], + type: ["Planta"], generation: 2, region: "Johto", number: 152, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios calidos", + description: "Chikorita tiene una altura de 0.9m y un peso de 6.4m , tiene una categoria hoja y una debilidad espesura, es de tipo planta y su debilidad Fuego- Hielo-Veneno-Volador-Bicho, tiene varias evoluciones en las cuales tenemos Chikorita-Bayleef-Maganium", + weakness:["Fuego","Hielo","Veneno","Volador","Bicho"], attack: 49, defense: 65, speed: 45, @@ -227,13 +243,14 @@ }, { name: "Cyndaquil", - type: ["Fire"], + type: ["Fuego"], generation: 2, region: "Johto", number: 155, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Suele estar encorbado . Si se enfada o se asusta lanzara llamas por el lomo", + description: "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg , tiene una categoria de Raton Fuego y una habilidad Mar llamas , es de tipo Fuego y su debilidad es agua- tierra- roca, tiene varias evoluciones en las cuales tenemos Cyndaquil-Quilava-Typhlosion-Typhlosion ", + weakness:["Agua","Tierra","Roca"], attack: 52, defense: 43, speed: 65, @@ -241,13 +258,14 @@ }, { name: "Totodile", - type: ["Water"], + type: ["Agua"], generation: 2, region: "Johto", number: 158, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Sus desarrolladas y potentes mandibulas pueden triturar cualquier cosa , por lo que hasta su propio entrenador debe andarse con cuidado ", + description: "Totodile tiene una altura de 0.6m y un peso de 9.5 kg, tiene una categoria fauces y una habilidad torrente , es de tipo agua y su debilidad es planta- electrico , tiene varias evoluciones en las cuales tenemos Totodile-Croconaw-Feraligatr", + weakness:["Planta","Electrico"], attack: 65, defense: 64, speed: 43, @@ -255,13 +273,14 @@ }, { name: "Togepi", - type: ["Fairy"], + type: ["Hada"], generation: 2, region: "Johto", number: 175, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "El cascaron parece estar lleno de alegria , dicen que trae buena suerte si se le trata con cariño", + description: "Togepi tiene una altura de 0.3m y un peso de 1.5 kg , tiene una categoria de Boladavos y una habilidad dicha - entusiamo , es de tipo hada y su debilidad es veneno- acero, tiene varias evoluciones en las cuales tenemos Togepi- Togetic- Togekiss ", + weakness:["Veneno","Acero"], attack: 20, defense: 65, speed: 20, @@ -269,13 +288,14 @@ }, { name: "Mareep", - type: ["Electric"], + type: ["Electrico"], generation: 2, region: "Johto", number: 179, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Cuando almacena electricidad estatica en su cuerpo, la lana dobla su volumen , quien lo toque recibira una descarga", + description: "Mareep tiene una altura de 0.6 m y un peso de 7.8 kg , tiene una categoria luna y una habilidad elc. estatica, es de tipo electrico y su debilidad es tierra ,tiene varias evoluciones en las cuales tenemos Mareep-Flaffy-Amphoros", + weakness:["Tierra"], attack: 40, defense: 40, speed: 35, @@ -283,13 +303,14 @@ }, { name: "Espeon", - type: ["Psychic"], + type: ["Psiquico"], generation: 2, region: "Johto", number: 196, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifida tiemblan ligeramente ", + description: "Espeon tiene una altura de 0.9m y un peso de 26.5kg , tiene una categoria sol y una habilidad sincronica , es de tipo psiquico y su debilidad bicho-fantasma -siniestro , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", + weakness:["Bicho","Fantasma","Siniestro"], attack: 65, defense: 60, speed: 110, @@ -297,13 +318,14 @@ }, { name: "Umbreon", - type: ["Dark"], + type: ["Siniestro"], generation: 2, region: "Johto", number: 197, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Si se expone el aura de la luna los anillos de su cuerpo relucen y adquieren un poder misterioso ", + description: "Umbreon tiene una altura de 1.0m y un peso de 27.0kg, tiene una categoria luz lunar y una habilidad sincronia , es de tipo siniestro y su debilidad es lucha-bicho-hada , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", + weakness:["Lucha","Bicho","Hada"], attack: 65, defense: 110, speed: 65, @@ -311,13 +333,14 @@ }, { name: "Murkrow", - type: ["Dark", "Flying"], + type: ["Siniestro", "Volada"], generation: 2, region: "Johto", number: 198, - rarity: "Common", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Comun", + shortDescription: "Temido y odiado por muchos , dien que traen la desgracia a todos aquellos que lo ven por la noche", + description: "Murkroe tiene una altura de 0.5m y un peso de 2.1 kg , tiene una categoria oscuridad y su habilidad es insominio - afortunado , es de tipo siniestro-volada y su debilidad es electrico -hielo-roca- hada, tiene varias evoluciones en las cuales tenemos Murkrow-Honchkrow ", + weakness:["Electrico","Hielo","Roca","Hada"], attack: 85, defense: 42, speed: 91, @@ -329,9 +352,10 @@ generation: 2, region: "Johto", number: 242, - rarity: "Rare", - shortDescription: "es un gato tonto", - description: "es enorme", + rarity: "Extraño", + shortDescription: "Cualquiera que pruebe un poco de huevo de blissey, se volvera mas amable y agradable con todos", + description: "Blissey tine una altura de 1.5m y un peso de 46.8 kg , tiene una categoria feiicidad y una habilidad cura natural-dicha , es de tipo normal y su debilidad es lucha , tiene varias evoluciones en las cuales tenemos Happing-Chansey -Blissey", + weakness:["Lucha"], attack: 10, defense: 10, speed: 55, diff --git a/src/view.js b/src/view.js index 8072e038..a6c3cec9 100644 --- a/src/view.js +++ b/src/view.js @@ -16,7 +16,7 @@ export function renderItems(data) {

    RAREZA: ${pokemon.rarity}

    PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

    DESCRIPCION: ${pokemon.description}

    -

    EVOLUCION: ${pokemon.evolution}

    +

    DEBILIDAD: ${pokemon.weakness}

    ATAQUE: ${pokemon.attack}

    DEFENSA: ${pokemon.defense}

    VELOCIDAD: ${pokemon.speed}

    From 265152dd5832df0999a14b35b672ab5bae4cc0a2 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Tue, 18 Jun 2024 12:15:53 -0600 Subject: [PATCH 06/43] cambios en html --- src/index.html | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/src/index.html b/src/index.html index 4466e2a1..1ca1792b 100644 --- a/src/index.html +++ b/src/index.html @@ -18,15 +18,47 @@

    POKEMON

    Pokémon Cards

    -
    - - - - + + + + + + + + + + + + + + + - +
      From 2424468b7b880abd0c08c727da86c479c6816eec Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Wed, 19 Jun 2024 00:05:36 -0600 Subject: [PATCH 07/43] cambios de cartas --- src/data/dataset.js | 650 +++++++++++++++++++++++--------------------- 1 file changed, 337 insertions(+), 313 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index 75d34b84..380c5c80 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -2,364 +2,388 @@ const pokemonData = [ { - name: "Bulbasaur", - type: ["Planta", "Veneno"], - generation: 1, - region: "Kanto", - number: 1, - rarity: "Comun", - shortDescription: "Tras nacer, crece alimentandose durante un tiempo de los nutrientes que contiene el bulbo de su lomo ", - description: "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg, tiene una categoria semilla y una habilidad de espesura , es de tipo planta y veneno , tiene una debilidad de fuego, hielo, psiquico y volador , tiene varias evoluciones en las cuales tenemos a Bulbasaur -Ivysaur- Venusaur", - weakness: ["Fuego", "Hielo", "Psiquico", "Volador"], - attack: 49, - defense: 49, - speed: 45, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png" + "id": "bulbasaur", + "name":"Bulbasaur", + "type": ["Planta", "Veneno"], + "generation": 1, + "region": "Kanto", + "number": 1, + "rarity": "Comun", + "shortDescription": "Tras nacer, Crece alimentandose durante un tiempo de los nutrientes que contiene el bulbo de su lomo ", + "description": "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg, Tiene una Categoria Semilla y una Habilidad de espesura , es de tipo Planta y Veneno , tiene una debilidad de Fuego, Hielo, Psiquico y Volador , tiene varias evoluciones en las cuales tenemos a Bulbasaur -Ivysaur- Venusaur", + "weakness": ["Fuego", "Hielo", "Psiquico", "Volador"], + "attack": 49, + "defense": 49, + "speed": 45, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png" }, { - name: "Charmander", - type: ["Fuego"], - generation: 1, - region: "Kanto", - number: 4, - rarity: "Comun", - shortDescription: "La llama de su cola indica su fuerza vital, si esta debil, la llama ardera mas tenue", - description: "Charmander tiene una altura de 0.6m y un peso de 8.5kg , tiene una categoria lagartija y una habilidad de Mar llamas , es de tipo fuego y su debilidad es agua, tierra y roca , tiene varias evoluciones en las cuales tenemos a Charmander- Charmeleon -Charizard ", - weakness :["Agua","Tierra","Roca"], - attack: 52, - defense: 43, - speed: 65, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png" + "id":"charmander", + "name":"Charmander", + "type": ["Fuego"], + "generation": 1, + "region": "Kanto", + "number": 4, + "rarity": "Comun", + "shortDescription": "La llama de su cola indica su fuerza vital, si esta debil, la llama ardera mas tenue", + "description": "Charmander tiene una altura de 0.6m y un peso de 8.5kg , Tiene una categoria Lagartija y una habilidad de Mar llamas , es de tipo Fuego y su debilidad es Agua, Tierra y Roca , tiene varias evoluciones en las cuales tenemos a Charmander- Charmeleon -Charizard ", + "weakness" :["Agua","Tierra","Roca"], + "attack": 52, + "defense": 43, + "speed": 65, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png" }, { - name: "Squirtle", - type: ["Agua"], - generation: 1, - region: "Kanto", - number: 7, - rarity: "Comun", - shortDescription: "Tras nacer, se le hincha el lomo y se le forma un caparazon. Escupe poderosa espuma por la boca", - description: "Squirtle tiene una altura de 0.5m y un peso de 9.0kg , tiene una categoria tortugita y una habilidad torrente , es de tipo agua y su debilidad es de planta y electrico , tiene varias evoluciones en las cuales tenemos a Squirtle - Wartortle- Blastoise", - weakness:["Agua"], - attack: 48, - defense: 65, - speed: 43, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png" + "id": "squirtle", + "name": "Squirtle", + "type": ["Agua"], + "generation": 1, + "region": "Kanto", + "number": 7, + "rarity": "Comun", + "shortDescription": "Tras nacer, se le hincha el lomo y se le forma un caparazon. Escupe poderosa espuma por la boca", + "description": "Squirtle tiene una altura de 0.5m y un peso de 9.0kg , Tiene una categoria Tortugita y una habilidad Torrente , es de tipo Agua y su debilidad es de Planta y Electrico , tiene varias evoluciones en las cuales tenemos a Squirtle - Wartortle- Blastoise", + "weakness":["Agua"], + "attack": 48, + "defense": 65, + "speed": 43, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png" }, { - name: "Pikachu", - type: ["Electrico"], - generation: 1, - region: "Kanto", - number: 25, - rarity: "Comun", - shortDescription: "Cuando se enfada, este pokemon descarga la energia que almacena en le interior de las bolsas de las mejillas", - description: "Pikachu tiene una altura de 0.4m y un peso de 6.0kg , tiene una categoria Raton y una habilidad elec.estatica, es de tipo electrico y su debilidad es tierra , tiene varias evoluciones en las cuales tenemos Pichu- Pikachu- Raichu", - weakness:["Tierra"], - attack: 55, - defense: 40, - speed: 90, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png" + "id":"pikachu", + "name": "Pikachu", + "type": ["Electrico"], + "generation": 1, + "region": "Kanto", + "number": 25, + "rarity": "Comun", + "shortDescription": "Cuando se enfada, este pokemon descarga la energia que almacena en le interior de las bolsas de las mejillas", + "description": "Pikachu tiene una altura de 0.4m y un peso de 6.0kg , tiene una categoria Raton y una habilidad elec.estatica, es de tipo electrico y su debilidad es tierra , tiene varias evoluciones en las cuales tenemos Pichu- Pikachu- Raichu", + "weakness":["Tierra"], + "attack": 55, + "defense": 40, + "speed": 90, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png" }, { - name: "Jigglypuff", - type: ["Normal", "Hada"], - generation: 1, - region: "Kanto", - number: 39, - rarity: "Comun", - shortDescription: "Cuando le tiemblan sus redondos y adorables ojos , entona una melodia agradable y misteriosa con la que duerme a sus enemigos", - description: "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg , tiene una categoria de globo y una habilidad gran encanto y tenacidad , es de tipo normal -hada y su debilidad es veneno -acero, tiene varias evoluciones en las cuales tenemos igglybuff- jigglypuff- wigglytuff", - weakness:["Veneno","Acero"], - attack: 45, - defense: 20, - speed: 20, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png" + "id":"jigglypuff", + "name": "Jigglypuff", + "type": ["Normal", "Hada"], + "generation": 1, + "region": "Kanto", + "number": 39, + "rarity": "Comun", + "shortDescription": "Cuando le tiemblan sus redondos y adorables ojos , entona una melodia agradable y misteriosa con la que duerme a sus enemigos", + "description": "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg , tiene una categoria de globo y una habilidad gran encanto y tenacidad , es de tipo normal -hada y su debilidad es veneno -acero, tiene varias evoluciones en las cuales tenemos igglybuff- jigglypuff- wigglytuff", + "weakness":["Veneno","Acero"], + "attack": 45, + "defense": 20, + "speed": 20, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png" }, { - name: "Meowth", - type: ["Normal"], - generation: 1, - region: "Kanto", - number: 52, - rarity: "Comun", - shortDescription: "Durante el dia se deica a dormir de noche, vigila su territorio con un brillo en los ojos ", - description: "Meowth tiene una altura de 0.4m y un peso de 4.2kg, tiene una categoria de gato araña y una habilidad recogida y experto , es de tipo normal y su debilidad es lucha, tiene varias evoluciones en las cuales tenemos Meowth- Persian", - weakness:["Lucha"], - attack: 45, - defense: 35, - speed: 90, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png" + "id":"meowth", + "name": "Meowth", + "type": ["Normal"], + "generation": 1, + "region": "Kanto", + "number": 52, + "rarity": "Comun", + "shortDescription": "Durante el dia se deica a dormir de noche, vigila su territorio con un brillo en los ojos ", + "description": "Meowth tiene una altura de 0.4m y un peso de 4.2kg, tiene una categoria de gato araña y una habilidad recogida y experto , es de tipo normal y su debilidad es lucha, tiene varias evoluciones en las cuales tenemos Meowth- Persian", + "weakness":["Lucha"], + "attack": 45, + "defense": 35, + "speed": 90, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png" }, { - name: "Psyduck", - type: ["Agua"], - generation: 1, - region: "Kanto", - number: 54, - rarity: "Comun", - shortDescription: "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes", - description: "Psyduck tiene una altura de 0.8m y un peso de 19.6kg , tiene una categoria de pato y una habilidad humeda y de aclimatacion, es de tipo agua y su debilidad es planta -electrico , tiene varias evoluciones en las cuales tenemos Psyduck-Golduck", - weakness:["Planta","Electrico"], - attack: 52, - defense: 48, - speed: 55, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png" + "id":"psyduck", + "name": "Psyduck", + "type": ["Agua"], + "generation": 1, + "region": "Kanto", + "number": 54, + "rarity": "Comun", + "shortDescription": "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes", + "description": "Psyduck tiene una altura de 0.8m y un peso de 19.6kg , tiene una categoria de pato y una habilidad humeda y de aclimatacion, es de tipo agua y su debilidad es planta -electrico , tiene varias evoluciones en las cuales tenemos Psyduck-Golduck", + "weakness":["Planta","Electrico"], + "attack": 52, + "defense": 48, + "speed": 55, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png" }, { - name: "Machop", - type: ["Lucha"], - generation: 1, - region: "Kanto", - number: 66, - rarity: "Comun", - shortDescription: "Es una masa de musculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas ", - description: "Machop tiene una altura de 0.8m y un peso de 19.5kg, tiene categoria super poder y una habilidad agallas e indefenso , es de tipo lucha y su debilidad volador- psiquico - hada, tiene varias evoluciones en las cuales tenemos Machop- Machoke -Machamp ", - weakness:["Volador","Psiquico","Hada"], - attack: 80, - defense: 50, - speed: 35, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png" + "id":"machop", + "name": "Machop", + "type": ["Lucha"], + "generation": 1, + "region": "Kanto", + "number": 66, + "rarity": "Comun", + "shortDescription": "Es una masa de musculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas ", + "description": "Machop tiene una altura de 0.8m y un peso de 19.5kg, tiene categoria super poder y una habilidad agallas e indefenso , es de tipo lucha y su debilidad volador- psiquico - hada, tiene varias evoluciones en las cuales tenemos Machop- Machoke -Machamp ", + "weakness":["Volador","Psiquico","Hada"], + "attack": 80, + "defense": 50, + "speed": 35, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png" }, { - name: "Magnemite", - type: ["Electrico", "Acero"], - generation: 1, - region: "Kanto", - number: 81, - rarity: "Comun", - shortDescription: "Las unidades laterales crean ondas electromagneticas que contrastan la gravedad y la permitenflorecer", - description: "Magnemite tiene una altura de 0.3m y un peso de 6.0kg , tiene una categoria iman y una habilidad robustez e iman , es de tipo electrico -acero y su debilidad fuego- lucha - tierra, tiene varias evoluciones en las cuales tenemos Magnemite- Magneton -Magnezone", - weakness:["Fuego","Lucha","Tierra"], - attack: 35, - defense: 70, - speed: 45, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png" + "id":"magnemite", + "name": "Magnemite", + "type": ["Electrico", "Acero"], + "generation": 1, + "region": "Kanto", + "number": 81, + "rarity": "Comun", + "shortDescription": "Las unidades laterales crean ondas electromagneticas que contrastan la gravedad y la permitenflorecer", + "description": "Magnemite tiene una altura de 0.3m y un peso de 6.0kg , tiene una categoria iman y una habilidad robustez e iman , es de tipo electrico -acero y su debilidad fuego- lucha - tierra, tiene varias evoluciones en las cuales tenemos Magnemite- Magneton -Magnezone", + "weakness":["Fuego","Lucha","Tierra"], + "attack": 35, + "defense": 70, + "speed": 45, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png" }, { - name: "Gengar", - type: ["Fantasma", "Veneno"], - generation: 1, - region: "Kanto", - number: 94, - rarity: "Extraño", - shortDescription: "Para quitarle la vida a su presa , se dezlisa en su sombra y espera su oportunidad en silencio", - description: "Gengar tiene una altura de 1.5m y un peso de 40.5kg, tiene una categoria sombra y una habilidad cuerpo maldito, es de tipo fantasma -veneno y su debilidad tierra- psiquico- fantasma- siniestro, tiene varias evoluciones en las cuales tenemos Gastly- Haunter- Gengar", - weakness:["Tierra","Psiquico","Fantasma","Siniestro"], - attack: 65, - defense: 60, - speed: 110, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png" + "id":"gengar", + "name": "Gengar", + "type": ["Fantasma", "Veneno"], + "generation": 1, + "region": "Kanto", + "number": 94, + "rarity": "Extraño", + "shortDescription": "Para quitarle la vida a su presa , se dezlisa en su sombra y espera su oportunidad en silencio", + "description": "Gengar tiene una altura de 1.5m y un peso de 40.5kg, tiene una categoria sombra y una habilidad cuerpo maldito, es de tipo fantasma -veneno y su debilidad tierra- psiquico- fantasma- siniestro, tiene varias evoluciones en las cuales tenemos Gastly- Haunter- Gengar", + "weakness":["Tierra","Psiquico","Fantasma","Siniestro"], + "attack": 65, + "defense": 60, + "speed": 110, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png" }, { - name: "Eevee", - type: ["Normal"], - generation: 1, - region: "Kanto", - number: 133, - rarity: "Comun", - shortDescription: "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio ", - description: "Eevee tiene una altura de 0.3m y un peso de 6.5kg , tiene una categoria evolucion y una habilidad fuego y adaptable, es de tipo normal y si debilidad lucha , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafeon-Glaceon-Sylveon", - weakness:["Lucha"], - attack: 55, - defense: 50, - speed: 55, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png" + "id":"eevee", + "name": "Eevee", + "type": ["Normal"], + "generation": 1, + "region": "Kanto", + "number": 133, + "rarity": "Comun", + "shortDescription": "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio ", + "description": "Eevee tiene una altura de 0.3m y un peso de 6.5kg , tiene una categoria evolucion y una habilidad fuego y adaptable, es de tipo normal y si debilidad lucha , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafeon-Glaceon-Sylveon", + "weakness":["Lucha"], + "attack": 55, + "defense": 50, + "speed": 55, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png" }, { - name: "Snorlax", - type: ["Normal"], - generation: 1, - region: "Kanto", - number: 143, - rarity: "Extraño", - shortDescription: "Este pokemon es un gloton que lo unico que hace aparte de comer es dormir , puede ingerir hasta 400 kg de comida en un solo dia ", - description: "Snorlax tiene una altura de 2.1m y un peso de 460.0kg, tiene una categoria dormir y una habilidad sebo e inmunidad, es de tipo normal y su debilidad lucha , tiene varias evoluciones en las cuales tenemos Munchlax-Snorlax", - weakness:["Lucha"], - attack: 110, - defense: 65, - speed: 30, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png" + "id":"snorlax", + "name": "Snorlax", + "type": ["Normal"], + "generation": 1, + "region": "Kanto", + "number": 143, + "rarity": "Extraño", + "shortDescription": "Este pokemon es un gloton que lo unico que hace aparte de comer es dormir , puede ingerir hasta 400 kg de comida en un solo dia ", + "description": "Snorlax tiene una altura de 2.1m y un peso de 460.0kg, tiene una categoria dormir y una habilidad sebo e inmunidad, es de tipo normal y su debilidad lucha , tiene varias evoluciones en las cuales tenemos Munchlax-Snorlax", + "weakness":["Lucha"], + "attack": 110, + "defense": 65, + "speed": 30, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png" }, { - name: "Dragonite", - type: ["Dragon", "Volador"], - generation: 1, - region: "Kanto", - number: 149, - rarity: "Extraño", - shortDescription: "Dicen que viven en una isla en algun lugar del oceano que solo ellos habitan ", - description: "Dragonite tiene una altura de 2.2m y un peso de 210.0kg , tiene una categoria dragon y una habilidad fuerza mental, es de tipo dragon y volador y su debilidad es hielo - roca- dragon- hada , tiene varias evoluciones en las cuales tenemos Dratini- Dragonar-Dragonite", - weakness:["Dragon","Volador"], - attack: 134, - defense: 95, - speed: 80, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png" + "id":"dragonite", + "name": "Dragonite", + "type": ["Dragon", "Volador"], + "generation": 1, + "region": "Kanto", + "number": 149, + "rarity": "Extraño", + "shortDescription": "Dicen que viven en una isla en algun lugar del oceano que solo ellos habitan ", + "description": "Dragonite tiene una altura de 2.2m y un peso de 210.0kg , tiene una categoria dragon y una habilidad fuerza mental, es de tipo dragon y volador y su debilidad es hielo - roca- dragon- hada , tiene varias evoluciones en las cuales tenemos Dratini- Dragonar-Dragonite", + "weakness":["Dragon","Volador"], + "attack": 134, + "defense": 95, + "speed": 80, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png" }, - { - name: "Mewtwo", - type: ["Psiquico"], - generation: 1, - region: "kanto", - number: 150, - rarity: "Legendario", - shortDescription: "Su ADN es casi el mismo que el de mew. Sin emabargo, su tamaño y caracter son muy diferentes", - description: "Mewtwo tiene una altura de 2.0m y una peso de 122.0kg, tiene una categoria genetica y una habilidad presion, es de tipo psiquico y su debilidad bicho-fantasma-siniestro, este pokemon NO tiene eveoluciones ", - weakness:["Este Pokemon NO evoluciona"], - attack: 110, - defense: 90, - speed: 130, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png" + { + "id":"mewtwo", + "name": "Mewtwo", + "type": ["Psiquico"], + "generation": 1, + "region": "kanto", + "number": 150, + "rarity": "Legendario", + "shortDescription": "Su ADN es casi el mismo que el de mew. Sin emabargo, su tamaño y caracter son muy diferentes", + "description": "Mewtwo tiene una altura de 2.0m y una peso de 122.0kg, tiene una categoria genetica y una habilidad presion, es de tipo psiquico y su debilidad bicho-fantasma-siniestro, este pokemon NO tiene eveoluciones ", + "weakness":["Este Pokemon NO evoluciona"], + "attack": 110, + "defense": 90, + "speed": 130, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png" }, { - name: "Mew", - type: ["Psiquico"], - generation: 1, - region: "kanto", - number: 151, - rarity: "Mitica", - shortDescription: "Si se observa a traves de un miscroscopio puede distinguirse cuan corto , fino y delicado es el pelaje de este pokemon", - description: "Mew tiene una altura de 0.4m y un peso de 4.0kg , tiene una categoria niueva especie y una habilidad sincronica, es de tipo psiquico y su debilidad es bicho-fantasma- siniestro, este pokemon NO tiene evoluciones", - weakness:["Este Pokemon NO tiene evoluciones"], - attack: 100, - defense: 100, - speed: 100, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png" + "id":"new", + "name": "Mew", + "type": ["Psiquico"], + "generation": 1, + "region": "kanto", + "number": 151, + "rarity": "Mitica", + "shortDescription": "Si se observa a traves de un miscroscopio puede distinguirse cuan corto , fino y delicado es el pelaje de este pokemon", + "description": "Mew tiene una altura de 0.4m y un peso de 4.0kg , tiene una categoria niueva especie y una habilidad sincronica, es de tipo psiquico y su debilidad es bicho-fantasma- siniestro, este pokemon NO tiene evoluciones", + "weakness":["Este Pokemon NO tiene evoluciones"], + "attack": 100, + "defense": 100, + "speed": 100, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png" }, { - name: "Chikorita", - type: ["Planta"], - generation: 2, - region: "Johto", - number: 152, - rarity: "Comun", - shortDescription: "le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios calidos", - description: "Chikorita tiene una altura de 0.9m y un peso de 6.4m , tiene una categoria hoja y una debilidad espesura, es de tipo planta y su debilidad Fuego- Hielo-Veneno-Volador-Bicho, tiene varias evoluciones en las cuales tenemos Chikorita-Bayleef-Maganium", - weakness:["Fuego","Hielo","Veneno","Volador","Bicho"], - attack: 49, - defense: 65, - speed: 45, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png" + "id":"chikorita", + "name": "Chikorita", + "type": ["Planta"], + "generation": 2, + "region": "Johto", + "number": 152, + "rarity": "Comun", + "shortDescription": "le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios calidos", + "description": "Chikorita tiene una altura de 0.9m y un peso de 6.4m , tiene una categoria hoja y una debilidad espesura, es de tipo planta y su debilidad Fuego- Hielo-Veneno-Volador-Bicho, tiene varias evoluciones en las cuales tenemos Chikorita-Bayleef-Maganium", + "weakness":["Fuego","Hielo","Veneno","Volador","Bicho"], + "attack": 49, + "defense": 65, + "speed": 45, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png" }, { - name: "Cyndaquil", - type: ["Fuego"], - generation: 2, - region: "Johto", - number: 155, - rarity: "Comun", - shortDescription: "Suele estar encorbado . Si se enfada o se asusta lanzara llamas por el lomo", - description: "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg , tiene una categoria de Raton Fuego y una habilidad Mar llamas , es de tipo Fuego y su debilidad es agua- tierra- roca, tiene varias evoluciones en las cuales tenemos Cyndaquil-Quilava-Typhlosion-Typhlosion ", - weakness:["Agua","Tierra","Roca"], - attack: 52, - defense: 43, - speed: 65, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png" + "id":"cyndaquil", + "name": "Cyndaquil", + "type": ["Fuego"], + "generation": 2, + "region": "Johto", + "number": 155, + "rarity": "Comun", + "shortDescription": "Suele estar encorbado . Si se enfada o se asusta lanzara llamas por el lomo", + "description": "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg , tiene una categoria de Raton Fuego y una habilidad Mar llamas , es de tipo Fuego y su debilidad es agua- tierra- roca, tiene varias evoluciones en las cuales tenemos Cyndaquil-Quilava-Typhlosion-Typhlosion ", + "weakness":["Agua","Tierra","Roca"], + "attack": 52, + "defense": 43, + "speed": 65, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png" }, { - name: "Totodile", - type: ["Agua"], - generation: 2, - region: "Johto", - number: 158, - rarity: "Comun", - shortDescription: "Sus desarrolladas y potentes mandibulas pueden triturar cualquier cosa , por lo que hasta su propio entrenador debe andarse con cuidado ", - description: "Totodile tiene una altura de 0.6m y un peso de 9.5 kg, tiene una categoria fauces y una habilidad torrente , es de tipo agua y su debilidad es planta- electrico , tiene varias evoluciones en las cuales tenemos Totodile-Croconaw-Feraligatr", - weakness:["Planta","Electrico"], - attack: 65, - defense: 64, - speed: 43, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png" + "id":"totodile", + "name": "Totodile", + "type": ["Agua"], + "generation": 2, + "region": "Johto", + "number": 158, + "rarity": "Comun", + "shortDescription": "Sus desarrolladas y potentes mandibulas pueden triturar cualquier cosa , por lo que hasta su propio entrenador debe andarse con cuidado ", + "description": "Totodile tiene una altura de 0.6m y un peso de 9.5 kg, tiene una categoria fauces y una habilidad torrente , es de tipo agua y su debilidad es planta- electrico , tiene varias evoluciones en las cuales tenemos Totodile-Croconaw-Feraligatr", + "weakness":["Planta","Electrico"], + "attack": 65, + "defense": 64, + "speed": 43, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png" }, { - name: "Togepi", - type: ["Hada"], - generation: 2, - region: "Johto", - number: 175, - rarity: "Comun", - shortDescription: "El cascaron parece estar lleno de alegria , dicen que trae buena suerte si se le trata con cariño", - description: "Togepi tiene una altura de 0.3m y un peso de 1.5 kg , tiene una categoria de Boladavos y una habilidad dicha - entusiamo , es de tipo hada y su debilidad es veneno- acero, tiene varias evoluciones en las cuales tenemos Togepi- Togetic- Togekiss ", - weakness:["Veneno","Acero"], - attack: 20, - defense: 65, - speed: 20, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png" + "id":"togepi", + "name": "Togepi", + "type": ["Hada"], + "generation": 2, + "region": "Johto", + "number": 175, + "rarity": "Comun", + "shortDescription": "El cascaron parece estar lleno de alegria , dicen que trae buena suerte si se le trata con cariño", + "description": "Togepi tiene una altura de 0.3m y un peso de 1.5 kg , tiene una categoria de Boladavos y una habilidad dicha - entusiamo , es de tipo hada y su debilidad es veneno- acero, tiene varias evoluciones en las cuales tenemos Togepi- Togetic- Togekiss ", + "weakness":["Veneno","Acero"], + "attack": 20, + "defense": 65, + "speed": 20, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png" }, { - name: "Mareep", - type: ["Electrico"], - generation: 2, - region: "Johto", - number: 179, - rarity: "Comun", - shortDescription: "Cuando almacena electricidad estatica en su cuerpo, la lana dobla su volumen , quien lo toque recibira una descarga", - description: "Mareep tiene una altura de 0.6 m y un peso de 7.8 kg , tiene una categoria luna y una habilidad elc. estatica, es de tipo electrico y su debilidad es tierra ,tiene varias evoluciones en las cuales tenemos Mareep-Flaffy-Amphoros", - weakness:["Tierra"], - attack: 40, - defense: 40, - speed: 35, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png" + "id":"mareep", + "name": "Mareep", + "type": ["Electrico"], + "generation": 2, + "region": "Johto", + "number": 179, + "rarity": "Comun", + "shortDescription": "Cuando almacena electricidad estatica en su cuerpo, la lana dobla su volumen , quien lo toque recibira una descarga", + "description": "Mareep tiene una altura de 0.6 m y un peso de 7.8 kg , tiene una categoria luna y una habilidad elc. estatica, es de tipo electrico y su debilidad es tierra ,tiene varias evoluciones en las cuales tenemos Mareep-Flaffy-Amphoros", + "weakness":["Tierra"], + "attack": 40, + "defense": 40, + "speed": 35, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png" }, { - name: "Espeon", - type: ["Psiquico"], - generation: 2, - region: "Johto", - number: 196, - rarity: "Extraño", - shortDescription: "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifida tiemblan ligeramente ", - description: "Espeon tiene una altura de 0.9m y un peso de 26.5kg , tiene una categoria sol y una habilidad sincronica , es de tipo psiquico y su debilidad bicho-fantasma -siniestro , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", - weakness:["Bicho","Fantasma","Siniestro"], - attack: 65, - defense: 60, - speed: 110, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png" + "id":"espeon", + "name": "Espeon", + "type": ["Psiquico"], + "generation": 2, + "region": "Johto", + "number": 196, + "rarity": "Extraño", + "shortDescription": "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifida tiemblan ligeramente ", + "description": "Espeon tiene una altura de 0.9m y un peso de 26.5kg , tiene una categoria sol y una habilidad sincronica , es de tipo psiquico y su debilidad bicho-fantasma -siniestro , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", + "weakness":["Bicho","Fantasma","Siniestro"], + "attack": 65, + "defense": 60, + "speed": 110, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png" }, { - name: "Umbreon", - type: ["Siniestro"], - generation: 2, - region: "Johto", - number: 197, - rarity: "Extraño", - shortDescription: "Si se expone el aura de la luna los anillos de su cuerpo relucen y adquieren un poder misterioso ", - description: "Umbreon tiene una altura de 1.0m y un peso de 27.0kg, tiene una categoria luz lunar y una habilidad sincronia , es de tipo siniestro y su debilidad es lucha-bicho-hada , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", - weakness:["Lucha","Bicho","Hada"], - attack: 65, - defense: 110, - speed: 65, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png" + "id":"umbreon", + "name": "Umbreon", + "type": ["Siniestro"], + "generation": 2, + "region": "Johto", + "number": 197, + "rarity": "Extraño", + "shortDescription": "Si se expone el aura de la luna los anillos de su cuerpo relucen y adquieren un poder misterioso ", + "description": "Umbreon tiene una altura de 1.0m y un peso de 27.0kg, tiene una categoria luz lunar y una habilidad sincronia , es de tipo siniestro y su debilidad es lucha-bicho-hada , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", + "weakness":["Lucha","Bicho","Hada"], + "attack": 65, + "defense": 110, + "speed": 65, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png" }, { - name: "Murkrow", - type: ["Siniestro", "Volada"], - generation: 2, - region: "Johto", - number: 198, - rarity: "Comun", - shortDescription: "Temido y odiado por muchos , dien que traen la desgracia a todos aquellos que lo ven por la noche", - description: "Murkroe tiene una altura de 0.5m y un peso de 2.1 kg , tiene una categoria oscuridad y su habilidad es insominio - afortunado , es de tipo siniestro-volada y su debilidad es electrico -hielo-roca- hada, tiene varias evoluciones en las cuales tenemos Murkrow-Honchkrow ", - weakness:["Electrico","Hielo","Roca","Hada"], - attack: 85, - defense: 42, - speed: 91, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png" + "id":"murkrow", + "name": "Murkrow", + "type": ["Siniestro", "Volada"], + "generation": 2, + "region": "Johto", + "number": 198, + "rarity": "Comun", + "shortDescription": "Temido y odiado por muchos , dien que traen la desgracia a todos aquellos que lo ven por la noche", + "description": "Murkroe tiene una altura de 0.5m y un peso de 2.1 kg , tiene una categoria oscuridad y su habilidad es insominio - afortunado , es de tipo siniestro-volada y su debilidad es electrico -hielo-roca- hada, tiene varias evoluciones en las cuales tenemos Murkrow-Honchkrow ", + "weakness":["Electrico","Hielo","Roca","Hada"], + "attack": 85, + "defense": 42, + "speed": 91, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png" }, { - name: "Blissey", - type: ["Normal"], - generation: 2, - region: "Johto", - number: 242, - rarity: "Extraño", - shortDescription: "Cualquiera que pruebe un poco de huevo de blissey, se volvera mas amable y agradable con todos", - description: "Blissey tine una altura de 1.5m y un peso de 46.8 kg , tiene una categoria feiicidad y una habilidad cura natural-dicha , es de tipo normal y su debilidad es lucha , tiene varias evoluciones en las cuales tenemos Happing-Chansey -Blissey", - weakness:["Lucha"], - attack: 10, - defense: 10, - speed: 55, - image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png" + "id":"blissey", + "name": "Blissey", + "type": ["Normal"], + "generation": 2, + "region": "Johto", + "number": 242, + "rarity": "Extraño", + "shortDescription": "Cualquiera que pruebe un poco de huevo de blissey, se volvera mas amable y agradable con todos", + "description": "Blissey tine una altura de 1.5m y un peso de 46.8 kg , tiene una categoria feiicidad y una habilidad cura natural-dicha , es de tipo normal y su debilidad es lucha , tiene varias evoluciones en las cuales tenemos Happing-Chansey -Blissey", + "weakness":["Lucha"], + "attack": 10, + "defense": 10, + "speed": 55, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png" } ]; From bfb6771a57a1a01943ee1511cc38be5a6e5060a3 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Thu, 20 Jun 2024 19:38:38 -0600 Subject: [PATCH 08/43] adicionar facts --- src/data/dataset.js | 795 ++++++++++++++++++++++++++------------------ src/index.html | 174 +++++----- src/main.js | 94 ++++++ src/view.js | 31 +- 4 files changed, 685 insertions(+), 409 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index 380c5c80..e381dde6 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -1,38 +1,48 @@ - - const pokemonData = [ - { +const pokemonData = [ + { "id": "bulbasaur", - "name":"Bulbasaur", + "name": "Bulbasaur", "type": ["Planta", "Veneno"], "generation": 1, "region": "Kanto", "number": 1, "rarity": "Comun", - "shortDescription": "Tras nacer, Crece alimentandose durante un tiempo de los nutrientes que contiene el bulbo de su lomo ", - "description": "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg, Tiene una Categoria Semilla y una Habilidad de espesura , es de tipo Planta y Veneno , tiene una debilidad de Fuego, Hielo, Psiquico y Volador , tiene varias evoluciones en las cuales tenemos a Bulbasaur -Ivysaur- Venusaur", - "weakness": ["Fuego", "Hielo", "Psiquico", "Volador"], + "shortDescription": "Tras nacer, crece alimentándose durante un tiempo de los nutrientes que contiene el bulbo de su lomo.", + "description": "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg. Tiene una categoría semilla y una habilidad de espesura. Es de tipo Planta y Veneno, tiene una debilidad a Fuego, Hielo, Psíquico y Volador. Tiene varias evoluciones: Bulbasaur - Ivysaur - Venusaur.", + "weakness": ["Fuego", "Hielo", "Psíquico", "Volador"], "attack": 49, "defense": 49, "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png" + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png", + "facts": { + "pokedexNumber": 1, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Verde", + + } }, { - "id":"charmander", - "name":"Charmander", + "id": "charmander", + "name": "Charmander", "type": ["Fuego"], "generation": 1, "region": "Kanto", "number": 4, "rarity": "Comun", - "shortDescription": "La llama de su cola indica su fuerza vital, si esta debil, la llama ardera mas tenue", - "description": "Charmander tiene una altura de 0.6m y un peso de 8.5kg , Tiene una categoria Lagartija y una habilidad de Mar llamas , es de tipo Fuego y su debilidad es Agua, Tierra y Roca , tiene varias evoluciones en las cuales tenemos a Charmander- Charmeleon -Charizard ", - "weakness" :["Agua","Tierra","Roca"], + "shortDescription": "La llama de su cola indica su fuerza vital. Si está débil, la llama arderá más tenue.", + "description": "Charmander tiene una altura de 0.6m y un peso de 8.5kg. Tiene una categoría lagartija y una habilidad de mar llamas. Es de tipo Fuego y su debilidad es Agua, Tierra y Roca. Tiene varias evoluciones: Charmander - Charmeleon - Charizard.", + "weakness": ["Agua", "Tierra", "Roca"], "attack": 52, "defense": 43, "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png" - }, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png", + "facts": { + "pokedexNumber": 4, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Naranja", + } + }, { "id": "squirtle", "name": "Squirtle", @@ -41,352 +51,497 @@ "region": "Kanto", "number": 7, "rarity": "Comun", - "shortDescription": "Tras nacer, se le hincha el lomo y se le forma un caparazon. Escupe poderosa espuma por la boca", - "description": "Squirtle tiene una altura de 0.5m y un peso de 9.0kg , Tiene una categoria Tortugita y una habilidad Torrente , es de tipo Agua y su debilidad es de Planta y Electrico , tiene varias evoluciones en las cuales tenemos a Squirtle - Wartortle- Blastoise", - "weakness":["Agua"], + "shortDescription": "Tras nacer, se le hincha el lomo y se le forma un caparazón. Escupe poderosa espuma por la boca.", + "description": "Squirtle tiene una altura de 0.5m y un peso de 9.0kg. Tiene una categoría tortuguita y una habilidad torrente. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Squirtle - Wartortle - Blastoise.", + "weakness": ["Planta", "Eléctrico"], "attack": 48, "defense": 65, "speed": 43, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png" + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png", + "facts": { + "pokedexNumber": 7, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Azul", + } }, { - "id":"pikachu", + "id": "pikachu", "name": "Pikachu", - "type": ["Electrico"], + "type": ["Eléctrico"], "generation": 1, "region": "Kanto", "number": 25, "rarity": "Comun", - "shortDescription": "Cuando se enfada, este pokemon descarga la energia que almacena en le interior de las bolsas de las mejillas", - "description": "Pikachu tiene una altura de 0.4m y un peso de 6.0kg , tiene una categoria Raton y una habilidad elec.estatica, es de tipo electrico y su debilidad es tierra , tiene varias evoluciones en las cuales tenemos Pichu- Pikachu- Raichu", - "weakness":["Tierra"], + "shortDescription": "Cuando se enfada, este Pokémon descarga la energía que almacena en el interior de las bolsas de las mejillas.", + "description": "Pikachu tiene una altura de 0.4m y un peso de 6.0kg. Tiene una categoría ratón y una habilidad eléctrica estática. Es de tipo Eléctrico y su debilidad es Tierra. Tiene varias evoluciones: Pichu - Pikachu - Raichu.", + "weakness": ["Tierra"], "attack": 55, "defense": 40, "speed": 90, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png" - }, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png", + "facts": { + "pokedexNumber": 25, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Amarillo", + } + }, { - "id":"jigglypuff", + "id": "jigglypuff", "name": "Jigglypuff", "type": ["Normal", "Hada"], "generation": 1, "region": "Kanto", "number": 39, "rarity": "Comun", - "shortDescription": "Cuando le tiemblan sus redondos y adorables ojos , entona una melodia agradable y misteriosa con la que duerme a sus enemigos", - "description": "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg , tiene una categoria de globo y una habilidad gran encanto y tenacidad , es de tipo normal -hada y su debilidad es veneno -acero, tiene varias evoluciones en las cuales tenemos igglybuff- jigglypuff- wigglytuff", - "weakness":["Veneno","Acero"], + "shortDescription": "Cuando le tiemblan sus redondos y adorables ojos, entona una melodía agradable y misteriosa con la que duerme a sus enemigos.", + "description": "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg. Tiene una categoría globo y una habilidad gran encanto y tenacidad. Es de tipo Normal y Hada, y su debilidad es Veneno y Acero. Tiene varias evoluciones: Igglybuff - Jigglypuff - Wigglytuff.", + "weakness": ["Veneno", "Acero"], "attack": 45, "defense": 20, "speed": 20, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png" - }, - { - "id":"meowth", + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png", + "facts": { + "pokedexNumber": 39, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Rosa", + } + }, + { + "id": "meowth", "name": "Meowth", "type": ["Normal"], "generation": 1, "region": "Kanto", "number": 52, "rarity": "Comun", - "shortDescription": "Durante el dia se deica a dormir de noche, vigila su territorio con un brillo en los ojos ", - "description": "Meowth tiene una altura de 0.4m y un peso de 4.2kg, tiene una categoria de gato araña y una habilidad recogida y experto , es de tipo normal y su debilidad es lucha, tiene varias evoluciones en las cuales tenemos Meowth- Persian", - "weakness":["Lucha"], + "shortDescription": "Durante el día se dedica a dormir, y de noche vigila su territorio con un brillo en los ojos.", + "description": "Meowth tiene una altura de 0.4m y un peso de 4.2kg. Tiene una categoría de gato araña y una habilidad recogida y experto. Es de tipo Normal y su debilidad es Lucha. Tiene varias evoluciones: Meowth - Persian.", + "weakness": ["Lucha"], "attack": 45, "defense": 35, "speed": 90, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png" - }, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png", + "facts": { + "pokedexNumber": 52, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Beige", + } + }, { - "id":"psyduck", + "id": "psyduck", "name": "Psyduck", "type": ["Agua"], "generation": 1, "region": "Kanto", "number": 54, "rarity": "Comun", - "shortDescription": "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes", - "description": "Psyduck tiene una altura de 0.8m y un peso de 19.6kg , tiene una categoria de pato y una habilidad humeda y de aclimatacion, es de tipo agua y su debilidad es planta -electrico , tiene varias evoluciones en las cuales tenemos Psyduck-Golduck", - "weakness":["Planta","Electrico"], + "shortDescription": "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes.", + "description": "Psyduck tiene una altura de 0.8m y un peso de 19.6kg. Tiene una categoría de pato y una habilidad húmeda y de aclimatación. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Psyduck - Golduck.", + "weakness": ["Planta", "Eléctrico"], "attack": 52, "defense": 48, "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png" - }, - { - "id":"machop", - "name": "Machop", - "type": ["Lucha"], - "generation": 1, - "region": "Kanto", - "number": 66, - "rarity": "Comun", - "shortDescription": "Es una masa de musculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas ", - "description": "Machop tiene una altura de 0.8m y un peso de 19.5kg, tiene categoria super poder y una habilidad agallas e indefenso , es de tipo lucha y su debilidad volador- psiquico - hada, tiene varias evoluciones en las cuales tenemos Machop- Machoke -Machamp ", - "weakness":["Volador","Psiquico","Hada"], - "attack": 80, - "defense": 50, - "speed": 35, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png" - }, - { - "id":"magnemite", - "name": "Magnemite", - "type": ["Electrico", "Acero"], - "generation": 1, - "region": "Kanto", - "number": 81, - "rarity": "Comun", - "shortDescription": "Las unidades laterales crean ondas electromagneticas que contrastan la gravedad y la permitenflorecer", - "description": "Magnemite tiene una altura de 0.3m y un peso de 6.0kg , tiene una categoria iman y una habilidad robustez e iman , es de tipo electrico -acero y su debilidad fuego- lucha - tierra, tiene varias evoluciones en las cuales tenemos Magnemite- Magneton -Magnezone", - "weakness":["Fuego","Lucha","Tierra"], - "attack": 35, - "defense": 70, - "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png" - }, - { - "id":"gengar", - "name": "Gengar", - "type": ["Fantasma", "Veneno"], - "generation": 1, - "region": "Kanto", - "number": 94, - "rarity": "Extraño", - "shortDescription": "Para quitarle la vida a su presa , se dezlisa en su sombra y espera su oportunidad en silencio", - "description": "Gengar tiene una altura de 1.5m y un peso de 40.5kg, tiene una categoria sombra y una habilidad cuerpo maldito, es de tipo fantasma -veneno y su debilidad tierra- psiquico- fantasma- siniestro, tiene varias evoluciones en las cuales tenemos Gastly- Haunter- Gengar", - "weakness":["Tierra","Psiquico","Fantasma","Siniestro"], - "attack": 65, - "defense": 60, - "speed": 110, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png" - }, - { - "id":"eevee", - "name": "Eevee", - "type": ["Normal"], - "generation": 1, - "region": "Kanto", - "number": 133, - "rarity": "Comun", - "shortDescription": "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio ", - "description": "Eevee tiene una altura de 0.3m y un peso de 6.5kg , tiene una categoria evolucion y una habilidad fuego y adaptable, es de tipo normal y si debilidad lucha , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafeon-Glaceon-Sylveon", - "weakness":["Lucha"], - "attack": 55, - "defense": 50, - "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png" - }, - { - "id":"snorlax", - "name": "Snorlax", - "type": ["Normal"], - "generation": 1, - "region": "Kanto", - "number": 143, - "rarity": "Extraño", - "shortDescription": "Este pokemon es un gloton que lo unico que hace aparte de comer es dormir , puede ingerir hasta 400 kg de comida en un solo dia ", - "description": "Snorlax tiene una altura de 2.1m y un peso de 460.0kg, tiene una categoria dormir y una habilidad sebo e inmunidad, es de tipo normal y su debilidad lucha , tiene varias evoluciones en las cuales tenemos Munchlax-Snorlax", - "weakness":["Lucha"], - "attack": 110, - "defense": 65, - "speed": 30, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png" - }, - { - "id":"dragonite", - "name": "Dragonite", - "type": ["Dragon", "Volador"], - "generation": 1, - "region": "Kanto", - "number": 149, - "rarity": "Extraño", - "shortDescription": "Dicen que viven en una isla en algun lugar del oceano que solo ellos habitan ", - "description": "Dragonite tiene una altura de 2.2m y un peso de 210.0kg , tiene una categoria dragon y una habilidad fuerza mental, es de tipo dragon y volador y su debilidad es hielo - roca- dragon- hada , tiene varias evoluciones en las cuales tenemos Dratini- Dragonar-Dragonite", - "weakness":["Dragon","Volador"], - "attack": 134, - "defense": 95, - "speed": 80, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png" - }, - { - "id":"mewtwo", - "name": "Mewtwo", - "type": ["Psiquico"], - "generation": 1, - "region": "kanto", - "number": 150, - "rarity": "Legendario", - "shortDescription": "Su ADN es casi el mismo que el de mew. Sin emabargo, su tamaño y caracter son muy diferentes", - "description": "Mewtwo tiene una altura de 2.0m y una peso de 122.0kg, tiene una categoria genetica y una habilidad presion, es de tipo psiquico y su debilidad bicho-fantasma-siniestro, este pokemon NO tiene eveoluciones ", - "weakness":["Este Pokemon NO evoluciona"], - "attack": 110, - "defense": 90, - "speed": 130, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png" - }, - { - "id":"new", - "name": "Mew", - "type": ["Psiquico"], - "generation": 1, - "region": "kanto", - "number": 151, - "rarity": "Mitica", - "shortDescription": "Si se observa a traves de un miscroscopio puede distinguirse cuan corto , fino y delicado es el pelaje de este pokemon", - "description": "Mew tiene una altura de 0.4m y un peso de 4.0kg , tiene una categoria niueva especie y una habilidad sincronica, es de tipo psiquico y su debilidad es bicho-fantasma- siniestro, este pokemon NO tiene evoluciones", - "weakness":["Este Pokemon NO tiene evoluciones"], - "attack": 100, - "defense": 100, - "speed": 100, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png" - }, - { - "id":"chikorita", - "name": "Chikorita", - "type": ["Planta"], - "generation": 2, - "region": "Johto", - "number": 152, - "rarity": "Comun", - "shortDescription": "le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios calidos", - "description": "Chikorita tiene una altura de 0.9m y un peso de 6.4m , tiene una categoria hoja y una debilidad espesura, es de tipo planta y su debilidad Fuego- Hielo-Veneno-Volador-Bicho, tiene varias evoluciones en las cuales tenemos Chikorita-Bayleef-Maganium", - "weakness":["Fuego","Hielo","Veneno","Volador","Bicho"], - "attack": 49, - "defense": 65, - "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png" - }, - { - "id":"cyndaquil", - "name": "Cyndaquil", - "type": ["Fuego"], - "generation": 2, - "region": "Johto", - "number": 155, - "rarity": "Comun", - "shortDescription": "Suele estar encorbado . Si se enfada o se asusta lanzara llamas por el lomo", - "description": "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg , tiene una categoria de Raton Fuego y una habilidad Mar llamas , es de tipo Fuego y su debilidad es agua- tierra- roca, tiene varias evoluciones en las cuales tenemos Cyndaquil-Quilava-Typhlosion-Typhlosion ", - "weakness":["Agua","Tierra","Roca"], - "attack": 52, - "defense": 43, - "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png" - }, - { - "id":"totodile", - "name": "Totodile", - "type": ["Agua"], - "generation": 2, - "region": "Johto", - "number": 158, - "rarity": "Comun", - "shortDescription": "Sus desarrolladas y potentes mandibulas pueden triturar cualquier cosa , por lo que hasta su propio entrenador debe andarse con cuidado ", - "description": "Totodile tiene una altura de 0.6m y un peso de 9.5 kg, tiene una categoria fauces y una habilidad torrente , es de tipo agua y su debilidad es planta- electrico , tiene varias evoluciones en las cuales tenemos Totodile-Croconaw-Feraligatr", - "weakness":["Planta","Electrico"], - "attack": 65, - "defense": 64, - "speed": 43, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png" - }, - { - "id":"togepi", - "name": "Togepi", - "type": ["Hada"], - "generation": 2, - "region": "Johto", - "number": 175, - "rarity": "Comun", - "shortDescription": "El cascaron parece estar lleno de alegria , dicen que trae buena suerte si se le trata con cariño", - "description": "Togepi tiene una altura de 0.3m y un peso de 1.5 kg , tiene una categoria de Boladavos y una habilidad dicha - entusiamo , es de tipo hada y su debilidad es veneno- acero, tiene varias evoluciones en las cuales tenemos Togepi- Togetic- Togekiss ", - "weakness":["Veneno","Acero"], - "attack": 20, - "defense": 65, - "speed": 20, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png" - }, - { - "id":"mareep", - "name": "Mareep", - "type": ["Electrico"], - "generation": 2, - "region": "Johto", - "number": 179, - "rarity": "Comun", - "shortDescription": "Cuando almacena electricidad estatica en su cuerpo, la lana dobla su volumen , quien lo toque recibira una descarga", - "description": "Mareep tiene una altura de 0.6 m y un peso de 7.8 kg , tiene una categoria luna y una habilidad elc. estatica, es de tipo electrico y su debilidad es tierra ,tiene varias evoluciones en las cuales tenemos Mareep-Flaffy-Amphoros", - "weakness":["Tierra"], - "attack": 40, - "defense": 40, - "speed": 35, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png" - }, - { - "id":"espeon", - "name": "Espeon", - "type": ["Psiquico"], - "generation": 2, - "region": "Johto", - "number": 196, - "rarity": "Extraño", - "shortDescription": "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifida tiemblan ligeramente ", - "description": "Espeon tiene una altura de 0.9m y un peso de 26.5kg , tiene una categoria sol y una habilidad sincronica , es de tipo psiquico y su debilidad bicho-fantasma -siniestro , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", - "weakness":["Bicho","Fantasma","Siniestro"], - "attack": 65, - "defense": 60, - "speed": 110, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png" - }, - { - "id":"umbreon", - "name": "Umbreon", - "type": ["Siniestro"], - "generation": 2, - "region": "Johto", - "number": 197, - "rarity": "Extraño", - "shortDescription": "Si se expone el aura de la luna los anillos de su cuerpo relucen y adquieren un poder misterioso ", - "description": "Umbreon tiene una altura de 1.0m y un peso de 27.0kg, tiene una categoria luz lunar y una habilidad sincronia , es de tipo siniestro y su debilidad es lucha-bicho-hada , tiene varias evoluciones en las cuales tenemos Eevee-Vaporeon-Jolteon-Flareon-Espeon-Umbreon-Leafon-Glaceon-Sylvean", - "weakness":["Lucha","Bicho","Hada"], - "attack": 65, - "defense": 110, - "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png" - }, - { - "id":"murkrow", - "name": "Murkrow", - "type": ["Siniestro", "Volada"], - "generation": 2, - "region": "Johto", - "number": 198, - "rarity": "Comun", - "shortDescription": "Temido y odiado por muchos , dien que traen la desgracia a todos aquellos que lo ven por la noche", - "description": "Murkroe tiene una altura de 0.5m y un peso de 2.1 kg , tiene una categoria oscuridad y su habilidad es insominio - afortunado , es de tipo siniestro-volada y su debilidad es electrico -hielo-roca- hada, tiene varias evoluciones en las cuales tenemos Murkrow-Honchkrow ", - "weakness":["Electrico","Hielo","Roca","Hada"], - "attack": 85, - "defense": 42, - "speed": 91, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png" - }, - { - "id":"blissey", - "name": "Blissey", - "type": ["Normal"], - "generation": 2, - "region": "Johto", - "number": 242, - "rarity": "Extraño", - "shortDescription": "Cualquiera que pruebe un poco de huevo de blissey, se volvera mas amable y agradable con todos", - "description": "Blissey tine una altura de 1.5m y un peso de 46.8 kg , tiene una categoria feiicidad y una habilidad cura natural-dicha , es de tipo normal y su debilidad es lucha , tiene varias evoluciones en las cuales tenemos Happing-Chansey -Blissey", - "weakness":["Lucha"], - "attack": 10, - "defense": 10, - "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png" - } - ]; - - export default pokemonData; + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png", + "facts": { + "pokedexNumber": 54, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Amarillo", + } + }, + + { + "id": "machop", + "name": "Machop", + "type": ["Lucha"], + "generation": 1, + "region": "Kanto", + "number": 66, + "rarity": "Comun", + "shortDescription": "Es una masa de músculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas.", + "description": "Machop tiene una altura de 0.8m y un peso de 19.5kg. Tiene categoría super poder y una habilidad agallas e indefenso. Es de tipo Lucha y su debilidad es Volador, Psíquico y Hada. Tiene varias evoluciones: Machop - Machoke - Machamp.", + "weakness": ["Volador", "Psíquico", "Hada"], + "attack": 80, + "defense": 50, + "speed": 35, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png", + "facts": { + "pokedexNumber": 66, + "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", + "primaryColor": "Gris", + } + }, + +{ + "id": "magnemite", + "name": "Magnemite", + "type": ["Electrico", "Acero"], + "generation": 1, + "region": "Kanto", + "number": 81, + "rarity": "Comun", + "shortDescription": "Las unidades laterales crean ondas electromagnéticas que contrastan la gravedad y la permiten florecer.", + "description": "Magnemite tiene una altura de 0.3m y un peso de 6.0kg. Tiene una categoría imán y una habilidad robustez e imán. Es de tipo eléctrico-acero y su debilidad son fuego-lucha-tierra. Tiene varias evoluciones en las cuales tenemos Magnemite, Magneton, Magnezone.", + "weakness": ["Fuego", "Lucha", "Tierra"], + "attack": 35, + "defense": 70, + "speed": 45, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png", + "facts": { + "pokedexNumber": 81, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "Gris", + }, +}, +{ + "id": "gengar", + "name": "Gengar", + "type": ["Fantasma", "Veneno"], + "generation": 1, + "region": "Kanto", + "number": 94, + "rarity": "Extraño", + "shortDescription": "Para quitarle la vida a su presa, se desliza en su sombra y espera su oportunidad en silencio.", + "description": "Gengar tiene una altura de 1.5m y un peso de 40.5kg. Tiene una categoría sombra y una habilidad cuerpo maldito. Es de tipo fantasma-veneno y su debilidad son tierra-psíquico-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Gastly, Haunter, Gengar.", + "weakness": ["Tierra", "Psíquico", "Fantasma", "Siniestro"], + "attack": 65, + "defense": 60, + "speed": 110, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png", + "facts": { + "pokedexNumber": 94, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "morado", + } +}, + +{ + "id": "eevee", + "name": "Eevee", + "type": ["Normal"], + "generation": 1, + "region": "Kanto", + "number": 133, + "rarity": "Comun", + "shortDescription": "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio.", + "description": "Eevee tiene una altura de 0.3m y un peso de 6.5kg. Tiene una categoría evolución y una habilidad fuego y adaptable. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + "weakness": ["Lucha"], + "attack": 55, + "defense": 50, + "speed": 55, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png", + "facts": { + "pokedexNumber": 133, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "marrón", + } + }, + +{ + "id": "snorlax", + "name": "Snorlax", + "type": ["Normal"], + "generation": 1, + "region": "Kanto", + "number": 143, + "rarity": "Extraño", + "shortDescription": "Este Pokémon es un glotón que lo único que hace aparte de comer es dormir, puede ingerir hasta 400 kg de comida en un solo día.", + "description": "Snorlax tiene una altura de 2.1m y un peso de 460.0kg. Tiene una categoría dormir y una habilidad sebo e inmunidad. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Munchlax, Snorlax.", + "weakness": ["Lucha"], + "attack": 110, + "defense": 65, + "speed": 30, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png", + "facts": { + "pokedexNumber": 143, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "negro", + } + }, + +{ + "id": "dragonite", + "name": "Dragonite", + "type": ["Dragon", "Volador"], + "generation": 1, + "region": "Kanto", + "number": 149, + "rarity": "Extraño", + "shortDescription": "Dicen que viven en una isla en algún lugar del océano que solo ellos habitan.", + "description": "Dragonite tiene una altura de 2.2m y un peso de 210.0kg. Tiene una categoría dragón y una habilidad fuerza mental. Es de tipo dragón-volador y su debilidad es hielo-roca-dragón-hada. Tiene varias evoluciones en las cuales tenemos Dratini, Dragonair, Dragonite.", + "weakness": ["Dragon", "Volador"], + "attack": 134, + "defense": 95, + "speed": 80, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png", + "facts": { + "pokedexNumber": 149, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "verde", + } + }, + +{ + "id": "mewtwo", + "name": "Mewtwo", + "type": ["Psiquico"], + "generation": 1, + "region": "Kanto", + "number": 150, + "rarity": "Legendario", + "shortDescription": "Su ADN es casi el mismo que el de Mew. Sin embargo, su tamaño y carácter son muy diferentes.", + "description": "Mewtwo tiene una altura de 2.0m y un peso de 122.0kg. Tiene una categoría genética y una habilidad presión. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", + "weakness": ["Este Pokemon NO evoluciona"], + "attack": 110, + "defense": 90, + "speed": 130, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png", + "facts": { + "pokedexNumber": 150, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "morado", + } + }, + +{ + "id": "mew", + "name": "Mew", + "type": ["Psiquico"], + "generation": 1, + "region": "Kanto", + "number": 151, + "rarity": "Mitica", + "shortDescription": "Si se observa a través de un microscopio puede distinguirse cuán corto, fino y delicado es el pelaje de este Pokémon.", + "description": "Mew tiene una altura de 0.4m y un peso de 4.0kg. Tiene una categoría nueva especie y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", + "weakness": ["Este Pokemon NO tiene evoluciones"], + "attack": 100, + "defense": 100, + "speed": 100, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png", + "facts": { + "pokedexNumber": 151, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "rosa", + } + }, + +{ + "id": "chikorita", + "name": "Chikorita", + "type": ["Planta"], + "generation": 2, + "region": "Johto", + "number": 152, + "rarity": "Comun", + "shortDescription": "Le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios cálidos.", + "description": "Chikorita tiene una altura de 0.9m y un peso de 6.4kg. Tiene una categoría hoja y una habilidad espesura. Es de tipo planta y su debilidad es fuego-hielo-veneno-volador-bicho. Tiene varias evoluciones en las cuales tenemos Chikorita, Bayleef, Meganium.", + "weakness": ["Fuego", "Hielo", "Veneno", "Volador", "Bicho"], + "attack": 49, + "defense": 65, + "speed": 45, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png", + "facts": { + "pokedexNumber": 152, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "verde", + } + }, + +{ + "id": "cyndaquil", + "name": "Cyndaquil", + "type": ["Fuego"], + "generation": 2, + "region": "Johto", + "number": 155, + "rarity": "Comun", + "shortDescription": "Suele estar encorbado. Si se enfada o se asusta lanzará llamas por el lomo.", + "description": "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg. Tiene una categoría ratón fuego y una habilidad mar llamas. Es de tipo fuego y su debilidad es agua-tierra-roca. Tiene varias evoluciones en las cuales tenemos Cyndaquil, Quilava, Typhlosion.", + "weakness": ["Agua", "Tierra", "Roca"], + "attack": 52, + "defense": 43, + "speed": 65, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png", + "facts": { + "pokedexNumber": 155, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "amarillo", + } + }, + +{ + "id": "totodile", + "name": "Totodile", + "type": ["Agua"], + "generation": 2, + "region": "Johto", + "number": 158, + "rarity": "Comun", + "shortDescription": "Sus desarrolladas y potentes mandíbulas pueden triturar cualquier cosa, por lo que hasta su propio entrenador debe andarse con cuidado.", + "description": "Totodile tiene una altura de 0.6m y un peso de 9.5kg. Tiene una categoría fauces y una habilidad torrente. Es de tipo agua y su debilidad es planta-eléctrico. Tiene varias evoluciones en las cuales tenemos Totodile, Croconaw, Feraligatr.", + "weakness": ["Planta", "Eléctrico"], + "attack": 65, + "defense": 64, + "speed": 43, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png", + "facts": { + "pokedexNumber": 158, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "azul", + } + }, + +{ + "id": "togepi", + "name": "Togepi", + "type": ["Hada"], + "generation": 2, + "region": "Johto", + "number": 175, + "rarity": "Comun", + "shortDescription": "El cascarón parece estar lleno de alegría, dicen que trae buena suerte si se le trata con cariño.", + "description": "Togepi tiene una altura de 0.3m y un peso de 1.5kg. Tiene una categoría boladavos y una habilidad dicha-entusiasmo. Es de tipo hada y su debilidad es veneno-acero. Tiene varias evoluciones en las cuales tenemos Togepi, Togetic, Togekiss.", + "weakness": ["Veneno", "Acero"], + "attack": 20, + "defense": 65, + "speed": 20, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png", + "facts": { + "pokedexNumber": 175, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "blanco", + } + }, +{ + "id": "mareep", + "name": "Mareep", + "type": ["Eléctrico"], + "generation": 2, + "region": "Johto", + "number": 179, + "rarity": "Comun", + "shortDescription": "Cuando almacena electricidad estática en su cuerpo, la lana dobla su volumen. Quien lo toque recibirá una descarga.", + "description": "Mareep tiene una altura de 0.6m y un peso de 7.8kg. Tiene una categoría lana y una habilidad elc. estática. Es de tipo eléctrico y su debilidad es tierra. Tiene varias evoluciones en las cuales tenemos Mareep, Flaaffy, Ampharos.", + "weakness": ["Tierra"], + "attack": 40, + "defense": 40, + "speed": 35, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png", + "facts": { + "pokedexNumber": 179, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "blanco", + } +}, +{ + "id": "espeon", + "name": "Espeon", + "type": ["Psíquico"], + "generation": 2, + "region": "Johto", + "number": 196, + "rarity": "Extraño", + "shortDescription": "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifurcada tiemblan ligeramente.", + "description": "Espeon tiene una altura de 0.9m y un peso de 26.5kg. Tiene una categoría sol y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + "weakness": ["Bicho", "Fantasma", "Siniestro"], + "attack": 65, + "defense": 60, + "speed": 110, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png", + "facts": { + "pokedexNumber": 196, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "morado", + } + }, + +{ + "id": "umbreon", + "name": "Umbreon", + "type": ["Siniestro"], + "generation": 2, + "region": "Johto", + "number": 197, + "rarity": "Extraño", + "shortDescription": "Si se expone al aura de la luna, los anillos de su cuerpo relucen y adquieren un poder misterioso.", + "description": "Umbreon tiene una altura de 1.0m y un peso de 27.0kg. Tiene una categoría luz lunar y una habilidad sincronía. Es de tipo siniestro y su debilidad es lucha-bicho-hada. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + "weakness": ["Lucha", "Bicho", "Hada"], + "attack": 65, + "defense": 110, + "speed": 65, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png", + "facts": { + "pokedexNumber": 197, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "negro", + } +}, +{ + "id": "murkrow", + "name": "Murkrow", + "type": ["Siniestro", "Volador"], + "generation": 2, + "region": "Johto", + "number": 198, + "rarity": "Comun", + "shortDescription": "Temido y odiado por muchos, dicen que trae la desgracia a todos aquellos que lo ven por la noche.", + "description": "Murkrow tiene una altura de 0.5m y un peso de 2.1kg. Tiene una categoría oscuridad y sus habilidades son insomnio-afortunado. Es de tipo siniestro-volador y su debilidad es eléctrico-hielo-roca-hada. Tiene varias evoluciones en las cuales tenemos Murkrow, Honchkrow.", + "weakness": ["Eléctrico", "Hielo", "Roca", "Hada"], + "attack": 85, + "defense": 42, + "speed": 91, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png", + "facts": { + "pokedexNumber": 198, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "negro", + } +}, +{ + "id": "blissey", + "name": "Blissey", + "type": ["Normal"], + "generation": 2, + "region": "Johto", + "number": 242, + "rarity": "Extraño", + "shortDescription": "Cualquiera que pruebe un poco de huevo de Blissey se volverá más amable y agradable con todos.", + "description": "Blissey tiene una altura de 1.5m y un peso de 46.8kg. Tiene una categoría felicidad y sus habilidades son cura natural-dicha. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Happiny, Chansey, Blissey.", + "weakness": ["Lucha"], + "attack": 10, + "defense": 10, + "speed": 55, + "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png", + "facts": { + "pokedexNumber": 242, + "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", + "primaryColor": "rosa", + } + }, + +] + + + + + + + + + + + + + + + + + + + + +export default pokemonData; + + + diff --git a/src/index.html b/src/index.html index 1ca1792b..0919959c 100644 --- a/src/index.html +++ b/src/index.html @@ -1,82 +1,106 @@ - - - - - - - - PokemonGame - - - - - -
      -

      POKEMON

      -
      - -
      -

      Pokémon Cards

      -
      - - - - - - - - - - -
      - -
        + + + + + + + + PokemonGame + + + + + +
        +

        POKEMON

        +
        + +
        +

        Pokémon Cards

        +
        + + + + + + + + + + +
        +
          - +
          -

          Daniela Trejo & Dinah Gomez

          +

          Daniela Trejo & Dinah Gomez

          - + + + + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.js b/src/main.js index cab4fb0c..b5feafea 100644 --- a/src/main.js +++ b/src/main.js @@ -4,3 +4,97 @@ import { renderItems } from './view.js'; import data from './data/dataset.js'; console.log(example, renderItems(data), data); + +function createPokemonCard(pokemon) { + const li = document.createElement("li"); + li.innerHTML = ` +
          + ${pokemon.name} +

          ${pokemon.name}

          +

          ELEMENTO: ${pokemon.type.join(', ')}

          +

          GENERACION: ${pokemon.generation}

          +

          REGION: ${pokemon.region}

          +

          NUMERO: ${pokemon.number}

          +

          RAREZA: ${pokemon.rarity}

          +

          PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

          +

          DESCRIPCION: ${pokemon.description}

          +

          DEBILIDAD: ${pokemon.weakness.join(', ')}

          +

          ATAQUE: ${pokemon.attack}

          +

          DEFENSA: ${pokemon.defense}

          +

          VELOCIDAD: ${pokemon.speed}

          +

          Facts

          +

          NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

          +

          HABLAR: ${pokemon.facts.ability}

          +

          COLOR: ${pokemon.facts.primaryColor}

          +
          +`; +return li; +} + +function renderPokemonList(pokemonList) { + const pokemonContainer = document.getElementById("pokemon-list"); + pokemonContainer.innerHTML = ''; + pokemonList.forEach(pokemon => { + const card = createPokemonCard(pokemon); + pokemonContainer.appendChild(card); + }); +} + +function filterPokemon(pokemonList, type) { + if (type === 'all') return pokemonList; + return pokemonList.filter(pokemon => pokemon.type.includes(type)); +} + +function sortPokemon(pokemonList, property, order) { + return pokemonList.sort((a, b) => { + if (order === 'asc') { + return a[property] > b[property] ? 1 : -1; + } else { + return a[property] < b[property] ? 1 : -1; + } + }); +} + +document.getElementById("filter").addEventListener("change", () => { + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; + + let filteredPokemon = filterPokemon(dataset, type); + let sortedPokemon = sortPokemon(filteredPokemon, property, order); + + renderPokemonList(sortedPokemon); +}); + +document.getElementById("sort").addEventListener("change", () => { + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; + + let filteredPokemon = filterPokemon(dataset, type); + let sortedPokemon = sortPokemon(filteredPokemon, property, order); + + renderPokemonList(sortedPokemon); +}); + +document.getElementById("sort-order").addEventListener("change", () => { + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; + + let filteredPokemon = filterPokemon(dataset, type); + let sortedPokemon = sortPokemon(filteredPokemon, property, order); + + renderPokemonList(sortedPokemon); +}); + +document.getElementById("clear").addEventListener("click", () => { + document.getElementById("filter").value = 'all'; + document.getElementById("sort").value = 'number'; + document.getElementById("sort-order").value = 'asc'; + + renderPokemonList(dataset); +}); + +// Inicialización +renderPokemonList(dataset.js); \ No newline at end of file diff --git a/src/view.js b/src/view.js index a6c3cec9..da0d8a6b 100644 --- a/src/view.js +++ b/src/view.js @@ -1,6 +1,6 @@ export function renderItems(data) { - console.log(data) + console.log(data); const pokemonList = document.getElementById('pokemon-list'); pokemonList.innerHTML = ''; data.forEach(pokemon => { @@ -9,20 +9,23 @@ export function renderItems(data) {
          ${pokemon.name}

          ${pokemon.name}

          -

          ELEMENTO: ${pokemon.type.join(', ')}

          -

          GENERACION: ${pokemon.generation}

          -

          REGION: ${pokemon.region}

          -

          NUMERO: ${pokemon.number}

          -

          RAREZA: ${pokemon.rarity}

          -

          PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

          -

          DESCRIPCION: ${pokemon.description}

          -

          DEBILIDAD: ${pokemon.weakness}

          -

          ATAQUE: ${pokemon.attack}

          -

          DEFENSA: ${pokemon.defense}

          -

          VELOCIDAD: ${pokemon.speed}

          +

          ELEMENTO: ${pokemon.type.join(', ')}

          +

          GENERACION: ${pokemon.generation}

          +

          REGION: ${pokemon.region}

          +

          NUMERO: ${pokemon.number}

          +

          RAREZA: ${pokemon.rarity}

          +

          PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

          +

          DESCRIPCION: ${pokemon.description}

          +

          DEBILIDAD: ${pokemon.weakness.join(', ')}

          +

          ATAQUE: ${pokemon.attack}

          +

          DEFENSA: ${pokemon.defense}

          +

          VELOCIDAD: ${pokemon.speed}

          +

          DATOS CURIOSOS

          +

          NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

          +

          HABLAR: ${pokemon.facts.ability}

          +

          COLOR: ${pokemon.facts.primaryColor}

          `; pokemonList.appendChild(li); }); -} - +}; From cb65e02e325753219fea89bae6b6080d0f4bbc17 Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Thu, 20 Jun 2024 23:03:24 -0600 Subject: [PATCH 09/43] primer arreglo de pruebas --- src/data/dataset.js | 1084 ++++++++++++++++++++++--------------------- src/index.html | 175 +++---- src/main.js | 111 ++--- src/view.js | 55 ++- 4 files changed, 693 insertions(+), 732 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index e381dde6..a7bde735 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -1,547 +1,567 @@ - -const pokemonData = [ - { - "id": "bulbasaur", - "name": "Bulbasaur", - "type": ["Planta", "Veneno"], - "generation": 1, - "region": "Kanto", - "number": 1, - "rarity": "Comun", - "shortDescription": "Tras nacer, crece alimentándose durante un tiempo de los nutrientes que contiene el bulbo de su lomo.", - "description": "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg. Tiene una categoría semilla y una habilidad de espesura. Es de tipo Planta y Veneno, tiene una debilidad a Fuego, Hielo, Psíquico y Volador. Tiene varias evoluciones: Bulbasaur - Ivysaur - Venusaur.", - "weakness": ["Fuego", "Hielo", "Psíquico", "Volador"], - "attack": 49, - "defense": 49, - "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png", - "facts": { - "pokedexNumber": 1, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Verde", - - } +export default [ + { + id: "bulbasaur", + name: "Bulbasaur", + type: ["Planta", "Veneno"], + generation: 1, + region: "Kanto", + number: 1, + rarity: "Comun", + shortDescription: + "Tras nacer, crece alimentándose durante un tiempo de los nutrientes que contiene el bulbo de su lomo.", + description: + "Bulbasaur tiene una altura de 0.7m y un peso de 6.9kg. Tiene una categoría semilla y una habilidad de espesura. Es de tipo Planta y Veneno, tiene una debilidad a Fuego, Hielo, Psíquico y Volador. Tiene varias evoluciones: Bulbasaur - Ivysaur - Venusaur.", + weakness: ["Fuego", "Hielo", "Psíquico", "Volador"], + attack: 49, + defense: 49, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png", + facts: { + pokedexNumber: 1, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Verde", }, - { - "id": "charmander", - "name": "Charmander", - "type": ["Fuego"], - "generation": 1, - "region": "Kanto", - "number": 4, - "rarity": "Comun", - "shortDescription": "La llama de su cola indica su fuerza vital. Si está débil, la llama arderá más tenue.", - "description": "Charmander tiene una altura de 0.6m y un peso de 8.5kg. Tiene una categoría lagartija y una habilidad de mar llamas. Es de tipo Fuego y su debilidad es Agua, Tierra y Roca. Tiene varias evoluciones: Charmander - Charmeleon - Charizard.", - "weakness": ["Agua", "Tierra", "Roca"], - "attack": 52, - "defense": 43, - "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png", - "facts": { - "pokedexNumber": 4, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Naranja", - } - }, - { - "id": "squirtle", - "name": "Squirtle", - "type": ["Agua"], - "generation": 1, - "region": "Kanto", - "number": 7, - "rarity": "Comun", - "shortDescription": "Tras nacer, se le hincha el lomo y se le forma un caparazón. Escupe poderosa espuma por la boca.", - "description": "Squirtle tiene una altura de 0.5m y un peso de 9.0kg. Tiene una categoría tortuguita y una habilidad torrente. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Squirtle - Wartortle - Blastoise.", - "weakness": ["Planta", "Eléctrico"], - "attack": 48, - "defense": 65, - "speed": 43, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png", - "facts": { - "pokedexNumber": 7, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Azul", - } + }, + { + id: "charmander", + name: "Charmander", + type: ["Fuego"], + generation: 1, + region: "Kanto", + number: 4, + rarity: "Comun", + shortDescription: + "La llama de su cola indica su fuerza vital. Si está débil, la llama arderá más tenue.", + description: + "Charmander tiene una altura de 0.6m y un peso de 8.5kg. Tiene una categoría lagartija y una habilidad de mar llamas. Es de tipo Fuego y su debilidad es Agua, Tierra y Roca. Tiene varias evoluciones: Charmander - Charmeleon - Charizard.", + weakness: ["Agua", "Tierra", "Roca"], + attack: 52, + defense: 43, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/004.png", + facts: { + pokedexNumber: 4, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Naranja", }, - { - "id": "pikachu", - "name": "Pikachu", - "type": ["Eléctrico"], - "generation": 1, - "region": "Kanto", - "number": 25, - "rarity": "Comun", - "shortDescription": "Cuando se enfada, este Pokémon descarga la energía que almacena en el interior de las bolsas de las mejillas.", - "description": "Pikachu tiene una altura de 0.4m y un peso de 6.0kg. Tiene una categoría ratón y una habilidad eléctrica estática. Es de tipo Eléctrico y su debilidad es Tierra. Tiene varias evoluciones: Pichu - Pikachu - Raichu.", - "weakness": ["Tierra"], - "attack": 55, - "defense": 40, - "speed": 90, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png", - "facts": { - "pokedexNumber": 25, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Amarillo", - } - }, - { - "id": "jigglypuff", - "name": "Jigglypuff", - "type": ["Normal", "Hada"], - "generation": 1, - "region": "Kanto", - "number": 39, - "rarity": "Comun", - "shortDescription": "Cuando le tiemblan sus redondos y adorables ojos, entona una melodía agradable y misteriosa con la que duerme a sus enemigos.", - "description": "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg. Tiene una categoría globo y una habilidad gran encanto y tenacidad. Es de tipo Normal y Hada, y su debilidad es Veneno y Acero. Tiene varias evoluciones: Igglybuff - Jigglypuff - Wigglytuff.", - "weakness": ["Veneno", "Acero"], - "attack": 45, - "defense": 20, - "speed": 20, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png", - "facts": { - "pokedexNumber": 39, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Rosa", - } - }, - { - "id": "meowth", - "name": "Meowth", - "type": ["Normal"], - "generation": 1, - "region": "Kanto", - "number": 52, - "rarity": "Comun", - "shortDescription": "Durante el día se dedica a dormir, y de noche vigila su territorio con un brillo en los ojos.", - "description": "Meowth tiene una altura de 0.4m y un peso de 4.2kg. Tiene una categoría de gato araña y una habilidad recogida y experto. Es de tipo Normal y su debilidad es Lucha. Tiene varias evoluciones: Meowth - Persian.", - "weakness": ["Lucha"], - "attack": 45, - "defense": 35, - "speed": 90, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png", - "facts": { - "pokedexNumber": 52, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Beige", - } - }, - { - "id": "psyduck", - "name": "Psyduck", - "type": ["Agua"], - "generation": 1, - "region": "Kanto", - "number": 54, - "rarity": "Comun", - "shortDescription": "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes.", - "description": "Psyduck tiene una altura de 0.8m y un peso de 19.6kg. Tiene una categoría de pato y una habilidad húmeda y de aclimatación. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Psyduck - Golduck.", - "weakness": ["Planta", "Eléctrico"], - "attack": 52, - "defense": 48, - "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png", - "facts": { - "pokedexNumber": 54, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Amarillo", - } - }, - - { - "id": "machop", - "name": "Machop", - "type": ["Lucha"], - "generation": 1, - "region": "Kanto", - "number": 66, - "rarity": "Comun", - "shortDescription": "Es una masa de músculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas.", - "description": "Machop tiene una altura de 0.8m y un peso de 19.5kg. Tiene categoría super poder y una habilidad agallas e indefenso. Es de tipo Lucha y su debilidad es Volador, Psíquico y Hada. Tiene varias evoluciones: Machop - Machoke - Machamp.", - "weakness": ["Volador", "Psíquico", "Hada"], - "attack": 80, - "defense": 50, - "speed": 35, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png", - "facts": { - "pokedexNumber": 66, - "ability": "Tiene la habilidad de hablar y comuniarse con otros pokemon", - "primaryColor": "Gris", - } - }, - -{ - "id": "magnemite", - "name": "Magnemite", - "type": ["Electrico", "Acero"], - "generation": 1, - "region": "Kanto", - "number": 81, - "rarity": "Comun", - "shortDescription": "Las unidades laterales crean ondas electromagnéticas que contrastan la gravedad y la permiten florecer.", - "description": "Magnemite tiene una altura de 0.3m y un peso de 6.0kg. Tiene una categoría imán y una habilidad robustez e imán. Es de tipo eléctrico-acero y su debilidad son fuego-lucha-tierra. Tiene varias evoluciones en las cuales tenemos Magnemite, Magneton, Magnezone.", - "weakness": ["Fuego", "Lucha", "Tierra"], - "attack": 35, - "defense": 70, - "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png", - "facts": { - "pokedexNumber": 81, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "Gris", + }, + { + id: "squirtle", + name: "Squirtle", + type: ["Agua"], + generation: 1, + region: "Kanto", + number: 7, + rarity: "Comun", + shortDescription: + "Tras nacer, se le hincha el lomo y se le forma un caparazón. Escupe poderosa espuma por la boca.", + description: + "Squirtle tiene una altura de 0.5m y un peso de 9.0kg. Tiene una categoría tortuguita y una habilidad torrente. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Squirtle - Wartortle - Blastoise.", + weakness: ["Planta", "Eléctrico"], + attack: 48, + defense: 65, + speed: 43, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/007.png", + facts: { + pokedexNumber: 7, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Azul", }, -}, -{ - "id": "gengar", - "name": "Gengar", - "type": ["Fantasma", "Veneno"], - "generation": 1, - "region": "Kanto", - "number": 94, - "rarity": "Extraño", - "shortDescription": "Para quitarle la vida a su presa, se desliza en su sombra y espera su oportunidad en silencio.", - "description": "Gengar tiene una altura de 1.5m y un peso de 40.5kg. Tiene una categoría sombra y una habilidad cuerpo maldito. Es de tipo fantasma-veneno y su debilidad son tierra-psíquico-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Gastly, Haunter, Gengar.", - "weakness": ["Tierra", "Psíquico", "Fantasma", "Siniestro"], - "attack": 65, - "defense": 60, - "speed": 110, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png", - "facts": { - "pokedexNumber": 94, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "morado", - } -}, - -{ - "id": "eevee", - "name": "Eevee", - "type": ["Normal"], - "generation": 1, - "region": "Kanto", - "number": 133, - "rarity": "Comun", - "shortDescription": "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio.", - "description": "Eevee tiene una altura de 0.3m y un peso de 6.5kg. Tiene una categoría evolución y una habilidad fuego y adaptable. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", - "weakness": ["Lucha"], - "attack": 55, - "defense": 50, - "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png", - "facts": { - "pokedexNumber": 133, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "marrón", - } + }, + { + id: "pikachu", + name: "Pikachu", + type: ["Eléctrico"], + generation: 1, + region: "Kanto", + number: 25, + rarity: "Comun", + shortDescription: + "Cuando se enfada, este Pokémon descarga la energía que almacena en el interior de las bolsas de las mejillas.", + description: + "Pikachu tiene una altura de 0.4m y un peso de 6.0kg. Tiene una categoría ratón y una habilidad eléctrica estática. Es de tipo Eléctrico y su debilidad es Tierra. Tiene varias evoluciones: Pichu - Pikachu - Raichu.", + weakness: ["Tierra"], + attack: 55, + defense: 40, + speed: 90, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/025.png", + facts: { + pokedexNumber: 25, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Amarillo", }, - -{ - "id": "snorlax", - "name": "Snorlax", - "type": ["Normal"], - "generation": 1, - "region": "Kanto", - "number": 143, - "rarity": "Extraño", - "shortDescription": "Este Pokémon es un glotón que lo único que hace aparte de comer es dormir, puede ingerir hasta 400 kg de comida en un solo día.", - "description": "Snorlax tiene una altura de 2.1m y un peso de 460.0kg. Tiene una categoría dormir y una habilidad sebo e inmunidad. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Munchlax, Snorlax.", - "weakness": ["Lucha"], - "attack": 110, - "defense": 65, - "speed": 30, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png", - "facts": { - "pokedexNumber": 143, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "negro", - } + }, + { + id: "jigglypuff", + name: "Jigglypuff", + type: ["Normal", "Hada"], + generation: 1, + region: "Kanto", + number: 39, + rarity: "Comun", + shortDescription: + "Cuando le tiemblan sus redondos y adorables ojos, entona una melodía agradable y misteriosa con la que duerme a sus enemigos.", + description: + "Jigglypuff tiene una altura de 0.5m y un peso de 5.5kg. Tiene una categoría globo y una habilidad gran encanto y tenacidad. Es de tipo Normal y Hada, y su debilidad es Veneno y Acero. Tiene varias evoluciones: Igglybuff - Jigglypuff - Wigglytuff.", + weakness: ["Veneno", "Acero"], + attack: 45, + defense: 20, + speed: 20, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/039.png", + facts: { + pokedexNumber: 39, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Rosa", }, - -{ - "id": "dragonite", - "name": "Dragonite", - "type": ["Dragon", "Volador"], - "generation": 1, - "region": "Kanto", - "number": 149, - "rarity": "Extraño", - "shortDescription": "Dicen que viven en una isla en algún lugar del océano que solo ellos habitan.", - "description": "Dragonite tiene una altura de 2.2m y un peso de 210.0kg. Tiene una categoría dragón y una habilidad fuerza mental. Es de tipo dragón-volador y su debilidad es hielo-roca-dragón-hada. Tiene varias evoluciones en las cuales tenemos Dratini, Dragonair, Dragonite.", - "weakness": ["Dragon", "Volador"], - "attack": 134, - "defense": 95, - "speed": 80, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png", - "facts": { - "pokedexNumber": 149, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "verde", - } + }, + { + id: "meowth", + name: "Meowth", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 52, + rarity: "Comun", + shortDescription: + "Durante el día se dedica a dormir, y de noche vigila su territorio con un brillo en los ojos.", + description: + "Meowth tiene una altura de 0.4m y un peso de 4.2kg. Tiene una categoría de gato araña y una habilidad recogida y experto. Es de tipo Normal y su debilidad es Lucha. Tiene varias evoluciones: Meowth - Persian.", + weakness: ["Lucha"], + attack: 45, + defense: 35, + speed: 90, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png", + facts: { + pokedexNumber: 52, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Beige", }, - -{ - "id": "mewtwo", - "name": "Mewtwo", - "type": ["Psiquico"], - "generation": 1, - "region": "Kanto", - "number": 150, - "rarity": "Legendario", - "shortDescription": "Su ADN es casi el mismo que el de Mew. Sin embargo, su tamaño y carácter son muy diferentes.", - "description": "Mewtwo tiene una altura de 2.0m y un peso de 122.0kg. Tiene una categoría genética y una habilidad presión. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", - "weakness": ["Este Pokemon NO evoluciona"], - "attack": 110, - "defense": 90, - "speed": 130, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png", - "facts": { - "pokedexNumber": 150, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "morado", - } + }, + { + id: "psyduck", + name: "Psyduck", + type: ["Agua"], + generation: 1, + region: "Kanto", + number: 54, + rarity: "Comun", + shortDescription: + "Padece continuamente dolores de cabeza, cuando son muy fuertes, empieza a usar misteriosos poderes.", + description: + "Psyduck tiene una altura de 0.8m y un peso de 19.6kg. Tiene una categoría de pato y una habilidad húmeda y de aclimatación. Es de tipo Agua y su debilidad es Planta y Eléctrico. Tiene varias evoluciones: Psyduck - Golduck.", + weakness: ["Planta", "Eléctrico"], + attack: 52, + defense: 48, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/054.png", + facts: { + pokedexNumber: 54, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Amarillo", }, - -{ - "id": "mew", - "name": "Mew", - "type": ["Psiquico"], - "generation": 1, - "region": "Kanto", - "number": 151, - "rarity": "Mitica", - "shortDescription": "Si se observa a través de un microscopio puede distinguirse cuán corto, fino y delicado es el pelaje de este Pokémon.", - "description": "Mew tiene una altura de 0.4m y un peso de 4.0kg. Tiene una categoría nueva especie y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", - "weakness": ["Este Pokemon NO tiene evoluciones"], - "attack": 100, - "defense": 100, - "speed": 100, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png", - "facts": { - "pokedexNumber": 151, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "rosa", - } + }, + + { + id: "machop", + name: "Machop", + type: ["Lucha"], + generation: 1, + region: "Kanto", + number: 66, + rarity: "Comun", + shortDescription: + "Es una masa de músculos y pese a su pequeño tamaño, tiene fuerza de sobra para levantar en brazos a 100 personas.", + description: + "Machop tiene una altura de 0.8m y un peso de 19.5kg. Tiene categoría super poder y una habilidad agallas e indefenso. Es de tipo Lucha y su debilidad es Volador, Psíquico y Hada. Tiene varias evoluciones: Machop - Machoke - Machamp.", + weakness: ["Volador", "Psíquico", "Hada"], + attack: 80, + defense: 50, + speed: 35, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/066.png", + facts: { + pokedexNumber: 66, + ability: "Tiene la habilidad de hablar y comuniarse con otros pokemon", + primaryColor: "Gris", }, - -{ - "id": "chikorita", - "name": "Chikorita", - "type": ["Planta"], - "generation": 2, - "region": "Johto", - "number": 152, - "rarity": "Comun", - "shortDescription": "Le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios cálidos.", - "description": "Chikorita tiene una altura de 0.9m y un peso de 6.4kg. Tiene una categoría hoja y una habilidad espesura. Es de tipo planta y su debilidad es fuego-hielo-veneno-volador-bicho. Tiene varias evoluciones en las cuales tenemos Chikorita, Bayleef, Meganium.", - "weakness": ["Fuego", "Hielo", "Veneno", "Volador", "Bicho"], - "attack": 49, - "defense": 65, - "speed": 45, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png", - "facts": { - "pokedexNumber": 152, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "verde", - } + }, + + { + id: "magnemite", + name: "Magnemite", + type: ["Electrico", "Acero"], + generation: 1, + region: "Kanto", + number: 81, + rarity: "Comun", + shortDescription: + "Las unidades laterales crean ondas electromagnéticas que contrastan la gravedad y la permiten florecer.", + description: + "Magnemite tiene una altura de 0.3m y un peso de 6.0kg. Tiene una categoría imán y una habilidad robustez e imán. Es de tipo eléctrico-acero y su debilidad son fuego-lucha-tierra. Tiene varias evoluciones en las cuales tenemos Magnemite, Magneton, Magnezone.", + weakness: ["Fuego", "Lucha", "Tierra"], + attack: 35, + defense: 70, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/081.png", + facts: { + pokedexNumber: 81, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "Gris", }, - -{ - "id": "cyndaquil", - "name": "Cyndaquil", - "type": ["Fuego"], - "generation": 2, - "region": "Johto", - "number": 155, - "rarity": "Comun", - "shortDescription": "Suele estar encorbado. Si se enfada o se asusta lanzará llamas por el lomo.", - "description": "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg. Tiene una categoría ratón fuego y una habilidad mar llamas. Es de tipo fuego y su debilidad es agua-tierra-roca. Tiene varias evoluciones en las cuales tenemos Cyndaquil, Quilava, Typhlosion.", - "weakness": ["Agua", "Tierra", "Roca"], - "attack": 52, - "defense": 43, - "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png", - "facts": { - "pokedexNumber": 155, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "amarillo", - } + }, + { + id: "gengar", + name: "Gengar", + type: ["Fantasma", "Veneno"], + generation: 1, + region: "Kanto", + number: 94, + rarity: "Extraño", + shortDescription: + "Para quitarle la vida a su presa, se desliza en su sombra y espera su oportunidad en silencio.", + description: + "Gengar tiene una altura de 1.5m y un peso de 40.5kg. Tiene una categoría sombra y una habilidad cuerpo maldito. Es de tipo fantasma-veneno y su debilidad son tierra-psíquico-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Gastly, Haunter, Gengar.", + weakness: ["Tierra", "Psíquico", "Fantasma", "Siniestro"], + attack: 65, + defense: 60, + speed: 110, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/094.png", + facts: { + pokedexNumber: 94, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "morado", }, - -{ - "id": "totodile", - "name": "Totodile", - "type": ["Agua"], - "generation": 2, - "region": "Johto", - "number": 158, - "rarity": "Comun", - "shortDescription": "Sus desarrolladas y potentes mandíbulas pueden triturar cualquier cosa, por lo que hasta su propio entrenador debe andarse con cuidado.", - "description": "Totodile tiene una altura de 0.6m y un peso de 9.5kg. Tiene una categoría fauces y una habilidad torrente. Es de tipo agua y su debilidad es planta-eléctrico. Tiene varias evoluciones en las cuales tenemos Totodile, Croconaw, Feraligatr.", - "weakness": ["Planta", "Eléctrico"], - "attack": 65, - "defense": 64, - "speed": 43, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png", - "facts": { - "pokedexNumber": 158, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "azul", - } + }, + + { + id: "eevee", + name: "Eevee", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 133, + rarity: "Comun", + shortDescription: + "Es capaz de evolucionar de muchas maneras para adaptarse sin problemas a cualquier medio.", + description: + "Eevee tiene una altura de 0.3m y un peso de 6.5kg. Tiene una categoría evolución y una habilidad fuego y adaptable. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + weakness: ["Lucha"], + attack: 55, + defense: 50, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/133.png", + facts: { + pokedexNumber: 133, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "marrón", }, - -{ - "id": "togepi", - "name": "Togepi", - "type": ["Hada"], - "generation": 2, - "region": "Johto", - "number": 175, - "rarity": "Comun", - "shortDescription": "El cascarón parece estar lleno de alegría, dicen que trae buena suerte si se le trata con cariño.", - "description": "Togepi tiene una altura de 0.3m y un peso de 1.5kg. Tiene una categoría boladavos y una habilidad dicha-entusiasmo. Es de tipo hada y su debilidad es veneno-acero. Tiene varias evoluciones en las cuales tenemos Togepi, Togetic, Togekiss.", - "weakness": ["Veneno", "Acero"], - "attack": 20, - "defense": 65, - "speed": 20, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png", - "facts": { - "pokedexNumber": 175, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "blanco", - } + }, + + { + id: "snorlax", + name: "Snorlax", + type: ["Normal"], + generation: 1, + region: "Kanto", + number: 143, + rarity: "Extraño", + shortDescription: + "Este Pokémon es un glotón que lo único que hace aparte de comer es dormir, puede ingerir hasta 400 kg de comida en un solo día.", + description: + "Snorlax tiene una altura de 2.1m y un peso de 460.0kg. Tiene una categoría dormir y una habilidad sebo e inmunidad. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Munchlax, Snorlax.", + weakness: ["Lucha"], + attack: 110, + defense: 65, + speed: 30, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/143.png", + facts: { + pokedexNumber: 143, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "negro", }, -{ - "id": "mareep", - "name": "Mareep", - "type": ["Eléctrico"], - "generation": 2, - "region": "Johto", - "number": 179, - "rarity": "Comun", - "shortDescription": "Cuando almacena electricidad estática en su cuerpo, la lana dobla su volumen. Quien lo toque recibirá una descarga.", - "description": "Mareep tiene una altura de 0.6m y un peso de 7.8kg. Tiene una categoría lana y una habilidad elc. estática. Es de tipo eléctrico y su debilidad es tierra. Tiene varias evoluciones en las cuales tenemos Mareep, Flaaffy, Ampharos.", - "weakness": ["Tierra"], - "attack": 40, - "defense": 40, - "speed": 35, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png", - "facts": { - "pokedexNumber": 179, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "blanco", - } -}, -{ - "id": "espeon", - "name": "Espeon", - "type": ["Psíquico"], - "generation": 2, - "region": "Johto", - "number": 196, - "rarity": "Extraño", - "shortDescription": "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifurcada tiemblan ligeramente.", - "description": "Espeon tiene una altura de 0.9m y un peso de 26.5kg. Tiene una categoría sol y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", - "weakness": ["Bicho", "Fantasma", "Siniestro"], - "attack": 65, - "defense": 60, - "speed": 110, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png", - "facts": { - "pokedexNumber": 196, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "morado", - } + }, + + { + id: "dragonite", + name: "Dragonite", + type: ["Dragon", "Volador"], + generation: 1, + region: "Kanto", + number: 149, + rarity: "Extraño", + shortDescription: + "Dicen que viven en una isla en algún lugar del océano que solo ellos habitan.", + description: + "Dragonite tiene una altura de 2.2m y un peso de 210.0kg. Tiene una categoría dragón y una habilidad fuerza mental. Es de tipo dragón-volador y su debilidad es hielo-roca-dragón-hada. Tiene varias evoluciones en las cuales tenemos Dratini, Dragonair, Dragonite.", + weakness: ["Dragon", "Volador"], + attack: 134, + defense: 95, + speed: 80, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/149.png", + facts: { + pokedexNumber: 149, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "verde", }, - -{ - "id": "umbreon", - "name": "Umbreon", - "type": ["Siniestro"], - "generation": 2, - "region": "Johto", - "number": 197, - "rarity": "Extraño", - "shortDescription": "Si se expone al aura de la luna, los anillos de su cuerpo relucen y adquieren un poder misterioso.", - "description": "Umbreon tiene una altura de 1.0m y un peso de 27.0kg. Tiene una categoría luz lunar y una habilidad sincronía. Es de tipo siniestro y su debilidad es lucha-bicho-hada. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", - "weakness": ["Lucha", "Bicho", "Hada"], - "attack": 65, - "defense": 110, - "speed": 65, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png", - "facts": { - "pokedexNumber": 197, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "negro", - } -}, -{ - "id": "murkrow", - "name": "Murkrow", - "type": ["Siniestro", "Volador"], - "generation": 2, - "region": "Johto", - "number": 198, - "rarity": "Comun", - "shortDescription": "Temido y odiado por muchos, dicen que trae la desgracia a todos aquellos que lo ven por la noche.", - "description": "Murkrow tiene una altura de 0.5m y un peso de 2.1kg. Tiene una categoría oscuridad y sus habilidades son insomnio-afortunado. Es de tipo siniestro-volador y su debilidad es eléctrico-hielo-roca-hada. Tiene varias evoluciones en las cuales tenemos Murkrow, Honchkrow.", - "weakness": ["Eléctrico", "Hielo", "Roca", "Hada"], - "attack": 85, - "defense": 42, - "speed": 91, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png", - "facts": { - "pokedexNumber": 198, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "negro", - } -}, -{ - "id": "blissey", - "name": "Blissey", - "type": ["Normal"], - "generation": 2, - "region": "Johto", - "number": 242, - "rarity": "Extraño", - "shortDescription": "Cualquiera que pruebe un poco de huevo de Blissey se volverá más amable y agradable con todos.", - "description": "Blissey tiene una altura de 1.5m y un peso de 46.8kg. Tiene una categoría felicidad y sus habilidades son cura natural-dicha. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Happiny, Chansey, Blissey.", - "weakness": ["Lucha"], - "attack": 10, - "defense": 10, - "speed": 55, - "image": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png", - "facts": { - "pokedexNumber": 242, - "ability": "Carece de la habilidad de comunicarse con otoros Pokemons", - "primaryColor": "rosa", - } + }, + + { + id: "mewtwo", + name: "Mewtwo", + type: ["Psiquico"], + generation: 1, + region: "Kanto", + number: 150, + rarity: "Legendario", + shortDescription: + "Su ADN es casi el mismo que el de Mew. Sin embargo, su tamaño y carácter son muy diferentes.", + description: + "Mewtwo tiene una altura de 2.0m y un peso de 122.0kg. Tiene una categoría genética y una habilidad presión. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", + weakness: ["Este Pokemon NO evoluciona"], + attack: 110, + defense: 90, + speed: 130, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/150.png", + facts: { + pokedexNumber: 150, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "morado", }, - -] - - - - - - - - - - - - - - - - - - - - -export default pokemonData; - - - - + }, + + { + id: "mew", + name: "Mew", + type: ["Psiquico"], + generation: 1, + region: "Kanto", + number: 151, + rarity: "Mitica", + shortDescription: + "Si se observa a través de un microscopio puede distinguirse cuán corto, fino y delicado es el pelaje de este Pokémon.", + description: + "Mew tiene una altura de 0.4m y un peso de 4.0kg. Tiene una categoría nueva especie y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Este Pokémon NO tiene evoluciones.", + weakness: ["Este Pokemon NO tiene evoluciones"], + attack: 100, + defense: 100, + speed: 100, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/151.png", + facts: { + pokedexNumber: 151, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "rosa", + }, + }, + + { + id: "chikorita", + name: "Chikorita", + type: ["Planta"], + generation: 2, + region: "Johto", + number: 152, + rarity: "Comun", + shortDescription: + "Le encanta tomar el sol, usa la hoja que tiene en la cabeza para localizar sitios cálidos.", + description: + "Chikorita tiene una altura de 0.9m y un peso de 6.4kg. Tiene una categoría hoja y una habilidad espesura. Es de tipo planta y su debilidad es fuego-hielo-veneno-volador-bicho. Tiene varias evoluciones en las cuales tenemos Chikorita, Bayleef, Meganium.", + weakness: ["Fuego", "Hielo", "Veneno", "Volador", "Bicho"], + attack: 49, + defense: 65, + speed: 45, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/152.png", + facts: { + pokedexNumber: 152, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "verde", + }, + }, + + { + id: "cyndaquil", + name: "Cyndaquil", + type: ["Fuego"], + generation: 2, + region: "Johto", + number: 155, + rarity: "Comun", + shortDescription: + "Suele estar encorbado. Si se enfada o se asusta lanzará llamas por el lomo.", + description: + "Cyndaquil tiene una altura de 0.5m y un peso de 7.9kg. Tiene una categoría ratón fuego y una habilidad mar llamas. Es de tipo fuego y su debilidad es agua-tierra-roca. Tiene varias evoluciones en las cuales tenemos Cyndaquil, Quilava, Typhlosion.", + weakness: ["Agua", "Tierra", "Roca"], + attack: 52, + defense: 43, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/155.png", + facts: { + pokedexNumber: 155, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "amarillo", + }, + }, + + { + id: "totodile", + name: "Totodile", + type: ["Agua"], + generation: 2, + region: "Johto", + number: 158, + rarity: "Comun", + shortDescription: + "Sus desarrolladas y potentes mandíbulas pueden triturar cualquier cosa, por lo que hasta su propio entrenador debe andarse con cuidado.", + description: + "Totodile tiene una altura de 0.6m y un peso de 9.5kg. Tiene una categoría fauces y una habilidad torrente. Es de tipo agua y su debilidad es planta-eléctrico. Tiene varias evoluciones en las cuales tenemos Totodile, Croconaw, Feraligatr.", + weakness: ["Planta", "Eléctrico"], + attack: 65, + defense: 64, + speed: 43, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/158.png", + facts: { + pokedexNumber: 158, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "azul", + }, + }, + + { + id: "togepi", + name: "Togepi", + type: ["Hada"], + generation: 2, + region: "Johto", + number: 175, + rarity: "Comun", + shortDescription: + "El cascarón parece estar lleno de alegría, dicen que trae buena suerte si se le trata con cariño.", + description: + "Togepi tiene una altura de 0.3m y un peso de 1.5kg. Tiene una categoría boladavos y una habilidad dicha-entusiasmo. Es de tipo hada y su debilidad es veneno-acero. Tiene varias evoluciones en las cuales tenemos Togepi, Togetic, Togekiss.", + weakness: ["Veneno", "Acero"], + attack: 20, + defense: 65, + speed: 20, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/175.png", + facts: { + pokedexNumber: 175, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "blanco", + }, + }, + { + id: "mareep", + name: "Mareep", + type: ["Eléctrico"], + generation: 2, + region: "Johto", + number: 179, + rarity: "Comun", + shortDescription: + "Cuando almacena electricidad estática en su cuerpo, la lana dobla su volumen. Quien lo toque recibirá una descarga.", + description: + "Mareep tiene una altura de 0.6m y un peso de 7.8kg. Tiene una categoría lana y una habilidad elc. estática. Es de tipo eléctrico y su debilidad es tierra. Tiene varias evoluciones en las cuales tenemos Mareep, Flaaffy, Ampharos.", + weakness: ["Tierra"], + attack: 40, + defense: 40, + speed: 35, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/179.png", + facts: { + pokedexNumber: 179, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "blanco", + }, + }, + { + id: "espeon", + name: "Espeon", + type: ["Psíquico"], + generation: 2, + region: "Johto", + number: 196, + rarity: "Extraño", + shortDescription: + "Al predecir el siguiente movimiento de su rival, los extremos de su cola bifurcada tiemblan ligeramente.", + description: + "Espeon tiene una altura de 0.9m y un peso de 26.5kg. Tiene una categoría sol y una habilidad sincronía. Es de tipo psíquico y su debilidad es bicho-fantasma-siniestro. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + weakness: ["Bicho", "Fantasma", "Siniestro"], + attack: 65, + defense: 60, + speed: 110, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/196.png", + facts: { + pokedexNumber: 196, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "morado", + }, + }, + + { + id: "umbreon", + name: "Umbreon", + type: ["Siniestro"], + generation: 2, + region: "Johto", + number: 197, + rarity: "Extraño", + shortDescription: + "Si se expone al aura de la luna, los anillos de su cuerpo relucen y adquieren un poder misterioso.", + description: + "Umbreon tiene una altura de 1.0m y un peso de 27.0kg. Tiene una categoría luz lunar y una habilidad sincronía. Es de tipo siniestro y su debilidad es lucha-bicho-hada. Tiene varias evoluciones en las cuales tenemos Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon.", + weakness: ["Lucha", "Bicho", "Hada"], + attack: 65, + defense: 110, + speed: 65, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/197.png", + facts: { + pokedexNumber: 197, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "negro", + }, + }, + { + id: "murkrow", + name: "Murkrow", + type: ["Siniestro", "Volador"], + generation: 2, + region: "Johto", + number: 198, + rarity: "Comun", + shortDescription: + "Temido y odiado por muchos, dicen que trae la desgracia a todos aquellos que lo ven por la noche.", + description: + "Murkrow tiene una altura de 0.5m y un peso de 2.1kg. Tiene una categoría oscuridad y sus habilidades son insomnio-afortunado. Es de tipo siniestro-volador y su debilidad es eléctrico-hielo-roca-hada. Tiene varias evoluciones en las cuales tenemos Murkrow, Honchkrow.", + weakness: ["Eléctrico", "Hielo", "Roca", "Hada"], + attack: 85, + defense: 42, + speed: 91, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/198.png", + facts: { + pokedexNumber: 198, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "negro", + }, + }, + { + id: "blissey", + name: "Blissey", + type: ["Normal"], + generation: 2, + region: "Johto", + number: 242, + rarity: "Extraño", + shortDescription: + "Cualquiera que pruebe un poco de huevo de Blissey se volverá más amable y agradable con todos.", + description: + "Blissey tiene una altura de 1.5m y un peso de 46.8kg. Tiene una categoría felicidad y sus habilidades son cura natural-dicha. Es de tipo normal y su debilidad es lucha. Tiene varias evoluciones en las cuales tenemos Happiny, Chansey, Blissey.", + weakness: ["Lucha"], + attack: 10, + defense: 10, + speed: 55, + image: "https://assets.pokemon.com/assets/cms2/img/pokedex/full/242.png", + facts: { + pokedexNumber: 242, + ability: "Carece de la habilidad de comunicarse con otoros Pokemons", + primaryColor: "rosa", + }, + }, +]; diff --git a/src/index.html b/src/index.html index 0919959c..d74fac29 100644 --- a/src/index.html +++ b/src/index.html @@ -1,106 +1,77 @@ - - - - - - PokemonGame - - - - - -
          -

          POKEMON

          -
          - -
          -

          Pokémon Cards

          -
          - - - - - - - - - - -
          -
            -
            - - -
            -

            Daniela Trejo & Dinah Gomez

            -
            - - + + + + + PokemonGame + + + + +
            +

            POKEMON

            +
            + +
            +

            Pokémon Cards

            +
            + + + + + + + + + + +
            +
              +
              + + +
              +

              Daniela Trejo & Dinah Gomez

              +
              + - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main.js b/src/main.js index b5feafea..df3756f7 100644 --- a/src/main.js +++ b/src/main.js @@ -1,100 +1,71 @@ -import { example } from './dataFunctions.js'; -import { renderItems } from './view.js'; - -import data from './data/dataset.js'; - -console.log(example, renderItems(data), data); - -function createPokemonCard(pokemon) { - const li = document.createElement("li"); - li.innerHTML = ` -
              - ${pokemon.name} -

              ${pokemon.name}

              -

              ELEMENTO: ${pokemon.type.join(', ')}

              -

              GENERACION: ${pokemon.generation}

              -

              REGION: ${pokemon.region}

              -

              NUMERO: ${pokemon.number}

              -

              RAREZA: ${pokemon.rarity}

              -

              PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

              -

              DESCRIPCION: ${pokemon.description}

              -

              DEBILIDAD: ${pokemon.weakness.join(', ')}

              -

              ATAQUE: ${pokemon.attack}

              -

              DEFENSA: ${pokemon.defense}

              -

              VELOCIDAD: ${pokemon.speed}

              -

              Facts

              -

              NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

              -

              HABLAR: ${pokemon.facts.ability}

              -

              COLOR: ${pokemon.facts.primaryColor}

              -
              -`; -return li; -} +import { example } from "./dataFunctions.js"; +import { renderItems } from "./view.js"; +import data from "./data/dataset.js"; function renderPokemonList(pokemonList) { - const pokemonContainer = document.getElementById("pokemon-list"); - pokemonContainer.innerHTML = ''; - pokemonList.forEach(pokemon => { - const card = createPokemonCard(pokemon); - pokemonContainer.appendChild(card); - }); + const pokemonContainer = document.getElementById("pokemon-list"); + pokemonContainer.innerHTML = ""; + pokemonList.forEach((pokemon) => { + const card = createPokemonCard(pokemon); + pokemonContainer.appendChild(card); + }); } function filterPokemon(pokemonList, type) { - if (type === 'all') return pokemonList; - return pokemonList.filter(pokemon => pokemon.type.includes(type)); + if (type === "all") return pokemonList; + return pokemonList.filter((pokemon) => pokemon.type.includes(type)); } function sortPokemon(pokemonList, property, order) { - return pokemonList.sort((a, b) => { - if (order === 'asc') { - return a[property] > b[property] ? 1 : -1; - } else { - return a[property] < b[property] ? 1 : -1; - } - }); + return pokemonList.sort((a, b) => { + if (order === "asc") { + return a[property] > b[property] ? 1 : -1; + } else { + return a[property] < b[property] ? 1 : -1; + } + }); } document.getElementById("filter").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; - let filteredPokemon = filterPokemon(dataset, type); - let sortedPokemon = sortPokemon(filteredPokemon, property, order); + const filteredPokemon = filterPokemon(dataset, type); + const sortedPokemon = sortPokemon(filteredPokemon, property, order); - renderPokemonList(sortedPokemon); + renderPokemonList(sortedPokemon); }); document.getElementById("sort").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; - let filteredPokemon = filterPokemon(dataset, type); - let sortedPokemon = sortPokemon(filteredPokemon, property, order); + const filteredPokemon = filterPokemon(dataset, type); + const sortedPokemon = sortPokemon(filteredPokemon, property, order); - renderPokemonList(sortedPokemon); + renderPokemonList(sortedPokemon); }); document.getElementById("sort-order").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; + const type = document.getElementById("filter").value; + const property = document.getElementById("sort").value; + const order = document.getElementById("sort-order").value; - let filteredPokemon = filterPokemon(dataset, type); - let sortedPokemon = sortPokemon(filteredPokemon, property, order); + const filteredPokemon = filterPokemon(dataset, type); + const sortedPokemon = sortPokemon(filteredPokemon, property, order); - renderPokemonList(sortedPokemon); + renderPokemonList(sortedPokemon); }); document.getElementById("clear").addEventListener("click", () => { - document.getElementById("filter").value = 'all'; - document.getElementById("sort").value = 'number'; - document.getElementById("sort-order").value = 'asc'; + document.getElementById("filter").value = "all"; + document.getElementById("sort").value = "number"; + document.getElementById("sort-order").value = "asc"; - renderPokemonList(dataset); + renderPokemonList(dataset); }); // Inicialización -renderPokemonList(dataset.js); \ No newline at end of file +renderPokemonList(Data); diff --git a/src/view.js b/src/view.js index da0d8a6b..db20f342 100644 --- a/src/view.js +++ b/src/view.js @@ -1,31 +1,30 @@ - export function renderItems(data) { console.log(data); - const pokemonList = document.getElementById('pokemon-list'); - pokemonList.innerHTML = ''; - data.forEach(pokemon => { - const li = document.createElement('li'); - li.innerHTML = ` -
              - ${pokemon.name} -

              ${pokemon.name}

              -

              ELEMENTO: ${pokemon.type.join(', ')}

              -

              GENERACION: ${pokemon.generation}

              -

              REGION: ${pokemon.region}

              -

              NUMERO: ${pokemon.number}

              -

              RAREZA: ${pokemon.rarity}

              -

              PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

              -

              DESCRIPCION: ${pokemon.description}

              -

              DEBILIDAD: ${pokemon.weakness.join(', ')}

              -

              ATAQUE: ${pokemon.attack}

              -

              DEFENSA: ${pokemon.defense}

              -

              VELOCIDAD: ${pokemon.speed}

              -

              DATOS CURIOSOS

              -

              NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

              -

              HABLAR: ${pokemon.facts.ability}

              -

              COLOR: ${pokemon.facts.primaryColor}

              -
              - `; - pokemonList.appendChild(li); + const pokemonList = document.getElementById("pokemon-list"); + pokemonList.innerHTML = ""; + data.forEach((pokemon) => { + const li = document.createElement("li"); + li.innerHTML = ` +
              +${pokemon.name} +

              ${pokemon.name}

              +

              ELEMENTO: ${pokemon.type.join(", ")}

              +

              GENERACION: ${pokemon.generation}

              +

              REGION: ${pokemon.region}

              +

              NUMERO: ${pokemon.number}

              +

              RAREZA: ${pokemon.rarity}

              +

              PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

              +

              DESCRIPCION: ${pokemon.description}

              +

              DEBILIDAD: ${pokemon.weakness.join(", ")}

              +

              ATAQUE: ${pokemon.attack}

              +

              DEFENSA: ${pokemon.defense}

              +

              VELOCIDAD: ${pokemon.speed}

              +

              DATOS CURIOSOS

              +

              NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

              +

              HABLAR: ${pokemon.facts.ability}

              +

              COLOR: ${pokemon.facts.primaryColor}

              +
              +`; + pokemonList.appendChild(li); }); -}; +} From 779a6a487d4e60aaf7252f5530d43c7c240ae6fa Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Mon, 24 Jun 2024 08:39:35 -0600 Subject: [PATCH 10/43] prototipo final --- src/dataFunctions.js | 51 +++++++++++-- src/index.html | 176 +++++++++++++++++++++++++++---------------- src/main.js | 124 ++++++++++++++---------------- src/style.css | 75 ++++++++++++++++++ src/view.js | 83 +++++++++++++------- 5 files changed, 340 insertions(+), 169 deletions(-) diff --git a/src/dataFunctions.js b/src/dataFunctions.js index 5de554af..269bbf22 100644 --- a/src/dataFunctions.js +++ b/src/dataFunctions.js @@ -1,9 +1,46 @@ -// Estas funciones son ejemplos, aquí puedes desarrollar tus propias funciones. +// dataFunctions.js +export function filterPokemonByElemental(data, elementalValue) { + if (elementalValue === 'Todo') return data; + return data.filter(pokemon => pokemon.type.includes(elementalValue)); +} -export const example = () => { - return 'example'; -}; +export function filterPokemonByWeakness(data, weaknessValue) { + if (weaknessValue === 'Todo') return data; + return data.filter(pokemon => pokemon.weakness.includes(weaknessValue)); +} -export const anotherExample = () => { - return []; -}; + +// Ordena los Pokémon por la característica seleccionada +export function filterPokemonByOrder(data, order) { + switch (order) { + case 'Numero': + return data.sort((a, b) => a.number - b.number); + case 'Nombre': + return data.sort((a, b) => a.name.localeCompare(b.name)); + case 'Generación': + return data.sort((a, b) => a.generation - b.generation); + case 'Ataque': + return data.sort((a, b) => b.attack - a.attack); + case 'Defensa': + return data.sort((a, b) => b.defense - a.defense); + case 'Velocidad': + return data.sort((a, b) => b.speed - a.speed); + default: + return data; + } +} + + +export function filterPokemonByWord(data, wordValue) { + if (wordValue === 'z - a') { + return data.slice().sort((a, b) => b.name.localeCompare(a.name)); + } + + // Filtra los Pokémon cuyo nombre comienza con la letra seleccionada + return data.filter(pokemon => pokemon.name.charAt(0).toLowerCase() === wordValue.toLowerCase()); +} + +// Limpia los filtros y ordena por número +export function clearFiltersAndSort(data) { + return data.sort((a, b) => a.number - b.number); +} diff --git a/src/index.html b/src/index.html index d74fac29..6e4a2cbc 100644 --- a/src/index.html +++ b/src/index.html @@ -1,77 +1,119 @@ - - - - - PokemonGame - - + + + + + PokemonGame + + + +
              +

              POKEMON

              +
              - -
              -

              POKEMON

              -
              +
              +

              Pokémon Cards

              +
              + + -
              -

              Pokémon Cards

              -
              - - + + - - + + - - + + - -
              -
                -
                - + +
                -
                -

                Daniela Trejo & Dinah Gomez

                -
                - +
                +
                  +
                  +
                  + + + +
                  +

                  Programa Pokemon Cards desarrollado por Daniela Trejo & Dinah Gomez

                  +
                  + + + + diff --git a/src/main.js b/src/main.js index df3756f7..e1d24e7a 100644 --- a/src/main.js +++ b/src/main.js @@ -1,71 +1,59 @@ -import { example } from "./dataFunctions.js"; -import { renderItems } from "./view.js"; -import data from "./data/dataset.js"; - -function renderPokemonList(pokemonList) { - const pokemonContainer = document.getElementById("pokemon-list"); - pokemonContainer.innerHTML = ""; - pokemonList.forEach((pokemon) => { - const card = createPokemonCard(pokemon); - pokemonContainer.appendChild(card); - }); -} - -function filterPokemon(pokemonList, type) { - if (type === "all") return pokemonList; - return pokemonList.filter((pokemon) => pokemon.type.includes(type)); -} - -function sortPokemon(pokemonList, property, order) { - return pokemonList.sort((a, b) => { - if (order === "asc") { - return a[property] > b[property] ? 1 : -1; - } else { - return a[property] < b[property] ? 1 : -1; - } - }); -} - -document.getElementById("filter").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; - - const filteredPokemon = filterPokemon(dataset, type); - const sortedPokemon = sortPokemon(filteredPokemon, property, order); - - renderPokemonList(sortedPokemon); -}); - -document.getElementById("sort").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; - - const filteredPokemon = filterPokemon(dataset, type); - const sortedPokemon = sortPokemon(filteredPokemon, property, order); - - renderPokemonList(sortedPokemon); -}); - -document.getElementById("sort-order").addEventListener("change", () => { - const type = document.getElementById("filter").value; - const property = document.getElementById("sort").value; - const order = document.getElementById("sort-order").value; - - const filteredPokemon = filterPokemon(dataset, type); - const sortedPokemon = sortPokemon(filteredPokemon, property, order); - - renderPokemonList(sortedPokemon); +import data from './data/dataset.js'; +import { renderPokemonList } from './view.js'; +import { filterPokemonByElemental, filterPokemonByWeakness, filterPokemonByOrder, filterPokemonByWord, clearFiltersAndSort } from './dataFunctions.js'; + +document.addEventListener('DOMContentLoaded', () => { + function initializeApp() { + renderPokemonList(data); + } + + // Evento de cambio en el filtro de elementos + function handleElementalChange() { + const elementalValue = document.getElementById('elemental').value; + const elementalPokemon = filterPokemonByElemental(data, elementalValue); + renderPokemonList(elementalPokemon); + } + + // Evento de cambio en el filtro de debilidad + function handleWeaknessChange() { + const weaknessValue = document.getElementById('weakness').value; + const weaknessPokemon = filterPokemonByWeakness(data, weaknessValue); + renderPokemonList(weaknessPokemon); + } + + // Evento de cambio en la selección de ordenamiento + function handleOrderChange() { + const orderValue = document.getElementById('order').value; + const orderPokemon = filterPokemonByOrder(data, orderValue); + renderPokemonList(orderPokemon); + } + + // Evento de cambio en la selección de palabra + function handleWordChange() { + const wordValue = document.getElementById('word').value; + const wordPokemon = filterPokemonByWord(data, wordValue); + renderPokemonList(wordPokemon); + } + + // Evento de clic en el botón de borrar + function handleClearClick() { + document.getElementById('elemental').value = 'Todo'; + document.getElementById('weakness').value = 'Todo'; + document.getElementById('order').value = 'Numero'; + document.getElementById('word').value = ''; + const clearedData = clearFiltersAndSort(data); + renderPokemonList(clearedData); + } + + // Asignar event listeners + document.getElementById('elemental').addEventListener('change', handleElementalChange); + document.getElementById('weakness').addEventListener('change', handleWeaknessChange); + document.getElementById('order').addEventListener('change', handleOrderChange); + document.getElementById('word').addEventListener('change', handleWordChange); + document.getElementById('clear').addEventListener('click', handleClearClick); + + // Carga inicial de la aplicación + initializeApp(); }); -document.getElementById("clear").addEventListener("click", () => { - document.getElementById("filter").value = "all"; - document.getElementById("sort").value = "number"; - document.getElementById("sort-order").value = "asc"; - - renderPokemonList(dataset); -}); -// Inicialización -renderPokemonList(Data); diff --git a/src/style.css b/src/style.css index e69de29b..03c45109 100644 --- a/src/style.css +++ b/src/style.css @@ -0,0 +1,75 @@ +/* Estilos para las tarjetas de Pokémon */ +ul#pokemon-list { + list-style-type: none; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 20px; + } + + ul#pokemon-list li { + width: 200px; + background-color: #f0f0f0; + border: 1px solid #ccc; + padding: 10px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + } + + ul#pokemon-list li img { + width: 100%; + height: auto; + border-radius: 8px; + } + + ul#pokemon-list li h2 { + font-size: 1.2em; + margin-top: 0.5em; + } + + ul#pokemon-list li p { + font-size: 0.9em; + margin-top: 0.5em; + } + + ul#pokemon-list li div { + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + } + + ul#pokemon-list li div div { + display: none; + height: 100%; + overflow: auto; + border: 1px solid #ccc; + background-color: #f0f0f0; + border-radius: 8px; + padding: 10px; + } + + ul#pokemon-list li:hover div div { + display: block; + } + ul#pokemon-list li div div { + display: none; + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 100%; + background-color: rgba(240, 240, 240, 0.95); /* Fondo semi-transparente */ + border: 1px solid #ccc; + border-radius: 8px; + padding: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + overflow-y: auto; +} + +ul#pokemon-list li:hover div div { + display: block; +} + + \ No newline at end of file diff --git a/src/view.js b/src/view.js index db20f342..70659453 100644 --- a/src/view.js +++ b/src/view.js @@ -1,30 +1,59 @@ -export function renderItems(data) { - console.log(data); - const pokemonList = document.getElementById("pokemon-list"); - pokemonList.innerHTML = ""; - data.forEach((pokemon) => { - const li = document.createElement("li"); +export function renderPokemonList(pokemonList) { + const pokemonListElement = document.getElementById('pokemon-list'); + pokemonListElement.innerHTML = ''; + + pokemonList.forEach((pokemon) => { + const li = document.createElement('li'); + li.setAttribute('itemscope', ''); + li.setAttribute('itemtype', 'http://schema.org/Thing'); // Schema.org no tiene 'Pokemon' + + const image = pokemon.image ? `${pokemon.name}` : ''; + const name = pokemon.name ? `

                  ${pokemon.name}

                  ` : ''; + const type = pokemon.type ? `

                  ELEMENTO: ${pokemon.type.join(', ')}

                  ` : ''; + const generation = pokemon.generation ? `

                  GENERACION: ${pokemon.generation}

                  ` : ''; + const region = pokemon.region ? `

                  REGION: ${pokemon.region}

                  ` : ''; + const number = pokemon.number ? `

                  NUMERO: ${pokemon.number}

                  ` : ''; + const rarity = pokemon.rarity ? `

                  RAREZA: ${pokemon.rarity}

                  ` : ''; + const shortDescription = pokemon.shortDescription ? `

                  PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                  ` : ''; + const description = pokemon.description ? `

                  DESCRIPCION: ${pokemon.description}

                  ` : ''; + const weakness = pokemon.weakness ? `

                  DEBILIDAD: ${pokemon.weakness.join(', ')}

                  ` : ''; + const attack = pokemon.attack ? `

                  ATAQUE: ${pokemon.attack}

                  ` : ''; + const defense = pokemon.defense ? `

                  DEFENSA: ${pokemon.defense}

                  ` : ''; + const speed = pokemon.speed ? `

                  VELOCIDAD: ${pokemon.speed}

                  ` : ''; + + const facts = pokemon.facts ? ` +

                  DATOS CURIOSOS

                  +

                  NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

                  +

                  HABLAR: ${pokemon.facts.ability}

                  +

                  COLOR: ${pokemon.facts.primaryColor}

                  + ` : ''; + li.innerHTML = ` -
                  -${pokemon.name} -

                  ${pokemon.name}

                  -

                  ELEMENTO: ${pokemon.type.join(", ")}

                  -

                  GENERACION: ${pokemon.generation}

                  -

                  REGION: ${pokemon.region}

                  -

                  NUMERO: ${pokemon.number}

                  -

                  RAREZA: ${pokemon.rarity}

                  -

                  PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                  -

                  DESCRIPCION: ${pokemon.description}

                  -

                  DEBILIDAD: ${pokemon.weakness.join(", ")}

                  -

                  ATAQUE: ${pokemon.attack}

                  -

                  DEFENSA: ${pokemon.defense}

                  -

                  VELOCIDAD: ${pokemon.speed}

                  -

                  DATOS CURIOSOS

                  -

                  NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

                  -

                  HABLAR: ${pokemon.facts.ability}

                  -

                  COLOR: ${pokemon.facts.primaryColor}

                  -
                  -`; - pokemonList.appendChild(li); +
                  + ${image} + ${name} + ${type} + ${generation} + ${region} + ${number} + ${rarity} + ${shortDescription} + ${description} + ${weakness} + ${attack} + ${defense} + ${speed} + ${facts} +
                  + `; + + // Agregar evento de clic para imprimir información en la consola + li.addEventListener('click', () => { + console.log(`Detalles del Pokémon ${pokemon.name}:`); + console.log(pokemon); + }); + + pokemonListElement.appendChild(li); }); } + From 5951a52fc81db7e2b9548c608d73e2fc455a143b Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Mon, 24 Jun 2024 10:22:32 -0600 Subject: [PATCH 11/43] cambios de pruebas --- src/data/dataset.js | 1 - src/index.html | 209 ++++++++++++++++++++++---------------------- src/main.js | 48 ++++++---- src/style.css | 108 +++++++++++------------ src/view.js | 75 ++++++++++------ 5 files changed, 237 insertions(+), 204 deletions(-) diff --git a/src/data/dataset.js b/src/data/dataset.js index a7bde735..e6ffaab8 100644 --- a/src/data/dataset.js +++ b/src/data/dataset.js @@ -564,4 +564,3 @@ export default [ }, }, ]; - diff --git a/src/index.html b/src/index.html index 6e4a2cbc..f50c59f6 100644 --- a/src/index.html +++ b/src/index.html @@ -2,118 +2,119 @@ - - - - PokemonGame - + + + + PokemonGame + - -
                  -

                  POKEMON

                  -
                  + +
                  +

                  POKEMON

                  +
                  -
                  -

                  Pokémon Cards

                  -
                  - - +
                  +

                  Pokémon Cards

                  +
                  + + - - + + - - + + - - + + - -
                  + +
                  -
                  -
                    -
                    +
                    +
                      +
                      - + -
                      -

                      Programa Pokemon Cards desarrollado por Daniela Trejo & Dinah Gomez

                      -
                      - +
                      +

                      Programa Pokemon Cards desarrollado por Daniela Trejo & Dinah Gomez

                      +
                      + - - - diff --git a/src/main.js b/src/main.js index e1d24e7a..58106167 100644 --- a/src/main.js +++ b/src/main.js @@ -1,59 +1,69 @@ -import data from './data/dataset.js'; -import { renderPokemonList } from './view.js'; -import { filterPokemonByElemental, filterPokemonByWeakness, filterPokemonByOrder, filterPokemonByWord, clearFiltersAndSort } from './dataFunctions.js'; +import data from "./data/dataset.js"; +import { renderPokemonList } from "./view.js"; +import { + filterPokemonByElemental, + filterPokemonByWeakness, + filterPokemonByOrder, + filterPokemonByWord, + clearFiltersAndSort, +} from "./dataFunctions.js"; -document.addEventListener('DOMContentLoaded', () => { +document.addEventListener("DOMContentLoaded", () => { function initializeApp() { renderPokemonList(data); } // Evento de cambio en el filtro de elementos function handleElementalChange() { - const elementalValue = document.getElementById('elemental').value; + const elementalValue = document.getElementById("elemental").value; const elementalPokemon = filterPokemonByElemental(data, elementalValue); renderPokemonList(elementalPokemon); } // Evento de cambio en el filtro de debilidad function handleWeaknessChange() { - const weaknessValue = document.getElementById('weakness').value; + const weaknessValue = document.getElementById("weakness").value; const weaknessPokemon = filterPokemonByWeakness(data, weaknessValue); renderPokemonList(weaknessPokemon); } // Evento de cambio en la selección de ordenamiento function handleOrderChange() { - const orderValue = document.getElementById('order').value; + const orderValue = document.getElementById("order").value; const orderPokemon = filterPokemonByOrder(data, orderValue); renderPokemonList(orderPokemon); } // Evento de cambio en la selección de palabra function handleWordChange() { - const wordValue = document.getElementById('word').value; + const wordValue = document.getElementById("word").value; const wordPokemon = filterPokemonByWord(data, wordValue); renderPokemonList(wordPokemon); } // Evento de clic en el botón de borrar function handleClearClick() { - document.getElementById('elemental').value = 'Todo'; - document.getElementById('weakness').value = 'Todo'; - document.getElementById('order').value = 'Numero'; - document.getElementById('word').value = ''; + document.getElementById("elemental").value = "Todo"; + document.getElementById("weakness").value = "Todo"; + document.getElementById("order").value = "Numero"; + document.getElementById("word").value = ""; const clearedData = clearFiltersAndSort(data); renderPokemonList(clearedData); } // Asignar event listeners - document.getElementById('elemental').addEventListener('change', handleElementalChange); - document.getElementById('weakness').addEventListener('change', handleWeaknessChange); - document.getElementById('order').addEventListener('change', handleOrderChange); - document.getElementById('word').addEventListener('change', handleWordChange); - document.getElementById('clear').addEventListener('click', handleClearClick); + document + .getElementById("elemental") + .addEventListener("change", handleElementalChange); + document + .getElementById("weakness") + .addEventListener("change", handleWeaknessChange); + document + .getElementById("order") + .addEventListener("change", handleOrderChange); + document.getElementById("word").addEventListener("change", handleWordChange); + document.getElementById("clear").addEventListener("click", handleClearClick); // Carga inicial de la aplicación initializeApp(); }); - - diff --git a/src/style.css b/src/style.css index 03c45109..8335cced 100644 --- a/src/style.css +++ b/src/style.css @@ -1,58 +1,58 @@ /* Estilos para las tarjetas de Pokémon */ ul#pokemon-list { - list-style-type: none; - padding: 0; - display: flex; - flex-wrap: wrap; - gap: 20px; - } - - ul#pokemon-list li { - width: 200px; - background-color: #f0f0f0; - border: 1px solid #ccc; - padding: 10px; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - } - - ul#pokemon-list li img { - width: 100%; - height: auto; - border-radius: 8px; - } - - ul#pokemon-list li h2 { - font-size: 1.2em; - margin-top: 0.5em; - } - - ul#pokemon-list li p { - font-size: 0.9em; - margin-top: 0.5em; - } - - ul#pokemon-list li div { - height: 100%; - display: flex; - flex-direction: column; - justify-content: space-between; - } - - ul#pokemon-list li div div { - display: none; - height: 100%; - overflow: auto; - border: 1px solid #ccc; - background-color: #f0f0f0; - border-radius: 8px; - padding: 10px; - } - - ul#pokemon-list li:hover div div { - display: block; - } - ul#pokemon-list li div div { + list-style-type: none; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +ul#pokemon-list li { + width: 200px; + background-color: #f0f0f0; + border: 1px solid #ccc; + padding: 10px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +ul#pokemon-list li img { + width: 100%; + height: auto; + border-radius: 8px; +} + +ul#pokemon-list li h2 { + font-size: 1.2em; + margin-top: 0.5em; +} + +ul#pokemon-list li p { + font-size: 0.9em; + margin-top: 0.5em; +} + +ul#pokemon-list li div { + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +ul#pokemon-list li div div { + display: none; + height: 100%; + overflow: auto; + border: 1px solid #ccc; + background-color: #f0f0f0; + border-radius: 8px; + padding: 10px; +} + +ul#pokemon-list li:hover div div { + display: block; +} +ul#pokemon-list li div div { display: none; position: absolute; top: 0; @@ -71,5 +71,3 @@ ul#pokemon-list { ul#pokemon-list li:hover div div { display: block; } - - \ No newline at end of file diff --git a/src/view.js b/src/view.js index 70659453..8cbe9339 100644 --- a/src/view.js +++ b/src/view.js @@ -1,32 +1,58 @@ export function renderPokemonList(pokemonList) { - const pokemonListElement = document.getElementById('pokemon-list'); - pokemonListElement.innerHTML = ''; - + const pokemonListElement = document.getElementById("pokemon-list"); + pokemonListElement.innerHTML = ""; + pokemonList.forEach((pokemon) => { - const li = document.createElement('li'); - li.setAttribute('itemscope', ''); - li.setAttribute('itemtype', 'http://schema.org/Thing'); // Schema.org no tiene 'Pokemon' + const li = document.createElement("li"); + li.setAttribute("itemscope", ""); + li.setAttribute("itemtype", "http://schema.org/ItemList"); - const image = pokemon.image ? `${pokemon.name}` : ''; - const name = pokemon.name ? `

                      ${pokemon.name}

                      ` : ''; - const type = pokemon.type ? `

                      ELEMENTO: ${pokemon.type.join(', ')}

                      ` : ''; - const generation = pokemon.generation ? `

                      GENERACION: ${pokemon.generation}

                      ` : ''; - const region = pokemon.region ? `

                      REGION: ${pokemon.region}

                      ` : ''; - const number = pokemon.number ? `

                      NUMERO: ${pokemon.number}

                      ` : ''; - const rarity = pokemon.rarity ? `

                      RAREZA: ${pokemon.rarity}

                      ` : ''; - const shortDescription = pokemon.shortDescription ? `

                      PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                      ` : ''; - const description = pokemon.description ? `

                      DESCRIPCION: ${pokemon.description}

                      ` : ''; - const weakness = pokemon.weakness ? `

                      DEBILIDAD: ${pokemon.weakness.join(', ')}

                      ` : ''; - const attack = pokemon.attack ? `

                      ATAQUE: ${pokemon.attack}

                      ` : ''; - const defense = pokemon.defense ? `

                      DEFENSA: ${pokemon.defense}

                      ` : ''; - const speed = pokemon.speed ? `

                      VELOCIDAD: ${pokemon.speed}

                      ` : ''; + const image = pokemon.image + ? `${pokemon.name}` + : ""; + const name = pokemon.name ? `

                      ${pokemon.name}

                      ` : ""; + const type = pokemon.type + ? `

                      ELEMENTO: ${pokemon.type.join(", ")}

                      ` + : ""; + const generation = pokemon.generation + ? `

                      GENERACION: ${pokemon.generation}

                      ` + : ""; + const region = pokemon.region + ? `

                      REGION: ${pokemon.region}

                      ` + : ""; + const number = pokemon.number + ? `

                      NUMERO: ${pokemon.number}

                      ` + : ""; + const rarity = pokemon.rarity + ? `

                      RAREZA: ${pokemon.rarity}

                      ` + : ""; + const shortDescription = pokemon.shortDescription + ? `

                      PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                      ` + : ""; + const description = pokemon.description + ? `

                      DESCRIPCION: ${pokemon.description}

                      ` + : ""; + const weakness = pokemon.weakness + ? `

                      DEBILIDAD: ${pokemon.weakness.join(", ")}

                      ` + : ""; + const attack = pokemon.attack + ? `

                      ATAQUE: ${pokemon.attack}

                      ` + : ""; + const defense = pokemon.defense + ? `

                      DEFENSA: ${pokemon.defense}

                      ` + : ""; + const speed = pokemon.speed + ? `

                      VELOCIDAD: ${pokemon.speed}

                      ` + : ""; - const facts = pokemon.facts ? ` + const facts = pokemon.facts + ? `

                      DATOS CURIOSOS

                      NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

                      HABLAR: ${pokemon.facts.ability}

                      COLOR: ${pokemon.facts.primaryColor}

                      - ` : ''; + ` + : ""; li.innerHTML = `
                      @@ -48,12 +74,11 @@ export function renderPokemonList(pokemonList) { `; // Agregar evento de clic para imprimir información en la consola - li.addEventListener('click', () => { - console.log(`Detalles del Pokémon ${pokemon.name}:`); - console.log(pokemon); + li.addEventListener("click", () => { + //console.log(`Detalles del Pokémon ${pokemon.name}:`); + // console.log(pokemon); }); pokemonListElement.appendChild(li); }); } - From e5f4e2b8e14e57daacb30961f42c331a86b43576 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Mon, 1 Jul 2024 01:12:24 -0600 Subject: [PATCH 12/43] movimiento a las cartas --- src/main.js | 22 ++++++++ src/style.css | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/view.js | 11 ++-- 3 files changed, 168 insertions(+), 3 deletions(-) diff --git a/src/main.js b/src/main.js index 58106167..599c864b 100644 --- a/src/main.js +++ b/src/main.js @@ -64,6 +64,28 @@ document.addEventListener("DOMContentLoaded", () => { document.getElementById("word").addEventListener("change", handleWordChange); document.getElementById("clear").addEventListener("click", handleClearClick); + // Asignar eventos de hover para mostrar datos curiosos + const pokemonListElement = document.getElementById("pokemon-list"); + pokemonListElement.addEventListener("mouseover", function (event) { + if (event.target.tagName === "LI") { + const facts = event.target.querySelector(".facts"); + if (facts) { + facts.style.display = "block"; + } + } + }); + + pokemonListElement.addEventListener("mouseout", function (event) { + if (event.target.tagName === "LI") { + const facts = event.target.querySelector(".facts"); + if (facts) { + facts.style.display = "none"; + } + } + }); + + + // Carga inicial de la aplicación initializeApp(); }); diff --git a/src/style.css b/src/style.css index 8335cced..5291eac3 100644 --- a/src/style.css +++ b/src/style.css @@ -71,3 +71,141 @@ ul#pokemon-list li div div { ul#pokemon-list li:hover div div { display: block; } +ul#pokemon-list { + list-style-type: none; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +ul#pokemon-list li { + width: 200px; + background-color: #f0f0f0; + border: 1px solid #ccc; + padding: 10px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + position: relative; /* Necesario para el posicionamiento del cuadro de datos curiosos */ +} + +ul#pokemon-list li img { + width: 100%; + height: auto; + border-radius: 8px; +} + +ul#pokemon-list li h3 { + font-size: 1.2em; + margin-top: 0.5em; +} + +ul#pokemon-list li p { + font-size: 0.9em; + margin-top: 0.5em; +} + +.pokemon-list li .facts { + display: none; + background-color: #fff; + border: 1px solid #ccc; + padding: 10px; + margin-top: 10px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + position: absolute; + top: 10px; + left: 10px; + z-index: 10; + width: calc(100% - 20px); +} + +.pokemon-list li:hover .facts { + display: block; +} + +.pokemon-list li .facts h4 { + margin: 0; + font-size: 1.1em; + color: #333; +} + +.pokemon-list li .facts p { + font-size: 0.9em; + color: #666; + margin: 0.5em 0 0 0; +} + +/* Estilos para las tarjetas de Pokémon */ +ul#pokemon-list { + list-style-type: none; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +ul#pokemon-list li { + width: 200px; + background-color: #f0f0f0; + border: 1px solid #ccc; + padding: 10px; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + position: relative; /* Necesario para el posicionamiento del cuadro de datos curiosos */ + overflow: hidden; /* Oculta el cuadro de datos curiosos inicialmente */ + transition: transform 0.3s ease-in-out; /* Transición suave para el efecto de escala */ +} + +ul#pokemon-list li:hover { + transform: scale(1.05); /* Efecto de escala al hacer hover */ +} + +ul#pokemon-list li img { + width: 100%; + height: auto; + border-radius: 8px; +} + +ul#pokemon-list li h3 { + font-size: 1.2em; + margin-top: 0.5em; +} + +ul#pokemon-list li p { + font-size: 0.9em; + margin-top: 0.5em; +} + +ul#pokemon-list li .facts { + display: none; /* Oculta datos curiosos inicialmente */ + position: absolute; + top: 0; + left: 0; + z-index: 10; + width: 100%; + height: 100%; + background-color: rgba(240, 240, 240, 0.95); /* Fondo semi-transparente */ + border: 1px solid #ccc; + border-radius: 8px; + padding: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + overflow-y: auto; +} + +ul#pokemon-list li:hover .facts { + display: block; /* Muestra datos curiosos al hacer hover */ +} + +ul#pokemon-list li .facts h4 { + margin: 0; + font-size: 1.1em; + color: #333; +} + +ul#pokemon-list li .facts p { + font-size: 0.9em; + color: #666; + margin: 0.5em 0 0 0; +} + diff --git a/src/view.js b/src/view.js index 8cbe9339..ac1889d8 100644 --- a/src/view.js +++ b/src/view.js @@ -4,8 +4,8 @@ export function renderPokemonList(pokemonList) { pokemonList.forEach((pokemon) => { const li = document.createElement("li"); - li.setAttribute("itemscope", ""); - li.setAttribute("itemtype", "http://schema.org/ItemList"); + li.setAttribute("itemscope", "true"); + li.setAttribute("itemtype", "http://schema.org/ItemPokemon"); const image = pokemon.image ? `${pokemon.name}` @@ -55,7 +55,7 @@ export function renderPokemonList(pokemonList) { : ""; li.innerHTML = ` -
                      +
                      ${image} ${name} ${type} @@ -70,7 +70,11 @@ export function renderPokemonList(pokemonList) { ${defense} ${speed} ${facts} + + +
                      + `; // Agregar evento de clic para imprimir información en la consola @@ -79,6 +83,7 @@ export function renderPokemonList(pokemonList) { // console.log(pokemon); }); + pokemonListElement.appendChild(li); }); } From 138146c26b054af84364460edc2376bf8a2461ab Mon Sep 17 00:00:00 2001 From: daniela trejo Date: Mon, 1 Jul 2024 23:47:44 -0600 Subject: [PATCH 13/43] cambios en css --- src/index.html | 42 ++++++++++++++++++-------- src/style.css | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 13 deletions(-) diff --git a/src/index.html b/src/index.html index f50c59f6..836cdcbf 100644 --- a/src/index.html +++ b/src/index.html @@ -1,20 +1,24 @@ + + PokemonGame + + -
                      -

                      POKEMON

                      -
                      + + + +

                      Pokémon Cards

                      + +
                      -
                        -
                        -
                        +
                          + +
                          diff --git a/src/style.css b/src/style.css index 5291eac3..febccc5f 100644 --- a/src/style.css +++ b/src/style.css @@ -1,3 +1,84 @@ +.titulo-con-logo{ + display: flex; + align-items: left; + justify-content:left; + margin-top: 70; /* Espacio superior opcional */ +} + +.titulo-con-logo img { + margin-right: 280px; /* Espacio entre el logo y el título */ + max-height: 250px; /* Ajusta el tamaño de la imagen si es necesario */ +} +.titulo-con-logo h1 { + margin: 0; /* Elimina el margen del título */ +} + +.button{ + background-color: #7d91c7; /* Color de fondo */ + border: none; /* Sin borde */ + color: white; /* Color del texto */ + padding: 15px 32px; /* Relleno interno */ + text-align: center; /* Alineación del texto */ + text-decoration: none; /* Sin subrayado */ + display: inline-block; /* Mostrar en línea */ + font-size: 16px; /* Tamaño de la fuente */ + margin: 4px 2px; /* Márgenes */ + cursor: pointer; /* Cambia el cursor al pasar sobre el botón */ + border-radius: 4px; /* Bordes redondeados */ + transition: background-color 0.3s ease; /* Transición suave */ + +} + +/* Estilo para cambiar el color del botón al pasar el ratón por encima */ +button:hover { + background-color: yellow; /* Color de fondo al pasar el ratón */ +} + +/* Estilos para los select (listas desplegables) */ +select { + background-color:rgb(110, 110, 221); /* Color de fondo */ + border: 1px solid #0e0d0d; /* Borde */ + color: #141212; /* Color del texto */ + padding: 10px; /* Relleno interno */ + font-size: 18px; /* Tamaño de la fuente */ + border-radius: 4px; /* Bordes redondeados */ + margin: 4px 2px; /* Márgenes */ + transition: background-color 0.3s ease; /* Transición suave */ +} + +/* Estilo para cambiar el color del select al pasar el ratón por encima */ +select:hover { + background-color:rgb(219, 179, 179); /* Color de fondo al pasar el ratón */ +} + +/* Contenedor de botones y selects */ +.botones { + display:flexbox; + flex-direction:column; + align-items:center; + margin-top: 50px; + font-size: 20px; +} + + +/* Estilos específicos para el botón de borrar */ +#clear { + background-color: yellow; + color: rgb(34, 29, 29); + padding: 10px 20px; + font-size: 16px; + border-radius: 4px; + margin: 10px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +/* Estilo para cambiar el color del botón de borrar al pasar el ratón por encima */ +#clear:hover { + background-color: red; +} + + /* Estilos para las tarjetas de Pokémon */ ul#pokemon-list { list-style-type: none; From fb4ec00fa048fe86fcde403e34fa11848e6129de Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Thu, 4 Jul 2024 10:31:34 -0600 Subject: [PATCH 14/43] boton leer mas sin funcion --- src/dataFunctions.js | 1 + src/main.js | 2 + src/style.css | 347 +++++++++++++++++++++++-------------------- src/view.js | 65 ++++---- 4 files changed, 214 insertions(+), 201 deletions(-) diff --git a/src/dataFunctions.js b/src/dataFunctions.js index 269bbf22..796e7c1c 100644 --- a/src/dataFunctions.js +++ b/src/dataFunctions.js @@ -44,3 +44,4 @@ export function filterPokemonByWord(data, wordValue) { export function clearFiltersAndSort(data) { return data.sort((a, b) => a.number - b.number); } + diff --git a/src/main.js b/src/main.js index 599c864b..181aff4c 100644 --- a/src/main.js +++ b/src/main.js @@ -83,6 +83,8 @@ document.addEventListener("DOMContentLoaded", () => { } } }); + + diff --git a/src/style.css b/src/style.css index febccc5f..88612bcd 100644 --- a/src/style.css +++ b/src/style.css @@ -1,100 +1,109 @@ -.titulo-con-logo{ +/* Estilos para el contenedor principal */ +body { + font-family: Arial, sans-serif; + background-color: #f0f0f0; + margin: 0; + padding: 0; +} + +/* Estilos para el encabezado con el logo */ +.titulo-con-logo { display: flex; - align-items: left; - justify-content:left; - margin-top: 70; /* Espacio superior opcional */ + align-items: center; + justify-content: space-between; + padding: 40px; + background-color: #333; + color: white; } .titulo-con-logo img { - margin-right: 280px; /* Espacio entre el logo y el título */ - max-height: 250px; /* Ajusta el tamaño de la imagen si es necesario */ + max-height: 80px; + margin-right: 20px; } + .titulo-con-logo h1 { - margin: 0; /* Elimina el margen del título */ + margin: 0; + font-size: 2em; /* Título un poco más grande */ } -.button{ - background-color: #7d91c7; /* Color de fondo */ - border: none; /* Sin borde */ - color: white; /* Color del texto */ - padding: 15px 32px; /* Relleno interno */ - text-align: center; /* Alineación del texto */ - text-decoration: none; /* Sin subrayado */ - display: inline-block; /* Mostrar en línea */ - font-size: 16px; /* Tamaño de la fuente */ - margin: 4px 2px; /* Márgenes */ - cursor: pointer; /* Cambia el cursor al pasar sobre el botón */ - border-radius: 4px; /* Bordes redondeados */ - transition: background-color 0.3s ease; /* Transición suave */ - +/* Estilos para el contenedor de botones y selects */ +.botones { + display: flex; + justify-content: space-around; + align-items: center; + margin-top: 20px; } -/* Estilo para cambiar el color del botón al pasar el ratón por encima */ -button:hover { - background-color: yellow; /* Color de fondo al pasar el ratón */ +.botones select, +.botones button { + padding: 10px; + font-size: 14px; + border-radius: 4px; + cursor: pointer; } -/* Estilos para los select (listas desplegables) */ -select { - background-color:rgb(110, 110, 221); /* Color de fondo */ - border: 1px solid #0e0d0d; /* Borde */ - color: #141212; /* Color del texto */ - padding: 10px; /* Relleno interno */ - font-size: 18px; /* Tamaño de la fuente */ - border-radius: 4px; /* Bordes redondeados */ - margin: 4px 2px; /* Márgenes */ - transition: background-color 0.3s ease; /* Transición suave */ +/* Colores para los botones desplegables */ +.botones select:nth-of-type(1) { + background-color: yellow; /* Amarillo */ + color: black; } -/* Estilo para cambiar el color del select al pasar el ratón por encima */ -select:hover { - background-color:rgb(219, 179, 179); /* Color de fondo al pasar el ratón */ +.botones select:nth-of-type(2) { + background-color: blue; /* Azul */ + color: white; } -/* Contenedor de botones y selects */ -.botones { - display:flexbox; - flex-direction:column; - align-items:center; - margin-top: 50px; - font-size: 20px; +.botones select:nth-of-type(3) { + background-color: white; /* Blanco */ + color: black; } +.botones select:nth-of-type(4) { + background-color: green; /* Verde */ + color: white; +} -/* Estilos específicos para el botón de borrar */ +/* Estilos para el botón "BORRAR" */ #clear { - background-color: yellow; - color: rgb(34, 29, 29); + background-color: #ff4500; /* Naranja */ + color: white; + border: none; padding: 10px 20px; - font-size: 16px; - border-radius: 4px; - margin: 10px; + font-size: 14px; cursor: pointer; + border-radius: 4px; transition: background-color 0.3s ease; } -/* Estilo para cambiar el color del botón de borrar al pasar el ratón por encima */ #clear:hover { - background-color: red; + background-color: #cc3700; /* Naranja más oscuro al hacer hover */ } - -/* Estilos para las tarjetas de Pokémon */ +/* Estilos para la lista de Pokémon */ ul#pokemon-list { list-style-type: none; - padding: 0; + padding: 20px; display: flex; flex-wrap: wrap; gap: 20px; + justify-content: center; + background-color: #333; /* Fondo negro para el contenedor de las tarjetas */ } ul#pokemon-list li { - width: 200px; - background-color: #f0f0f0; + width: 250px; + background-color: #fff; border: 1px solid #ccc; - padding: 10px; + padding: 15px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + position: relative; + overflow: hidden; + transition: transform 0.3s ease; +} + +ul#pokemon-list li:hover { + transform: scale(1.03); } ul#pokemon-list li img { @@ -103,7 +112,7 @@ ul#pokemon-list li img { border-radius: 8px; } -ul#pokemon-list li h2 { +ul#pokemon-list li h3 { font-size: 1.2em; margin-top: 0.5em; } @@ -113,35 +122,15 @@ ul#pokemon-list li p { margin-top: 0.5em; } -ul#pokemon-list li div { - height: 100%; - display: flex; - flex-direction: column; - justify-content: space-between; -} - -ul#pokemon-list li div div { - display: none; - height: 100%; - overflow: auto; - border: 1px solid #ccc; - background-color: #f0f0f0; - border-radius: 8px; - padding: 10px; -} - -ul#pokemon-list li:hover div div { - display: block; -} -ul#pokemon-list li div div { +ul#pokemon-list li .facts { display: none; position: absolute; top: 0; left: 0; - z-index: 1; + z-index: 10; width: 100%; height: 100%; - background-color: rgba(240, 240, 240, 0.95); /* Fondo semi-transparente */ + background-color: rgba(240, 240, 240, 0.95); border: 1px solid #ccc; border-radius: 8px; padding: 10px; @@ -149,25 +138,34 @@ ul#pokemon-list li div div { overflow-y: auto; } -ul#pokemon-list li:hover div div { +ul#pokemon-list li:hover .facts { display: block; } +/* Estilos para la lista de Pokémon */ ul#pokemon-list { list-style-type: none; - padding: 0; + padding: 20px; display: flex; flex-wrap: wrap; gap: 20px; + justify-content: center; + background-color: #333; /* Fondo negro para el contenedor de las tarjetas */ } ul#pokemon-list li { - width: 200px; - background-color: #f0f0f0; + width: 250px; + background-color: #fff; border: 1px solid #ccc; - padding: 10px; + padding: 15px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - position: relative; /* Necesario para el posicionamiento del cuadro de datos curiosos */ + position: relative; + overflow: hidden; + transition: transform 0.3s ease; +} + +ul#pokemon-list li:hover { + transform: scale(1.03); } ul#pokemon-list li img { @@ -186,107 +184,130 @@ ul#pokemon-list li p { margin-top: 0.5em; } -.pokemon-list li .facts { +ul#pokemon-list li .details { display: none; - background-color: #fff; - border: 1px solid #ccc; - padding: 10px; - margin-top: 10px; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - position: absolute; - top: 10px; - left: 10px; - z-index: 10; - width: calc(100% - 20px); + padding-top: 10px; } -.pokemon-list li:hover .facts { - display: block; +ul#pokemon-list li .details p { + margin-top: 5px; } -.pokemon-list li .facts h4 { - margin: 0; - font-size: 1.1em; - color: #333; +ul#pokemon-list li .read-more-button { + background-color: #ff4500; /* Naranja */ + color: white; + border: none; + padding: 8px 12px; + font-size: 14px; + cursor: pointer; + border-radius: 4px; + transition: background-color 0.3s ease; } -.pokemon-list li .facts p { - font-size: 0.9em; - color: #666; - margin: 0.5em 0 0 0; +ul#pokemon-list li .read-more-button:hover { + background-color: #cc3700; /* Naranja más oscuro al hacer hover */ +} +ul#pokemon-list li .details { + display: none; + padding-top: 10px; } -/* Estilos para las tarjetas de Pokémon */ -ul#pokemon-list { - list-style-type: none; - padding: 0; - display: flex; - flex-wrap: wrap; - gap: 20px; +ul#pokemon-list li .read-more-button { + background-color: #ff4500; /* Naranja */ + color: white; + border: none; + padding: 8px 12px; + font-size: 14px; + cursor: pointer; + border-radius: 4px; + transition: background-color 0.3s ease; } -ul#pokemon-list li { - width: 200px; - background-color: #f0f0f0; - border: 1px solid #ccc; - padding: 10px; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - position: relative; /* Necesario para el posicionamiento del cuadro de datos curiosos */ - overflow: hidden; /* Oculta el cuadro de datos curiosos inicialmente */ - transition: transform 0.3s ease-in-out; /* Transición suave para el efecto de escala */ +ul#pokemon-list li .read-more-button:hover { + background-color: #cc3700; /* Naranja más oscuro al hacer hover */ } -ul#pokemon-list li:hover { - transform: scale(1.05); /* Efecto de escala al hacer hover */ +ul#pokemon-list li:hover .details { + display: block; +} +body { + font-family: Arial, sans-serif; } -ul#pokemon-list li img { - width: 100%; - height: auto; - border-radius: 8px; +.titulo-con-logo { + display: flex; + align-items: center; + gap: 10px; } -ul#pokemon-list li h3 { - font-size: 1.2em; - margin-top: 0.5em; +h1 { + margin: 20px 0; } -ul#pokemon-list li p { - font-size: 0.9em; - margin-top: 0.5em; +.botones-desplegables { + display: flex; + gap: 10px; + margin-bottom: 20px; } -ul#pokemon-list li .facts { - display: none; /* Oculta datos curiosos inicialmente */ - position: absolute; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100%; - background-color: rgba(240, 240, 240, 0.95); /* Fondo semi-transparente */ - border: 1px solid #ccc; - border-radius: 8px; - padding: 10px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - overflow-y: auto; +#pokemon-container { + display: flex; + flex-wrap: wrap; + gap: 20px; } -ul#pokemon-list li:hover .facts { - display: block; /* Muestra datos curiosos al hacer hover */ +.pokemon-card { + border: 1px solid #ccc; + padding: 10px; + width: 200px; + position: relative; } -ul#pokemon-list li .facts h4 { - margin: 0; - font-size: 1.1em; - color: #333; +.pokemon-name { + font-size: 1.5em; + margin-bottom: 10px; } -ul#pokemon-list li .facts p { - font-size: 0.9em; - color: #666; - margin: 0.5em 0 0 0; +.pokemon-description { + font-size: 1em; + margin-bottom: 10px; +} + +.pokemon-details { + display: none; + font-size: 0.9em; +} + +.boton-leer-mas { + background-color: #f8d030; + border: none; + padding: 10px; + cursor: pointer; + position: absolute; + bottom: 10px; + left: 50%; + transform: translateX(-50%); +} + +.boton-leer-mas:hover { + background-color: #f7c912; } +.hidden { + display: none; +} + + + + + + + + + + + + + + + diff --git a/src/view.js b/src/view.js index ac1889d8..b79143ec 100644 --- a/src/view.js +++ b/src/view.js @@ -29,30 +29,10 @@ export function renderPokemonList(pokemonList) { const shortDescription = pokemon.shortDescription ? `

                          PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                          ` : ""; - const description = pokemon.description - ? `

                          DESCRIPCION: ${pokemon.description}

                          ` - : ""; - const weakness = pokemon.weakness - ? `

                          DEBILIDAD: ${pokemon.weakness.join(", ")}

                          ` - : ""; - const attack = pokemon.attack - ? `

                          ATAQUE: ${pokemon.attack}

                          ` - : ""; - const defense = pokemon.defense - ? `

                          DEFENSA: ${pokemon.defense}

                          ` - : ""; - const speed = pokemon.speed - ? `

                          VELOCIDAD: ${pokemon.speed}

                          ` - : ""; - const facts = pokemon.facts - ? ` -

                          DATOS CURIOSOS

                          -

                          NUMERO EN LA POKEDEX: ${pokemon.facts.pokedexNumber}

                          -

                          HABLAR: ${pokemon.facts.ability}

                          -

                          COLOR: ${pokemon.facts.primaryColor}

                          - ` - : ""; + const readMoreButton = ` + + `; li.innerHTML = `
                          @@ -64,26 +44,35 @@ export function renderPokemonList(pokemonList) { ${number} ${rarity} ${shortDescription} - ${description} - ${weakness} - ${attack} - ${defense} - ${speed} - ${facts} - - - + ${readMoreButton}
                          - + `; - // Agregar evento de clic para imprimir información en la consola - li.addEventListener("click", () => { - //console.log(`Detalles del Pokémon ${pokemon.name}:`); - // console.log(pokemon); + // Event listener para mostrar detalles al hacer clic en "Leer más" + const detailsDiv = li.querySelector(".details"); + const readMoreBtn = li.querySelector(".read-more-button"); + readMoreBtn.addEventListener("click", () => { + detailsDiv.classList.toggle("hidden"); + if (detailsDiv.classList.contains("hidden")) { + readMoreBtn.textContent = "Leer más"; + } else { + readMoreBtn.textContent = "Cerrar"; + } + }); - pokemonListElement.appendChild(li); }); } + From 69b5def75e65c89286679b55c94c405e1c0679e5 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Thu, 4 Jul 2024 11:15:19 -0600 Subject: [PATCH 15/43] nombres de botones --- src/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.html b/src/index.html index 836cdcbf..62c7a8af 100644 --- a/src/index.html +++ b/src/index.html @@ -77,7 +77,7 @@ - + - + From a0fcba8a60ddd8cef05fe9b9d4d6da681bccfcc6 Mon Sep 17 00:00:00 2001 From: Dynah1970 Date: Fri, 5 Jul 2024 21:01:19 -0600 Subject: [PATCH 16/43] prueba final --- src/index.html | 2 +- src/style.css | 167 ++++--------------------------------------------- src/view.js | 78 ++++++++++++----------- 3 files changed, 56 insertions(+), 191 deletions(-) diff --git a/src/index.html b/src/index.html index 62c7a8af..bc32daed 100644 --- a/src/index.html +++ b/src/index.html @@ -110,7 +110,7 @@ - + diff --git a/src/style.css b/src/style.css index 88612bcd..7f17e727 100644 --- a/src/style.css +++ b/src/style.css @@ -18,7 +18,7 @@ body { .titulo-con-logo img { max-height: 80px; - margin-right: 20px; + margin-right: 40px; /* Aumento del margen derecho para más espacio */ } .titulo-con-logo h1 { @@ -40,6 +40,7 @@ body { font-size: 14px; border-radius: 4px; cursor: pointer; + margin-right: 10px; /* Espacio entre botones */ } /* Colores para los botones desplegables */ @@ -122,68 +123,6 @@ ul#pokemon-list li p { margin-top: 0.5em; } -ul#pokemon-list li .facts { - display: none; - position: absolute; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100%; - background-color: rgba(240, 240, 240, 0.95); - border: 1px solid #ccc; - border-radius: 8px; - padding: 10px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - overflow-y: auto; -} - -ul#pokemon-list li:hover .facts { - display: block; -} -/* Estilos para la lista de Pokémon */ -ul#pokemon-list { - list-style-type: none; - padding: 20px; - display: flex; - flex-wrap: wrap; - gap: 20px; - justify-content: center; - background-color: #333; /* Fondo negro para el contenedor de las tarjetas */ -} - -ul#pokemon-list li { - width: 250px; - background-color: #fff; - border: 1px solid #ccc; - padding: 15px; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - position: relative; - overflow: hidden; - transition: transform 0.3s ease; -} - -ul#pokemon-list li:hover { - transform: scale(1.03); -} - -ul#pokemon-list li img { - width: 100%; - height: auto; - border-radius: 8px; -} - -ul#pokemon-list li h3 { - font-size: 1.2em; - margin-top: 0.5em; -} - -ul#pokemon-list li p { - font-size: 0.9em; - margin-top: 0.5em; -} - ul#pokemon-list li .details { display: none; padding-top: 10px; @@ -207,13 +146,16 @@ ul#pokemon-list li .read-more-button { ul#pokemon-list li .read-more-button:hover { background-color: #cc3700; /* Naranja más oscuro al hacer hover */ } -ul#pokemon-list li .details { + +ul#pokemon-list li:hover .details { + display: block; +} +.hidden { display: none; - padding-top: 10px; } - -ul#pokemon-list li .read-more-button { - background-color: #ff4500; /* Naranja */ +/* Estilos para el botón "Leer más" y "Leer menos" */ +.flip-btn { + background-color: red; /* Cambia el color a rojo */ color: white; border: none; padding: 8px 12px; @@ -223,91 +165,6 @@ ul#pokemon-list li .read-more-button { transition: background-color 0.3s ease; } -ul#pokemon-list li .read-more-button:hover { - background-color: #cc3700; /* Naranja más oscuro al hacer hover */ -} - -ul#pokemon-list li:hover .details { - display: block; -} -body { - font-family: Arial, sans-serif; -} - -.titulo-con-logo { - display: flex; - align-items: center; - gap: 10px; -} - -h1 { - margin: 20px 0; +.flip-btn:hover { + background-color: darkred; /* Color más oscuro al hacer hover */ } - -.botones-desplegables { - display: flex; - gap: 10px; - margin-bottom: 20px; -} - -#pokemon-container { - display: flex; - flex-wrap: wrap; - gap: 20px; -} - -.pokemon-card { - border: 1px solid #ccc; - padding: 10px; - width: 200px; - position: relative; -} - -.pokemon-name { - font-size: 1.5em; - margin-bottom: 10px; -} - -.pokemon-description { - font-size: 1em; - margin-bottom: 10px; -} - -.pokemon-details { - display: none; - font-size: 0.9em; -} - -.boton-leer-mas { - background-color: #f8d030; - border: none; - padding: 10px; - cursor: pointer; - position: absolute; - bottom: 10px; - left: 50%; - transform: translateX(-50%); -} - -.boton-leer-mas:hover { - background-color: #f7c912; -} - -.hidden { - display: none; -} - - - - - - - - - - - - - - - diff --git a/src/view.js b/src/view.js index b79143ec..a7c69b78 100644 --- a/src/view.js +++ b/src/view.js @@ -30,46 +30,54 @@ export function renderPokemonList(pokemonList) { ? `

                          PEQUEÑA DESCRIPCION: ${pokemon.shortDescription}

                          ` : ""; - const readMoreButton = ` - - `; - li.innerHTML = ` -
                          - ${image} - ${name} - ${type} - ${generation} - ${region} - ${number} - ${rarity} - ${shortDescription} - ${readMoreButton} -
                          -