From b2155d73628af19e8b96a5bab59a4171582538b4 Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Fri, 15 Mar 2024 19:24:55 +0000 Subject: [PATCH 1/6] Add allow-llm-calls attribute, add instructions to use GA keys --- .../lessons/1-getting-started/lesson.adoc | 6 ++-- .../courses/llm-chatbot-python/course.adoc | 3 +- .../llm-chatbot-typescript/course.adoc | 1 + asciidoc/courses/llm-fundamentals/course.adoc | 3 +- .../2-initialising-the-llm/lesson.adoc | 32 ++++++++++++++++++- src/constants.ts | 1 + src/services/merge-courses.ts | 4 ++- 7 files changed, 43 insertions(+), 7 deletions(-) diff --git a/asciidoc/courses/genai-workshop/modules/1-knowledge-graphs-vectors/lessons/1-getting-started/lesson.adoc b/asciidoc/courses/genai-workshop/modules/1-knowledge-graphs-vectors/lessons/1-getting-started/lesson.adoc index 87e9f331d..d57e634d3 100644 --- a/asciidoc/courses/genai-workshop/modules/1-knowledge-graphs-vectors/lessons/1-getting-started/lesson.adoc +++ b/asciidoc/courses/genai-workshop/modules/1-knowledge-graphs-vectors/lessons/1-getting-started/lesson.adoc @@ -5,7 +5,7 @@ :disable-cache: true We have created a link:https://github.com/neo4j-graphacademy/genai-workshop[repository^] for this workshop. -It contains the starter code and resources you need. +It contains the starter code and resources you need. A blank Neo4j Sandbox instance has also been created for you to use during this course. @@ -48,7 +48,7 @@ pip install -r requirements.txt == Setup the environment -Create a copy of the `.env.example` file and name it `.env`. +Create a copy of the `.env.example` file and name it `.env`. Fill in the required values. [source] @@ -57,7 +57,7 @@ Fill in the required values. include::{repository-raw}/main/.env.example[] ---- -Add your Open AI API key (`OPENAI_API_KEY`), which you can get from link:https://platform.openai.com[platformn.openai.com]. +Add your Open AI API key (`OPENAI_API_KEY`), which you can get from link:https://platform.openai.com[platform.openai.com]. Update the Neo4j sandbox connection details: diff --git a/asciidoc/courses/llm-chatbot-python/course.adoc b/asciidoc/courses/llm-chatbot-python/course.adoc index eb5df092e..75a1f8ae0 100644 --- a/asciidoc/courses/llm-chatbot-python/course.adoc +++ b/asciidoc/courses/llm-chatbot-python/course.adoc @@ -7,10 +7,11 @@ // :video: https://www.youtube.com/embed/vVCHJFa01gA :key-points: Building a Neo4j-backed Chatbot, Neo4j & Langchain, Neo4j & Streamlit :repository: neo4j-graphacademy/llm-chatbot-python +:allow-llm-calls: true == Course Description -In this hands-on course, you will use the knowledge obtained from the link:/courses/llm-fundamentals[Neo4j & LLM Fundamentals course^] to create a Movie Recommendation Chatbot backed by a Neo4j database. +In this hands-on course, you will use the knowledge from the link:/courses/llm-fundamentals[Neo4j & LLM Fundamentals course^] to create a Movie Recommendation Chatbot backed by a Neo4j database. You will take a simple chat interface that repeats the user's input and modify it to answer questions about movies via the Neo4j Recommendations Dataset using _GPT 3.5 Turbo_, complete with conversational history. diff --git a/asciidoc/courses/llm-chatbot-typescript/course.adoc b/asciidoc/courses/llm-chatbot-typescript/course.adoc index 7655b8775..b4f502f1f 100644 --- a/asciidoc/courses/llm-chatbot-typescript/course.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/course.adoc @@ -12,6 +12,7 @@ :reward-form: https://graphacademy.neo4j.com/account/rewards/llm-chatbot-typescript/ :reward-provider: printful :reward-product-id: @65f874e831d488,@65f875094279d1 +:allow-llm-calls: true == Course Description at diff --git a/asciidoc/courses/llm-fundamentals/course.adoc b/asciidoc/courses/llm-fundamentals/course.adoc index 6b675f862..29e04e1f7 100644 --- a/asciidoc/courses/llm-fundamentals/course.adoc +++ b/asciidoc/courses/llm-fundamentals/course.adoc @@ -7,6 +7,7 @@ :usecase: recommendations // :video: https://www.youtube.com/embed/vVCHJFa01gA :key-points: Neo4j and Generative AI, Grounding LLMs with Neo4j, Using Neo4j with Langchain +:allow-llm-calls: true == Course Description @@ -38,7 +39,7 @@ To complete the practical tasks within this course, you will need an link:https: === What you will learn * Retrieval Augmented Generation (RAG) and its role in grounding LLM generated content -* Using Vector and full text indexes in Neo4j to perform similarity and keyword search +* Using Vector and full-text indexes in Neo4j to perform similarity and keyword search * Coordinating your LLM interactions with Langchain chains, agents and tools [.includes] diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc index b62468aa0..a16a880dc 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc @@ -20,7 +20,37 @@ This course includes instructions for using link:https://openai.com/[OpenAI^], b [NOTE] .Using OpenAI -If you wish to use OpenAI and follow this course's practical activities, you must create an account and set up billing. +==== +We have generated an OpenAI API key for you to use through our OpenAI Proxy for the duration of this course using a proxy. +The API key will be limited to 5 requests every two minutes. + + +.Environment Variable +[source,env,subs="attributes+"] +---- +OPENAI_API_KEY={llm-api-key} +---- + +You must also set the `base_url` parameter to use our proxy server. + +.Setting the Proxy +[source,python,subs="attributes+"] +---- +from openai import OpenAI + +model = OpenAI( + api_key="{llm-api-key}", + base_url="https://graphacademy.neo4j.com/api/llm/v1/" +) +---- + +You can always use an existing OpenAI API key and omit the `base_url` argument. + + +==== + + + == Setup diff --git a/src/constants.ts b/src/constants.ts index 38a7d1eee..d328ad6d1 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -64,3 +64,4 @@ export const ATTRIBUTE_DESCRIPTION = 'description' export const ATTRIBUTE_QUESTIONS = 'questions' export const ATTRIBUTE_PASS_PERCENTAGE = 'pass-percentage' export const ATTRIBUTE_KEY_POINTS = 'key-points' +export const ATTRIBUTE_ALLOW_LLM_CALLS = 'allow-llm-calls' diff --git a/src/services/merge-courses.ts b/src/services/merge-courses.ts index 1a8b1bd2b..e4de3bba9 100644 --- a/src/services/merge-courses.ts +++ b/src/services/merge-courses.ts @@ -5,7 +5,7 @@ import { Session, ManagedTransaction } from 'neo4j-driver'; import { loadFile } from '../modules/asciidoc' import { getDriver } from '../modules/neo4j'; import { CourseToImport, LessonToImport, ModuleToImport, QuestionToImport } from '../types'; -import { ASCIIDOC_DIRECTORY, ATTRIBUTE_CAPTION, ATTRIBUTE_CATEGORIES, ATTRIBUTE_CERTIFICATION, ATTRIBUTE_CLASSMARKER_ID, ATTRIBUTE_CLASSMARKER_REFERENCE, ATTRIBUTE_DISABLE_CACHE, ATTRIBUTE_DURATION, ATTRIBUTE_LAB, ATTRIBUTE_LANGUAGE, ATTRIBUTE_NEXT, ATTRIBUTE_OPTIONAL, ATTRIBUTE_REDIRECT, ATTRIBUTE_REPOSITORY, ATTRIBUTE_SANDBOX, ATTRIBUTE_STATUS, ATTRIBUTE_THUMBNAIL, ATTRIBUTE_TRANSLATIONS, ATTRIBUTE_REWARD_FORM, ATTRIBUTE_REWARD_IMAGE, ATTRIBUTE_REWARD_PRODUCT_ID, ATTRIBUTE_REWARD_PROVIDER, ATTRIBUTE_TYPE, ATTRIBUTE_UPDATED_AT, ATTRIBUTE_USECASE, ATTRIBUTE_VIDEO, COURSE_DIRECTORY, DEFAULT_COURSE_STATUS, DEFAULT_COURSE_THUMBNAIL, DEFAULT_LANGUAGE, DEFAULT_LESSON_TYPE, STATUS_DISABLED, ATTRIBUTE_REWARD_TYPE, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_QUESTIONS, ATTRIBUTE_PASS_PERCENTAGE, ATTRIBUTE_KEY_POINTS, ATTRIBUTE_BRANCH } from '../constants'; +import { ASCIIDOC_DIRECTORY, ATTRIBUTE_CAPTION, ATTRIBUTE_CATEGORIES, ATTRIBUTE_CERTIFICATION, ATTRIBUTE_CLASSMARKER_ID, ATTRIBUTE_CLASSMARKER_REFERENCE, ATTRIBUTE_DISABLE_CACHE, ATTRIBUTE_DURATION, ATTRIBUTE_LAB, ATTRIBUTE_LANGUAGE, ATTRIBUTE_NEXT, ATTRIBUTE_OPTIONAL, ATTRIBUTE_REDIRECT, ATTRIBUTE_REPOSITORY, ATTRIBUTE_SANDBOX, ATTRIBUTE_STATUS, ATTRIBUTE_THUMBNAIL, ATTRIBUTE_TRANSLATIONS, ATTRIBUTE_REWARD_FORM, ATTRIBUTE_REWARD_IMAGE, ATTRIBUTE_REWARD_PRODUCT_ID, ATTRIBUTE_REWARD_PROVIDER, ATTRIBUTE_TYPE, ATTRIBUTE_UPDATED_AT, ATTRIBUTE_USECASE, ATTRIBUTE_VIDEO, COURSE_DIRECTORY, DEFAULT_COURSE_STATUS, DEFAULT_COURSE_THUMBNAIL, DEFAULT_LANGUAGE, DEFAULT_LESSON_TYPE, STATUS_DISABLED, ATTRIBUTE_REWARD_TYPE, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_QUESTIONS, ATTRIBUTE_PASS_PERCENTAGE, ATTRIBUTE_KEY_POINTS, ATTRIBUTE_BRANCH, ATTRIBUTE_ALLOW_LLM_CALLS } from '../constants'; import { courseOverviewPath, getDateAttribute, getOrderAttribute } from '../utils'; const loadCourses = (): CourseToImport[] => { @@ -87,6 +87,7 @@ const loadCourse = (courseFolder: string): CourseToImport => { classmarkerReference: file.getAttribute(ATTRIBUTE_CLASSMARKER_REFERENCE, null), questions: file.getAttribute(ATTRIBUTE_QUESTIONS, null), passPercentage: file.getAttribute(ATTRIBUTE_PASS_PERCENTAGE, null), + allowsLLMCalls: file.getAttribute(ATTRIBUTE_ALLOW_LLM_CALLS, 'false') === 'true', attributes: { rewardType: file.getAttribute(ATTRIBUTE_REWARD_TYPE, null), rewardForm: file.getAttribute(ATTRIBUTE_REWARD_FORM, null), @@ -216,6 +217,7 @@ const mergeCourseDetails = (tx: ManagedTransaction, courses: CourseToImport[]) = c.classmarkerReference = course.classmarkerReference, c.questions = toInteger(course.questions), c.passPercentage = toInteger(course.passPercentage), + c.allowsLLMCalls = course.allowsLLMCalls, c += course.attributes FOREACH (_ IN CASE WHEN course.certification THEN [1] ELSE [] END | SET c:Certification) From 0ee3a5304ef4995c0fc5c56f97504b7353da19ba Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Mon, 18 Mar 2024 16:43:53 +0000 Subject: [PATCH 2/6] WIP --- .../lessons/2-setup/lesson.adoc | 23 +++++++++--- .../1-introduction-to-lcel/images/chain.png | Bin 0 -> 53387 bytes .../1-introduction-to-lcel/lesson.adoc | 12 +++++++ .../lessons/6-limiting-scope/lesson.adoc | 6 ++-- .../2-initialising-the-llm/lesson.adoc | 34 ++---------------- .../lessons/2.5-chains/code/llm_chain.py | 8 +++-- .../2.5-chains/code/llm_chain_output.py | 9 ++--- .../2.5-chains/code/llm_chain_output_json.py | 9 ++--- .../lessons/2.5-chains/lesson.adoc | 7 ++-- 9 files changed, 54 insertions(+), 54 deletions(-) create mode 100644 asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/images/chain.png diff --git a/asciidoc/courses/llm-chatbot-typescript/modules/1-project-setup/lessons/2-setup/lesson.adoc b/asciidoc/courses/llm-chatbot-typescript/modules/1-project-setup/lessons/2-setup/lesson.adoc index 7912b2dad..612addd63 100644 --- a/asciidoc/courses/llm-chatbot-typescript/modules/1-project-setup/lessons/2-setup/lesson.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/modules/1-project-setup/lessons/2-setup/lesson.adoc @@ -84,17 +84,30 @@ NEO4J_USERNAME="{sandbox_username}" NEO4J_PASSWORD="{sandbox_password}" ---- -You must also set your OpenAI API key. -You can find link:https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key[instructions on generating an API key on openai.com^]. +You will also need an API Key to generate LLM responses using OpenAI. + +We have generated an OpenAI API key for you to use through our OpenAI Proxy for the duration of this course using a proxy. +The API key will be limited to 5 requests every two minutes. + Replace the `OPENAI_API_KEY` value with your OpenAI API key. .env.local -[source,env] +[source,env,subs="attributes+"] ---- -OPENAI_API_KEY="sk-..." +OPENAI_API_KEY="{llm-api-key}" +OPENAI_API_BASE="{llm-api-base}" ---- +If you find the rate limits restricting, you can always use an OpenAI API Key. +In this case, you would omit the Base URL. +You can find link:https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key[instructions on generating an API key on openai.com^]. + +This course's challenges do not require you use OpenAI LLMs, so feel free to use an alternative LLM provider. +We also like link:https://ollama.com/[Ollama^]. + + + [WARNING] .Keep your secrets safe ==== @@ -151,6 +164,6 @@ include::questions/1-server.adoc[leveloffset=+1] [.summary] == Summary -In this lesson, you obtained a copy of the course code, installed the dependency and used the `npm run dev` command to start the app. +In this lesson, you obtained a copy of the course code, installed the dependency, and used the `npm run dev` command to start the app. In the next lesson, you will set the scope for the project. diff --git a/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/images/chain.png b/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/images/chain.png new file mode 100644 index 0000000000000000000000000000000000000000..37c171f39886eb8ec27e9aa43eb1fc9393426658 GIT binary patch literal 53387 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⋙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 H1ONX8P3oDa literal 0 HcmV?d00001 diff --git a/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/lesson.adoc b/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/lesson.adoc index 1860123ab..1af914126 100644 --- a/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/lesson.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/modules/2-chains/lessons/1-introduction-to-lcel/lesson.adoc @@ -26,6 +26,8 @@ You can link:https://js.langchain.com/docs/expression_language/[read more about In the link:https://graphacademy.neo4j.com/courses/llm-fundamentals/3-intro-to-langchain/2.5-chains/[Chains lesson in Neo4j & LLM Fundamentals^], you learned about the `LLMChain`. The link:https://api.python.langchain.com/en/latest/_modules/langchain/chains/llm.html#LLMChain[`LLMChain`^] is an example of a simple chain that, when invoked, takes a user input, replaces the value inside the prompt and passes the prompt to an LLM and specifies the result. +image::./images/chain.png[Prompt → LLM → Response] + // [source] // ---- // // TODO: Diagram @@ -60,6 +62,16 @@ The prompt will be passed to an LLM, in this case, the `ChatOpenAI` model. include::{repository-raw}/main/examples/chain.mjs[tag=llm] ---- +=== The Response Parser + +You will then pass the LLM's response to an output parser. +The most straightforward parser is a `StringOutputParser`. + +[source,typescript] +---- +include::{repository-raw}/main/examples/chain.mjs[tag=parser] +---- + === Creating the Chain diff --git a/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/6-limiting-scope/lesson.adoc b/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/6-limiting-scope/lesson.adoc index 3703f923c..90d29437e 100644 --- a/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/6-limiting-scope/lesson.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/6-limiting-scope/lesson.adoc @@ -19,7 +19,7 @@ The agent currently uses a pre-written prompt from LangChain Hub. You can link:https://smith.langchain.com/hub/hwchase17/openai-functions-agent[view this prompt in LangChain Hub^]. The prompt is relatively basic. -It consists of an array of messages consisting of a role definition, human input, and placeholders. +It consists of an array of messages, including a role definition, human input, and placeholders. [source] .The prompt @@ -47,7 +47,7 @@ For example, the following prompt instructs the LLM to refuse to answer question .Modified Prompt [source] ---- -include::{repository-raw}/main/src/{lab-solution}[tag="scoped", indent=0] +include::{repository-raw}/main/{lab-solution}[tag="scoped", indent=0] ---- [NOTE] @@ -65,7 +65,7 @@ The link:{repository-blob}/main/{test-file}[unit test^] will verify whether the == Experiment You can extend the prompt to instruct the agent to act in specific ways. -Experiment with different prompts to see how the agent responds to various types of questions. +Experiment with different prompts to see how the agent responds to various questions. When you are ready, click Continue. diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc index a16a880dc..478ad8208 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2-initialising-the-llm/lesson.adoc @@ -20,37 +20,7 @@ This course includes instructions for using link:https://openai.com/[OpenAI^], b [NOTE] .Using OpenAI -==== -We have generated an OpenAI API key for you to use through our OpenAI Proxy for the duration of this course using a proxy. -The API key will be limited to 5 requests every two minutes. - - -.Environment Variable -[source,env,subs="attributes+"] ----- -OPENAI_API_KEY={llm-api-key} ----- - -You must also set the `base_url` parameter to use our proxy server. - -.Setting the Proxy -[source,python,subs="attributes+"] ----- -from openai import OpenAI - -model = OpenAI( - api_key="{llm-api-key}", - base_url="https://graphacademy.neo4j.com/api/llm/v1/" -) ----- - -You can always use an existing OpenAI API key and omit the `base_url` argument. - - -==== - - - +If you wish to use OpenAI and follow this course's practical activities, you must create an account and set up billing. == Setup @@ -84,7 +54,7 @@ pip install openai langchain-openai == Create a Langchain application -Create a new Python program and copy this code into a new Python file. +Create a new Python program and copy this code into it. [source,python] ---- diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain.py b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain.py index 54b6be2ba..56746738a 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain.py +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain.py @@ -2,7 +2,9 @@ from langchain.prompts import PromptTemplate from langchain.chains import LLMChain -llm = OpenAI(openai_api_key="sk-...") +llm = OpenAI( + openai_api_key="sk-..." +) template = PromptTemplate.from_template(""" You are a cockney fruit and vegetable seller. @@ -13,8 +15,8 @@ """) llm_chain = LLMChain( - llm=llm, - prompt=template + llm=llm, + prompt=template ) response = llm_chain.invoke({"fruit": "apple"}) diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output.py b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output.py index 059d97464..efbd205c7 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output.py +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output.py @@ -4,7 +4,8 @@ from langchain.schema import StrOutputParser llm = OpenAI( - openai_api_key="sk-...") + openai_api_key="sk-..." +) template = PromptTemplate.from_template(""" You are a cockney fruit and vegetable seller. @@ -15,9 +16,9 @@ """) llm_chain = LLMChain( - llm=llm, - prompt=template, - output_parser=StrOutputParser() + llm=llm, + prompt=template, + output_parser=StrOutputParser() ) response = llm_chain.invoke({"fruit": "apple"}) diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output_json.py b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output_json.py index 505a8a1a1..d2da53f99 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output_json.py +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/code/llm_chain_output_json.py @@ -4,7 +4,8 @@ from langchain.output_parsers.json import SimpleJsonOutputParser llm = OpenAI( - openai_api_key="sk-...") + openai_api_key="sk-..." +) template = PromptTemplate.from_template(""" You are a cockney fruit and vegetable seller. @@ -17,9 +18,9 @@ """) llm_chain = LLMChain( - llm=llm, - prompt=template, - output_parser=SimpleJsonOutputParser() + llm=llm, + prompt=template, + output_parser=SimpleJsonOutputParser() ) response = llm_chain.invoke({"fruit": "apple"}) diff --git a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/lesson.adoc b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/lesson.adoc index 60cff302e..7e3e73f78 100644 --- a/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/lesson.adoc +++ b/asciidoc/courses/llm-fundamentals/modules/3-intro-to-langchain/lessons/2.5-chains/lesson.adoc @@ -8,14 +8,15 @@ Chains allows you to combine language models with different data sources and thi == Using LLMChain -The simplest chain is an `LLMChain`. An `LLMChain` combines a prompt template with an LLM and returns a response. +The most straightforward chain is an `LLMChain`. An `LLMChain` combines a prompt template with an LLM and returns a response. Previously, you created a program that used a prompt template and an LLM to generate a response about fruit. + [%collapsible] .Click to reveal the code for the program. ==== -[source,python] +[source,python,subs="attributes+"] ---- include::../2-initialising-the-llm/code/llm_prompt.py[] ---- @@ -23,7 +24,7 @@ include::../2-initialising-the-llm/code/llm_prompt.py[] You can combine this program into a chain and create a reusable component. -[source,python] +[source,python,subs="attributes+"] ---- include::code/llm_chain.py[] ---- From 790bb523e25cea6e21ebacc6494246c20f3dd5ee Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Tue, 19 Mar 2024 10:44:58 +0000 Subject: [PATCH 3/6] Add admonition explaining baseURL on using-the-agent --- .../modules/6-agent/lessons/5-using-the-agent/lesson.adoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/5-using-the-agent/lesson.adoc b/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/5-using-the-agent/lesson.adoc index 772942c7d..690c85450 100644 --- a/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/5-using-the-agent/lesson.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/modules/6-agent/lessons/5-using-the-agent/lesson.adoc @@ -43,6 +43,12 @@ The retrieval tool requires an embedding model. include::{repository-raw}/main/{lab-solution}[tag="embeddings", indent=0] ---- +[IMPORTANT] +.Defining a `baseURL` +The `baseURL` configuration option uses the `OPENAI_API_BASE` key to use the GraphAcademy OpenAI Proxy as mentioned in link:../../1-project-setup/2-setup/[the Project Setup lesson^]. +If you are using an OpenAI API key (starting with `sk-`), you can omit the `configuration` options. + + To interact with the graph, the agent should use link:/courses/llm-chatbot-typescript/3-conversation-history/2-neo4j-graph/[the singleton instance created in the Initializing Neo4j lesson^]. .Embeddings From 530ae6cbd71ea262a6af112bec19d0a6d6f1b724 Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Tue, 19 Mar 2024 10:47:02 +0000 Subject: [PATCH 4/6] Fix typo --- asciidoc/courses/llm-chatbot-typescript/course.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/asciidoc/courses/llm-chatbot-typescript/course.adoc b/asciidoc/courses/llm-chatbot-typescript/course.adoc index b4f502f1f..9da25f847 100644 --- a/asciidoc/courses/llm-chatbot-typescript/course.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/course.adoc @@ -15,7 +15,7 @@ :allow-llm-calls: true == Course Description -at + In this hands-on course, you will use the knowledge obtained from the link:/courses/llm-fundamentals[Neo4j & LLM Fundamentals course^] to create a Movie Recommendation Chatbot backed by a Neo4j database. You will take a simple chat interface that repeats the user's input and modify it to answer questions about movies via the Neo4j Recommendations Dataset using GPT-4, complete with conversation history. From 5d254675d1e4d42da108d24193032c00d24a39a9 Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Thu, 21 Mar 2024 11:49:22 +0000 Subject: [PATCH 5/6] Add variable request throttling --- asciidoc/courses/genai-workshop/course.adoc | 8 +++++--- asciidoc/courses/llm-chatbot-python/course.adoc | 3 +++ asciidoc/courses/llm-chatbot-typescript/course.adoc | 2 ++ src/constants.ts | 2 ++ src/services/merge-courses.ts | 6 +++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/asciidoc/courses/genai-workshop/course.adoc b/asciidoc/courses/genai-workshop/course.adoc index 9d504373d..568d8a15f 100644 --- a/asciidoc/courses/genai-workshop/course.adoc +++ b/asciidoc/courses/genai-workshop/course.adoc @@ -5,12 +5,14 @@ :usecase: recommendations :key-points: A comma, separated, list of learnings :repository: neo4j-graphacademy/genai-workshop +:allow-llm-calls: true +:llm-call-limit: 0 == Course Description -In this GenAI and Neo4j workshop, you will learn how Neo4j can support your GenAI projects. +In this GenAI and Neo4j workshop, you will learn how Neo4j can support your GenAI projects. -You will: +You will: * Use Vector indexes and embeddings in Neo4j to perform similarity and keyword search * Use Python and LangChain to integrate with Neo4j and OpenAI @@ -34,7 +36,7 @@ While not essential, we completing the GraphAcademy link:/courses/neo4j-fundamen == What you need -To complete the practical tasks within this workshop, you will need: +To complete the practical tasks within this workshop, you will need: * Access to gitpod.io (you will need a github, gitpod, or bitbucket account) or a local Python environment * An OpenAI billing account and API key diff --git a/asciidoc/courses/llm-chatbot-python/course.adoc b/asciidoc/courses/llm-chatbot-python/course.adoc index 75a1f8ae0..079aac47b 100644 --- a/asciidoc/courses/llm-chatbot-python/course.adoc +++ b/asciidoc/courses/llm-chatbot-python/course.adoc @@ -8,6 +8,9 @@ :key-points: Building a Neo4j-backed Chatbot, Neo4j & Langchain, Neo4j & Streamlit :repository: neo4j-graphacademy/llm-chatbot-python :allow-llm-calls: true +:llm-call-limit: 50 +:llm-call-limit-period: PT2M + == Course Description diff --git a/asciidoc/courses/llm-chatbot-typescript/course.adoc b/asciidoc/courses/llm-chatbot-typescript/course.adoc index 9da25f847..6f24aecd1 100644 --- a/asciidoc/courses/llm-chatbot-typescript/course.adoc +++ b/asciidoc/courses/llm-chatbot-typescript/course.adoc @@ -13,6 +13,8 @@ :reward-provider: printful :reward-product-id: @65f874e831d488,@65f875094279d1 :allow-llm-calls: true +:llm-call-limit: 20 +:llm-call-limit-period: PT2M == Course Description diff --git a/src/constants.ts b/src/constants.ts index d328ad6d1..828e8aca7 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -65,3 +65,5 @@ export const ATTRIBUTE_QUESTIONS = 'questions' export const ATTRIBUTE_PASS_PERCENTAGE = 'pass-percentage' export const ATTRIBUTE_KEY_POINTS = 'key-points' export const ATTRIBUTE_ALLOW_LLM_CALLS = 'allow-llm-calls' +export const ATTRIBUTE_LLM_CALL_LIMIT_PERIOD = 'llm-call-limit-period' +export const ATTRIBUTE_LLM_CALL_LIMIT = 'llm-call-limit' diff --git a/src/services/merge-courses.ts b/src/services/merge-courses.ts index e4de3bba9..a2e34f9b3 100644 --- a/src/services/merge-courses.ts +++ b/src/services/merge-courses.ts @@ -5,7 +5,7 @@ import { Session, ManagedTransaction } from 'neo4j-driver'; import { loadFile } from '../modules/asciidoc' import { getDriver } from '../modules/neo4j'; import { CourseToImport, LessonToImport, ModuleToImport, QuestionToImport } from '../types'; -import { ASCIIDOC_DIRECTORY, ATTRIBUTE_CAPTION, ATTRIBUTE_CATEGORIES, ATTRIBUTE_CERTIFICATION, ATTRIBUTE_CLASSMARKER_ID, ATTRIBUTE_CLASSMARKER_REFERENCE, ATTRIBUTE_DISABLE_CACHE, ATTRIBUTE_DURATION, ATTRIBUTE_LAB, ATTRIBUTE_LANGUAGE, ATTRIBUTE_NEXT, ATTRIBUTE_OPTIONAL, ATTRIBUTE_REDIRECT, ATTRIBUTE_REPOSITORY, ATTRIBUTE_SANDBOX, ATTRIBUTE_STATUS, ATTRIBUTE_THUMBNAIL, ATTRIBUTE_TRANSLATIONS, ATTRIBUTE_REWARD_FORM, ATTRIBUTE_REWARD_IMAGE, ATTRIBUTE_REWARD_PRODUCT_ID, ATTRIBUTE_REWARD_PROVIDER, ATTRIBUTE_TYPE, ATTRIBUTE_UPDATED_AT, ATTRIBUTE_USECASE, ATTRIBUTE_VIDEO, COURSE_DIRECTORY, DEFAULT_COURSE_STATUS, DEFAULT_COURSE_THUMBNAIL, DEFAULT_LANGUAGE, DEFAULT_LESSON_TYPE, STATUS_DISABLED, ATTRIBUTE_REWARD_TYPE, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_QUESTIONS, ATTRIBUTE_PASS_PERCENTAGE, ATTRIBUTE_KEY_POINTS, ATTRIBUTE_BRANCH, ATTRIBUTE_ALLOW_LLM_CALLS } from '../constants'; +import { ASCIIDOC_DIRECTORY, ATTRIBUTE_CAPTION, ATTRIBUTE_CATEGORIES, ATTRIBUTE_CERTIFICATION, ATTRIBUTE_CLASSMARKER_ID, ATTRIBUTE_CLASSMARKER_REFERENCE, ATTRIBUTE_DISABLE_CACHE, ATTRIBUTE_DURATION, ATTRIBUTE_LAB, ATTRIBUTE_LANGUAGE, ATTRIBUTE_NEXT, ATTRIBUTE_OPTIONAL, ATTRIBUTE_REDIRECT, ATTRIBUTE_REPOSITORY, ATTRIBUTE_SANDBOX, ATTRIBUTE_STATUS, ATTRIBUTE_THUMBNAIL, ATTRIBUTE_TRANSLATIONS, ATTRIBUTE_REWARD_FORM, ATTRIBUTE_REWARD_IMAGE, ATTRIBUTE_REWARD_PRODUCT_ID, ATTRIBUTE_REWARD_PROVIDER, ATTRIBUTE_TYPE, ATTRIBUTE_UPDATED_AT, ATTRIBUTE_USECASE, ATTRIBUTE_VIDEO, COURSE_DIRECTORY, DEFAULT_COURSE_STATUS, DEFAULT_COURSE_THUMBNAIL, DEFAULT_LANGUAGE, DEFAULT_LESSON_TYPE, STATUS_DISABLED, ATTRIBUTE_REWARD_TYPE, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_QUESTIONS, ATTRIBUTE_PASS_PERCENTAGE, ATTRIBUTE_KEY_POINTS, ATTRIBUTE_BRANCH, ATTRIBUTE_ALLOW_LLM_CALLS, ATTRIBUTE_LLM_CALL_LIMIT, ATTRIBUTE_LLM_CALL_LIMIT_PERIOD } from '../constants'; import { courseOverviewPath, getDateAttribute, getOrderAttribute } from '../utils'; const loadCourses = (): CourseToImport[] => { @@ -88,6 +88,8 @@ const loadCourse = (courseFolder: string): CourseToImport => { questions: file.getAttribute(ATTRIBUTE_QUESTIONS, null), passPercentage: file.getAttribute(ATTRIBUTE_PASS_PERCENTAGE, null), allowsLLMCalls: file.getAttribute(ATTRIBUTE_ALLOW_LLM_CALLS, 'false') === 'true', + llmCallLimit: file.getAttribute(ATTRIBUTE_LLM_CALL_LIMIT), + llmCallLimitPeriod: file.getAttribute(ATTRIBUTE_LLM_CALL_LIMIT_PERIOD), attributes: { rewardType: file.getAttribute(ATTRIBUTE_REWARD_TYPE, null), rewardForm: file.getAttribute(ATTRIBUTE_REWARD_FORM, null), @@ -218,6 +220,8 @@ const mergeCourseDetails = (tx: ManagedTransaction, courses: CourseToImport[]) = c.questions = toInteger(course.questions), c.passPercentage = toInteger(course.passPercentage), c.allowsLLMCalls = course.allowsLLMCalls, + c.llmCallLimit = toInteger(course.llmCallLimit), + c.llmCallLimitPeriod = course.llmCallLimitPeriod, c += course.attributes FOREACH (_ IN CASE WHEN course.certification THEN [1] ELSE [] END | SET c:Certification) From c61bc9112403ec04386f8833db2a2d8963a4ee4b Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Thu, 21 Mar 2024 11:52:18 +0000 Subject: [PATCH 6/6] audit --- package-lock.json | 2947 ++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 756 insertions(+), 2193 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ccfafaca..850c22da0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@asciidoctor/core": "^2.2.6", "@types/node": "^18.11.9", "@types/pug": "^2.0.6", - "cypress": "^4.2.0", + "cypress": "^13.7.0", "express": "^4.18.2", "glob": "^10.3.1", "isomorphic-fetch": "^3.0.0", @@ -654,6 +654,16 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -666,80 +676,10 @@ "node": ">=12" } }, - "node_modules/@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@cypress/request": { - "version": "2.88.12", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", - "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -755,7 +695,7 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.10.3", + "qs": "6.10.4", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -1337,26 +1277,6 @@ "node": ">=12" } }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "dependencies": { - "any-observable": "^0.3.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1509,9 +1429,9 @@ "optional": true }, "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "node_modules/@types/sizzle": { @@ -1601,6 +1521,28 @@ "node": ">= 14" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1638,15 +1580,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -1772,6 +1705,15 @@ "node": ">=4" } }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -1784,6 +1726,15 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -2013,6 +1964,12 @@ "ieee754": "^1.1.13" } }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2403,135 +2360,56 @@ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, - "node_modules/cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", - "dev": true, - "dependencies": { - "restore-cursor": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, "engines": { "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-table3/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "string-width": "^4.2.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" + "node": "10.* || >= 12.*" }, - "engines": { - "node": ">=0.10.0" + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" + "node": ">=8" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cliui": { @@ -2557,15 +2435,6 @@ "node": ">= 0.12.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.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", @@ -2588,15 +2457,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.1.90" - } + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -2611,9 +2476,9 @@ } }, "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, "engines": { "node": ">= 6" @@ -2634,51 +2499,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/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/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -2819,159 +2639,150 @@ } }, "node_modules/cypress": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.12.1.tgz", - "integrity": "sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.0.tgz", + "integrity": "sha512-UimjRSJJYdTlvkChcdcfywKJ6tUYuwYuk/n1uMMglrvi+ZthNhoRYcxnWgTqUtkl17fXrPAsD5XT2rcQYN1xKA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/listr-verbose-renderer": "^0.4.1", - "@cypress/request": "^2.88.5", + "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/sinonjs__fake-timers": "^6.0.1", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", - "arch": "^2.1.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", "bluebird": "^3.7.2", + "buffer": "^5.7.1", "cachedir": "^2.3.0", - "chalk": "^2.4.2", + "chalk": "^4.1.0", "check-more-types": "^2.24.0", - "cli-table3": "~0.5.1", - "commander": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", "common-tags": "^1.8.0", - "debug": "^4.1.1", - "eventemitter2": "^6.4.2", - "execa": "^1.0.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", "executable": "^4.1.1", - "extract-zip": "^1.7.0", - "fs-extra": "^8.1.0", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", - "listr": "^0.14.3", - "lodash": "^4.17.19", - "log-symbols": "^3.0.0", - "minimist": "^1.2.5", - "moment": "^2.27.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", "ospath": "^1.2.2", - "pretty-bytes": "^5.3.0", - "ramda": "~0.26.1", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "supports-color": "^7.1.0", - "tmp": "~0.1.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" }, "bin": { "cypress": "bin/cypress" }, "engines": { - "node": ">=8.0.0" + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" } }, - "node_modules/cypress/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==", + "node_modules/cypress/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "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": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/cypress/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==", + "node_modules/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/cypress/node_modules/chalk/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==", + "node_modules/cypress/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, - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" - } - }, - "node_modules/cypress/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": ">=8" } }, - "node_modules/cypress/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/cypress/node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "node_modules/cypress/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": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" + "universalify": "^2.0.0" }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/cypress/node_modules/extract-zip/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" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/cypress/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", "dev": true }, "node_modules/cypress/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "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": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/cypress/node_modules/supports-color/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==", + "node_modules/cypress/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": ">=8" + "node": ">= 10.0.0" } }, "node_modules/dashdash": { @@ -2994,10 +2805,10 @@ "node": ">= 14" } }, - "node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "dev": true }, "node_modules/debug": { @@ -3152,15 +2963,6 @@ "integrity": "sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA==", "dev": true }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -3195,6 +2997,19 @@ "once": "^1.4.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3283,127 +3098,32 @@ } }, "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", "dev": true }, "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/execa/node_modules/get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" + "node": ">=10" }, - "bin": { - "which": "bin/which" + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/executable": { @@ -3427,15 +3147,6 @@ "node": ">= 0.8.0" } }, - "node_modules/exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expect": { "version": "29.6.1", "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", @@ -3593,16 +3304,18 @@ "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" }, "node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/fill-range": { @@ -3922,15 +3635,15 @@ } }, "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3983,27 +3696,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4112,6 +3804,15 @@ "node": ">= 14" } }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -4201,12 +3902,12 @@ } }, "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/inflight": { @@ -4226,10 +3927,13 @@ "dev": true }, "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/ip": { "version": "1.1.9", @@ -4263,23 +3967,17 @@ } }, "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" } }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "node_modules/is-core-module": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", @@ -4341,16 +4039,16 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4365,18 +4063,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "dependencies": { - "symbol-observable": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -4426,11 +4112,17 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/isexe": { "version": "2.0.0", @@ -5415,465 +5107,120 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", + "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": ">=4" + "node": ">=8" } }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "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.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, - "peerDependencies": { - "listr": "^0.14.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr-update-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr-update-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/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/listr-verbose-renderer/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/listr-verbose-renderer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/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==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/listr-verbose-renderer/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/listr-verbose-renderer/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/listr/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "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.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/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/log-symbols/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/log-symbols/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/log-symbols/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/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" + "node": ">=10" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/lru-cache": { @@ -6047,32 +5394,11 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6132,12 +5458,6 @@ "node": ">= 0.4.0" } }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node_modules/node-fetch": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", @@ -6387,15 +5707,6 @@ "node": ">=8" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6449,20 +5760,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true }, "node_modules/p-limit": { "version": "2.3.0", @@ -6492,12 +5794,18 @@ } }, "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -6709,12 +6017,15 @@ } }, "node_modules/pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pretty-format": { @@ -6743,11 +6054,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, "node_modules/progress": { "version": "2.0.3", @@ -6969,9 +6283,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "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" @@ -7050,16 +6364,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -7080,12 +6384,6 @@ "performance-now": "^2.1.0" } }, - "node_modules/ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -7218,26 +6516,23 @@ } }, "node_modules/restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true }, "node_modules/rgbcolor": { "version": "1.0.1", @@ -7466,12 +6761,17 @@ } }, "node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/smart-buffer": { @@ -7540,9 +6840,9 @@ "dev": true }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -7694,15 +6994,6 @@ "node": ">=8" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -7756,15 +7047,6 @@ "node": ">=12.0.0" } }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/tar-fs": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", @@ -7840,47 +7122,12 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tmp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "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/tmp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=14.14" } }, "node_modules/tmpl": { @@ -8078,12 +7325,6 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, "node_modules/typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", @@ -8212,16 +7453,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -8232,12 +7463,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -9032,6 +8257,13 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -9041,64 +8273,10 @@ "@jridgewell/trace-mapping": "0.3.9" } }, - "@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "@cypress/request": { - "version": "2.88.12", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", - "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -9114,7 +8292,7 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.10.3", + "qs": "6.10.4", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -9578,15 +8756,6 @@ } } }, - "@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "requires": { - "any-observable": "^0.3.0" - } - }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -9739,9 +8908,9 @@ "optional": true }, "@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "@types/sizzle": { @@ -9816,6 +8985,22 @@ "debug": "^4.3.4" } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -9838,12 +9023,6 @@ "color-convert": "^2.0.1" } }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -9942,6 +9121,12 @@ "tslib": "^2.0.1" } }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -9954,6 +9139,12 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -10115,6 +9306,12 @@ } } }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -10391,104 +9588,39 @@ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "restore-cursor": "^1.0.1" + "restore-cursor": "^3.1.0" } }, "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" } }, "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" } }, "cliui": { @@ -10507,12 +9639,6 @@ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, "collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", @@ -10532,84 +9658,39 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true }, "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, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "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 - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "requires": { + "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -10726,141 +9807,113 @@ } }, "cypress": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.12.1.tgz", - "integrity": "sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.0.tgz", + "integrity": "sha512-UimjRSJJYdTlvkChcdcfywKJ6tUYuwYuk/n1uMMglrvi+ZthNhoRYcxnWgTqUtkl17fXrPAsD5XT2rcQYN1xKA==", "dev": true, "requires": { - "@cypress/listr-verbose-renderer": "^0.4.1", - "@cypress/request": "^2.88.5", + "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/sinonjs__fake-timers": "^6.0.1", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", - "arch": "^2.1.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", "bluebird": "^3.7.2", + "buffer": "^5.7.1", "cachedir": "^2.3.0", - "chalk": "^2.4.2", + "chalk": "^4.1.0", "check-more-types": "^2.24.0", - "cli-table3": "~0.5.1", - "commander": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", "common-tags": "^1.8.0", - "debug": "^4.1.1", - "eventemitter2": "^6.4.2", - "execa": "^1.0.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", "executable": "^4.1.1", - "extract-zip": "^1.7.0", - "fs-extra": "^8.1.0", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", - "listr": "^0.14.3", - "lodash": "^4.17.19", - "log-symbols": "^3.0.0", - "minimist": "^1.2.5", - "moment": "^2.27.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", "ospath": "^1.2.2", - "pretty-bytes": "^5.3.0", - "ramda": "~0.26.1", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "supports-color": "^7.1.0", - "tmp": "~0.1.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" }, "dependencies": { - "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, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "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, - "requires": { - "has-flag": "^3.0.0" - } - } + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "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==", + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "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 }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" - }, - "dependencies": { - "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 - } } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true } } }, @@ -10878,10 +9931,10 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz", "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==" }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "dev": true }, "debug": { @@ -11000,12 +10053,6 @@ "integrity": "sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA==", "dev": true }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true - }, "emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -11031,6 +10078,16 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -11088,99 +10145,26 @@ "dev": true }, "eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", "dev": true }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, "executable": { @@ -11198,12 +10182,6 @@ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true - }, "expect": { "version": "29.6.1", "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", @@ -11340,13 +10318,12 @@ "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "^1.0.5" } }, "fill-range": { @@ -11590,12 +10567,12 @@ } }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, "requires": { - "ini": "1.3.7" + "ini": "2.0.0" } }, "globals": { @@ -11631,23 +10608,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - } - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -11726,6 +10686,12 @@ "debug": "4" } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -11779,9 +10745,9 @@ "dev": true }, "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "inflight": { @@ -11801,9 +10767,9 @@ "dev": true }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, "ip": { @@ -11832,20 +10798,12 @@ } }, "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - } + "ci-info": "^3.2.0" } }, "is-core-module": { @@ -11894,13 +10852,13 @@ } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-number": { @@ -11909,15 +10867,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "^1.1.0" - } - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -11952,10 +10901,10 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, "isexe": { @@ -12681,245 +11630,56 @@ "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true - }, - "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 - }, - "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==" - }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", - "dev": true, - "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", - "dev": true - }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } + "verror": "1.10.0" } }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "dependencies": { - "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, - "requires": { - "color-convert": "^1.9.0" - } - }, - "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "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, - "requires": { - "color-name": "1.1.3" - } - }, - "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 - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true + }, + "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 + }, + "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==" + }, + "listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" } }, "locate-path": { @@ -12944,141 +11704,47 @@ "dev": true }, "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^2.4.2" - }, - "dependencies": { - "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, - "requires": { - "color-convert": "^1.9.0" - } - }, - "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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, - "requires": { - "color-name": "1.1.3" - } - }, - "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 - } + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { + "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -13211,26 +11877,11 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, "mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -13284,12 +11935,6 @@ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node-fetch": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", @@ -13471,12 +12116,6 @@ "path-key": "^3.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -13521,12 +12160,6 @@ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -13546,10 +12179,13 @@ } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "p-try": { "version": "2.2.0", @@ -13705,9 +12341,9 @@ } }, "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, "pretty-format": { @@ -13729,10 +12365,10 @@ } } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true }, "progress": { @@ -13942,9 +12578,9 @@ } }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "puppeteer": { @@ -13994,12 +12630,6 @@ "side-channel": "^1.0.4" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -14020,12 +12650,6 @@ "performance-now": "^2.1.0" } }, - "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -14128,23 +12752,21 @@ "dev": true }, "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - }, - "dependencies": { - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true - } + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, + "rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, "rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", @@ -14322,10 +12944,15 @@ "dev": true }, "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } }, "smart-buffer": { "version": "4.2.0", @@ -14381,9 +13008,9 @@ "dev": true }, "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -14497,12 +13124,6 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true - }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -14535,12 +13156,6 @@ "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", "optional": true }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, "tar-fs": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", @@ -14609,38 +13224,10 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true }, "tmpl": { "version": "1.0.5", @@ -14780,12 +13367,6 @@ "mime-types": "~2.1.24" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, "typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", @@ -14857,24 +13438,6 @@ "picocolors": "^1.0.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", diff --git a/package.json b/package.json index 7745e096d..12fd3b5c5 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@asciidoctor/core": "^2.2.6", "@types/node": "^18.11.9", "@types/pug": "^2.0.6", - "cypress": "^4.2.0", + "cypress": "^13.7.0", "express": "^4.18.2", "glob": "^10.3.1", "isomorphic-fetch": "^3.0.0",