From 7b3f8d262b88990429655b952f532a9638325a55 Mon Sep 17 00:00:00 2001 From: ronitblenz Date: Wed, 7 Jun 2023 21:28:22 +0530 Subject: [PATCH 001/130] private and hybrid cloud added Signed-off-by: ronitblenz --- content/en/cloud-computing.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 708c9b6be5..1495b21d23 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -8,7 +8,15 @@ tags: ["infrastructure", "fundamental", ""] ## What it is Cloud computing offers compute resources like CPU, network, and disk capabilities on-demand over the internet, allowing users to access and use computing power in a remote physical location. -We generally differentiate between private and public cloud, depending on whether the cloud infrastructure is exclusively dedicated to an organization or shared for open public services. +It extends beyond merely providing resources and we generally differentiate between private and public cloud. These models differ based on the usage and accessibility of the cloud infrastructure. + +In a private cloud, the infrastructure is exclusively dedicated to a single organization, and it can exist both on-premise (within the organization's physical location) or off-premise (hosted by a third-party service provider). This setup offers more control over the infrastructure, data security, and regulatory compliance, and can be customized to meet specific business needs. + +On the other hand, a public cloud is a shared infrastructure available for open public services, where resources are owned and operated by third-party cloud service providers. + +Additionally, a hybrid cloud model combines aspects of both private and public clouds. This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. + +Therefore, the distinction among cloud computing models isn't solely about whether the infrastructure is private or public. It also involves the location of the infrastructure and the customization level it can offer, as well as the possibility to create a hybrid solution that maximizes the benefits of both environments. ## Problem it addresses From e4335ade8b73e3aacf906a1a85f2e6a39bfc4ec6 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Sat, 17 Jun 2023 19:01:06 +0530 Subject: [PATCH 002/130] Update content/en/cloud-computing.md Co-authored-by: Noah Ispas Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 1495b21d23..2ea01f41c1 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -10,7 +10,10 @@ tags: ["infrastructure", "fundamental", ""] Cloud computing offers compute resources like CPU, network, and disk capabilities on-demand over the internet, allowing users to access and use computing power in a remote physical location. It extends beyond merely providing resources and we generally differentiate between private and public cloud. These models differ based on the usage and accessibility of the cloud infrastructure. -In a private cloud, the infrastructure is exclusively dedicated to a single organization, and it can exist both on-premise (within the organization's physical location) or off-premise (hosted by a third-party service provider). This setup offers more control over the infrastructure, data security, and regulatory compliance, and can be customized to meet specific business needs. +In a private cloud, the infrastructure is exclusively dedicated to a single organization, +and it can exist both on-premise (within the organization's physical location) or off-premise (hosted by a third-party service provider). +This setup offers more control over the infrastructure, data security, and regulatory compliance, +and can be customized to meet specific business needs. On the other hand, a public cloud is a shared infrastructure available for open public services, where resources are owned and operated by third-party cloud service providers. From fb7cf5628aeff4ba0c51222c223dfd9220ef8471 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Sat, 17 Jun 2023 19:01:14 +0530 Subject: [PATCH 003/130] Update content/en/cloud-computing.md Co-authored-by: Noah Ispas Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 2ea01f41c1..aa87af640c 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -15,7 +15,8 @@ and it can exist both on-premise (within the organization's physical location) o This setup offers more control over the infrastructure, data security, and regulatory compliance, and can be customized to meet specific business needs. -On the other hand, a public cloud is a shared infrastructure available for open public services, where resources are owned and operated by third-party cloud service providers. +On the other hand, a public cloud is a shared infrastructure available for open public services, +where resources are owned and operated by third-party cloud service providers. Additionally, a hybrid cloud model combines aspects of both private and public clouds. This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. From d636b7c3f45412c9be5159c27e5ee830a55ca0a5 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Sat, 17 Jun 2023 19:01:20 +0530 Subject: [PATCH 004/130] Update content/en/cloud-computing.md Co-authored-by: Noah Ispas Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index aa87af640c..7463e3b9e2 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -18,7 +18,9 @@ and can be customized to meet specific business needs. On the other hand, a public cloud is a shared infrastructure available for open public services, where resources are owned and operated by third-party cloud service providers. -Additionally, a hybrid cloud model combines aspects of both private and public clouds. This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. +Additionally, a hybrid cloud model combines aspects of both private and public clouds. +This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. +This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. Therefore, the distinction among cloud computing models isn't solely about whether the infrastructure is private or public. It also involves the location of the infrastructure and the customization level it can offer, as well as the possibility to create a hybrid solution that maximizes the benefits of both environments. From ebd90f5afac85d2172d63d8a09ce10f895df69e5 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Sat, 17 Jun 2023 19:01:27 +0530 Subject: [PATCH 005/130] Update content/en/cloud-computing.md Co-authored-by: Noah Ispas Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 7463e3b9e2..b28ec0a6be 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -22,7 +22,9 @@ Additionally, a hybrid cloud model combines aspects of both private and public c This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. -Therefore, the distinction among cloud computing models isn't solely about whether the infrastructure is private or public. It also involves the location of the infrastructure and the customization level it can offer, as well as the possibility to create a hybrid solution that maximizes the benefits of both environments. +Therefore, the distinction among cloud computing models isn't solely about whether the infrastructure is private or public. +It also involves the location of the infrastructure and the customization level it can offer, +as well as the possibility to create a hybrid solution that maximizes the benefits of both environments. ## Problem it addresses From e1c48f1dc22736acd1b11bf4fab6cae81877a36b Mon Sep 17 00:00:00 2001 From: Noah Ispas Date: Sat, 17 Jun 2023 15:39:19 +0100 Subject: [PATCH 006/130] Update content/en/cloud-computing.md Signed-off-by: Noah Ispas --- content/en/cloud-computing.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index b28ec0a6be..99aab028c3 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -8,7 +8,8 @@ tags: ["infrastructure", "fundamental", ""] ## What it is Cloud computing offers compute resources like CPU, network, and disk capabilities on-demand over the internet, allowing users to access and use computing power in a remote physical location. -It extends beyond merely providing resources and we generally differentiate between private and public cloud. These models differ based on the usage and accessibility of the cloud infrastructure. +It extends beyond merely providing resources and we generally differentiate between private and public cloud. +These models differ based on the usage and accessibility of the cloud infrastructure. In a private cloud, the infrastructure is exclusively dedicated to a single organization, and it can exist both on-premise (within the organization's physical location) or off-premise (hosted by a third-party service provider). From 6cbe6fd92d9aa42fcadcb6751192d37c5b114fd9 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:22:58 +0530 Subject: [PATCH 007/130] Update content/en/cloud-computing.md Co-authored-by: Jihoon Seo <46767780+jihoon-seo@users.noreply.github.com> Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 99aab028c3..fe2ce7da3a 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -12,7 +12,7 @@ It extends beyond merely providing resources and we generally differentiate betw These models differ based on the usage and accessibility of the cloud infrastructure. In a private cloud, the infrastructure is exclusively dedicated to a single organization, -and it can exist both on-premise (within the organization's physical location) or off-premise (hosted by a third-party service provider). +and it can exist both on-premises (within the organization's physical location) or off-premises (hosted by a third-party service provider). This setup offers more control over the infrastructure, data security, and regulatory compliance, and can be customized to meet specific business needs. From 21a9f955014af9a5d744a3435f61b249f9c9fb3d Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Mon, 24 Jul 2023 10:31:36 +0300 Subject: [PATCH 008/130] Add Russian setting to config.toml Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- config.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config.toml b/config.toml index 489572dc3c..3eda9c9f2e 100644 --- a/config.toml +++ b/config.toml @@ -140,6 +140,13 @@ weight = 10 [languages.ur.params] description = "CNCF کلاؤڈ کی مقامی لغت کا مقصد کلاؤڈ مقامی ایپلی کیشنز کے بارے میں بات کرتے وقت استعمال ہونے والی عام اصطلاحات کے حوالے کے طور پر استعمال کرنا ہے۔" +[languages] +[languages.ru] +title = "Глоссарий Cloud Native" +languageName ="Русский (Russian)" +weight = 11 +[languages.ru.params] +description = "Глоссарий Cloud Native — справочник по общим терминам, имеющим отношение к облачно-нативным приложениям и технологиям. Разрабатывается CNCF." [markup] [markup.goldmark] From a02f8025a30d1b3191fb6b3fa2072a150b8fd34e Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Mon, 24 Jul 2023 10:52:23 +0300 Subject: [PATCH 009/130] Add i18n/ru.toml Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- i18n/ru.toml | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 i18n/ru.toml diff --git a/i18n/ru.toml b/i18n/ru.toml new file mode 100644 index 0000000000..fae8370519 --- /dev/null +++ b/i18n/ru.toml @@ -0,0 +1,87 @@ + + +# UI strings. Buttons and similar. + +[ui_pager_prev] +other = "Пред." + +[ui_pager_next] +other = "След." + +[ui_read_more] +other = "Подробнее" + +[ui_search] +other = "Поиск по сайту" + +# Used in sentences such as "Posted in News" +[ui_in] +other = "в" + +# Phrases for tags +[ui_see_all_tags] +other = "Смотреть все теги" +[ui_tag] +other = "Тег" +[ui_tags] +other = "Теги" +[ui_search_by_tags] +other = "Фильтр по тегам" +[ui_tags_intro] +other = "Термины глоссария разбиты по категориям. Используйте фильтры для просмотра терминов по тегам." +[ui_or_search_by_tags] +other = "фильтр по тегам" +[ui_select_all] +other = "Выбрать все" +[ui_deselect_all] +other = "Отменить выбор" + +# Footer text +[footer_all_rights_reserved] +other = "Все права защищены" + +[footer_privacy_policy] +other = "Политика конфиденциальности" + +[footer_hub_button_text] +other = "Все сайты CNCF" + +# Post (blog, articles etc.) +[post_byline_by] +other = "Автор" +[post_created] +other = "Создано" +[post_last_mod] +other = "Последнее изменение" +[post_edit_this] +other = "Редактировать страницу" +[post_create_child_page] +other = "Создать дочернюю страницу" +[post_create_issue] +other = "Сообщить об ошибке" +[post_create_project_issue] +other = "Создать Issue" +[post_posts_in] +other = "Публикации в" +[post_reading_time] +other = "минут(ы)" + +# Print support +[print_printable_section] +other = "Это многостраничный печатный вид данного раздела." +[print_click_to_print] +other = "Распечатать" +[print_show_regular] +other = "Вернуться к обычному виду" +[print_entire_section] +other = "Распечатать весь раздел" + +# Feedback section +[feedback_title] +other = "Обратная связь" +[feedback_question] +other = "Полезна ли эта страница?" +[feedback_answer_yes] +other = "Да" +[feedback_answer_no] +other = "Нет" From 5d6bfd7618f83b9d19d589c978fa0bb328c8d5e9 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Mon, 24 Jul 2023 15:07:58 +0300 Subject: [PATCH 010/130] [ru] Add _index.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_index.md | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 content/ru/_index.md diff --git a/content/ru/_index.md b/content/ru/_index.md new file mode 100644 index 0000000000..f04ae0187e --- /dev/null +++ b/content/ru/_index.md @@ -0,0 +1,48 @@ +--- +title: "Глоссарий Cloud Native" +status: Completed +--- + +# Глоссарий Cloud Native + +Глоссарий Cloud Native помогает разобраться в облачном пространстве (которое печально известно своей сложностью) не только IT-специалистам, но также представителям бизнеса и всем интересующимся. +Для этого мы делаем упор на простоту (доступный язык, свободный от модных словечек; примеры, которые понятны любому человеку с базовыми представлениями о технологиях; отказ от лишних подробностей). +Работа над глоссарием ведется под руководством подкомитета CNCF по деловой ценности (Business Value Subcommittee, BVS). + +

People watching a Kubecon presentation

+ +## Внести свой вклад + +Приглашаем всех желающих поучаствовать в развитии Глоссария Cloud Native, его дополнении и улучшении. +Процесс разработки единого лексикона и его совершенствования управляется сообществом и регулируется CNCF. +Глоссарий вендор-нейтрален и ставит своей целью создание словаря-справочника по облачно-нативным технологиям. +Приветствуется любое участие при условии, что оно соответствует целям и уставу проекта. + +Все желающиет могут открыть Issue на Github или создать Pull Request. +Для этого необходимо предварительно ознакомиться с документом [Как внести свой вклад](/contribute/) и присоединиться к каналу [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack. +Кроме того, важно убедиться, что предлагаемые правки соответствуют [Руководству по стилю](/style-guide/). +Для тех, кто хочет помочь перевести глоссарий на родной язык, существует канал [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) (для русского языка — [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX)). + +## Благодарности + +Глоссарий Cloud Native создан по инициативе маркетингового комитета CNCF (подкомитет по бизнес-ценностям) при участии +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), +и многих других авторов. +Полный список участников проекта можно найти на [этой странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. + +Хранителями глоссария являются +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), +и [Seokho Son](https://www.linkedin.com/in/seokho-son/). + +## Лицензия + +Весь код публикуется на условиях лицензии Apache 2.0. +Документация распространяется на условиях лицензии CC BY 4.0. From eb3a15b73f5eb1850d910b7c0a126e94b84577e5 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Mon, 24 Jul 2023 19:19:12 +0300 Subject: [PATCH 011/130] [ru] Add /contribute/_index.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/contribute/_index.md | 225 ++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 content/ru/contribute/_index.md diff --git a/content/ru/contribute/_index.md b/content/ru/contribute/_index.md new file mode 100644 index 0000000000..2474a97c8e --- /dev/null +++ b/content/ru/contribute/_index.md @@ -0,0 +1,225 @@ +--- +title: Как внести свой вклад +toc_hide: true +status: Completed +menu: + main: + weight: 10 +--- + +## Добро пожаловать + +Добро пожаловать в руководство по работе над Глоссарием Cloud Native. Благодарим за проявленный интерес! +Поучаствовать в развитии проекта можно разными способами: + +1) [Поработать над существующим Issue](#work-on-an-existing-issue) +2) [Предложить новое определение](#propose-new-terms) +3) [Дополнить существующее](#update-an-existing-term) +4) [Локализовать глоссарий](#help-localize-the-glossary) + +## Общие сведения о глоссарии CNCF + +Цель этого глоссария — упростить знакомство с облачно-нативными технологиями (которые печально известны своей сложностью и запутанностью) и сделать их более доступными для пользователей. + +Материалы Глоссария Cloud Native хранятся в [репозитории на GitHub](https://github.com/cncf/glossary). +В нем вы найдете список [Issues](https://github.com/cncf/glossary/issues), Pull Request'ов ([PRs](https://github.com/cncf/glossary/pulls)), and +[обсуждений](https://github.com/cncf/glossary/discussions), касающихся глоссария. + +## Кто может внести свой вклад? + +Ваш конкретное участие в этом проекте определяется компетенцией в области облачно-нативных технологий. +Упрощение сложных понятий требует глубоких познаний по теме. +Поэтому, чтобы добавлять новые термины, вы должны прекрасно в них разбираться. +Обычно авторами выступают инженеры, которые работали с облачными технологиями и хорошо их знают, или представители научного сообщества, специализирующиеся на облачно-нативных технологиях. + +Богатый опыт просто необходим, потому что объяснить сложные понятия доступным языком бывает _очень_ непросто. Может показаться, что создать простое и понятное определение достаточно легко. На самом деле это не так — конечная простота является результатом напряженной работы и сотрудничества многих экспертов по облачно-нативным технологиям. + +Если вы не специалист, но все же хотите помочь, рекомендуем объединиться с кем-то из экспертов. +Как только он убедится, что определение хорошо раскрывает концепцию, можно переходить к непосредственной работе с файлами глоссария. + +Чтобы внести свой вклад в глоссарий, необязательно иметь энциклопедические знания в какой-либо из областей. +При наличии подготовленных экспертами определений на английском языке от локализаторов требуется лишь уверенное владение английским и родным языком. Можно присоединиться к существующей команде локализации или создать новую. Чтобы узнать, с чего начать, ознакомьтесь с разделом [Помощь в локализации глоссария](#help-localize-the-glossary) этого руководства. + +## Перед началом работы + +Перед началом работы обязательно выполните следующие шаги: + +1. Создайте [учетную запись на GitHub'е](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account), если у вас ее еще нет. +2. Подпишите [Лицензионное соглашение с контрибьютором (Contributor License Agreement)](https://docs.linuxfoundation.org/lfx/easycla/v2-current/contributors) (CLA). +3. Проверьте [подпись к коммитам](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification). +4. Включите [режим vigilant](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode) в GitHub-аккаунте: ваши коммиты будут помечаться статусом `Verified`. + +## Лучшие практики {#best-practices} + +Чтобы облегчить рецензирование, используйте [смысловой перенос строк](https://sembr.org/) (одна строка на предложение). +Рекомендуем ознакомиться со [шпаргалкой по Markdown](https://www.markdownguide.org/cheat-sheet/), чтобы правильно форматировать md-текст на GitHub'е (например, [гиперссылка](#best-practices), **жирный шрифт**, *курсив*). +При именовании файлов .md используйте строчные буквы, дефисы вместо пробелов для разделения слов и избегайте скобок. + +## Руководство по стилю + +[Руководство по стилю](/style-guide/) содержит требования к форматированию и содержанию документов, а также советы о том, как повысить эффективность работы. + +## Присоединяйтесь к сообществу Глоссария! {#join-the-glossary-community} + +Регулярным контрибьюторам рекомендуем присоединиться к Рабочей группе по глоссарию (ее заседания проходят ежемесячно). +График встреч можно найти в [календаре CNCF](https://www.cncf.io/calendar/). +Также можно пообщаться с хранителями и соавторами в Slack-канале CNCF [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) +— мы будем рады знакомству с вами! + +## Работа над существующим Issue {#work-on-an-existing-issue} + +Список открытых Issues можно найти в [репозитории глоссария на GitHub'е](https://github.com/cncf/glossary/issues). +Отфильтровать их можно с помощью лейблов (например, English language, help needed, good first issue). + +![Issue и лейблы](/images/how-to/issue-and-labels.png) + +Убедитесь, что выбранный вами термин ни за кем не закреплен. +Например, на скриншоте ниже первые три термина доступны, в то время как четвертый закреплен за автором. + +![Термин занят](/images/how-to/howto-04.png) + +Выбрав термин, отпишитесь в его Issue: + +![Закрепление Issue](/images/how-to/claiming-an-issue.png) + +Сообщите хранителям в канале [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack, +призвав _@Catherine Paganini_, _@Seokho Son_, _@Jihoon Seo_, и/или _@iamnoah_, чтобы они наверняка увидели ваше уведомление. + +Дальнейшие шаги описаны в разделе [Создание нового термина (открываем PR)](#submitting-a-new-term). + +**Примечание**: работу над Issue можно начинать после того, как хранители закрепят его за вами. +Можно работать только над одним термином за раз. +Работа ведется последовательно: завершаете один, после чего переходите к следующему. + +## Предложить новый термин {#propose-new-terms} + +Можно предложить новый термин и дождаться, пока другие авторы сформулируют для него определение, или написать определение самостоятельно. +В любом случае начать следует с [создания Issue](#creating-an-issue). +Чтобы претендовать на добавление в глоссарий, каждый новый термин должен отвечать [определению для облачно-нативных терминов, сформулированному CNCF](https://github.com/cncf/toc/blob/main/DEFINITION.md). +Единственным исключением являются фундаментальные термины, необходимые для описания базовых концепций облачно-нативных технологий. + +Ниже приведено пошаговое руководство для тех, кто не знаком с GitHub'ом. +**Опытным пользователям GitHub'а** также _рекомендуем_ ознакомиться с ним, чтобы получить общее представление о том: + +1. Как и где искать шаблоны для Issues и новых терминов. +2. Как закрепить Issue за собой. +3. Как решать проблемы с [проверкой орфографии](#spell-check) failures. + +### Как создать Issue {#creating-an-issue} + +Перейдите в [репозиторий глоссария на GitHub'е](https://github.com/cncf/glossary/issues) и нажмите "New issue". + +![Список Issues](/images/how-to/howto-01.png) + +Выберите "Request to add a new term (English)" (Запрос на добавление нового термина на английском языке) из списка шаблонов. + +**Примечание**: пока новые термины принимаются только на английском языке. +Если у вас есть идея для нового определения, но вы затрудняетесь переложить ее на английский язык, +свяжитесь с хранителями русской версии в канале [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX) — мы поможем. + +![Шаблоны](/images/how-to/english-issue-template.jpg) + +Добавьте свой термин, ответьте на вопросы, поставьте галочки и нажмите "Submit new issue". +Если вы просто предлагаете новый термин, больше ничего делать не нужно. Если вы хотите поработать над определением, продолжайте читать. + +### Триаж Issue {#triaging-your-issue} + +Далее хранители проведут триаж Issue. +А именно, решат, стоит ли включать термин в глоссарий. +Принимаются далеко не все термины: чтобы попасть в глоссарий, они должны устояться в мире облачно-нативных технологий и широко там использоваться. + +Сообщите хранителям в Slack'е о новом термине (позовите _@Catherine Paganini_, _@Seokho Son_, _@Jihoon Seo_, и/или _@iamnoah_). +Если вы хотите поработать над определением, сообщите об этом хранителям, и они закрепят термин за вами. + +### Отправка нового термина (создаем PR) {#submitting-a-new-term} + +Как указано в [Руководстве по стилю](/style-guide/), настоятельно рекомендуется начинать с документа в Google или в Word. + +Когда термин будет готов к отправке, перейдите в директорию content (на вкладке <>code)… + +![Директория "content"](/images/how-to/howto-05.png) + +…затем в "en" (для английского языка) или в директорию языка локализации… + +![Директория с языками](/images/how-to/howto-06.png) + +…и выберите `_TEMPLATE.md` + +![Template](/images/how-to/howto-07.png) + +Скопируйте его содержимое…… + +![Копировать содержимое](/images/how-to/howto-08.png) + +…и вернитесь в папку "en" или языка локализации. Нажмите "Add file" и выберите "Create new file". + +![Создать новый файл](/images/how-to/howto-09.png) + +Включите название термина в URL, как описано в разделе [Лучшие практики](#best-practices). +Добавьте к нему расширение .md (без этого расширения будет невозможно предварительно просмотреть файл). +Теперь вставьте шаблон в поле с содержимым файла. Скопируйте и вставьте текст определения в файл. +Чтобы проверить markdown-код на соответствие требованиям из раздела [Лучшие практики](#best-practices) нажмите "Preview". + +![Завершение работы с термином](/images/how-to/howto-10.png) + +Прокрутите вниз и введите описание коммита. Затем нажмите "Commit new file" и… + +![Делаем коммит](/images/how-to/howto-11.png) + +…перейдите к созданию PR'а. Добавьте его описание и нажмите на "Create pull request": + +![Создаем PR](/images/how-to/howto-12.png) + +После этого PR должен появиться на вкладке "Pull requests". + +![Вкладка "Pull requests"](/images/how-to/howto-13.png) + +## Изменение существующего термина {#update-an-existing-term} + +Чтобы отредактировать существующий термин, можно создать Issue и описать в нем желаемые изменения, +либо внести правки самостоятельно и оформить их в виде PR'а. + +### Запросить изменения с помощью Issue {#request-a-change-via-an-issue} + +Чтобы сообщить о проблеме с термином, можно воспользоваться опцией "Сообщить о проблеме" на странице Глоссария CNCF. +Перейдите на страницу с соответствующим термином и нажмите "Сообщить о проблеме". +Автоматически откроется форма для создания Issue: + +![Сообщить о проблеме](/images/how-to/howto-14.png) + +Опишите свои предложения и объясните, почему они необходимы. Нажмите "Submit new issue". + +![Открыть Issue](/images/how-to/howto-15.png) + +### Изменить термин напрямую {#update-a-term-directly} + +Чтобы изменить термин и внести свои предложения, нажмите "Редактировать страницу". + +![Редактировать страницу](/images/how-to/howto-16.png) + +Откроется страница термина на GitHub'е. Внесите свои правки и создайте PR. +Обратитесь к разделу [Лучшие практики](#best-practices) выше и ознакомьтесь с [Руководством по стилю](/style-guide/), чтобы убедиться, что следуете рекомендациям. + +## Помощь в локализации глоссария {#help-localize-the-glossary} + +Чтобы помочь в локализации глоссария на целевой язык, присоединитесь к каналу [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) в рабочем пространстве CNCF в Slack'е и дайте нам знать. +Можно войти в существующую команду или создать новую (чтобы узнать, что для этого нужно, прочитайте [Руководство по локализации](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)). +Пожалуйста, ознакомьтесь с руководством [Как внести свой вклад](/contribute/) на целевом языке, чтобы узнать об особенностях работы соответствующей команды. + +## Проверка орфографии {#spell-check} + +Проверка орфографии может завершиться неудачей по двум основным причинам: + +- PR содержит орфографические ошибки. +- PR содержит слова, которые не зарегистрированы в списке слов. + +Чтобы добавить новые слова в список, выполните следующие действия: + +1. В вашем PR найдите файл "wordlist.txt". +2. Нажмите "Отредактировать этот файл" ("Edit this file") иWe updated this guide based on templates from добавьте недостающие слова в алфавитном порядке. +3. Добавьте сообщение коммита и выберите "Подписать и предложить изменения" ("Sign off and propose changes"). + +**Примечание**: при проверке орфографии регистр (строчные/прописные буквы) во внимание не принимается. + + +**Это руководство было обновлено на основе шаблонов из проекта [The Good Docs Project](https://thegooddocsproject.dev/).** From df720232bce44908005f536861b1a23456b855ad Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 25 Jul 2023 19:53:55 +0300 Subject: [PATCH 012/130] [ru] Add /style-guide/_index.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/style-guide /_index.md | 191 ++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 content/ru/style-guide /_index.md diff --git a/content/ru/style-guide /_index.md b/content/ru/style-guide /_index.md new file mode 100644 index 0000000000..499447a003 --- /dev/null +++ b/content/ru/style-guide /_index.md @@ -0,0 +1,191 @@ +--- +title: Руководство по стилю +toc_hide: true +status: Completed +menu: + main: + weight: 10 +--- + +Это руководство по стилю поможет вам разобраться в целевой аудитории глоссария, структуре определений, стиле и требуемом уровне детализации. + +Глоссарий Cloud Native придерживается [стандартного руководства по стилю репозитория CNCF](https://github.com/cncf/foundation/blob/master/style-guide.md). +Кроме того, он следует перечисленным ниже правилам: + +1. Используйте простой, доступный язык; избегайте технического жаргона и "модных" словечек. +2. [Избегайте разговорного стиля](https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%BD%D1%8B%D0%B9_%D1%81%D1%82%D0%B8%D0%BB%D1%8C). +3. [Повествование должно быть последовательным и конкретным](https://guidetogrammar.org/grammar/composition/abstract.htm). +4. [Избегайте сокращений](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%8F%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5). +5. [Старайтесь не использовать страдательный залог](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BB%D0%BE%D0%B3_(%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0)). +6. [Стремитесь формулировать предложения в позитивной форме](https://examples.yourdictionary.com/positive-sentence-examples.html). +7. [Не используйте восклицательные знаки (допустимы только в цитатах)](https://www.grammarly.com/blog/exclamation-mark/). +8. Не преувеличивайте. +9. Избегайте повторов. +10. Будьте лаконичны. + +## Целевая аудитория + +Глоссарий предназначен как для специалистов, так и для людей, *не знакомых* с предметной областью. +Пожалуйста, объясняйте термины простыми словами и не предполагайте наличия технических знаний у читателя. Подробнее об этом — ниже в разделе [Определение](#definition). + +## Минимальное жизнеспособное определение + +Мы стремимся к тому, чтобы любой человек мог легко разобраться в облачно-нативных терминах. +Поэтому уделяем особое внимание простоте. +Используйте доступный язык с примерами, понятными каждому, кто использует технологию, одновременно сопровождая его *минимальным необходимым набором технических подробностей*. +Не стоит экономить на контексте и примерах — в конце концов, они помогают читателю разобраться в той или иной концепции, — но если технические подробности не нужны для понимания, их лучше опустить. +Не переусложняйте материал. Достаточно, чтобы читатель понял основную идею. При необходимости он сможет обратиться к другим ресурсам за подробностями. +Мы не ставим перед собой цель превратить читателя в эксперта — это выходит за рамки данного глоссария. + +## Шаблон определения + +Каждый термин глоссария хранится в markdown-файле и следует определенному шаблону: + +```md +--- +title: +status: +category: +--- + +## Описание + +Краткое описание технологии или концепции. + +## Проблема + +Несколько строк о проблеме. + +## Решение + +Несколько строк о том, как данная технология решает проблему, описанную выше. +``` + +### Title + +Лейбл **title** всегда должен находиться в верхней части шаблона определения, а его значение соответствовать формату для заголовков. + +```md +--- +title: Definition Template +``` + +### Status + +Лейбл **status** идет после лейбла title. Он помогает понять, на какой стадии находится работа над определением. + +Допустимые значения: + +- Completed (Завершена) +- Feedback Appreciated (Приветствуется обратная связь) +- Not Started (Еще не начиналась) + +При этом всегда можно открыть Issue и внести правки в определение, работа над которым уже завершена. Все определения, над которыми ведется работа, имеют статус *Feedback Appreciated* (Приветствуется обратная связь). + +```md +--- +title: Definition Template +status: Feedback Appreciated +``` + +### Теги + +После лейбла status идет лейбл **tag**. +Ставьте только необходимые теги — это поможет сделать всю систему тегов осмысленной и, следовательно, полезной для читателя. +Применение слишком большого количества тегов только ослабит их смысловое значение. +Исключением является тег `Fundamental` — он указывает, что термин необходим для понимания других облачных концепций; при этом для большинства терминов, скорее всего, будет достаточно одного тега. + +**Примечание**: Пожалуйста, вводите новые теги только после одобрения хранителями. Добавляя теги к определению, убедитесь, что они написаны именно так, как указано ниже (в единственном числе, без опечаток). + +В настоящее время поддерживаются следующие теги: + +- Application +- Architecture +- Fundamental +- Infrastructure +- Methodology +- Networking +- Property +- Security + +```md +--- +title: Definition Template +status: Feedback Appreciated +tags: ["tag 1", "tag 2", ""] +--- +``` + +### Определение + +#### Три раздела + +Определения **технологий** и **концепций** включают три раздела: + +- **Описание**. Краткое и четкое описание того, о чем идет речь. +- **Проблема**. Сосредоточьтесь на проблеме, а не на решении (его приберегите для следующего раздела). + Избегайте упоминать термин, для которого дается определение. Фокусируйтесь на предпосылках, которые привели к разработке описываемой технологии/концепции. +- **Решение**. Теперь можно вернуться к самому термину. Как именно он помогает решить проблему, описанную выше? + +Обратите внимание, что **характеристики/свойства** не требуют отдельных разделов. Краткого определения будет достаточно. + +Для облегчения рецензирования используйте **смысловые переносы строк** (одно предложение на строку). + +#### Качество имеет первостепенное значение + +Если PR будет принят, ваше описание станет официальным определением CNCF для этого термина (пока кто-то другой не дополнит его). +Все определения должны соответствовать высоким стандартам CNCF — подходите к работе над ними размеренно, без спешки, ведь качество требует времени и усилий. + +**Изучите все досконально.** Даже если вы уверены, что хорошо разбираетесь в предметной области, проверьте, правильно ли понимаете значение термина. +Нередко бывает так, что оно оказывается искажено, не отражает всей сути или подразумевается совсем не то, что говорится. +При изучении вопроса — особенно если вы не знакомы с термином на все 100% — пользуйтесь различными ресурсами. +Многие определения носят односторонний характер, особенно если даются вендором. +Определения в глоссарии должны быть вендор-нейтральными и принятыми во всем мире. + +**Не занимайтесь плагиатом.** К глоссарию применяются те же правила, что и к любой другой серьезной публикации. +Не копируйте чужую работу (если только вы не цитируете ее с указанием автора). +Если вам понравилось чье-либо определение, перефразируйте его своими словами. + +**Ссылайтесь на авторитетные источники.** По возможности указывайте ссылки на надежные ресурсы, такие как проектная документация, запросы на обсуждение (RFD), стандарты и т.п. +Обратите внимание, что нельзя ссылаться на материалы, публикуемые вендорами. + +#### Стремитесь к простоте + +Цель глоссария — **объяснять сложные понятия простыми словами**. Это на удивление непростая задача. Определения, скорее всего, будут неоднократно пересматриваться и дополняться. +Составляя их, всегда помните о целевой аудитории. +Старайтесь не использовать отраслевые жаргонизмы и "модные" словечки — избавиться от них иногда непросто, и приходится делать над собой усилие в поисках альтернатив. + +Когда это уместно, используйте **примеры из реальной жизни**. Они помогут читателям (особенно неспециалистам) лучше понять, *почему* идея, которую вы объясняете, актуальна. + +Если в определении используются термины из глоссария, **всегда ссылайтесь на них** (добавляйте гиперссылку только в первое упоминание). + +**Пример**: посмотрите на раздел "Описание" в [определении сервисной сетки](/service-mesh/). +В нем приведены ссылки на такие термины, как `микросервис`, `сервис`, `надежность` и `наблюдаемость`. +Кроме того, используется реальный пример, проводящий параллель между сетевыми проблемами в среде микросервисов (то, с чем не сталкиваются рядовые пользователи) и проблемами с Wi-Fi-подключением (то, что доступно и понятно любому пользователю ноутбука). +По возможности старайтесь приводить подобные примеры. + +#### Начинайте с документа в Google Docs или в Word + +Мы рекомендуем начать с документа в Google Docs или в Word. Запишите в него определение и свои мысли и оставьте их на несколько дней "дозревать". +Это поможет найти более простые и понятные формулировки. +Кроме того, обязательно проверьте орфографию перед тем, как открыть PR. + +Чтобы никто другой случайно не принял PR, пока вы работаете над ним, попросите закрепить Issue за собой (или создайте его при необходимости). +Подробнее об этом — в документе [Как внести свой вклад](/contribute/). + +Прежде чем приступить к работе, ознакомьтесь с несколькими терминами из глоссария, +чтобы получить представление о детализации и сложности описания, +а также о том, когда уместно приводить примеры. + +## Процесс рассмотрения: чего ожидать + +Обратите внимание, что в настоящее время сопровождением глоссария занимаются всего три человека, которые делают это в свободное от основной работы время. +В некоторых случаях определения рассматриваются быстро, в других процесс может занять некоторое время — пожалуйста, наберитесь терпения. +Если у вас возникли вопросы, свяжитесь с нами в Slack-канале #glossary или в канале локализации +(о том, где и как их найти, читайте в документе [Как внести свой вклад](/contribute/)). + +Наша цель — сделать Глоссарий Cloud Native передовым ресурсом. +После того, как вы отправите PR, мы можем попросить вас внести в него несколько правок. +Не расстраивайтесь — это обычная практика при совместной работе; так происходит со многими PR'ами. +Общие усилия и открытое обсуждение помогут создать идеальное определение. +Наградой за проделанную работу для вас станет благодарность читателей по всему миру. From b424dcf6d70ac84b50a6e381365ccfad47c64446 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 25 Jul 2023 20:00:44 +0300 Subject: [PATCH 013/130] [ru] Add _TEMPLATE.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_TEMPLATE.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 content/ru/_TEMPLATE.md diff --git a/content/ru/_TEMPLATE.md b/content/ru/_TEMPLATE.md new file mode 100644 index 0000000000..018f003932 --- /dev/null +++ b/content/ru/_TEMPLATE.md @@ -0,0 +1,21 @@ +--- +title: Шаблон для определений +status: Feedback Appreciated +category: concept +--- + +## Описание + +Краткое и четкое описание того, о чем идет речь. + +## Проблема + +Проблема, которую решает описываемая технология. Избегайте упоминать термин, для которого дается определение. В этом разделе необходимо сфокусироваться на предпосылках, которые привели к разработке данной технологии/концепции. + +## Решение + +Здесь можно вернуться к самому термину. Как он помогает решить проблему, описанную выше? + +## Связанные термины + +Добавьте связанные термины из глоссария (если такие имеются). From 1860cdc90b1d2d743bd9f570e2d3fd4fc6b6cffd Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 12:38:43 +0300 Subject: [PATCH 014/130] [ru] Localize Kubernetes Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/kubernetes.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 content/ru/kubernetes.md diff --git a/content/ru/kubernetes.md b/content/ru/kubernetes.md new file mode 100644 index 0000000000..b3e2702bed --- /dev/null +++ b/content/ru/kubernetes.md @@ -0,0 +1,38 @@ +--- +title: Kubernetes +status: Completed +category: technology +tags: ["infrastructure", "fundamental", ""] +--- + +## Описание + +Kubernetes (часто используют его сокращенное название K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. +Она автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая "операционной системой" на уровне центров обработки данных для управления приложениями в [распределенных системах](/distributed-systems/). + +Kubernetes планирует [контейнеры](/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их всеми необходимыми инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. + +Kubernetes обеспечивает автоматизацию и расширяемость, позволяя пользователям развертывать приложения декларативным (см. ниже) и воспроизводимым образом. +[API](/application-programming-interface/), встроенный в Kubernetes, позволяет опытным пользователям расширять и дополнять его возможности в соответствии со своими потребностями. + +## Проблема + +Автоматизация инфраструктуры и декларативное управление конфигурацией уже давно занимают центральное место в информационных технологиях. С ростом популярности [облачных вычислений](/cloud-computing/) их актуальность значительно возросла. + +Спрос на вычислительные ресурсы постоянно увеличивается. В то же время организации стараются сделать труд инженеров максимально эффективным, чтобы оптимизировать расходы на рабочую силу. Новые технологии и методы работы призваны удовлетворить обе этих потребности. + +## Решение + +Как и традиционные инструменты типа [инфраструктура-как-код (IaC)](/infrastructure-as-code/), Kubernetes помогает автоматизировать процессы, при этом его главное преимущество — управление контейнерами. + +Контейнеры более устойчивы к дрейфу конфигурации, нежели [виртуальные](/virtual-machine/) или физические машины. + +Кроме того, Kubernetes работает декларативно, то есть пользователь не указывает компьютеру, что нужно сделать, а лишь описывает желаемое состояние инфраструктуры (обычно в виде файлов-манифестов на языке YAML). +Все остальное Kubernetes берет на себя. +Это приводит к тому, что Kubernetes в высшей степени совместим с подходом инфраструктура-как-код. + +В Kubernetes также встроена функция [самовосстановления](/self-healing/). + +Фактическое состояние кластера всегда стремится к состоянию, которое задал оператор. +Когда Kubernetes обнаруживает отклонение от того, что описано в файлах манифеста, в работу вступает контроллер Kubernetes и устраняет его. +Инфраструктура, с которой работает Kubernetes, может в любой момент измениться, однако оркестратор постоянно и автоматически адаптируется к этим изменениям, следя за тем, чтобы состояние кластера всегда соответствовало желаемому. From 0bf1e49b322811cf0494f38432c304e647567a0e Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 13:44:17 +0300 Subject: [PATCH 015/130] [ru] Localize Cloud Native Apps Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/cloud-native-apps.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ru/cloud-native-apps.md diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md new file mode 100644 index 0000000000..14399dd5d5 --- /dev/null +++ b/content/ru/cloud-native-apps.md @@ -0,0 +1,30 @@ +--- +title: Нативные облачные приложения +status: Completed +category: concept +tags: ["application", "fundamental", ""] +--- + +## Описание + +Нативные облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). +Эти приложения легко интегрируются с соответствующими облачными архитектурами, +пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). +Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. +Сегодня к нативным облачным приложениям относятся приложения, работающие в центрах обработки данных облачных провайдеров и на локальных (on-premise) платформах, спроектированных для работы с облаком. + +## Проблема + +Традиционно локальные среды предоставляли вычислительные ресурсы достаточно узкоспециализированным образом. +В каждом центре обработки данных имелись сервисы, которые [жестко привязывали](/tightly-coupled-architectures/) приложения к конкретным окружениям, часто в значительной степени опираясь на ручную подготовку инфраструктуры (например, [виртуальных машин](/virtual-machine/) и сервисов). +В свою очередь, это привязывало разработчиков и их приложения к конкретному центру обработки данных. +Приложения, которые не были специально разработаны для облачных сред, не могли воспользоваться их отказоустойчивостью и возможностями масштабирования. +Например, приложения, для корректного запуска которых требуется ручное вмешательство, не могут автоматически масштабироваться, +равно как и автоматически перезапускаться в случае сбоя. + +## Решение + +Хотя не существует универсального пути к построению нативных облачных приложений, у них все же есть некоторые общие черты. +Нативные облачные приложения устойчивы к внешним воздействиям, управляемы и поддерживаются набором сопутствующих облачных сервисов. +Различные облачные сервисы обеспечивают высокую степень [наблюдаемости](/observability/), позволяя обнаруживать и оперативно устранять проблемы до их разрастания. +В сочетании с надежной автоматизацией они позволяют инженерам часто и предсказуемо вносить важные изменения с минимальными усилиями. From 228e9536c630388b58970c94bf1e79017fdd77f1 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 14:58:23 +0300 Subject: [PATCH 016/130] [ru] Localize Cloud Native Technology Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/cloud-native-tech.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 content/ru/cloud-native-tech.md diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md new file mode 100644 index 0000000000..dedc444666 --- /dev/null +++ b/content/ru/cloud-native-tech.md @@ -0,0 +1,32 @@ +--- +title: Нативная облачная технология +status: Completed +category: Concept +tags: ["fundamental", "", ""] +--- + +## Описание + +Нативные облачные технологии, также называемые нативным облачным стеком, — +это технологии, используемые для создания [нативных облачных приложений](/cloud-native-apps/). +Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, +таких как публичные, приватные и гибридные облака, +максимально используя преимущества [облачных вычислений](/cloud-computing/). +Они изначально разрабатываются для максимального использования возможностей облачных вычислений, и примером такого подхода являются контейнеры, сервисные сетки, микросервисы и неизменяемая (immutable) инфраструктура. + +## Проблема + +Стек нативных облачных решений включает в себя множество различных технологий, решающих самые разные задачи. +Если взглянуть на многообразие приложений в [CNCF Cloud Native Landscape](https://landscape.cncf.io/), +можно увидеть, как много различных областей они охватывают. +Но на высоком уровне они решают один базовый набор задач — +устраняют недостатки традиционных операционных IT-моделей. +Среди этих задач — трудности при создании масштабируемых, отказоустойчивых, самовосстанавливающихся приложений, +а также неэффективное использование ресурсов и др. + +## Решение + +Хотя каждая технология решает свою специфическую задачу, +в совокупности нативные облачные технологии позволяют создавать слабосвязанные системы, устойчивые к внешним воздействиям, управляемые и наблюдаемые. +В сочетании с надежной автоматизацией они позволяют инженерам с минимальными усилиями вносить серьезные изменения часто и с предсказуемым результатом. +Желаемые характеристики нативных облачных систем легче реализовать с помощью соответствующего нативного облачного стека. From 4df351046b97e092af8de097b6d2e09fe6730ae9 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 15:43:36 +0300 Subject: [PATCH 017/130] [ru] Localize Container Orchestration Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/container-orchestration.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 content/ru/container-orchestration.md diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md new file mode 100644 index 0000000000..3b435ebe78 --- /dev/null +++ b/content/ru/container-orchestration.md @@ -0,0 +1,25 @@ +--- +title: Оркестрация контейнеров +status: Completed +category: Concept +--- + +## Описание + +Под оркестрацией [контейнеров](/container/) понимается управление и автоматизация жизненного цикла контейнеризованных приложений в динамических средах. +Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. +Оркестрация — это метафора: +инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (или музыкант) делал то, что должен. + +## Проблема + +Управлять вручную [микросервисами](/microservices), безопасностью и сетевым взаимодействием в больших масштабах (а также [распределенными системами](/distributed-systems) в целом) +сложно, а иногда и невозможно. +Оркестрация контейнеров позволяет автоматизировать все эти управленческие задачи. + +## Решение + +Инструменты для оркестрации контейнеров позволяют пользователям задавать состояние системы. +На начальном этапе они определяют, как система должна выглядеть (например, X контейнеров, Y подов и т.д.). +Затем инструмент оркестрации автоматически отслеживает состояние инфраструктуры и корректирует его при отклонении от заявленного (например, при сбое контейнера запускает новый). +Такая автоматизация упрощает выполнение многих сложных операционных задач (которые в противном случае выполнялись бы вручную), включая выделение ресурсов, развертывание, масштабирование (вверх и вниз), работу с сетью, балансировку нагрузки и другие действия. From 602f3cc6c89269ffa1ec25f88057ff1924c178e6 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 16:35:04 +0300 Subject: [PATCH 018/130] [ru] Localize Containerization Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/containerization.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ru/containerization.md diff --git a/content/ru/containerization.md b/content/ru/containerization.md new file mode 100644 index 0000000000..178f380b1c --- /dev/null +++ b/content/ru/containerization.md @@ -0,0 +1,30 @@ +--- +title: Контейнеризация +status: Completed +category: Technology +tags: ["application", "", ""] +--- + +## Описание + +Контейнеризация — это процесс упаковки приложения и его зависимостей в [контейнерный образ](/container-image/). +Контейнеризация должна проводиться в сооответствии со стандартом [Open Container Initiative](https://opencontainers.org) (OCI). +Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации применялось. + +## Проблема + +До того как контейнеры получили широкое распространение, для запуска множества приложений на одном ["железном"](/bare-metal-machine/) (bare-metal) сервере использовались виртуальные машины. +ВМ значительно больше контейнеров, кроме того, для их работы необходим гипервизор. +Создание шаблонизированных решений на базе ВМ затруднено именно необходимостью хранения, резервного копирования и передачи больших объемов данных. +Кроме того, ВМ могут страдать от конфигурационного дрейфа, что нарушает принцип [неизменяемости](/immutable-infrastructure/). + +## Решение + +От традиционных ВМ образы контейнеров отличаются гораздо меньшим размером, +а для контейнеризации требуется лмшь файл со списком зависимостей. +Этот файл может отслеживаться системой контроля версий, а сборка может быть автоматизирована, +что позволяет организации сосредоточиться на других задачах, пока автоматические процессы занимаются сборкой. +У каждого образа контейнера имеется уникальный идентификатор, +привязанный к его содержимому и конфигурации. +При планировании и перепланировании контейнеры всегда +сбрасываются в исходное состояние, что исключает конфигурационный дрейф. From 46dd6788e03b2d646edf4340130d65c06e57861f Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 18:59:42 +0300 Subject: [PATCH 019/130] [ru] Localize Containers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/container.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 content/ru/container.md diff --git a/content/ru/container.md b/content/ru/container.md new file mode 100644 index 0000000000..148cad5126 --- /dev/null +++ b/content/ru/container.md @@ -0,0 +1,34 @@ +--- +title: Контейнер +status: Completed +category: technology +tags: ["application", "fundamental", ""] +--- + +## Описание + +Контейнер — это процесс, работающий под управлением операционной системы комьютера. +Для него заданы определенные ограничения на ресурсы и возможности, и ОС следит за тем, чтобы эти ограничения соблюдались. +Файлы, доступные этому процессу, упаковываются в образ контейнера. +Контейнеры работают рядом друг с другом на одной и той же машине, +но, как правило, операционная система не позволяет отдельным контейнерам взаимодействовать друг с другом. + +## Проблема + +До появления контейнеров для запуска приложений требовались отдельные машины. +На каждой машине должна быть установлена операционная система, которая потребляет ресурсы процессора и памяти, а также дисковое пространство — и все это для работы одного единственного приложения. +Кроме того, приходится тратить значительные силы на обслуживание, обновление и запуск самой операционной системы. + +## Решение + +Контейнеры совместно используют одну и ту же операционную систему и ее машинные ресурсы. +Другими словами, вместо множества копий ОС используется лишь одна — +ресурсы, потребляемые операционной системой, делятся сразу на несколько контейнеров. +Тем самым обеспечивается эффективное использование памяти, процессора и дискового пространства. +Такая совместная работа контейнеров возможна только потому, что они, как правило, не могут взаимодействовать друг с другом. +Это позволяет запускать на одной физической машине гораздо больше приложений. + +Однако есть и ограничения. +Подход, когда множество контейнеров используют одну и ту же операционную систему, потенциально более опасен, чем альтернативные варианты. +Кроме того, для контейнеров необходимо задавать ограничения на общие ресурсы. +Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения получают достаточное количество ресурсов. From 96ed64ffd22f44c2359b5a37a6e07765787a9f98 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 29 Jul 2023 19:38:53 +0300 Subject: [PATCH 020/130] [ru] Localize Continuous Delivery Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/continuous-delivery.md | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 content/ru/continuous-delivery.md diff --git a/content/ru/continuous-delivery.md b/content/ru/continuous-delivery.md new file mode 100644 index 0000000000..66445e049a --- /dev/null +++ b/content/ru/continuous-delivery.md @@ -0,0 +1,38 @@ +--- +title: Непрерывная доставка (CD) +status: Completed +category: concept +tags: ["methodology", "application", ""] +--- + +## Описание + +Непрерывная доставка (Continuous Delivery), часто сокращенно называемая CD, — это набор практик, +при которых изменения кода автоматически развертываются в приемочное окружение +(или, в случае непрерывного развертывания, в production). +CD обязательно включает процедуры, обеспечивающие адекватное тестирование программного обеспечения +перед развертыванием, и предоставляет возможность отката изменений при необходимости. +Непрерывная интеграция (CI) — первый шаг на пути к непрерывной доставке +(т. е. процесс внесения изменений (merging) должен завершиться успешно, и только после этого можно переходить к тестированию и развертыванию). + +## Проблема + +Развертывание [надежных](/reliability/) обновлений становится глобальной проблемой. +В идеале частота развертываний должна быть высокой — так востребованные функции будут быстрее попадать к конечным пользователям. +Однако выполнение этих операций вручную приводит к большим трудозатратам при каждом изменении. +Исторически сложилось так, что для того, чтобы избежать этих трудозатрат, организации выпускали продукты реже, +внедряя больше изменений за один раз. В результате увеличивался риск того, что что-то пойдет не так. + +## Решение + +Стратегии CD реализуют полностью автоматизированный путь к production, +в рамках которого ПО тестируется и развертывается с использованием различных стратегий развертывания, +таких как [канареечные](/canary-deployment/) или [сине-зеленые](/blue-green-deployment/) релизы. +Это позволяет разработчикам часто развертывать код, будучи уверенными в том, что новая ревизия прошла тестирование. +Как правило, в стратегиях CD используется trunk-based-разработка, когда небольшие изменения кода часто вносятся в основную ветку +(в отличие от запросов на слияние (pull requests) и фич-веток (feature branching)). + +## Связанные термины + +* [Непрерывная интеграция](/continuous-integration/) +* [Непрерывное развертывание](/continuous-deployment/) From 1ef15aa246d85f97493fc7539a1f1e1d1027c201 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sun, 30 Jul 2023 10:52:40 +0300 Subject: [PATCH 021/130] [ru] Localize Continuous Deployment Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/continuous-deployment.md | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 content/ru/continuous-deployment.md diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md new file mode 100644 index 0000000000..2ce5be1800 --- /dev/null +++ b/content/ru/continuous-deployment.md @@ -0,0 +1,35 @@ +--- +title: Непрерывное развертывание (CD) +status: Completed +category: concept +tags: ["application", "methodology", ""] +--- + +## Описание + +Непрерывное развертывание (часто используется аббревиатура CD) развивает идеи [непрерывной доставки](/continuous-delivery/), +позволяя развертывать готовое программное обеспечение непосредственно в production. +Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. +CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, +а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). + +## Проблема + +Выпуск новых версий программного обеспечения может быть трудоемким и сопряженным с ошибками процессом. +Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в production +и сократить время, в течение которого инженеры должны оставаться на связи (в т. ч. в нерабочие часы). +Традиционные модели развертывания программного обеспечения приводят к тому, что организации попадают в порочный круг, +в котором процесс выпуска программного обеспечения не отвечает потребностям организации +ни в стабильности, ни в скорости реализации новых функций. + +## Решение + +Автоматизируя релизный цикл и заставляя организации чаще развертывать ПО в production, +CD делает для команд эксплуатации то же самое, что CI — для команд разработки. +А именно, автоматизирует болезненные и склонные к ошибкам этапы развертывания в production, снижая общий риск. +Кроме того, организации привыкают к частым изменениям в production и лучше к ним адаптируются, что повышает стабильность. + +## Связанные термины + +* [Непрерывная интеграция](/continuous-integration/) +* [Непрерывная доставка](/continuous-delivery/) From 8e04a2b926799ee63cb07979bf623100386519e0 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sun, 30 Jul 2023 14:57:45 +0300 Subject: [PATCH 022/130] [ru] Localize Continuous Integration Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/continuous-integration.md | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 content/ru/continuous-integration.md diff --git a/content/ru/continuous-integration.md b/content/ru/continuous-integration.md new file mode 100644 index 0000000000..a10d435ceb --- /dev/null +++ b/content/ru/continuous-integration.md @@ -0,0 +1,34 @@ +--- +title: Непрерывная интеграция (CI) +status: Completed +category: concept +tags: ["application", "methodology", ""] +--- + +## Описание + +Непрерывная интеграция (CI) — это практика, при которой правки принимаются в код с максимальной возможной регулярностью. +CI является предварительным условием для [непрерывной доставки](/continuous-delivery/) (CD). +Процесс CI традиционно начинается с внесения правок в код в системе контроля исходного кода (Git, Mercurial или Subversion) +и заканчивается получением протестированного артефакта, готового к использованию CD-системой. + +## Проблема + +Программные системы часто бывают большими и сложными, их поддерживает и обновляет множество разработчиков. +Работая параллельно над разными частями системы, +эти разработчики могут вносить конфликтующие изменения и непреднамеренно "портить" работу друг друга. +Кроме того, если над одним проектом работает несколько разработчиков, то все повседневные задачи, +такие как тестирование и расчет качества кода, приходится повторять каждому из них, что ведет к потере времени. + +## Решение + +Программное обеспечение CI автоматически следит за тем, чтобы изменения, вносимые в код, +нормально в него интегрировались после каждого коммита, сделанного разработчиком. +Использование CI-сервера для проверки качества кода, запуска тестов и даже развертывания является довольно распространенной практикой, +превращая его в один из неотъемлемых инструментов для контроля качества в командах разработчиков. +CI позволяет командам разработчиков перевести каждый коммит кода либо в разряд провальных, либо в разряд вполне жизнеспособных кандидатов на релиз. + +## Связанные термины + +* [Непрерывная доставка](/continuous-delivery/) +* [Непрерывное развертывание](/continuous-deployment/) From 468322d3f96ed9f2184e438f711fa0b6f7d3347c Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sun, 30 Jul 2023 15:20:34 +0300 Subject: [PATCH 023/130] [ru] Localize DevOps Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/devops.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 content/ru/devops.md diff --git a/content/ru/devops.md b/content/ru/devops.md new file mode 100644 index 0000000000..ac1df1144f --- /dev/null +++ b/content/ru/devops.md @@ -0,0 +1,34 @@ +--- +title: DevOps +status: Completed +category: concept +tags: ["methodology", "", ""] +--- + +## Описание + +DevOps — это методология, в которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) +до его эксплуатации (**OP**eration**S**) в production, отсюда и DevOps. +Она выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. +DevOps предполагает наличие групп инженеров, которые работают над небольшими компонентами-частями (а не над целой функцией), +что позволяет сократить количество переделок, являющихся распространенным источником ошибок. + +## Проблема + +Традиционно в крупных организациях с [тесно связанными](/tightly-coupled-architectures/) [монолитными приложениями](/monolithic-apps/) +работа, как правило, была разделена между несколькими группами. +Это приводило к многочисленным переделкам и длительным срокам выполнения работ. +Каждый раз, когда компонент или обновление были готовы, они помещались в очередь для следующей команды. +Поскольку каждый инженер работал только над небольшой частью проекта, было сложно сказать, кто и за что отвечает. +Каждая команда стремилась выполнить свою часть работы и передать проект следующей, а не реализовать функции, нужные заказчику — +наблюдался явный конфликт приоритетов. + +К тому времени, когда код, наконец, попадал в production, он проходил через такое количество разработчиков и команд, +что при возникновении проблемы было крайне трудно отследить ее источник. +DevOps кардинально изменил этот подход. + +## Решение + +Когда одна команда отвечает за весь жизненный цикл приложения, это позволяет свести к минимуму количество переделок, +снизить риски при развертывании в production и повысить качество кода (поскольку команды также отвечают за его работу в production). +Кроме того, растет удовлетворенность сотрудников, поскольку те ощущают себя более самостоятельными и причастными к общему делу. From 09740a51e0af5ce3b2e15bd69ea0e6d0af73a05e Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sun, 30 Jul 2023 15:33:34 +0300 Subject: [PATCH 024/130] [ru] Localize DevSecOps Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/devsecops.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ru/devsecops.md diff --git a/content/ru/devsecops.md b/content/ru/devsecops.md new file mode 100644 index 0000000000..586017e2a6 --- /dev/null +++ b/content/ru/devsecops.md @@ -0,0 +1,30 @@ +--- +title: DevSecOps +status: Completed +category: concept +tags: ["methodology", "security", ""] +--- + +## Описание + +Термин DevSecOps означает культурное слияние компетенций в области разработки (**DEV**elopment), безопасности (**SEC**urity) и эксплуатации (**OP**eration**S**). +Он дополняет подход [DevOps](/devops/) приоритетами в области безопасности +с минимальным влиянием на процесс разработки и эксплуатации. +Как и DevOps, DevSecOps — это культурный сдвиг, подталкиваемый новыми технологиями и уникальными методами их внедрения. + +## Проблема + +Практики DevOps включают [непрерывную интеграцию](/continuous-integration/) и [непрерывное развертывание](/continuous-deployment/) +и ускоряют циклы разработки и выпуска приложений. +К сожалению, автоматизация релизов, не учитывающая интересы всех заинтересованных сторон в организации, может усугубить существующие проблемы. +Быстрый выпуска нового программного обеспечения без учета требований безопасности может негативно сказаться на компании. + +## Решение + +DevSecOps фокусируется на устранении командной разобщенности и способствует созданию безопасных автоматизированных рабочих процессов. +При выборе приложений для обеспечения безопасности организации должны использовать преимущества +автоматизированных рабочих CI/CD-процессов и контроля за соблюдением политик, которые расширяют возможности разработчиков. +Цель — не мешать, а следить за соблюдением политик безопасности, +одновременно предоставляя пользователям точную информацию о том, как развивать их проект. +При правильном внедрении организация получает более эффективное взаимодействие в коллективе, +снижает количество ошибок в системе безопасности и связанные с ними затраты. From 749affd1a131d08a19f30ad0d22cde9c7379b634 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:22:10 +0300 Subject: [PATCH 025/130] Apply suggestions from code review Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_index.md | 2 +- content/ru/cloud-native-apps.md | 2 +- content/ru/cloud-native-tech.md | 2 +- content/ru/container-orchestration.md | 10 +++++----- content/ru/container.md | 14 +++++++------- content/ru/containerization.md | 16 ++++++++-------- content/ru/continuous-delivery.md | 10 +++++----- content/ru/continuous-deployment.md | 4 ++-- content/ru/devops.md | 2 +- content/ru/devsecops.md | 2 +- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index f04ae0187e..625737d5a2 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -15,7 +15,7 @@ status: Completed Приглашаем всех желающих поучаствовать в развитии Глоссария Cloud Native, его дополнении и улучшении. Процесс разработки единого лексикона и его совершенствования управляется сообществом и регулируется CNCF. -Глоссарий вендор-нейтрален и ставит своей целью создание словаря-справочника по облачно-нативным технологиям. +Глоссарий вендор-нейтрален и ставит своей целью создание словаря-справочника по нативным облачным технологиям. Приветствуется любое участие при условии, что оно соответствует целям и уставу проекта. Все желающиет могут открыть Issue на Github или создать Pull Request. diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index 14399dd5d5..fafe8b8103 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -Нативные облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). +[Нативные](/native/) облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). Эти приложения легко интегрируются с соответствующими облачными архитектурами, пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index dedc444666..e99b95da2b 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -7,7 +7,7 @@ tags: ["fundamental", "", ""] ## Описание -Нативные облачные технологии, также называемые нативным облачным стеком, — +[Нативные](/native/) облачные технологии, также называемые нативным облачным стеком, — это технологии, используемые для создания [нативных облачных приложений](/cloud-native-apps/). Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md index 3b435ebe78..afe6beecc2 100644 --- a/content/ru/container-orchestration.md +++ b/content/ru/container-orchestration.md @@ -6,20 +6,20 @@ category: Concept ## Описание -Под оркестрацией [контейнеров](/container/) понимается управление и автоматизация жизненного цикла контейнеризованных приложений в динамических средах. +Под оркестрацией [контейнеров](/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управлением им. Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. Оркестрация — это метафора: -инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (или музыкант) делал то, что должен. +инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (музыкант) делал то, что должен. ## Проблема -Управлять вручную [микросервисами](/microservices), безопасностью и сетевым взаимодействием в больших масштабах (а также [распределенными системами](/distributed-systems) в целом) +Вручную управлять [микросервисами](/microservices), обеспечивать безопасность и контролировать сетевое взаимодействие в больших масштабах (а также управлять [распределенными системами](/distributed-systems) в целом) сложно, а иногда и невозможно. Оркестрация контейнеров позволяет автоматизировать все эти управленческие задачи. ## Решение Инструменты для оркестрации контейнеров позволяют пользователям задавать состояние системы. -На начальном этапе они определяют, как система должна выглядеть (например, X контейнеров, Y подов и т.д.). -Затем инструмент оркестрации автоматически отслеживает состояние инфраструктуры и корректирует его при отклонении от заявленного (например, при сбое контейнера запускает новый). +На начальном этапе они определяют, как система должна выглядеть (например, X контейнеров, Y подов и т. д.). +Затем инструмент оркестрации автоматически отслеживает состояние инфраструктуры и корректирует его при отклонении от заявленного (например, при сбое одного контейнера запускает другой). Такая автоматизация упрощает выполнение многих сложных операционных задач (которые в противном случае выполнялись бы вручную), включая выделение ресурсов, развертывание, масштабирование (вверх и вниз), работу с сетью, балансировку нагрузки и другие действия. diff --git a/content/ru/container.md b/content/ru/container.md index 148cad5126..8dd76f4309 100644 --- a/content/ru/container.md +++ b/content/ru/container.md @@ -9,15 +9,15 @@ tags: ["application", "fundamental", ""] Контейнер — это процесс, работающий под управлением операционной системы комьютера. Для него заданы определенные ограничения на ресурсы и возможности, и ОС следит за тем, чтобы эти ограничения соблюдались. -Файлы, доступные этому процессу, упаковываются в образ контейнера. +Файлы, доступные процессу, упаковываются в образ контейнера. Контейнеры работают рядом друг с другом на одной и той же машине, -но, как правило, операционная система не позволяет отдельным контейнерам взаимодействовать друг с другом. +при этом операционная система, как правило, не позволяет отдельным контейнерам взаимодействовать друг с другом. ## Проблема До появления контейнеров для запуска приложений требовались отдельные машины. -На каждой машине должна быть установлена операционная система, которая потребляет ресурсы процессора и памяти, а также дисковое пространство — и все это для работы одного единственного приложения. -Кроме того, приходится тратить значительные силы на обслуживание, обновление и запуск самой операционной системы. +На каждой машине устанавливалась операционная система, которая потребляла ресурсы процессора и памяти, а также дисковое пространство — и все это для работы одного единственного приложения. +Кроме того, приходилось тратить значительные силы на обслуживание, обновление и запуск самой операционной системы. ## Решение @@ -26,9 +26,9 @@ tags: ["application", "fundamental", ""] ресурсы, потребляемые операционной системой, делятся сразу на несколько контейнеров. Тем самым обеспечивается эффективное использование памяти, процессора и дискового пространства. Такая совместная работа контейнеров возможна только потому, что они, как правило, не могут взаимодействовать друг с другом. -Это позволяет запускать на одной физической машине гораздо больше приложений. +Это позволяет запускать на одной физической машине сразу несколько приложений. Однако есть и ограничения. Подход, когда множество контейнеров используют одну и ту же операционную систему, потенциально более опасен, чем альтернативные варианты. -Кроме того, для контейнеров необходимо задавать ограничения на общие ресурсы. -Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения получают достаточное количество ресурсов. +Кроме того, для контейнеров приходится задавать ограничения на общие ресурсы. +Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения получают справедливую долю ресурсов. diff --git a/content/ru/containerization.md b/content/ru/containerization.md index 178f380b1c..881ee23e81 100644 --- a/content/ru/containerization.md +++ b/content/ru/containerization.md @@ -7,24 +7,24 @@ tags: ["application", "", ""] ## Описание -Контейнеризация — это процесс упаковки приложения и его зависимостей в [контейнерный образ](/container-image/). +Контейнеризация — это упаковка приложения и его зависимостей в [контейнерный образ](/container-image/). Контейнеризация должна проводиться в сооответствии со стандартом [Open Container Initiative](https://opencontainers.org) (OCI). -Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации применялось. +Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации использовалось. ## Проблема До того как контейнеры получили широкое распространение, для запуска множества приложений на одном ["железном"](/bare-metal-machine/) (bare-metal) сервере использовались виртуальные машины. -ВМ значительно больше контейнеров, кроме того, для их работы необходим гипервизор. +ВМ значительно больше контейнеров, и для их работы необходим гипервизор. Создание шаблонизированных решений на базе ВМ затруднено именно необходимостью хранения, резервного копирования и передачи больших объемов данных. Кроме того, ВМ могут страдать от конфигурационного дрейфа, что нарушает принцип [неизменяемости](/immutable-infrastructure/). ## Решение -От традиционных ВМ образы контейнеров отличаются гораздо меньшим размером, -а для контейнеризации требуется лмшь файл со списком зависимостей. -Этот файл может отслеживаться системой контроля версий, а сборка может быть автоматизирована, -что позволяет организации сосредоточиться на других задачах, пока автоматические процессы занимаются сборкой. +От традиционных ВМ образы контейнеров отличаются гораздо меньшими размерами, +а для контейнеризации требуется лишь файл со списком зависимостей. +Этот файл может отслеживаться системой контроля версий, а сборка — автоматизирована, +что позволяет организации сосредоточиться на других задачах. У каждого образа контейнера имеется уникальный идентификатор, привязанный к его содержимому и конфигурации. -При планировании и перепланировании контейнеры всегда +При планировании (размещении на узлы) и перепланировании контейнеры всегда сбрасываются в исходное состояние, что исключает конфигурационный дрейф. diff --git a/content/ru/continuous-delivery.md b/content/ru/continuous-delivery.md index 66445e049a..9fca5b8b78 100644 --- a/content/ru/continuous-delivery.md +++ b/content/ru/continuous-delivery.md @@ -9,26 +9,26 @@ tags: ["methodology", "application", ""] Непрерывная доставка (Continuous Delivery), часто сокращенно называемая CD, — это набор практик, при которых изменения кода автоматически развертываются в приемочное окружение -(или, в случае непрерывного развертывания, в production). +(или, в случае непрерывного развертывания, в [production](/production/)). CD обязательно включает процедуры, обеспечивающие адекватное тестирование программного обеспечения перед развертыванием, и предоставляет возможность отката изменений при необходимости. Непрерывная интеграция (CI) — первый шаг на пути к непрерывной доставке -(т. е. процесс внесения изменений (merging) должен завершиться успешно, и только после этого можно переходить к тестированию и развертыванию). +(т. е. сначала должен успешно процесс внесения изменений (merging); только после этого можно переходить к тестированию и развертыванию). ## Проблема Развертывание [надежных](/reliability/) обновлений становится глобальной проблемой. В идеале частота развертываний должна быть высокой — так востребованные функции будут быстрее попадать к конечным пользователям. -Однако выполнение этих операций вручную приводит к большим трудозатратам при каждом изменении. +Однако выполнение этих операций вручную влечет значительные трудозатраты при каждом изменении. Исторически сложилось так, что для того, чтобы избежать этих трудозатрат, организации выпускали продукты реже, внедряя больше изменений за один раз. В результате увеличивался риск того, что что-то пойдет не так. ## Решение -Стратегии CD реализуют полностью автоматизированный путь к production, +Стратегии CD реализуют полностью автоматизированный путь к [production](/production/), в рамках которого ПО тестируется и развертывается с использованием различных стратегий развертывания, таких как [канареечные](/canary-deployment/) или [сине-зеленые](/blue-green-deployment/) релизы. -Это позволяет разработчикам часто развертывать код, будучи уверенными в том, что новая ревизия прошла тестирование. +Это позволяет разработчикам развертывать код с высокой частотой, будучи уверенными в том, что новая ревизия прошла тестирование. Как правило, в стратегиях CD используется trunk-based-разработка, когда небольшие изменения кода часто вносятся в основную ветку (в отличие от запросов на слияние (pull requests) и фич-веток (feature branching)). diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md index 2ce5be1800..bac9ae2748 100644 --- a/content/ru/continuous-deployment.md +++ b/content/ru/continuous-deployment.md @@ -8,7 +8,7 @@ tags: ["application", "methodology", ""] ## Описание Непрерывное развертывание (часто используется аббревиатура CD) развивает идеи [непрерывной доставки](/continuous-delivery/), -позволяя развертывать готовое программное обеспечение непосредственно в production. +позволяя размещать готовое программное обеспечение непосредственно в [production](/production/). Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). @@ -16,7 +16,7 @@ CI помогает убедиться, что изменения, внесен ## Проблема Выпуск новых версий программного обеспечения может быть трудоемким и сопряженным с ошибками процессом. -Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в production +Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в [production](/production/) и сократить время, в течение которого инженеры должны оставаться на связи (в т. ч. в нерабочие часы). Традиционные модели развертывания программного обеспечения приводят к тому, что организации попадают в порочный круг, в котором процесс выпуска программного обеспечения не отвечает потребностям организации diff --git a/content/ru/devops.md b/content/ru/devops.md index ac1df1144f..233b81ef0f 100644 --- a/content/ru/devops.md +++ b/content/ru/devops.md @@ -8,7 +8,7 @@ tags: ["methodology", "", ""] ## Описание DevOps — это методология, в которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) -до его эксплуатации (**OP**eration**S**) в production, отсюда и DevOps. +до его эксплуатации (**OP**eration**S**) в [production](/production/), отсюда и DevOps. Она выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. DevOps предполагает наличие групп инженеров, которые работают над небольшими компонентами-частями (а не над целой функцией), что позволяет сократить количество переделок, являющихся распространенным источником ошибок. diff --git a/content/ru/devsecops.md b/content/ru/devsecops.md index 586017e2a6..60681dbaec 100644 --- a/content/ru/devsecops.md +++ b/content/ru/devsecops.md @@ -17,7 +17,7 @@ tags: ["methodology", "security", ""] Практики DevOps включают [непрерывную интеграцию](/continuous-integration/) и [непрерывное развертывание](/continuous-deployment/) и ускоряют циклы разработки и выпуска приложений. К сожалению, автоматизация релизов, не учитывающая интересы всех заинтересованных сторон в организации, может усугубить существующие проблемы. -Быстрый выпуска нового программного обеспечения без учета требований безопасности может негативно сказаться на компании. +Быстрый выпуск нового программного обеспечения без учета требований безопасности может негативно сказаться на компании. ## Решение From 261b0b49fa6a3db28a0800c9dd7630ae98b556f4 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 7 Oct 2023 10:48:28 +0300 Subject: [PATCH 026/130] Apply suggestions from code review Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_index.md | 6 +++--- content/ru/cloud-native-tech.md | 4 ++-- content/ru/container-orchestration.md | 2 +- content/ru/container.md | 2 +- content/ru/containerization.md | 2 +- content/ru/contribute/_index.md | 20 ++++++++++---------- content/ru/devops.md | 8 ++++---- content/ru/kubernetes.md | 8 ++++---- content/ru/style-guide /_index.md | 4 ++-- 9 files changed, 28 insertions(+), 28 deletions(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index 625737d5a2..864a4fa67b 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -9,16 +9,16 @@ status: Completed Для этого мы делаем упор на простоту (доступный язык, свободный от модных словечек; примеры, которые понятны любому человеку с базовыми представлениями о технологиях; отказ от лишних подробностей). Работа над глоссарием ведется под руководством подкомитета CNCF по деловой ценности (Business Value Subcommittee, BVS). -

People watching a Kubecon presentation

+

Зрители смотрят презентацию на KubeCon

## Внести свой вклад Приглашаем всех желающих поучаствовать в развитии Глоссария Cloud Native, его дополнении и улучшении. Процесс разработки единого лексикона и его совершенствования управляется сообществом и регулируется CNCF. -Глоссарий вендор-нейтрален и ставит своей целью создание словаря-справочника по нативным облачным технологиям. +Глоссарий придерживается принципа независимости от конкретных вендоров и ставит своей целью создание словаря-справочника по нативным облачным технологиям. Приветствуется любое участие при условии, что оно соответствует целям и уставу проекта. -Все желающиет могут открыть Issue на Github или создать Pull Request. +Все желающие могут открыть Issue на GitHub или создать Pull Request. Для этого необходимо предварительно ознакомиться с документом [Как внести свой вклад](/contribute/) и присоединиться к каналу [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack. Кроме того, важно убедиться, что предлагаемые правки соответствуют [Руководству по стилю](/style-guide/). Для тех, кто хочет помочь перевести глоссарий на родной язык, существует канал [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) (для русского языка — [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX)). diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index e99b95da2b..ff9da5362c 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -16,11 +16,11 @@ tags: ["fundamental", "", ""] ## Проблема -Стек нативных облачных решений включает в себя множество различных технологий, решающих самые разные задачи. +Нативный облачный стек включает в себя множество различных технологий, решающих самые разные задачи. Если взглянуть на многообразие приложений в [CNCF Cloud Native Landscape](https://landscape.cncf.io/), можно увидеть, как много различных областей они охватывают. Но на высоком уровне они решают один базовый набор задач — -устраняют недостатки традиционных операционных IT-моделей. +устраняют недостатки традиционных моделей эксплуатации ИТ. Среди этих задач — трудности при создании масштабируемых, отказоустойчивых, самовосстанавливающихся приложений, а также неэффективное использование ресурсов и др. diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md index afe6beecc2..86dbd71d09 100644 --- a/content/ru/container-orchestration.md +++ b/content/ru/container-orchestration.md @@ -6,7 +6,7 @@ category: Concept ## Описание -Под оркестрацией [контейнеров](/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управлением им. +Под оркестрацией [контейнеров](/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управление им. Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. Оркестрация — это метафора: инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (музыкант) делал то, что должен. diff --git a/content/ru/container.md b/content/ru/container.md index 8dd76f4309..d46840396b 100644 --- a/content/ru/container.md +++ b/content/ru/container.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -Контейнер — это процесс, работающий под управлением операционной системы комьютера. +Контейнер — это процесс, работающий под управлением операционной системы компьютера. Для него заданы определенные ограничения на ресурсы и возможности, и ОС следит за тем, чтобы эти ограничения соблюдались. Файлы, доступные процессу, упаковываются в образ контейнера. Контейнеры работают рядом друг с другом на одной и той же машине, diff --git a/content/ru/containerization.md b/content/ru/containerization.md index 881ee23e81..f02def5b9b 100644 --- a/content/ru/containerization.md +++ b/content/ru/containerization.md @@ -8,7 +8,7 @@ tags: ["application", "", ""] ## Описание Контейнеризация — это упаковка приложения и его зависимостей в [контейнерный образ](/container-image/). -Контейнеризация должна проводиться в сооответствии со стандартом [Open Container Initiative](https://opencontainers.org) (OCI). +Процесс сборки контейнера должен соответствовать стандарту [Open Container Initiative](https://opencontainers.org) (OCI). Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации использовалось. ## Проблема diff --git a/content/ru/contribute/_index.md b/content/ru/contribute/_index.md index 2474a97c8e..b57b303bb7 100644 --- a/content/ru/contribute/_index.md +++ b/content/ru/contribute/_index.md @@ -19,20 +19,20 @@ menu: ## Общие сведения о глоссарии CNCF -Цель этого глоссария — упростить знакомство с облачно-нативными технологиями (которые печально известны своей сложностью и запутанностью) и сделать их более доступными для пользователей. +Цель этого глоссария — упростить знакомство с нативными облачными (cloud native) технологиями, которые печально известны своей сложностью и запутанностью, и сделать их более доступными для пользователей. Материалы Глоссария Cloud Native хранятся в [репозитории на GitHub](https://github.com/cncf/glossary). -В нем вы найдете список [Issues](https://github.com/cncf/glossary/issues), Pull Request'ов ([PRs](https://github.com/cncf/glossary/pulls)), and +В нем вы найдете список [Issues](https://github.com/cncf/glossary/issues), Pull Request'ов ([PRs](https://github.com/cncf/glossary/pulls)) и [обсуждений](https://github.com/cncf/glossary/discussions), касающихся глоссария. ## Кто может внести свой вклад? -Ваш конкретное участие в этом проекте определяется компетенцией в области облачно-нативных технологий. +Ваш конкретное участие в этом проекте определяется компетенцией в области cloud native-технологий. Упрощение сложных понятий требует глубоких познаний по теме. Поэтому, чтобы добавлять новые термины, вы должны прекрасно в них разбираться. -Обычно авторами выступают инженеры, которые работали с облачными технологиями и хорошо их знают, или представители научного сообщества, специализирующиеся на облачно-нативных технологиях. +Обычно авторами выступают инженеры, которые работали с облачными технологиями и хорошо их знают, или представители научного сообщества, специализирующиеся на нативных облачных технологиях. -Богатый опыт просто необходим, потому что объяснить сложные понятия доступным языком бывает _очень_ непросто. Может показаться, что создать простое и понятное определение достаточно легко. На самом деле это не так — конечная простота является результатом напряженной работы и сотрудничества многих экспертов по облачно-нативным технологиям. +Богатый опыт просто необходим, потому что объяснить сложные понятия доступным языком бывает _очень_ непросто. Может показаться, что создать простое и понятное определение достаточно легко. На самом деле это не так: конечная простота является результатом напряженной работы и сотрудничества многих экспертов по cloud native-технологиям. Если вы не специалист, но все же хотите помочь, рекомендуем объединиться с кем-то из экспертов. Как только он убедится, что определение хорошо раскрывает концепцию, можно переходить к непосредственной работе с файлами глоссария. @@ -95,8 +95,8 @@ menu: Можно предложить новый термин и дождаться, пока другие авторы сформулируют для него определение, или написать определение самостоятельно. В любом случае начать следует с [создания Issue](#creating-an-issue). -Чтобы претендовать на добавление в глоссарий, каждый новый термин должен отвечать [определению для облачно-нативных терминов, сформулированному CNCF](https://github.com/cncf/toc/blob/main/DEFINITION.md). -Единственным исключением являются фундаментальные термины, необходимые для описания базовых концепций облачно-нативных технологий. +Чтобы претендовать на добавление в глоссарий, каждый новый термин должен отвечать [определению для cloud native-терминов, сформулированному CNCF](https://github.com/cncf/toc/blob/main/DEFINITION.md). +Единственным исключением являются фундаментальные термины, необходимые для описания базовых концепций cloud native-технологий. Ниже приведено пошаговое руководство для тех, кто не знаком с GitHub'ом. **Опытным пользователям GitHub'а** также _рекомендуем_ ознакомиться с ним, чтобы получить общее представление о том: @@ -126,7 +126,7 @@ menu: Далее хранители проведут триаж Issue. А именно, решат, стоит ли включать термин в глоссарий. -Принимаются далеко не все термины: чтобы попасть в глоссарий, они должны устояться в мире облачно-нативных технологий и широко там использоваться. +Принимаются далеко не все термины: чтобы попасть в глоссарий, они должны устояться в мире cloud native-технологий и широко там использоваться. Сообщите хранителям в Slack'е о новом термине (позовите _@Catherine Paganini_, _@Seokho Son_, _@Jihoon Seo_, и/или _@iamnoah_). Если вы хотите поработать над определением, сообщите об этом хранителям, и они закрепят термин за вами. @@ -158,7 +158,7 @@ menu: Включите название термина в URL, как описано в разделе [Лучшие практики](#best-practices). Добавьте к нему расширение .md (без этого расширения будет невозможно предварительно просмотреть файл). Теперь вставьте шаблон в поле с содержимым файла. Скопируйте и вставьте текст определения в файл. -Чтобы проверить markdown-код на соответствие требованиям из раздела [Лучшие практики](#best-practices) нажмите "Preview". +Чтобы проверить markdown-код на соответствие требованиям из раздела [Лучшие практики](#best-practices), нажмите "Preview". ![Завершение работы с термином](/images/how-to/howto-10.png) @@ -216,7 +216,7 @@ menu: Чтобы добавить новые слова в список, выполните следующие действия: 1. В вашем PR найдите файл "wordlist.txt". -2. Нажмите "Отредактировать этот файл" ("Edit this file") иWe updated this guide based on templates from добавьте недостающие слова в алфавитном порядке. +2. Нажмите "Отредактировать этот файл" ("Edit this file") и добавьте недостающие слова в алфавитном порядке. 3. Добавьте сообщение коммита и выберите "Подписать и предложить изменения" ("Sign off and propose changes"). **Примечание**: при проверке орфографии регистр (строчные/прописные буквы) во внимание не принимается. diff --git a/content/ru/devops.md b/content/ru/devops.md index 233b81ef0f..f2669848aa 100644 --- a/content/ru/devops.md +++ b/content/ru/devops.md @@ -8,16 +8,16 @@ tags: ["methodology", "", ""] ## Описание DevOps — это методология, в которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) -до его эксплуатации (**OP**eration**S**) в [production](/production/), отсюда и DevOps. +до его эксплуатации (**OP**eration**S**) в [production](/production/), отсюда и название DevOps. Она выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. DevOps предполагает наличие групп инженеров, которые работают над небольшими компонентами-частями (а не над целой функцией), -что позволяет сократить количество переделок, являющихся распространенным источником ошибок. +что позволяет сократить количество передачи информации между разными людьми, что является распространенным источником ошибок. ## Проблема Традиционно в крупных организациях с [тесно связанными](/tightly-coupled-architectures/) [монолитными приложениями](/monolithic-apps/) работа, как правило, была разделена между несколькими группами. -Это приводило к многочисленным переделкам и длительным срокам выполнения работ. +Это приводило к необходимости часто передавать задачи друг другу и длительным срокам выполнения работ. Каждый раз, когда компонент или обновление были готовы, они помещались в очередь для следующей команды. Поскольку каждый инженер работал только над небольшой частью проекта, было сложно сказать, кто и за что отвечает. Каждая команда стремилась выполнить свою часть работы и передать проект следующей, а не реализовать функции, нужные заказчику — @@ -29,6 +29,6 @@ DevOps кардинально изменил этот подход. ## Решение -Когда одна команда отвечает за весь жизненный цикл приложения, это позволяет свести к минимуму количество переделок, +Когда одна команда отвечает за весь жизненный цикл приложения, это позволяет свести к минимуму необходимость передавать информацию, снизить риски при развертывании в production и повысить качество кода (поскольку команды также отвечают за его работу в production). Кроме того, растет удовлетворенность сотрудников, поскольку те ощущают себя более самостоятельными и причастными к общему делу. diff --git a/content/ru/kubernetes.md b/content/ru/kubernetes.md index b3e2702bed..6d3080ed66 100644 --- a/content/ru/kubernetes.md +++ b/content/ru/kubernetes.md @@ -10,7 +10,7 @@ tags: ["infrastructure", "fundamental", ""] Kubernetes (часто используют его сокращенное название K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. Она автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая "операционной системой" на уровне центров обработки данных для управления приложениями в [распределенных системах](/distributed-systems/). -Kubernetes планирует [контейнеры](/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их всеми необходимыми инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. +Kubernetes планирует (т. е. распределяет) [контейнеры](/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их различными инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. Kubernetes обеспечивает автоматизацию и расширяемость, позволяя пользователям развертывать приложения декларативным (см. ниже) и воспроизводимым образом. [API](/application-programming-interface/), встроенный в Kubernetes, позволяет опытным пользователям расширять и дополнять его возможности в соответствии со своими потребностями. @@ -23,13 +23,13 @@ Kubernetes обеспечивает автоматизацию и расширя ## Решение -Как и традиционные инструменты типа [инфраструктура-как-код (IaC)](/infrastructure-as-code/), Kubernetes помогает автоматизировать процессы, при этом его главное преимущество — управление контейнерами. +Как и традиционные инструменты типа [инфраструктура-как-код (IaC)](/infrastructure-as-code/), Kubernetes помогает автоматизировать процессы, а его отличительной чертой и преимуществом является использование контейнеров. -Контейнеры более устойчивы к дрейфу конфигурации, нежели [виртуальные](/virtual-machine/) или физические машины. +Контейнеры более устойчивы к изменяющейся со временем конфигурации, нежели [виртуальные](/virtual-machine/) или физические машины. Кроме того, Kubernetes работает декларативно, то есть пользователь не указывает компьютеру, что нужно сделать, а лишь описывает желаемое состояние инфраструктуры (обычно в виде файлов-манифестов на языке YAML). Все остальное Kubernetes берет на себя. -Это приводит к тому, что Kubernetes в высшей степени совместим с подходом инфраструктура-как-код. +Таким образом, Kubernetes в высшей степени совместим с подходом инфраструктура-как-код. В Kubernetes также встроена функция [самовосстановления](/self-healing/). diff --git a/content/ru/style-guide /_index.md b/content/ru/style-guide /_index.md index 499447a003..f5469853ad 100644 --- a/content/ru/style-guide /_index.md +++ b/content/ru/style-guide /_index.md @@ -30,7 +30,7 @@ menu: ## Минимальное жизнеспособное определение -Мы стремимся к тому, чтобы любой человек мог легко разобраться в облачно-нативных терминах. +Мы стремимся к тому, чтобы любой человек мог легко разобраться в нативных облачных терминах. Поэтому уделяем особое внимание простоте. Используйте доступный язык с примерами, понятными каждому, кто использует технологию, одновременно сопровождая его *минимальным необходимым набором технических подробностей*. Не стоит экономить на контексте и примерах — в конце концов, они помогают читателю разобраться в той или иной концепции, — но если технические подробности не нужны для понимания, их лучше опустить. @@ -140,7 +140,7 @@ tags: ["tag 1", "tag 2", ""] Нередко бывает так, что оно оказывается искажено, не отражает всей сути или подразумевается совсем не то, что говорится. При изучении вопроса — особенно если вы не знакомы с термином на все 100% — пользуйтесь различными ресурсами. Многие определения носят односторонний характер, особенно если даются вендором. -Определения в глоссарии должны быть вендор-нейтральными и принятыми во всем мире. +Определения в глоссарии должны быть независимыми от конкретного вендора и принятыми во всем мире. **Не занимайтесь плагиатом.** К глоссарию применяются те же правила, что и к любой другой серьезной публикации. Не копируйте чужую работу (если только вы не цитируете ее с указанием автора). From 2a10e3521457a053f18f527ca06a048c6d92d965 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Sat, 7 Oct 2023 10:54:08 +0300 Subject: [PATCH 027/130] Apply suggestions from code review These suggestions take into account the edits made in #2343 "Update ownership and emeritus state" Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_index.md | 14 +++++++++----- content/ru/container-orchestration.md | 2 +- content/ru/container.md | 8 ++++---- content/ru/containerization.md | 10 +++++----- content/ru/contribute/_index.md | 4 ++-- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index 864a4fa67b..34a0e8780d 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -35,12 +35,16 @@ status: Completed и многих других авторов. Полный список участников проекта можно найти на [этой странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. -Хранителями глоссария являются -[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), -[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), -[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +Хранителями глоссария являются: [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), -и [Seokho Son](https://www.linkedin.com/in/seokho-son/). +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Nate W.](https://www.linkedin.com/in/nate-double-u/), +и [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +и [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +являются Почетными Хранителями, и мы глубоко признательны +за их неоценимый вклад в развитие проекта на протяжении многих лет. ## Лицензия diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md index 86dbd71d09..3079364ac0 100644 --- a/content/ru/container-orchestration.md +++ b/content/ru/container-orchestration.md @@ -22,4 +22,4 @@ category: Concept Инструменты для оркестрации контейнеров позволяют пользователям задавать состояние системы. На начальном этапе они определяют, как система должна выглядеть (например, X контейнеров, Y подов и т. д.). Затем инструмент оркестрации автоматически отслеживает состояние инфраструктуры и корректирует его при отклонении от заявленного (например, при сбое одного контейнера запускает другой). -Такая автоматизация упрощает выполнение многих сложных операционных задач (которые в противном случае выполнялись бы вручную), включая выделение ресурсов, развертывание, масштабирование (вверх и вниз), работу с сетью, балансировку нагрузки и другие действия. +Такая автоматизация упрощает выполнение многих сложных задач эксплуатации (которые в противном случае выполнялись бы вручную), включая выделение ресурсов, развертывание, масштабирование (вверх и вниз), работу с сетью, балансировку нагрузки и другие действия. diff --git a/content/ru/container.md b/content/ru/container.md index d46840396b..41c4a07a91 100644 --- a/content/ru/container.md +++ b/content/ru/container.md @@ -22,13 +22,13 @@ tags: ["application", "fundamental", ""] ## Решение Контейнеры совместно используют одну и ту же операционную систему и ее машинные ресурсы. -Другими словами, вместо множества копий ОС используется лишь одна — -ресурсы, потребляемые операционной системой, делятся сразу на несколько контейнеров. +Другими словами, вместо множества копий ОС используется лишь одна: +ресурсы, потребляемые операционной системой, делятся сразу на множество контейнеров. Тем самым обеспечивается эффективное использование памяти, процессора и дискового пространства. Такая совместная работа контейнеров возможна только потому, что они, как правило, не могут взаимодействовать друг с другом. -Это позволяет запускать на одной физической машине сразу несколько приложений. +Это позволяет запускать на одной физической машине больше приложений. Однако есть и ограничения. Подход, когда множество контейнеров используют одну и ту же операционную систему, потенциально более опасен, чем альтернативные варианты. Кроме того, для контейнеров приходится задавать ограничения на общие ресурсы. -Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения получают справедливую долю ресурсов. +Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения смогут корректно функционировать. diff --git a/content/ru/containerization.md b/content/ru/containerization.md index f02def5b9b..897557987f 100644 --- a/content/ru/containerization.md +++ b/content/ru/containerization.md @@ -14,17 +14,17 @@ tags: ["application", "", ""] ## Проблема До того как контейнеры получили широкое распространение, для запуска множества приложений на одном ["железном"](/bare-metal-machine/) (bare-metal) сервере использовались виртуальные машины. -ВМ значительно больше контейнеров, и для их работы необходим гипервизор. -Создание шаблонизированных решений на базе ВМ затруднено именно необходимостью хранения, резервного копирования и передачи больших объемов данных. -Кроме того, ВМ могут страдать от конфигурационного дрейфа, что нарушает принцип [неизменяемости](/immutable-infrastructure/). +ВМ по своей природе значительно «тяжелее» контейнеров, и для их работы необходим гипервизор. +Создание шаблонизированных решений на базе ВМ затруднено необходимостью хранения, резервного копирования и передачи больших объемов данных. +Кроме того, ВМ могут страдать от появляющихся со временем изменений в конфигурации, что нарушает принцип [неизменяемости](/immutable-infrastructure/). ## Решение От традиционных ВМ образы контейнеров отличаются гораздо меньшими размерами, а для контейнеризации требуется лишь файл со списком зависимостей. -Этот файл может отслеживаться системой контроля версий, а сборка — автоматизирована, +Модификации этого файла можно отслеживать в системе контроля версий, а процесс сборки — автоматизировать, что позволяет организации сосредоточиться на других задачах. У каждого образа контейнера имеется уникальный идентификатор, привязанный к его содержимому и конфигурации. При планировании (размещении на узлы) и перепланировании контейнеры всегда -сбрасываются в исходное состояние, что исключает конфигурационный дрейф. +сбрасываются в исходное состояние, что исключает расхождения в конфигурации. diff --git a/content/ru/contribute/_index.md b/content/ru/contribute/_index.md index b57b303bb7..7337c8a35b 100644 --- a/content/ru/contribute/_index.md +++ b/content/ru/contribute/_index.md @@ -83,7 +83,7 @@ menu: ![Закрепление Issue](/images/how-to/claiming-an-issue.png) Сообщите хранителям в канале [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack, -призвав _@Catherine Paganini_, _@Seokho Son_, _@Jihoon Seo_, и/или _@iamnoah_, чтобы они наверняка увидели ваше уведомление. +призвав _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_ и/или _@castrojo_, чтобы они наверняка увидели ваше уведомление. Дальнейшие шаги описаны в разделе [Создание нового термина (открываем PR)](#submitting-a-new-term). @@ -128,7 +128,7 @@ menu: А именно, решат, стоит ли включать термин в глоссарий. Принимаются далеко не все термины: чтобы попасть в глоссарий, они должны устояться в мире cloud native-технологий и широко там использоваться. -Сообщите хранителям в Slack'е о новом термине (позовите _@Catherine Paganini_, _@Seokho Son_, _@Jihoon Seo_, и/или _@iamnoah_). +Сообщите хранителям в Slack'е о новом термине (позовите _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_ и/или _@castrojo_). Если вы хотите поработать над определением, сообщите об этом хранителям, и они закрепят термин за вами. ### Отправка нового термина (создаем PR) {#submitting-a-new-term} From d1ab8cca2c908cb42d9b13fa5d690f0a328dd03b Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Mon, 9 Oct 2023 11:42:29 +0300 Subject: [PATCH 028/130] Apply suggestions from code review Remove all links to "native". Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/cloud-native-apps.md | 2 +- content/ru/cloud-native-tech.md | 2 +- content/ru/continuous-integration.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index fafe8b8103..14399dd5d5 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -[Нативные](/native/) облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). +Нативные облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). Эти приложения легко интегрируются с соответствующими облачными архитектурами, пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index ff9da5362c..43d2ba8057 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -7,7 +7,7 @@ tags: ["fundamental", "", ""] ## Описание -[Нативные](/native/) облачные технологии, также называемые нативным облачным стеком, — +Нативные облачные технологии, также называемые нативным облачным стеком, — это технологии, используемые для создания [нативных облачных приложений](/cloud-native-apps/). Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, diff --git a/content/ru/continuous-integration.md b/content/ru/continuous-integration.md index a10d435ceb..fc6ffb6f62 100644 --- a/content/ru/continuous-integration.md +++ b/content/ru/continuous-integration.md @@ -18,7 +18,7 @@ CI является предварительным условием для [не Работая параллельно над разными частями системы, эти разработчики могут вносить конфликтующие изменения и непреднамеренно "портить" работу друг друга. Кроме того, если над одним проектом работает несколько разработчиков, то все повседневные задачи, -такие как тестирование и расчет качества кода, приходится повторять каждому из них, что ведет к потере времени. +такие как тестирование и оценка качества кода, приходится повторять каждому из них, что ведет к потере времени. ## Решение @@ -26,7 +26,7 @@ CI является предварительным условием для [не нормально в него интегрировались после каждого коммита, сделанного разработчиком. Использование CI-сервера для проверки качества кода, запуска тестов и даже развертывания является довольно распространенной практикой, превращая его в один из неотъемлемых инструментов для контроля качества в командах разработчиков. -CI позволяет командам разработчиков перевести каждый коммит кода либо в разряд провальных, либо в разряд вполне жизнеспособных кандидатов на релиз. +CI позволяет командам разработчиков перевести каждый коммит кода либо в разряд провальных, либо в разряд жизнеспособных кандидатов на релиз. ## Связанные термины From d1e20d7db2c48ca885a96d9e498c10e2a8797d81 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 08:56:16 +0300 Subject: [PATCH 029/130] Apply suggestions from code review Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- config.toml | 2 +- content/ru/cloud-native-tech.md | 2 +- content/ru/continuous-delivery.md | 4 ++-- content/ru/continuous-deployment.md | 4 ++-- content/ru/devops.md | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config.toml b/config.toml index 80f6ac14b1..444acb3432 100644 --- a/config.toml +++ b/config.toml @@ -152,7 +152,7 @@ description = "Le projet de Glossaire CNCF Cloud Native a pour objectif de réf [languages.ru] title = "Глоссарий Cloud Native" languageName ="Русский (Russian)" -weight = 11 +weight = 12 [languages.ru.params] description = "Глоссарий Cloud Native — справочник по общим терминам, имеющим отношение к нативным облачным приложениям и технологиям. Разрабатывается фондом CNCF." diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index 43d2ba8057..7d719c896e 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -12,7 +12,7 @@ tags: ["fundamental", "", ""] Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, максимально используя преимущества [облачных вычислений](/cloud-computing/). -Они изначально разрабатываются для максимального использования возможностей облачных вычислений, и примером такого подхода являются контейнеры, сервисные сетки, микросервисы и неизменяемая (immutable) инфраструктура. +Они изначально разрабатываются для максимального использования возможностей облачных вычислений, и примером такого подхода являются контейнеры, сервис-меши, микросервисы и неизменяемая (immutable) инфраструктура. ## Проблема diff --git a/content/ru/continuous-delivery.md b/content/ru/continuous-delivery.md index 9fca5b8b78..41147d1739 100644 --- a/content/ru/continuous-delivery.md +++ b/content/ru/continuous-delivery.md @@ -9,7 +9,7 @@ tags: ["methodology", "application", ""] Непрерывная доставка (Continuous Delivery), часто сокращенно называемая CD, — это набор практик, при которых изменения кода автоматически развертываются в приемочное окружение -(или, в случае непрерывного развертывания, в [production](/production/)). +(или, в случае непрерывного развертывания, в production). CD обязательно включает процедуры, обеспечивающие адекватное тестирование программного обеспечения перед развертыванием, и предоставляет возможность отката изменений при необходимости. Непрерывная интеграция (CI) — первый шаг на пути к непрерывной доставке @@ -25,7 +25,7 @@ CD обязательно включает процедуры, обеспечи ## Решение -Стратегии CD реализуют полностью автоматизированный путь к [production](/production/), +Стратегии CD реализуют полностью автоматизированный путь к production, в рамках которого ПО тестируется и развертывается с использованием различных стратегий развертывания, таких как [канареечные](/canary-deployment/) или [сине-зеленые](/blue-green-deployment/) релизы. Это позволяет разработчикам развертывать код с высокой частотой, будучи уверенными в том, что новая ревизия прошла тестирование. diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md index bac9ae2748..470d956736 100644 --- a/content/ru/continuous-deployment.md +++ b/content/ru/continuous-deployment.md @@ -8,7 +8,7 @@ tags: ["application", "methodology", ""] ## Описание Непрерывное развертывание (часто используется аббревиатура CD) развивает идеи [непрерывной доставки](/continuous-delivery/), -позволяя размещать готовое программное обеспечение непосредственно в [production](/production/). +позволяя размещать готовое программное обеспечение непосредственно в production. Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). @@ -16,7 +16,7 @@ CI помогает убедиться, что изменения, внесен ## Проблема Выпуск новых версий программного обеспечения может быть трудоемким и сопряженным с ошибками процессом. -Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в [production](/production/) +Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в production и сократить время, в течение которого инженеры должны оставаться на связи (в т. ч. в нерабочие часы). Традиционные модели развертывания программного обеспечения приводят к тому, что организации попадают в порочный круг, в котором процесс выпуска программного обеспечения не отвечает потребностям организации diff --git a/content/ru/devops.md b/content/ru/devops.md index f2669848aa..9c83d94f35 100644 --- a/content/ru/devops.md +++ b/content/ru/devops.md @@ -8,7 +8,7 @@ tags: ["methodology", "", ""] ## Описание DevOps — это методология, в которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) -до его эксплуатации (**OP**eration**S**) в [production](/production/), отсюда и название DevOps. +до его эксплуатации (**OP**eration**S**) в production, отсюда и название DevOps. Она выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. DevOps предполагает наличие групп инженеров, которые работают над небольшими компонентами-частями (а не над целой функцией), что позволяет сократить количество передачи информации между разными людьми, что является распространенным источником ошибок. From c92aa2e92448e19fd795a185bbd7e3b3014707aa Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:09:44 +0300 Subject: [PATCH 030/130] Update config.toml Co-authored-by: Seokho Son Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.toml b/config.toml index 444acb3432..52d85e24ea 100644 --- a/config.toml +++ b/config.toml @@ -152,6 +152,7 @@ description = "Le projet de Glossaire CNCF Cloud Native a pour objectif de réf [languages.ru] title = "Глоссарий Cloud Native" languageName ="Русский (Russian)" +contentDir = "content/ru" weight = 12 [languages.ru.params] description = "Глоссарий Cloud Native — справочник по общим терминам, имеющим отношение к нативным облачным приложениям и технологиям. Разрабатывается фондом CNCF." From f4f6c7623bbfcc1020529b605f1afe7ea1d116ee Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 11:48:50 +0300 Subject: [PATCH 031/130] Apply suggestions from code review Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: lis --- content/ru/cloud-native-apps.md | 2 +- content/ru/cloud-native-tech.md | 2 +- content/ru/continuous-deployment.md | 2 +- content/ru/continuous-integration.md | 2 +- content/ru/style-guide /_index.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index 14399dd5d5..f4199def5f 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -Нативные облачные приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). +Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). Эти приложения легко интегрируются с соответствующими облачными архитектурами, пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index 7d719c896e..d2b137f4b2 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -7,7 +7,7 @@ tags: ["fundamental", "", ""] ## Описание -Нативные облачные технологии, также называемые нативным облачным стеком, — +Нативные облачные (cloud native) технологии, также называемые нативным облачным стеком, — это технологии, используемые для создания [нативных облачных приложений](/cloud-native-apps/). Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md index 470d956736..84d5521069 100644 --- a/content/ru/continuous-deployment.md +++ b/content/ru/continuous-deployment.md @@ -7,7 +7,7 @@ tags: ["application", "methodology", ""] ## Описание -Непрерывное развертывание (часто используется аббревиатура CD) развивает идеи [непрерывной доставки](/continuous-delivery/), +Непрерывное развертывание (Continuous Deployment, CD) развивает идеи [непрерывной доставки](/continuous-delivery/), позволяя размещать готовое программное обеспечение непосредственно в production. Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, diff --git a/content/ru/continuous-integration.md b/content/ru/continuous-integration.md index fc6ffb6f62..e0fc66fe28 100644 --- a/content/ru/continuous-integration.md +++ b/content/ru/continuous-integration.md @@ -7,7 +7,7 @@ tags: ["application", "methodology", ""] ## Описание -Непрерывная интеграция (CI) — это практика, при которой правки принимаются в код с максимальной возможной регулярностью. +Непрерывная интеграция (Continuous Integration, CI) — это практика, при которой правки принимаются в код с максимальной возможной регулярностью. CI является предварительным условием для [непрерывной доставки](/continuous-delivery/) (CD). Процесс CI традиционно начинается с внесения правок в код в системе контроля исходного кода (Git, Mercurial или Subversion) и заканчивается получением протестированного артефакта, готового к использованию CD-системой. diff --git a/content/ru/style-guide /_index.md b/content/ru/style-guide /_index.md index f5469853ad..4fcb48b2a9 100644 --- a/content/ru/style-guide /_index.md +++ b/content/ru/style-guide /_index.md @@ -30,7 +30,7 @@ menu: ## Минимальное жизнеспособное определение -Мы стремимся к тому, чтобы любой человек мог легко разобраться в нативных облачных терминах. +Мы стремимся к тому, чтобы любой человек мог легко разобраться в нативных облачных (cloud native) терминах. Поэтому уделяем особое внимание простоте. Используйте доступный язык с примерами, понятными каждому, кто использует технологию, одновременно сопровождая его *минимальным необходимым набором технических подробностей*. Не стоит экономить на контексте и примерах — в конце концов, они помогают читателю разобраться в той или иной концепции, — но если технические подробности не нужны для понимания, их лучше опустить. From 60b43f00fe22cec04d7a63858cfc6f48affacf93 Mon Sep 17 00:00:00 2001 From: lis Date: Tue, 10 Oct 2023 11:51:40 +0300 Subject: [PATCH 032/130] Deleted space in style-guide dir name Changes to be committed: renamed: content/ru/style-guide /_index.md -> content/ru/style-guide/_index.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: lis --- content/ru/{style-guide => style-guide}/_index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename content/ru/{style-guide => style-guide}/_index.md (100%) diff --git a/content/ru/style-guide /_index.md b/content/ru/style-guide/_index.md similarity index 100% rename from content/ru/style-guide /_index.md rename to content/ru/style-guide/_index.md From f788c8900f2caaa6e73a5d99c7297aa07999b413 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 12:26:50 +0300 Subject: [PATCH 033/130] Add ru prefix to links where needed fix common term for service mesh Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: lis --- content/ru/_index.md | 4 ++-- content/ru/cloud-native-apps.md | 2 +- content/ru/cloud-native-tech.md | 2 +- content/ru/container-orchestration.md | 4 ++-- content/ru/continuous-delivery.md | 4 ++-- content/ru/continuous-deployment.md | 8 ++++---- content/ru/continuous-integration.md | 6 +++--- content/ru/contribute/_index.md | 8 ++++---- content/ru/devsecops.md | 4 ++-- content/ru/kubernetes.md | 2 +- content/ru/style-guide/_index.md | 8 ++++---- 11 files changed, 26 insertions(+), 26 deletions(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index 34a0e8780d..5b0bf77d99 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -19,8 +19,8 @@ status: Completed Приветствуется любое участие при условии, что оно соответствует целям и уставу проекта. Все желающие могут открыть Issue на GitHub или создать Pull Request. -Для этого необходимо предварительно ознакомиться с документом [Как внести свой вклад](/contribute/) и присоединиться к каналу [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack. -Кроме того, важно убедиться, что предлагаемые правки соответствуют [Руководству по стилю](/style-guide/). +Для этого необходимо предварительно ознакомиться с документом [Как внести свой вклад](/ru/contribute/) и присоединиться к каналу [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack. +Кроме того, важно убедиться, что предлагаемые правки соответствуют [Руководству по стилю](/ru/style-guide/). Для тех, кто хочет помочь перевести глоссарий на родной язык, существует канал [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) (для русского языка — [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX)). ## Благодарности diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index f4199def5f..e4c0957002 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). +Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/ru/cloud-computing/). Эти приложения легко интегрируются с соответствующими облачными архитектурами, пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index d2b137f4b2..7fc7d2d7d9 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -8,7 +8,7 @@ tags: ["fundamental", "", ""] ## Описание Нативные облачные (cloud native) технологии, также называемые нативным облачным стеком, — -это технологии, используемые для создания [нативных облачных приложений](/cloud-native-apps/). +это технологии, используемые для создания [нативных облачных приложений](/ru/cloud-native-apps/). Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, максимально используя преимущества [облачных вычислений](/cloud-computing/). diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md index 3079364ac0..c83d5931b5 100644 --- a/content/ru/container-orchestration.md +++ b/content/ru/container-orchestration.md @@ -6,8 +6,8 @@ category: Concept ## Описание -Под оркестрацией [контейнеров](/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управление им. -Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. +Под оркестрацией [контейнеров](/ru/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управление им. +Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/ru/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. Оркестрация — это метафора: инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (музыкант) делал то, что должен. diff --git a/content/ru/continuous-delivery.md b/content/ru/continuous-delivery.md index 41147d1739..7f2f360a08 100644 --- a/content/ru/continuous-delivery.md +++ b/content/ru/continuous-delivery.md @@ -34,5 +34,5 @@ CD обязательно включает процедуры, обеспечи ## Связанные термины -* [Непрерывная интеграция](/continuous-integration/) -* [Непрерывное развертывание](/continuous-deployment/) +* [Непрерывная интеграция](/ru/continuous-integration/) +* [Непрерывное развертывание](/ru/continuous-deployment/) diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md index 84d5521069..958bca7d78 100644 --- a/content/ru/continuous-deployment.md +++ b/content/ru/continuous-deployment.md @@ -7,9 +7,9 @@ tags: ["application", "methodology", ""] ## Описание -Непрерывное развертывание (Continuous Deployment, CD) развивает идеи [непрерывной доставки](/continuous-delivery/), +Непрерывное развертывание (Continuous Deployment, CD) развивает идеи [непрерывной доставки](/ru/continuous-delivery/), позволяя размещать готовое программное обеспечение непосредственно в production. -Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. +Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/ru/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). @@ -31,5 +31,5 @@ CD делает для команд эксплуатации то же само ## Связанные термины -* [Непрерывная интеграция](/continuous-integration/) -* [Непрерывная доставка](/continuous-delivery/) +* [Непрерывная интеграция](/ru/continuous-integration/) +* [Непрерывная доставка](/ru/continuous-delivery/) diff --git a/content/ru/continuous-integration.md b/content/ru/continuous-integration.md index e0fc66fe28..20a556c2c9 100644 --- a/content/ru/continuous-integration.md +++ b/content/ru/continuous-integration.md @@ -8,7 +8,7 @@ tags: ["application", "methodology", ""] ## Описание Непрерывная интеграция (Continuous Integration, CI) — это практика, при которой правки принимаются в код с максимальной возможной регулярностью. -CI является предварительным условием для [непрерывной доставки](/continuous-delivery/) (CD). +CI является предварительным условием для [непрерывной доставки](/ru/continuous-delivery/) (CD). Процесс CI традиционно начинается с внесения правок в код в системе контроля исходного кода (Git, Mercurial или Subversion) и заканчивается получением протестированного артефакта, готового к использованию CD-системой. @@ -30,5 +30,5 @@ CI позволяет командам разработчиков перевес ## Связанные термины -* [Непрерывная доставка](/continuous-delivery/) -* [Непрерывное развертывание](/continuous-deployment/) +* [Непрерывная доставка](/ru/continuous-delivery/) +* [Непрерывное развертывание](/ru/continuous-deployment/) diff --git a/content/ru/contribute/_index.md b/content/ru/contribute/_index.md index 7337c8a35b..ea2e7774dd 100644 --- a/content/ru/contribute/_index.md +++ b/content/ru/contribute/_index.md @@ -57,7 +57,7 @@ menu: ## Руководство по стилю -[Руководство по стилю](/style-guide/) содержит требования к форматированию и содержанию документов, а также советы о том, как повысить эффективность работы. +[Руководство по стилю](/ru/style-guide/) содержит требования к форматированию и содержанию документов, а также советы о том, как повысить эффективность работы. ## Присоединяйтесь к сообществу Глоссария! {#join-the-glossary-community} @@ -133,7 +133,7 @@ menu: ### Отправка нового термина (создаем PR) {#submitting-a-new-term} -Как указано в [Руководстве по стилю](/style-guide/), настоятельно рекомендуется начинать с документа в Google или в Word. +Как указано в [Руководстве по стилю](/ru/style-guide/), настоятельно рекомендуется начинать с документа в Google или в Word. Когда термин будет готов к отправке, перейдите в директорию content (на вкладке <>code)… @@ -198,13 +198,13 @@ menu: ![Редактировать страницу](/images/how-to/howto-16.png) Откроется страница термина на GitHub'е. Внесите свои правки и создайте PR. -Обратитесь к разделу [Лучшие практики](#best-practices) выше и ознакомьтесь с [Руководством по стилю](/style-guide/), чтобы убедиться, что следуете рекомендациям. +Обратитесь к разделу [Лучшие практики](#best-practices) выше и ознакомьтесь с [Руководством по стилю](/ru/style-guide/), чтобы убедиться, что следуете рекомендациям. ## Помощь в локализации глоссария {#help-localize-the-glossary} Чтобы помочь в локализации глоссария на целевой язык, присоединитесь к каналу [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) в рабочем пространстве CNCF в Slack'е и дайте нам знать. Можно войти в существующую команду или создать новую (чтобы узнать, что для этого нужно, прочитайте [Руководство по локализации](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)). -Пожалуйста, ознакомьтесь с руководством [Как внести свой вклад](/contribute/) на целевом языке, чтобы узнать об особенностях работы соответствующей команды. +Пожалуйста, ознакомьтесь с руководством [Как внести свой вклад](/ru/contribute/) на целевом языке, чтобы узнать об особенностях работы соответствующей команды. ## Проверка орфографии {#spell-check} diff --git a/content/ru/devsecops.md b/content/ru/devsecops.md index 60681dbaec..780171d909 100644 --- a/content/ru/devsecops.md +++ b/content/ru/devsecops.md @@ -8,13 +8,13 @@ tags: ["methodology", "security", ""] ## Описание Термин DevSecOps означает культурное слияние компетенций в области разработки (**DEV**elopment), безопасности (**SEC**urity) и эксплуатации (**OP**eration**S**). -Он дополняет подход [DevOps](/devops/) приоритетами в области безопасности +Он дополняет подход [DevOps](/ru/devops/) приоритетами в области безопасности с минимальным влиянием на процесс разработки и эксплуатации. Как и DevOps, DevSecOps — это культурный сдвиг, подталкиваемый новыми технологиями и уникальными методами их внедрения. ## Проблема -Практики DevOps включают [непрерывную интеграцию](/continuous-integration/) и [непрерывное развертывание](/continuous-deployment/) +Практики DevOps включают [непрерывную интеграцию](/ru/continuous-integration/) и [непрерывное развертывание](/ru/continuous-deployment/) и ускоряют циклы разработки и выпуска приложений. К сожалению, автоматизация релизов, не учитывающая интересы всех заинтересованных сторон в организации, может усугубить существующие проблемы. Быстрый выпуск нового программного обеспечения без учета требований безопасности может негативно сказаться на компании. diff --git a/content/ru/kubernetes.md b/content/ru/kubernetes.md index 6d3080ed66..8c9401bb2f 100644 --- a/content/ru/kubernetes.md +++ b/content/ru/kubernetes.md @@ -10,7 +10,7 @@ tags: ["infrastructure", "fundamental", ""] Kubernetes (часто используют его сокращенное название K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. Она автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая "операционной системой" на уровне центров обработки данных для управления приложениями в [распределенных системах](/distributed-systems/). -Kubernetes планирует (т. е. распределяет) [контейнеры](/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их различными инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. +Kubernetes планирует (т. е. распределяет) [контейнеры](/ru/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их различными инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. Kubernetes обеспечивает автоматизацию и расширяемость, позволяя пользователям развертывать приложения декларативным (см. ниже) и воспроизводимым образом. [API](/application-programming-interface/), встроенный в Kubernetes, позволяет опытным пользователям расширять и дополнять его возможности в соответствии со своими потребностями. diff --git a/content/ru/style-guide/_index.md b/content/ru/style-guide/_index.md index 4fcb48b2a9..36f3d33027 100644 --- a/content/ru/style-guide/_index.md +++ b/content/ru/style-guide/_index.md @@ -116,7 +116,7 @@ tags: ["tag 1", "tag 2", ""] --- ``` -### Определение +### Определение {#definition} #### Три раздела @@ -159,7 +159,7 @@ tags: ["tag 1", "tag 2", ""] Если в определении используются термины из глоссария, **всегда ссылайтесь на них** (добавляйте гиперссылку только в первое упоминание). -**Пример**: посмотрите на раздел "Описание" в [определении сервисной сетки](/service-mesh/). +**Пример**: посмотрите на раздел "Описание" в [определении сервис-меша](/service-mesh/). В нем приведены ссылки на такие термины, как `микросервис`, `сервис`, `надежность` и `наблюдаемость`. Кроме того, используется реальный пример, проводящий параллель между сетевыми проблемами в среде микросервисов (то, с чем не сталкиваются рядовые пользователи) и проблемами с Wi-Fi-подключением (то, что доступно и понятно любому пользователю ноутбука). По возможности старайтесь приводить подобные примеры. @@ -171,7 +171,7 @@ tags: ["tag 1", "tag 2", ""] Кроме того, обязательно проверьте орфографию перед тем, как открыть PR. Чтобы никто другой случайно не принял PR, пока вы работаете над ним, попросите закрепить Issue за собой (или создайте его при необходимости). -Подробнее об этом — в документе [Как внести свой вклад](/contribute/). +Подробнее об этом — в документе [Как внести свой вклад](/ru/contribute/). Прежде чем приступить к работе, ознакомьтесь с несколькими терминами из глоссария, чтобы получить представление о детализации и сложности описания, @@ -182,7 +182,7 @@ tags: ["tag 1", "tag 2", ""] Обратите внимание, что в настоящее время сопровождением глоссария занимаются всего три человека, которые делают это в свободное от основной работы время. В некоторых случаях определения рассматриваются быстро, в других процесс может занять некоторое время — пожалуйста, наберитесь терпения. Если у вас возникли вопросы, свяжитесь с нами в Slack-канале #glossary или в канале локализации -(о том, где и как их найти, читайте в документе [Как внести свой вклад](/contribute/)). +(о том, где и как их найти, читайте в документе [Как внести свой вклад](/ru/contribute/)). Наша цель — сделать Глоссарий Cloud Native передовым ресурсом. После того, как вы отправите PR, мы можем попросить вас внести в него несколько правок. From 36babc47d57859fb210e243fe5663cb3a7e52bfd Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 12:47:25 +0300 Subject: [PATCH 034/130] Minor fixes - suggestions from code review Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: lis --- content/ru/cloud-native-apps.md | 2 +- content/ru/contribute/_index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index e4c0957002..f4199def5f 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -7,7 +7,7 @@ tags: ["application", "fundamental", ""] ## Описание -Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/ru/cloud-computing/). +Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). Эти приложения легко интегрируются с соответствующими облачными архитектурами, пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. diff --git a/content/ru/contribute/_index.md b/content/ru/contribute/_index.md index ea2e7774dd..426aef5787 100644 --- a/content/ru/contribute/_index.md +++ b/content/ru/contribute/_index.md @@ -14,7 +14,7 @@ menu: 1) [Поработать над существующим Issue](#work-on-an-existing-issue) 2) [Предложить новое определение](#propose-new-terms) -3) [Дополнить существующее](#update-an-existing-term) +3) [Дополнить существующее определение](#update-an-existing-term) 4) [Локализовать глоссарий](#help-localize-the-glossary) ## Общие сведения о глоссарии CNCF From d9bbd73f74b250f8db2e357f4de4fc5afef9e69d Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:06:40 +0300 Subject: [PATCH 035/130] Update content/ru/_index.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index 5b0bf77d99..bc27d9cf8c 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -36,12 +36,12 @@ status: Completed Полный список участников проекта можно найти на [этой странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. Хранителями глоссария являются: -[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), -[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), -[Nate W.](https://www.linkedin.com/in/nate-double-u/), -и [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). +- [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/); +- [Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/); +- [Nate W.](https://www.linkedin.com/in/nate-double-u/); +- [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). -[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/) и [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) являются Почетными Хранителями, и мы глубоко признательны за их неоценимый вклад в развитие проекта на протяжении многих лет. From a83e5b0e241a1a87419bc4fe1b73a01dedd2e28a Mon Sep 17 00:00:00 2001 From: Felipe Moura Madureira Date: Sun, 3 Dec 2023 16:31:45 -0300 Subject: [PATCH 036/130] [pt] Remove the "What it is" header (#2668) Signed-off-by: madfelps --- content/pt-br/agile-software-development.md | 2 -- content/pt-br/api-gateway.md | 2 -- content/pt-br/application-programming-interface.md | 2 -- content/pt-br/bare-metal-machine.md | 2 -- content/pt-br/blue-green-deployment.md | 2 -- content/pt-br/canary-deployment.md | 2 -- content/pt-br/client-server-architecture.md | 2 -- content/pt-br/cloud-computing.md | 1 - content/pt-br/cloud-native-apps.md | 2 -- content/pt-br/cloud-native-security.md | 2 -- content/pt-br/cloud-native-tech.md | 2 -- content/pt-br/cluster.md | 2 -- content/pt-br/container.md | 2 -- content/pt-br/containerization.md | 2 -- content/pt-br/continuous-delivery.md | 2 -- content/pt-br/continuous-deployment.md | 2 -- content/pt-br/continuous-integration.md | 2 -- content/pt-br/data-center.md | 2 -- content/pt-br/debugging.md | 2 -- content/pt-br/devops.md | 2 -- content/pt-br/devsecops.md | 2 -- content/pt-br/distributed-apps.md | 2 -- content/pt-br/distributed-systems.md | 2 -- content/pt-br/event-driven-architecture.md | 2 -- content/pt-br/event-streaming.md | 2 -- content/pt-br/firewall.md | 2 -- content/pt-br/function-as-a-service.md | 2 -- content/pt-br/infrastructure-as-a-service.md | 2 -- content/pt-br/infrastructure-as-code.md | 2 -- content/pt-br/kubernetes.md | 2 -- content/pt-br/microservices.md | 2 -- content/pt-br/monolithic-apps.md | 2 -- content/pt-br/nodes.md | 2 -- content/pt-br/observability.md | 2 -- content/pt-br/platform-as-a-service.md | 2 -- content/pt-br/serverless.md | 2 -- content/pt-br/shift-left.md | 2 -- content/pt-br/site-reliability-engineering.md | 2 -- content/pt-br/software-as-a-service.md | 2 -- content/pt-br/stateful-apps.md | 2 -- content/pt-br/stateless-apps.md | 2 -- content/pt-br/style-guide/_index.md | 1 - content/pt-br/transport-layer-security.md | 2 -- content/pt-br/version-control.md | 2 -- content/pt-br/vertical-scaling.md | 2 -- content/pt-br/virtual-machine.md | 2 -- content/pt-br/virtualization.md | 2 -- content/pt-br/zero-trust-architecture.md | 2 -- 48 files changed, 94 deletions(-) diff --git a/content/pt-br/agile-software-development.md b/content/pt-br/agile-software-development.md index 20b2fba19c..5576bd1da4 100644 --- a/content/pt-br/agile-software-development.md +++ b/content/pt-br/agile-software-development.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "", ""] --- -## O que é - Um conjunto de práticas que enfatizam ciclos de desenvolvimento iterativo e equipes auto-organizadas. Em contraste com projetos do tipo cascata, onde o valor é gerado apenas no final de um projeto, o desenvolvimento ágil de software se concentra em uma entrega incremental e contínua de valor e na melhoria evolutiva do próprio processo. ## Problema relacionado diff --git a/content/pt-br/api-gateway.md b/content/pt-br/api-gateway.md index 39461ee6ca..1025e0d52f 100644 --- a/content/pt-br/api-gateway.md +++ b/content/pt-br/api-gateway.md @@ -5,8 +5,6 @@ category: conceito tags: ["redes", "", ""] --- -## O que é - Um gateway de [API](/pt-br/application-programming-interface/) é uma ferramenta que agrega aplicações APIs exclusivas, tornando-as todas disponíveis em um só lugar. Ele permite que as organizações movam funções importantes, como autenticação e autorização ou limitação do número de solicitações entre aplicativos, para um local com gerenciamento centralizado. Um gateway de API funciona como uma interface comum para consumidores de API (geralmente externos). ## Problema relacionado diff --git a/content/pt-br/application-programming-interface.md b/content/pt-br/application-programming-interface.md index c931469757..23c368521a 100644 --- a/content/pt-br/application-programming-interface.md +++ b/content/pt-br/application-programming-interface.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["arquitetura", "fundamento", ""] --- -## O que é - Uma API (interface de programação de aplicações - do inglês: applications protocol interface) é um modo como programas de computador interagem uns com os outros. Assim como humanos interagem com um site através de uma página web, uma API permite que programas de computador interajam uns com os outros. Ao contrário das interações humanas, as APIs possuem limitações sobre o que pode e o que não pode ser solicitado a elas. Essa interação limitada ajuda a criar uma comunicação estável e funcional entre programas. ## Problema relacionado diff --git a/content/pt-br/bare-metal-machine.md b/content/pt-br/bare-metal-machine.md index a5db620aae..5ec52bb3b7 100644 --- a/content/pt-br/bare-metal-machine.md +++ b/content/pt-br/bare-metal-machine.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["infraestrutura", "", ""] --- -## O que é - Bare metal refere-se a um computador físico, mais especificamente um servidor, que tem um, e apenas um sistema operacional. A distinção é importante na computação moderna porque muitos, se não a maioria, servidores são [máquinas virtuais](/virtual-machine/). Um servidor físico geralmente é um computador com grande capacidade e com hardware embutido. Instalar um sistema operacional e executar aplicativos diretamente nesse hardware físico, sem [virtualização](/virtualization/), é conhecido como executar em “bare metal”. ## Problema relacionado diff --git a/content/pt-br/blue-green-deployment.md b/content/pt-br/blue-green-deployment.md index 92ab741946..972cb63888 100644 --- a/content/pt-br/blue-green-deployment.md +++ b/content/pt-br/blue-green-deployment.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "aplicação", ""] --- -## O que é - O Blue-green deployment é uma estratégia para atualizar os sistemas de computador em execução com o mínimo de tempo de indisponibilidade. O operador mantém dois ambientes, chamados "blue" e "green". Um atende ao tráfego de produção (a versão que os usuários estão usando atualmente), enquanto o outro é atualizado. Depois que o teste é concluído no ambiente inativo (green), o tráfego de produção é redirecionado (geralmente com o uso de um baleanceador de carga - load balancer). Observe que blue-green deployment geralmente significa alternar os ambientes por completo, abrangendo muitos serviços, todos de uma vez. Confusamente, às vezes o termo é usado em relação a serviços individuais em um sistema. Para evitar essa ambiguidade, o termo "zero-downtime deployment" é preferido quando se refere a componentes individuais. diff --git a/content/pt-br/canary-deployment.md b/content/pt-br/canary-deployment.md index b8719cc0b9..d6e7326855 100644 --- a/content/pt-br/canary-deployment.md +++ b/content/pt-br/canary-deployment.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "aplicação", ""] --- -## O que é - Implantação Canário é uma estratégia de implantação que começa com dois ambientes: um com tráfego e outro contendo o código atualizado sem tráfego. O tráfego é gradualmente movido da versão original do aplicativo para a versão atualizada. Pode começar movendo 1% do tráfego, depois 10%, 25% e assim por diante, até que tudo esteja passando pela versão atualizada. As organizações podem testar a nova versão do software em produção, obter feedback, diagnosticar erros e reverter rapidamente para a versão estável, se necessário. O termo "canário" refere-se à prática do "canário em uma mina de carvão", onde aves canárias foram levadas para minas de carvão para manter os mineiros seguros. Se gases nocivos inodoros estivessem presentes, o pássaro morreria e os mineiros sabiam que tinham que evacuar rapidamente. Da mesma forma, se algo der errado com o código atualizado, o tráfego será "evacuado" de volta à versão original. diff --git a/content/pt-br/client-server-architecture.md b/content/pt-br/client-server-architecture.md index fb210b4c20..104fde0c35 100644 --- a/content/pt-br/client-server-architecture.md +++ b/content/pt-br/client-server-architecture.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "fundamento", ""] --- -## O que é - Em uma arquitetura cliente-servidor (client-server), a lógica (ou código) que compõe uma aplicação é dividida entre dois ou mais componentes: O Cliente, que solicita uma função a ser executada (por exemplo, o site do Gmail sendo executado no seu navegador) e um ou mais servidores que atendam essa requisição (por exemplo, o serviço "enviar-email" executado nos computadores do Google na nuvem). Neste exemplo, os e-mails que você escreve são enviandos pelo cliente (aplicação web sendo executada no seu navegador) para o servidor (computadores do Gmail, que encaminham seus e-mails para os destinatários). Isso contrasta com aplicativos independentes (como aplicativos de desktop) que fazem todo o trabalho em um só lugar. Por exemplo, um programa de processamento de texto como o Microsoft Word pode ser instalado e executado inteiramente em seu computador. diff --git a/content/pt-br/cloud-computing.md b/content/pt-br/cloud-computing.md index e35ef8d78a..d2f31411c9 100644 --- a/content/pt-br/cloud-computing.md +++ b/content/pt-br/cloud-computing.md @@ -5,7 +5,6 @@ category: conceito tags: ["infraestrutura", "fundamento", ""] --- -## O que é Computação em nuvem é um modelo que oferece recursos computacionais, como CPU, rede e disco, sob demanda através da internet. A computação em nuvem permite que usuários acessem e usem poder computacional a partir de um local físico remoto. Provedores de nuvem, como AWS, GCP, Azure, Digital Ocean e outros, oferecem a terceiros a capacidade de alugar acesso a recursos computacionais em múltiplas localizações geográficas. ## Problema relacionado diff --git a/content/pt-br/cloud-native-apps.md b/content/pt-br/cloud-native-apps.md index b736317ab8..c1c2223e7d 100644 --- a/content/pt-br/cloud-native-apps.md +++ b/content/pt-br/cloud-native-apps.md @@ -5,8 +5,6 @@ category: conceito tags: ["aplicação", "fundamento", ""] --- -## O que é - As aplicações nativas em nuvem são projetadas especificamente para aproveitar as inovações em [computação em nuvem](/pt-br/cloud-computing/). Essas aplicações se integram facilmente às suas respectivas arquiteturas de nuvem, aproveitando, assim, os recursos e o [dimensionamento](/scalability/) da nuvem. Também se refere a aplicativos que aproveitam as inovações da infraestrutura impulsionadas pela computação em nuvem. Hoje, as aplicações nativas em nuvem incluem aplicativos que são executados tanto em datacenter de um provedor de nuvem pública, quanto em plataformas de nuvens privadas. ## Problema relacionado diff --git a/content/pt-br/cloud-native-security.md b/content/pt-br/cloud-native-security.md index 80d1f180a8..7bef2fa710 100644 --- a/content/pt-br/cloud-native-security.md +++ b/content/pt-br/cloud-native-security.md @@ -5,8 +5,6 @@ category: conceito tags: ["segurança", "", ""] --- -## O que é - A segurança nativa da nuvem é uma abordagem que transforma a segurança em [aplicações nativas em nuvem](/pt-br/cloud-native-apps/). Isso garante que a segurança faça parte de todo o ciclo de vida do aplicativo, desde o desenvolvimento até a produção. A segurança nativa da nuvem busca garantir os mesmos padrões que os modelos de segurança tradicionais, enquanto se adapta aos detalhes dos ambientes nativos da nuvem, ou seja, mudanças rápidas de código e infraestrutura altamente efêmera. A segurança nativa da nuvem está altamente relacionada à prática chamada [DevSecOps](/devsecops/). ## Problema relacionado diff --git a/content/pt-br/cloud-native-tech.md b/content/pt-br/cloud-native-tech.md index 064edfa49d..71c1367b55 100644 --- a/content/pt-br/cloud-native-tech.md +++ b/content/pt-br/cloud-native-tech.md @@ -5,8 +5,6 @@ category: conceito tags: ["fundamento", "", ""] --- -## O que é - As tecnologias nativas da nuvem, também conhecidas como a *stack* nativa da nuvem, são as tecnologias usadas para criar [aplicativos nativos da nuvem](/pt-br/cloud-native-apps/). Essas tecnologias permitem que as organizações criem e executem aplicações escaláveis em ambientes modernos e dinâmicos, tais como as nuvens públicas, privadas e híbridas, ao mesmo tempo em que aproveitam ao máximo os benefícios da [computação em nuvem](/pt-br/cloud-computing/). Eles são projetados desde o início para explorar os recursos de computação em nuvem e contêineres, serviços em malha, microsserviços e infraestrutura imutável exemplificam essa abordagem. ## Problema relacionado diff --git a/content/pt-br/cluster.md b/content/pt-br/cluster.md index 37b67c8a40..e48d2c4b92 100644 --- a/content/pt-br/cluster.md +++ b/content/pt-br/cluster.md @@ -5,8 +5,6 @@ category: conceito tags: ["infraestrutura", "fundamento", ""] --- -## O que é - Um cluster é um grupo de máquinas ou aplicações que trabalham juntos para um objetivo comum. No contexto da computação nativa em nuvem, o termo é mais frequentemente aplicado ao Kubernetes. Um cluster Kubernetes é um conjunto de serviços (ou cargas de trabalho) executados em seus próprios contêineres, geralmente em máquinas diferentes. O conjunto de todos esses serviços [contêinerizados](/pt-br/containerization/), conectados em uma rede, representam um cluster. ## Problema relacionado diff --git a/content/pt-br/container.md b/content/pt-br/container.md index 0022db3387..3f85ebd715 100644 --- a/content/pt-br/container.md +++ b/content/pt-br/container.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["aplicação", "fundamento", ""] --- -## O que é - Um contêiner é um processo em execução com restrições de recursos e capacidade gerenciadas pelo sistema operacional. Os arquivos disponíveis para o processo de contêiner são empacotados como uma imagem de contêiner. Os contêineres são executados um ao lado do outro na mesma máquina, mas normalmente o sistema operacional impede que os processos de contêiner separados interajam entre si. ## Problema relacionado diff --git a/content/pt-br/containerization.md b/content/pt-br/containerization.md index 3f67bf45bf..a24b1d7a43 100644 --- a/content/pt-br/containerization.md +++ b/content/pt-br/containerization.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["aplicação", "", ""] --- -## O que é - A conteinerização é o processo de agrupar uma aplicação e suas dependências em uma imagem de contêiner. O processo de criação do contêiner requer adesão ao padrão [Open Container Initiative](https://opencontainers.org) (OCI). Desde que a saída seja uma imagem de contêiner que atenda a esse padrão, a ferramenta de conteinerização usada não importa. ## Problema relacionado diff --git a/content/pt-br/continuous-delivery.md b/content/pt-br/continuous-delivery.md index a0df9395f2..68641127d1 100644 --- a/content/pt-br/continuous-delivery.md +++ b/content/pt-br/continuous-delivery.md @@ -5,8 +5,6 @@ category: conceito tags: [metodologia", "aplicação", ""] --- -## O que é - A entrega contínua, muitas vezes conhecida como CD, é um conjunto de práticas nas quais as alterações de código são implantadas automaticamente em um ambiente de aceitação (ou, no caso de implantação contínua, na produção). A entrega contínua inclui procedimentos cruciais para garantir que o software seja testado adequadamente antes da implantação e fornecer uma maneira de reverter as alterações, se necessário. A integração contínua (CI) é o primeiro passo para a entrega contínua (ou seja, as alterações precisam se fundir de forma limpa antes de serem testadas e implantadas). ## Problema relacionado diff --git a/content/pt-br/continuous-deployment.md b/content/pt-br/continuous-deployment.md index cec0ebfb24..187666e6b5 100644 --- a/content/pt-br/continuous-deployment.md +++ b/content/pt-br/continuous-deployment.md @@ -5,8 +5,6 @@ category: conceito tags: ["aplicação", "metodologia", ""] --- -## O que é - Implantação contínua (continuous deployment - CD), vai um passo além da entrega contínua ao implantar o software finalizado diretamente na produção. A implantação contínua anda de mãos dadas com a [entrega contínua](/pt-br/continuous-delivery/) e é frequentemente referida como _CI/CD_. O processo de CI testa se as alterações feitas em um determinado aplicativo são válidas, e o processo de CD implanta automaticamente as mudanças de código através dos ambientes de uma organização, desde teste até a produção. ## Problema relacionado diff --git a/content/pt-br/continuous-integration.md b/content/pt-br/continuous-integration.md index 4b56ac2c8a..6e05490e63 100644 --- a/content/pt-br/continuous-integration.md +++ b/content/pt-br/continuous-integration.md @@ -5,8 +5,6 @@ category: conceito tags: ["aplicação", "metodologia", ""] --- -## O que é - A integração contínua (continuous integration - CI), é a prática de integrar mudanças de código da maneira mais regular possível. A integração contínua é um pré-requisito para a [entrega contínua](/pt-br/continuous-delivery/). Tradicionalmente, o processo de integração contínua começa quando as alterações do código são confirmadas em um sistema de controle de código-fonte (Git, Mercurial ou Subversion) e termina com o artefato testado e pronto para ser consumido por um sistema de entrega contínua. ## Problema relacionado diff --git a/content/pt-br/data-center.md b/content/pt-br/data-center.md index c25916748a..1e1cbc1a6d 100644 --- a/content/pt-br/data-center.md +++ b/content/pt-br/data-center.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["infraestrutura", "", ""] --- -## O que é - Um *data center* é um edifício ou uma instalação especializada e projetada especificamente para abrigar computadores, na maioria das vezes servidores. Os *data centers* tendem a ser conectados a linhas dedicadas de internet de alta velocidade, especialmente no caso de *data centers* focados em [computação em nuvem](/pt-br/cloud-computing/). Os *data centers* também possuem equipamentos para manter o serviço em caso de eventos inesperados, como geradores para fornecer energia durante interrupções, bem como um poderoso ar-condicionado para lidar com o calor residual produzido pelos computadores. ## Problema relacionado diff --git a/content/pt-br/debugging.md b/content/pt-br/debugging.md index 94154fb178..5389f5c82b 100644 --- a/content/pt-br/debugging.md +++ b/content/pt-br/debugging.md @@ -5,8 +5,6 @@ category: conceito tags: ["aplicação", "metodologia", ""] --- -## O que é - Debugging é o processo ou atividade de encontrar e resolver bugs (ou erros) de programas de computador, software ou sistemas para obter o resultado desejado. Um bug é um defeito ou um problema que leva a resultados incorretos ou inesperados. diff --git a/content/pt-br/devops.md b/content/pt-br/devops.md index 0e913e144a..cb00ae1fab 100644 --- a/content/pt-br/devops.md +++ b/content/pt-br/devops.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "", ""] --- -## O que é - DevOps é uma metodologia em que times são responsáveis por todo o processo desde o desenvolvimento da aplicação até a operação em produção, por isso o nome DevOps (Dev e Ops). Esta metodologia vai além da implementação de um conjunto de tecnologias, requer uma mudança profunda na cultura e nos processos. Além disso, DevOps orienta que o trabalho dos times seja focado em pequenos componentes (ao invés de uma funcionalidade completa), diminuindo as tranferências de responsabilidade ( _handoffs_ ), que são uma fonte comum de erros. diff --git a/content/pt-br/devsecops.md b/content/pt-br/devsecops.md index d462367c11..f9eef28ee4 100644 --- a/content/pt-br/devsecops.md +++ b/content/pt-br/devsecops.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "segurança", ""] --- -## O que é - O termo DevSecOps refere-se a uma fusão cultural das responsabilidades de desenvolvimento, operação e de segurança. Ele estende a abordagem [DevOps](/pt-br/devops/) para incluir prioridades de segurança com interrupção mínima ou nenhuma no fluxo de trabalho operacional e do desenvolvedor. Assim como o DevOps, o DevSecOps é uma mudança cultural, impulsionada pelas tecnologias adotadas, com métodos de adoção exclusivos. diff --git a/content/pt-br/distributed-apps.md b/content/pt-br/distributed-apps.md index 7d1504a4bf..c109881c7b 100644 --- a/content/pt-br/distributed-apps.md +++ b/content/pt-br/distributed-apps.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "", ""] --- -## O que é - Uma aplicação distribuída é uma aplicação em que a funcionalidade é dividida em várias partes menores independentes. As aplicações distribuídas geralmente são compostas de [microsserviços](/microservices/) individuais que lidam com diferentes preocupações dentro da aplicação mais ampla. diff --git a/content/pt-br/distributed-systems.md b/content/pt-br/distributed-systems.md index 38fb84b1a3..a35af56fd7 100644 --- a/content/pt-br/distributed-systems.md +++ b/content/pt-br/distributed-systems.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "", ""] --- -## O que é - Um sistema distribuído é uma coleção de elementos de computação autônomos conectados por uma rede que aparece para os usuários como um único sistema coerente. Geralmente referidos como [nós](/pt-br/nodes/), esses componentes podem ser dispositivos de hardware (por exemplo, computadores, telefones móveis) ou processos de software. Os nós são programados para alcançar um objetivo comum e, para colaborar, eles trocam mensagens pela rede. ## Problema relacionado diff --git a/content/pt-br/event-driven-architecture.md b/content/pt-br/event-driven-architecture.md index 7353efe1da..d05c8cf117 100644 --- a/content/pt-br/event-driven-architecture.md +++ b/content/pt-br/event-driven-architecture.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "", ""] --- -## O que é - A arquitetura orientada por Eventos é uma arquitetura de software que promove a criação, o processamento, e o consumo de eventos. Um evento é qualquer alteração no estado de uma aplicação ou sistema. Por exemplo, solicitar uma corrida em um aplicativo de transporte representa um evento. diff --git a/content/pt-br/event-streaming.md b/content/pt-br/event-streaming.md index e09b1141ea..80c1348707 100644 --- a/content/pt-br/event-streaming.md +++ b/content/pt-br/event-streaming.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "rede", ""] --- -## O que é - O streaming de eventos é uma abordagem em que o software envia dados de eventos de uma aplicação para outra para comunicar continuamente o que eles estão fazendo. Imagine um serviço transmitindo tudo o que faz para todos os outros serviços. Cada atividade realizada por um serviço é referida como um evento, portanto, streaming de evento. diff --git a/content/pt-br/firewall.md b/content/pt-br/firewall.md index e03dd0f300..2788f5d0f3 100644 --- a/content/pt-br/firewall.md +++ b/content/pt-br/firewall.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["descontinuado", "", ""] --- -## O que é - Um firewall é um sistema que filtra o tráfego de rede com base em regras especificadas. Firewalls podem ser hardware, software ou uma combinação dos dois. ## Problema relacionado diff --git a/content/pt-br/function-as-a-service.md b/content/pt-br/function-as-a-service.md index bfa3647336..b2d45c1a18 100644 --- a/content/pt-br/function-as-a-service.md +++ b/content/pt-br/function-as-a-service.md @@ -5,8 +5,6 @@ category: Tecnologia tags: ["infraestrutura", "", ""] --- -## O que é - Função como um Serviço, (FaaS - Function as a Service ), é um tipo de [serviço](/pt-br/service/) de [computação em nuvem](/pt-br/cloud-computing/) [sem servidor](/pt-br/serverless/) que permite a execução de código em resposta a eventos sem manter a complexa infraestrutura normalmente associado à criação e lançamento de aplicações de [microsserviços](/microservices/). Com FaaS, os usuários gerenciam apenas funções e dados enquanto o provedor de nuvem gerencia a aplicação. diff --git a/content/pt-br/infrastructure-as-a-service.md b/content/pt-br/infrastructure-as-a-service.md index 46b1739756..7c2c26aba8 100644 --- a/content/pt-br/infrastructure-as-a-service.md +++ b/content/pt-br/infrastructure-as-a-service.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["infraestrutura", "", ""] --- -## Como é - Infraestrutura como serviço, ou IaaS, é um modelo de serviço de [computação em nuvem](/pt-br/cloud-computing/) que oferece máquinas [físicas](/pt-br/bare-metal-machine/) ou [virtualizadas](/pt-br/virtualization/), armazenamento e recursos de rede sob demanda em um modelo pague conforme o uso. Os provedores de nuvem possuem e operam o hardware e o software, disponíveis para os consumidores em implantações de nuvem pública, privada ou híbrida. diff --git a/content/pt-br/infrastructure-as-code.md b/content/pt-br/infrastructure-as-code.md index 81d56c371b..280e31111b 100644 --- a/content/pt-br/infrastructure-as-code.md +++ b/content/pt-br/infrastructure-as-code.md @@ -5,8 +5,6 @@ category: conceito tags: ["infraestrutura", "metodologia", ""] --- -## O que é - Infraestrutura como código é a prática de armazenar a definição da infraestrutura como um ou mais arquivos. Isso substitui o modelo tradicional em que a infraestrutura como serviço era provisionada manualmente, geralmente por meio de scripts shell ou outras ferramentas de configuração. ## Problema relacionado diff --git a/content/pt-br/kubernetes.md b/content/pt-br/kubernetes.md index 1079e28308..51254ecbd1 100644 --- a/content/pt-br/kubernetes.md +++ b/content/pt-br/kubernetes.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["infraestrutura", "fundamental", ""] --- -## O que é - Kubernetes, normalmente abreviado como K8s, é um orquestrador de contêineres de código aberto. Ele automatiza o ciclo de vida de aplicações em contêineres em infraestruturas modernas, funciona como um "sistema operacional de datacenter" que gerencia aplicativos em um [sistema distribuído](/distributed-systems/). diff --git a/content/pt-br/microservices.md b/content/pt-br/microservices.md index 4aefb95ad1..d7f69152f2 100644 --- a/content/pt-br/microservices.md +++ b/content/pt-br/microservices.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "", ""] --- -## O que é - Os microsserviços têm uma abordagem moderna para o desenvolvimento de aplicações que aproveita as tecnologias nativas da nuvem. Embora as aplicações modernas, como a Netflix, pareçam ser uma única aplicação, elas são na verdade uma coleção de serviços menores - todos trabalhando em colaboração. Por exemplo, uma única página que permite acessar, pesquisar e visualizar vídeos provavelmente é alimentada por serviços menores que lidam com um aspecto (por exemplo, pesquisa, autenticação e execução de visualizações no seu navegador). diff --git a/content/pt-br/monolithic-apps.md b/content/pt-br/monolithic-apps.md index 83d73a9aba..141d80d60d 100644 --- a/content/pt-br/monolithic-apps.md +++ b/content/pt-br/monolithic-apps.md @@ -5,8 +5,6 @@ category: conceito tags: ["arquitetura", "", ""] --- -## O que é - Uma aplicação monolítica contém todas as funcionalidades em um único programa. Este é muitas vezes o lugar mais simples e fácil para começar ao fazer uma aplicação. No entanto, uma vez que a aplicação cresce em complexidade, os monólitos podem se tornar difíceis de manter. diff --git a/content/pt-br/nodes.md b/content/pt-br/nodes.md index a63eaef0b0..63e82a99c6 100644 --- a/content/pt-br/nodes.md +++ b/content/pt-br/nodes.md @@ -5,8 +5,6 @@ category: conceito tags: ["infraestrutura", "fundamento", ""] --- -## O que é - Um nó é um computador que trabalha em conjunto com outros computadores, ou nós, para realizar uma tarefa comum. Pegue seu laptop, modem e impressora, por exemplo. Eles estão todos conectados pela sua rede wifi se comunicando e colaborando, cada um representando um nó. diff --git a/content/pt-br/observability.md b/content/pt-br/observability.md index 5a33f18482..ab0ddf1bf2 100644 --- a/content/pt-br/observability.md +++ b/content/pt-br/observability.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "aplicação", "infraestrutura"] --- -## O que é - Observabilidade é a capacidade de gerar e descobrir continuamente insights acionáveis com base em sinais do sistema sob observação. Em outras palavras, a observabilidade permite que os usuários entendam o estado de um sistema a partir de sua saída externa e tome ação (corretiva). diff --git a/content/pt-br/platform-as-a-service.md b/content/pt-br/platform-as-a-service.md index 18e5546183..e834ad317f 100644 --- a/content/pt-br/platform-as-a-service.md +++ b/content/pt-br/platform-as-a-service.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["descontinuado", "", ""] --- -## O que é - Plataforma como serviço, ou PaaS, é uma plataforma externa para equipes de desenvolvimento de aplicações implantarem e executarem suas aplicações. Heroku, Cloud Foundry, App Engine são exemplos de ofertas de PaaS. ## Problema relacionado diff --git a/content/pt-br/serverless.md b/content/pt-br/serverless.md index cb6293b05e..8d563dcb69 100644 --- a/content/pt-br/serverless.md +++ b/content/pt-br/serverless.md @@ -5,8 +5,6 @@ Category: tecnologia tags: ["arquitetura", "", ""] --- -## O que é - Serverless é um modelo de desenvolvimento nativo na nuvem que permite que desenvolvedores criem aplicações sem que seja necessário gerenciar servidores. Ainda existem servidores no modelo serverless, mas eles são [abstraídos](/pt-br/abstraction/) do desenvolvimento. Um provedor de computação em nuvem se encarrega do provisionamento, manutenção e [escala](/scalability/) da infraestrutura de servidores. Desenvolvedores podem simplesmente carregar o código em [contêineres](/pt-br/container/) para implantação. Uma vez implantadas, aplicações serverless respondem automaticamente à demanda, escalando para cima e para baixo conforme necessário. O preço cobrado por provedores de computação em nuvem para funções serverless geralmente é realizada com base na sua utilização sob demanda. Como resultado disto, quando uma função serverless não está em execução ela não tem custo algum. ## Problema relacionado diff --git a/content/pt-br/shift-left.md b/content/pt-br/shift-left.md index 163f8fe7f4..b1f54746ae 100644 --- a/content/pt-br/shift-left.md +++ b/content/pt-br/shift-left.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "", ""] --- -## O que é - Esquerda em Shift Left se refere aos estágios iniciais no ciclo de desenvolvimento de software, pensando no ciclo como uma linha onde os estágios são executados da esquerda para a direita. Shift left é a prática de implementar testes, segurança ou outras práticas de desenvolvimento diff --git a/content/pt-br/site-reliability-engineering.md b/content/pt-br/site-reliability-engineering.md index 317a1c2e03..d86e063667 100644 --- a/content/pt-br/site-reliability-engineering.md +++ b/content/pt-br/site-reliability-engineering.md @@ -5,8 +5,6 @@ category: conceito tags: ["metodologia", "", ""] --- -## O que é - Engenharia de Confiabilidade de Sites (do inglês *Site Reliability Engineering* - SRE) é uma disciplina que combina operações e engenharia de software. Este último é aplicado especificamente a problemas de infraestrutura e operações. Ou seja, em vez de criar recursos do produto, os Engenheiros de Confiabilidade criam sistemas para rodar aplicativos. Existem semelhanças com o DevOps, mas enquanto o DevOps se concentra em colocar o código em produção, o SRE garante que o código em execução na produção funcione corretamente. ## Problema relacionado diff --git a/content/pt-br/software-as-a-service.md b/content/pt-br/software-as-a-service.md index d74aa4b0c1..d77530e1a2 100644 --- a/content/pt-br/software-as-a-service.md +++ b/content/pt-br/software-as-a-service.md @@ -5,8 +5,6 @@ Category: tecnologia tags: ["descontinuado", "", ""] --- -## O que é - O Software como Serviço (do inglês *Software as a service* - SaaS) permite que os usuários se conectem e usem serviços baseados em nuvem. Exemplos comuns são as ferramentas de e-mail, de calendário e de escritório (como Gmail, Amazon Web Services, GitHub, Slack). O SaaS fornece soluções completas de software com base de pagamento conforme o uso. Todas as tarefas de operações e manutenção, e dados do aplicativo, são tratadas pelo provedor de serviços. ## Problema relacionado diff --git a/content/pt-br/stateful-apps.md b/content/pt-br/stateful-apps.md index 07032e792f..456a76957f 100644 --- a/content/pt-br/stateful-apps.md +++ b/content/pt-br/stateful-apps.md @@ -5,8 +5,6 @@ category: conceito tags: ["fundamento", "aplicação", ""] --- -## O que é - Quando falamos das aplicações stateful e stateless, nos referimos a todos os dados que a aplicação precisa armazenar para funcionar como projetada. Qualquer tipo de loja online que lembre do seu carrinho é uma aplicação stateful, por exemplo. ## Problema relacionado diff --git a/content/pt-br/stateless-apps.md b/content/pt-br/stateless-apps.md index 0b48896079..d8470edcfb 100644 --- a/content/pt-br/stateless-apps.md +++ b/content/pt-br/stateless-apps.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["fundamento", "aplicação", ""] --- -## O que é - Um aplicação stateless não salva nenhum dado de sessão do cliente no servidor onde a aplicação está. Cada sessão é realizada como se fosse a primeira vez e as respostas não dependem de dados de uma sessão anterior e fornecem funcionalidade para usar os serviços de impressão, rede de entrega de conteúdo ou os servidores web para processar todas as requisições de curto prazo. Por exemplo, alguém está pesquisando uma pergunta no mecanismo de pesquisa e pressionou o Enter. Caso a operação de pesquisa seja interrompida ou fechada por algum motivo, você terá que iniciar uma nova, pois não há dados salvos para sua requisição anterior. ## Problema relacionado diff --git a/content/pt-br/style-guide/_index.md b/content/pt-br/style-guide/_index.md index 116aa40a91..a2eb73458d 100644 --- a/content/pt-br/style-guide/_index.md +++ b/content/pt-br/style-guide/_index.md @@ -37,7 +37,6 @@ status: category: --- -## What it is Um breve resumo da tecnologia ou conceito. diff --git a/content/pt-br/transport-layer-security.md b/content/pt-br/transport-layer-security.md index 7aa7f484bd..56d26afb28 100644 --- a/content/pt-br/transport-layer-security.md +++ b/content/pt-br/transport-layer-security.md @@ -5,8 +5,6 @@ category: conceito tags: ["segurança", "rede", ""] --- -## O que é - Transport Layer Security (TLS) é um protocolo projetado para fornecer maior segurança à comunicação através de uma rede. Garante a entrega segura de dados enviados pela Internet, evitando possíveis monitoramentos e/ou alterações dos dados. Este protocolo é amplamente utilizado em aplicações como mensagens, e-mail, etc. ## Problema relacionado diff --git a/content/pt-br/version-control.md b/content/pt-br/version-control.md index 5ff30a6530..aadc07b203 100644 --- a/content/pt-br/version-control.md +++ b/content/pt-br/version-control.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["descontinuado", "", ""] --- -## O que é - O controle de código (ou controle de versão) é a prática de rastrear e gerenciar alterações de um documento. É um sistema que registra alterações de um arquivo ou conjunto de arquivos ao longo do tempo para que você possa recuperar versões específicas mais tarde. ## Problema relacionado diff --git a/content/pt-br/vertical-scaling.md b/content/pt-br/vertical-scaling.md index 818af3e37c..422ba03045 100644 --- a/content/pt-br/vertical-scaling.md +++ b/content/pt-br/vertical-scaling.md @@ -5,8 +5,6 @@ category: conceito tags: ["infraestrutura", "", ""] --- -## O que é - O escalonamento vertical, também conhecido como "escalonamento para cima e para baixo", é uma técnica em que a capacidade de um sistema adiciona CPU e memória aos [nós](/nodes/) individuais à medida que a carga de trabalho aumenta. Digamos que você tenha um computador de 4GB de RAM e queira aumentar sua capacidade para 16GB de RAM, escalar verticalmente significa mudar para um sistema de 16GB de RAM. (Consulte [escalonamento horizontal](/horizontal-scaling/) para obter uma abordagem de dimensionamento diferente.) ## Problema relacionado diff --git a/content/pt-br/virtual-machine.md b/content/pt-br/virtual-machine.md index 44a23ba6d4..0982fd2842 100644 --- a/content/pt-br/virtual-machine.md +++ b/content/pt-br/virtual-machine.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["fundamento", "infraestrutura", ""] --- -## O que é - Uma máquina virtual ou VM (do inglês "Virtual Machine") é a inexistência de vínculo de um computador e seu sistema operacional a um hardware específico. As VMs dependem da [virtualização](/pt-br/virtualization/) para transformar um único computador físico em vários computadores virtuais. Essa separação permite que organizações e provedores de infraestrutura criem e destruam facilmente VMs sem afetar o hardware fisicamente. ## Problema relacionado diff --git a/content/pt-br/virtualization.md b/content/pt-br/virtualization.md index 8c37647c1e..175d5e47d2 100644 --- a/content/pt-br/virtualization.md +++ b/content/pt-br/virtualization.md @@ -5,8 +5,6 @@ category: tecnologia tags: ["fundamento", "infraestrutura", "metodologia"] --- -## O que é - A virtualização, no contexto da computação nativa da nuvem, refere-se ao processo de pegar um computador físico, às vezes chamado de servidor, e permitir que ele execute vários sistemas operacionais isolados. Esses sistemas operacionais isolados e seus recursos de computação dedicados (CPU, memória e rede) são chamados de máquinas virtuais ou VMs (do inglês "Virtual Machine"). Quando falamos de uma máquina virtual, estamos falando de um computador definido por software. Algo que parece e age como um computador real, mas está compartilhando hardware com outras máquinas virtuais. Por exemplo, você pode alugar um "computador" da AWS - esse computador na verdade é uma VM. ## Problema relacionado diff --git a/content/pt-br/zero-trust-architecture.md b/content/pt-br/zero-trust-architecture.md index c482304e6e..282d08d18c 100644 --- a/content/pt-br/zero-trust-architecture.md +++ b/content/pt-br/zero-trust-architecture.md @@ -5,8 +5,6 @@ category: conceito tags: ["segurança", "", ""] --- -## O que é - A arquitetura de confiança zero (do inglês "Zero trust architecture") prescreve uma abordagem para o projeto e implementação de sistemas de TI onde a confiança é completamente removida. O princípio central é "nunca confie, sempre verifique", dispositivos ou sistemas em si, enquanto se comunicam com outros componentes de um sistema, sempre se verificam antes de fazê-lo. Atualmente, em muitas redes, dentro da rede corporativa, os sistemas e dispositivos internos podem se comunicar livremente uns com os outros, pois estão dentro do perímetro confiável da rede corporativa. A arquitetura de confiança zero adota a abordagem oposta, que, embora dentro do perímetro da rede, os componentes dentro do sistema primeiro precisam passar pela verificação antes que qualquer comunicação seja feita. ## Problema relacionado From 8c3a26457ac876b9c9ce688c68a7682a5ad7db01 Mon Sep 17 00:00:00 2001 From: tym83 <6355522@gmail.com> Date: Tue, 26 Dec 2023 07:04:09 +0500 Subject: [PATCH 037/130] Review initial Russian content Apply suggestions from code review Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Apply suggestions from code review Update content/ru/_TEMPLATE.md Redo section names Delete first section header - continuous-delivery.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> --- content/ru/_TEMPLATE.md | 12 ++++----- content/ru/_index.md | 12 ++++----- content/ru/cloud-native-apps.md | 36 +++++++++++++-------------- content/ru/cloud-native-tech.md | 28 ++++++++++----------- content/ru/container-orchestration.md | 18 ++++++-------- content/ru/container.md | 30 +++++++++++----------- content/ru/containerization.md | 28 ++++++++++----------- content/ru/continuous-delivery.md | 24 ++++++++---------- content/ru/continuous-deployment.md | 22 ++++++++-------- content/ru/continuous-integration.md | 25 ++++++++----------- content/ru/devops.md | 28 ++++++++++----------- content/ru/devsecops.md | 30 +++++++++++----------- content/ru/kubernetes.md | 34 ++++++++++++------------- content/ru/style-guide/_index.md | 2 +- 14 files changed, 152 insertions(+), 177 deletions(-) diff --git a/content/ru/_TEMPLATE.md b/content/ru/_TEMPLATE.md index 018f003932..20c4c7c0ab 100644 --- a/content/ru/_TEMPLATE.md +++ b/content/ru/_TEMPLATE.md @@ -4,18 +4,16 @@ status: Feedback Appreciated category: concept --- -## Описание - Краткое и четкое описание того, о чем идет речь. -## Проблема +## Какую проблему решает -Проблема, которую решает описываемая технология. Избегайте упоминать термин, для которого дается определение. В этом разделе необходимо сфокусироваться на предпосылках, которые привели к разработке данной технологии/концепции. +Проблема, которую решает описываемая технология. Старайтесь не использовать термин, которому вы даете определение. В этом разделе необходимо сфокусироваться на предпосылках, которые стали причиной появления описываемой технологии или концепции. -## Решение +## Как именно решает проблему -Здесь можно вернуться к самому термину. Как он помогает решить проблему, описанную выше? +Здесь можно вернуться к самому термину и объяснить, как именно он помогает решить описанную в предыдущем пункте проблему. ## Связанные термины -Добавьте связанные термины из глоссария (если такие имеются). +Добавьте сюда другие релевантные термины из глоссария (если они есть). diff --git a/content/ru/_index.md b/content/ru/_index.md index bc27d9cf8c..1c50d6f1b1 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -5,23 +5,23 @@ status: Completed # Глоссарий Cloud Native -Глоссарий Cloud Native помогает разобраться в облачном пространстве (которое печально известно своей сложностью) не только IT-специалистам, но также представителям бизнеса и всем интересующимся. -Для этого мы делаем упор на простоту (доступный язык, свободный от модных словечек; примеры, которые понятны любому человеку с базовыми представлениями о технологиях; отказ от лишних подробностей). +Глоссарий Cloud Native преназначен для того, чтобы в сфере cloud native, сложность которой уже стала притчей во языцех, было легче разобраться не только IT-специалистам, но и представителям бизнеса. +Именно поэтому мы делаем упор на простоту (доступный язык, свободный от заковыристых терминов; примеры, которые понятны любому человеку с базовым пониманием технологий; отказ от лишних подробностей). Работа над глоссарием ведется под руководством подкомитета CNCF по деловой ценности (Business Value Subcommittee, BVS).

Зрители смотрят презентацию на KubeCon

## Внести свой вклад -Приглашаем всех желающих поучаствовать в развитии Глоссария Cloud Native, его дополнении и улучшении. -Процесс разработки единого лексикона и его совершенствования управляется сообществом и регулируется CNCF. +Приглашаем всех желающих поучаствовать в развитии «Глоссария Cloud Native», его дополнении и улучшении. +Процесс разработки единой терминологии и ее совершенствования управляется сообществом и регулируется CNCF. Глоссарий придерживается принципа независимости от конкретных вендоров и ставит своей целью создание словаря-справочника по нативным облачным технологиям. Приветствуется любое участие при условии, что оно соответствует целям и уставу проекта. Все желающие могут открыть Issue на GitHub или создать Pull Request. Для этого необходимо предварительно ознакомиться с документом [Как внести свой вклад](/ru/contribute/) и присоединиться к каналу [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) в рабочем пространстве CNCF в Slack. Кроме того, важно убедиться, что предлагаемые правки соответствуют [Руководству по стилю](/ru/style-guide/). -Для тех, кто хочет помочь перевести глоссарий на родной язык, существует канал [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) (для русского языка — [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX)). +Для тех, кто хочет поучаствовать в переводе глоссария на родной язык, существует канал [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) (для русского языка — [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX)). ## Благодарности @@ -33,7 +33,7 @@ status: Completed [Katelin Ramer](https://www.linkedin.com/in/katelinramer/), [Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), и многих других авторов. -Полный список участников проекта можно найти на [этой странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. +Полный список участников проекта можно найти на [отдельной странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. Хранителями глоссария являются: - [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/); diff --git a/content/ru/cloud-native-apps.md b/content/ru/cloud-native-apps.md index f4199def5f..9da063d085 100644 --- a/content/ru/cloud-native-apps.md +++ b/content/ru/cloud-native-apps.md @@ -5,26 +5,24 @@ category: concept tags: ["application", "fundamental", ""] --- -## Описание +Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы извлечь максимальную пользу из достижений в сфере [облачных вычислений](/cloud-computing/). +Такие приложения легко интегрируются с различными видами облачных архитектур, +используя облачные ресурсы и их способность к [масштабированию](/scalability/). +Также этот термин применяется и по отношению к приложениям, которые используют новейшие наработки в области инфраструктуры, вызванные развитием облачных вычислений. +К нативным облачным приложениям относят приложения, которые работают в центрах обработки данных облачных провайдеров и на локальных (on-premise) платформах, предназначенных для работы с облаками. -Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы максимально использовать инновации в области [облачных вычислений](/cloud-computing/). -Эти приложения легко интегрируются с соответствующими облачными архитектурами, -пользуясь ресурсами облака и его способностью к [масштабированию](/scalability/). -Это также относится к приложениям, использующим преимущества инноваций в инфраструктуре, основанной на облачных вычислениях. -Сегодня к нативным облачным приложениям относятся приложения, работающие в центрах обработки данных облачных провайдеров и на локальных (on-premise) платформах, спроектированных для работы с облаком. +## Какую проблему решает -## Проблема +Традиционно локальные среды предоставляли уникальные, отличные друг от друга и несовместимые вычислительные ресурсы. +В каждом центре обработки данных имелись сервисы, которые [жестко привязывали](/tightly-coupled-architectures/) приложения к конкретным окружениям и чаще всего подразумевали, что инфраструктура (например, [виртуальные машины](/virtual-machine/) и различные сервисы) подготавливается вручную. +Из-за этого разработчики и их приложения зависели и были привязаны к конкретному центру обработки данных. +Приложения, которые не были специально разработаны для облачных сред, не могли полноценно задействовать преимущества облачных вычислений — отказоустойчивость и возможности по масштабированию. +Например, приложения, для корректного запуска которых требуется ручное вмешательство, не могут автоматически масштабироваться +и автоматически перезапускаться в случае сбоя. -Традиционно локальные среды предоставляли вычислительные ресурсы достаточно узкоспециализированным образом. -В каждом центре обработки данных имелись сервисы, которые [жестко привязывали](/tightly-coupled-architectures/) приложения к конкретным окружениям, часто в значительной степени опираясь на ручную подготовку инфраструктуры (например, [виртуальных машин](/virtual-machine/) и сервисов). -В свою очередь, это привязывало разработчиков и их приложения к конкретному центру обработки данных. -Приложения, которые не были специально разработаны для облачных сред, не могли воспользоваться их отказоустойчивостью и возможностями масштабирования. -Например, приложения, для корректного запуска которых требуется ручное вмешательство, не могут автоматически масштабироваться, -равно как и автоматически перезапускаться в случае сбоя. +## Как именно решает проблему -## Решение - -Хотя не существует универсального пути к построению нативных облачных приложений, у них все же есть некоторые общие черты. -Нативные облачные приложения устойчивы к внешним воздействиям, управляемы и поддерживаются набором сопутствующих облачных сервисов. -Различные облачные сервисы обеспечивают высокую степень [наблюдаемости](/observability/), позволяя обнаруживать и оперативно устранять проблемы до их разрастания. -В сочетании с надежной автоматизацией они позволяют инженерам часто и предсказуемо вносить важные изменения с минимальными усилиями. +Хотя не существует универсального рецепта для создания нативных облачных приложений, у таких приложений все же есть некоторые общие черты. +Нативные облачные приложения обладают высокой отказоустойчивостью, ими удобно управлять, а кроме того, с ними может взаимодействовать целый набор сопутствующих облачных сервисов. +Так, различные облачные сервисы обеспечивают отличную [наблюдаемость](/observability/), позволяя обнаруживать и оперативно устранять проблемы еще до того, как они станут критическими. +А в сочетании с мощной автоматизацией такие сервисы дают инженерам возможность вносить в проект необходимые важные изменения регулярно, с высокой частотой и предсказуемо — причем без лишних хлопот. diff --git a/content/ru/cloud-native-tech.md b/content/ru/cloud-native-tech.md index 7fc7d2d7d9..e5d96a9787 100644 --- a/content/ru/cloud-native-tech.md +++ b/content/ru/cloud-native-tech.md @@ -5,28 +5,26 @@ category: Concept tags: ["fundamental", "", ""] --- -## Описание - Нативные облачные (cloud native) технологии, также называемые нативным облачным стеком, — -это технологии, используемые для создания [нативных облачных приложений](/ru/cloud-native-apps/). +это технологии, которые используются для создания [нативных облачных приложений](/ru/cloud-native-apps/). Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, -максимально используя преимущества [облачных вычислений](/cloud-computing/). -Они изначально разрабатываются для максимального использования возможностей облачных вычислений, и примером такого подхода являются контейнеры, сервис-меши, микросервисы и неизменяемая (immutable) инфраструктура. +максимально используя сильные стороны [облачных вычислений](/cloud-computing/). +Они изначально разрабатываются для максимального использования преимуществ облачных вычислений. Пример реализации такого подхода — контейнеры, service mesh, микросервисы и неизменяемая (immutable) инфраструктура. -## Проблема +## Какую проблему решает -Нативный облачный стек включает в себя множество различных технологий, решающих самые разные задачи. +Нативный облачный стек включает в себя множество различных технологий, призванных дать ответ на самые разные вызовы. Если взглянуть на многообразие приложений в [CNCF Cloud Native Landscape](https://landscape.cncf.io/), можно увидеть, как много различных областей они охватывают. -Но на высоком уровне они решают один базовый набор задач — -устраняют недостатки традиционных моделей эксплуатации ИТ. -Среди этих задач — трудности при создании масштабируемых, отказоустойчивых, самовосстанавливающихся приложений, -а также неэффективное использование ресурсов и др. +Но по сути они решают единый базовый набор задач — +устраняют недостатки традиционных моделей эксплуатации в ИТ. +Примеры таких вызовов: трудности создания масштабируемых, отказоустойчивых, способных восстанавливаться самостоятельно приложений, +неэффективное использование ресурсов и др. -## Решение +## Как именно решает проблему Хотя каждая технология решает свою специфическую задачу, -в совокупности нативные облачные технологии позволяют создавать слабосвязанные системы, устойчивые к внешним воздействиям, управляемые и наблюдаемые. -В сочетании с надежной автоматизацией они позволяют инженерам с минимальными усилиями вносить серьезные изменения часто и с предсказуемым результатом. -Желаемые характеристики нативных облачных систем легче реализовать с помощью соответствующего нативного облачного стека. +в совокупности нативный облачный стек позволяет создавать слабосвязанные системы, устойчивые к внешним воздействиям, с хорошей управляемостью и наблюдаемостью. +В сочетании с надежной автоматизацией они позволяют инженерам вносить серьезные изменения часто и с предсказуемым результатом — причем такой результат достигается минимальными усилиями. +Необходимых параметров при создании нативных облачных систем легче всего достичь именно с помощью соответствующего нативного облачного стека. diff --git a/content/ru/container-orchestration.md b/content/ru/container-orchestration.md index c83d5931b5..1a2bdf0b37 100644 --- a/content/ru/container-orchestration.md +++ b/content/ru/container-orchestration.md @@ -4,22 +4,20 @@ status: Completed category: Concept --- -## Описание - Под оркестрацией [контейнеров](/ru/container/) понимается автоматизация жизненного цикла контейнеризованных приложений в динамических средах и управление им. -Она осуществляется с помощью оркестратора контейнеров (в большинстве случаев это [Kubernetes](/ru/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. +Она осуществляется с помощью оркестратора контейнеров (чаще всего — [Kubernetes](/ru/kubernetes)), который отвечает за развертывание, (авто)масштабирование, автовосстановление и мониторинг. Оркестрация — это метафора: -инструмент оркестрации управляет контейнерами, как дирижер музыкой, следя за тем, чтобы каждый контейнер (музыкант) делал то, что должен. +инструмент оркестрации управляет контейнерами так же, как дирижер — музыкой, следя за тем, чтобы каждый контейнер (музыкант) делал то, что должен. -## Проблема +## Какую проблему решает -Вручную управлять [микросервисами](/microservices), обеспечивать безопасность и контролировать сетевое взаимодействие в больших масштабах (а также управлять [распределенными системами](/distributed-systems) в целом) -сложно, а иногда и невозможно. -Оркестрация контейнеров позволяет автоматизировать все эти управленческие задачи. +Вручную управлять [микросервисами](/microservices), обеспечивать безопасность и контролировать сетевое взаимодействие на больших масштабах (как и вообще управлять [распределенными системами](/distributed-systems)) +сложно, а подчас и невозможно. +Оркестрация контейнеров позволяет автоматизировать задачи по управлению ими. -## Решение +## Как именно решает проблему Инструменты для оркестрации контейнеров позволяют пользователям задавать состояние системы. На начальном этапе они определяют, как система должна выглядеть (например, X контейнеров, Y подов и т. д.). -Затем инструмент оркестрации автоматически отслеживает состояние инфраструктуры и корректирует его при отклонении от заявленного (например, при сбое одного контейнера запускает другой). +Затем инструмент оркестрации начинает автоматически отслеживать состояние инфраструктуры и при возникновении отклонений приводить его к описанному на первом этапе состонию (например, при сбое одного контейнера запускается другой). Такая автоматизация упрощает выполнение многих сложных задач эксплуатации (которые в противном случае выполнялись бы вручную), включая выделение ресурсов, развертывание, масштабирование (вверх и вниз), работу с сетью, балансировку нагрузки и другие действия. diff --git a/content/ru/container.md b/content/ru/container.md index 41c4a07a91..f02f3bfabd 100644 --- a/content/ru/container.md +++ b/content/ru/container.md @@ -5,30 +5,28 @@ category: technology tags: ["application", "fundamental", ""] --- -## Описание - -Контейнер — это процесс, работающий под управлением операционной системы компьютера. -Для него заданы определенные ограничения на ресурсы и возможности, и ОС следит за тем, чтобы эти ограничения соблюдались. -Файлы, доступные процессу, упаковываются в образ контейнера. +Контейнер — это запущенный процесс, работающий под управлением операционной системы компьютера, ограниченный в ресурсах и возможностях. +Файлы, доступные такому процессу, упаковываются в так называемый образ контейнера. Контейнеры работают рядом друг с другом на одной и той же машине, -при этом операционная система, как правило, не позволяет отдельным контейнерам взаимодействовать друг с другом. +при этом операционная система, как правило, не позволяет контейнерам напрямую взаимодействовать. -## Проблема +## Какую проблему решает До появления контейнеров для запуска приложений требовались отдельные машины. -На каждой машине устанавливалась операционная система, которая потребляла ресурсы процессора и памяти, а также дисковое пространство — и все это для работы одного единственного приложения. -Кроме того, приходилось тратить значительные силы на обслуживание, обновление и запуск самой операционной системы. +На каждой машине устанавливалась операционная система, которая потребляла ресурсы процессора и памяти, а также дисковое пространство +— и все это для работы одного единственного приложения. +Кроме того, приходилось тратить значительные ресурсы на обслуживание, обновление и запуск самой операционной системы. -## Решение +## Как именно решает проблему -Контейнеры совместно используют одну и ту же операционную систему и ее машинные ресурсы. +Контейнеры совместно используют одну и ту же операционную систему и работающее под ее управлением железо. Другими словами, вместо множества копий ОС используется лишь одна: ресурсы, потребляемые операционной системой, делятся сразу на множество контейнеров. Тем самым обеспечивается эффективное использование памяти, процессора и дискового пространства. -Такая совместная работа контейнеров возможна только потому, что они, как правило, не могут взаимодействовать друг с другом. -Это позволяет запускать на одной физической машине больше приложений. +Такая совместная работа контейнеров возможна только потому, что они, как правило, не могут напрямую взаимодействовать. +Это позволяет запускать на одной физической машине гораздо больше приложений. Однако есть и ограничения. -Подход, когда множество контейнеров используют одну и ту же операционную систему, потенциально более опасен, чем альтернативные варианты. -Кроме того, для контейнеров приходится задавать ограничения на общие ресурсы. -Лимитировать использование памяти и процессора необходимо для того, чтобы гарантировать, что все приложения смогут корректно функционировать. +Подход, когда множество контейнеров используют одну и ту же операционную систему, потенциально более опасен, чем другие варианты. +Кроме того, контейнерам необходимо задавать ограничения на использование общих ресурсов. +Администратор должен ограничивать использование памяти и процессора — это позволяет гарантировать, что остальные приложения не столкнутся с нехваткой ресурсов. diff --git a/content/ru/containerization.md b/content/ru/containerization.md index 897557987f..699ee38fd9 100644 --- a/content/ru/containerization.md +++ b/content/ru/containerization.md @@ -5,26 +5,24 @@ category: Technology tags: ["application", "", ""] --- -## Описание - -Контейнеризация — это упаковка приложения и его зависимостей в [контейнерный образ](/container-image/). +Контейнеризация — это упаковка приложения и всех необходимых зависимостей в [образ контейнера](/container-image/). Процесс сборки контейнера должен соответствовать стандарту [Open Container Initiative](https://opencontainers.org) (OCI). Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации использовалось. -## Проблема +## Какую проблему решает -До того как контейнеры получили широкое распространение, для запуска множества приложений на одном ["железном"](/bare-metal-machine/) (bare-metal) сервере использовались виртуальные машины. -ВМ по своей природе значительно «тяжелее» контейнеров, и для их работы необходим гипервизор. -Создание шаблонизированных решений на базе ВМ затруднено необходимостью хранения, резервного копирования и передачи больших объемов данных. -Кроме того, ВМ могут страдать от появляющихся со временем изменений в конфигурации, что нарушает принцип [неизменяемости](/immutable-infrastructure/). +До того как контейнеры получили широкое распространение, для запуска множества приложений на одном [«железном»](/bare-metal-machine/) (bare-metal) сервере использовались виртуальные машины. +Однако виртуальные машины гораздо «тяжелее» контейнеров, и для их работы необходим гипервизор. +Создание шаблонизированных решений на базе виртуальных машин затруднено необходимостью хранения, резервного копирования и передачи больших объемов данных. +Кроме того, одна из болей виртуальных машин — появляющиеся со временем изменения в конфигурации, которые нарушают принцип [неизменяемости](/immutable-infrastructure/). -## Решение +## Как именно решает проблему -От традиционных ВМ образы контейнеров отличаются гораздо меньшими размерами, -а для контейнеризации требуется лишь файл со списком зависимостей. -Модификации этого файла можно отслеживать в системе контроля версий, а процесс сборки — автоматизировать, -что позволяет организации сосредоточиться на других задачах. -У каждого образа контейнера имеется уникальный идентификатор, +От традиционных виртуальных машин образы контейнеров отличаются гораздо меньшими размерами, +а для самого процесса контейнеризации нужен только файл со списком зависимостей. +Изменения в этом файле можно отслеживать в системе контроля версий, а процесс сборки — автоматизировать, +что позволяет организации сосредоточиться на других важных задачах. +У каждого образа контейнера есть уникальный идентификатор, привязанный к его содержимому и конфигурации. При планировании (размещении на узлы) и перепланировании контейнеры всегда -сбрасываются в исходное состояние, что исключает расхождения в конфигурации. +сбрасываются до исходного состояния, что исключает расхождения в конфигурации. diff --git a/content/ru/continuous-delivery.md b/content/ru/continuous-delivery.md index 7f2f360a08..0294520efb 100644 --- a/content/ru/continuous-delivery.md +++ b/content/ru/continuous-delivery.md @@ -5,31 +5,29 @@ category: concept tags: ["methodology", "application", ""] --- -## Описание - Непрерывная доставка (Continuous Delivery), часто сокращенно называемая CD, — это набор практик, при которых изменения кода автоматически развертываются в приемочное окружение -(или, в случае непрерывного развертывания, в production). +— или, в случае непрерывного развертывания, в production. CD обязательно включает процедуры, обеспечивающие адекватное тестирование программного обеспечения перед развертыванием, и предоставляет возможность отката изменений при необходимости. -Непрерывная интеграция (CI) — первый шаг на пути к непрерывной доставке -(т. е. сначала должен успешно процесс внесения изменений (merging); только после этого можно переходить к тестированию и развертыванию). +Непрерывная интеграция — первый шаг на пути к непрерывной доставке: +т.е. сначала должен успешно завершиться процесс внесения изменений (merging), и только после этого можно переходить к тестированию и развертыванию. -## Проблема +## Какую проблему решает Развертывание [надежных](/reliability/) обновлений становится глобальной проблемой. В идеале частота развертываний должна быть высокой — так востребованные функции будут быстрее попадать к конечным пользователям. Однако выполнение этих операций вручную влечет значительные трудозатраты при каждом изменении. -Исторически сложилось так, что для того, чтобы избежать этих трудозатрат, организации выпускали продукты реже, -внедряя больше изменений за один раз. В результате увеличивался риск того, что что-то пойдет не так. +Исторически сложилось так, что для того, чтобы избежать этих трудозатрат, организации выпускали новые релизы реже, +проводя больше изменений за один раз. В результате увеличивался риск того, что что-то пойдет не так. -## Решение +## Как именно решает проблему -Стратегии CD реализуют полностью автоматизированный путь к production, -в рамках которого ПО тестируется и развертывается с использованием различных стратегий развертывания, +Стратегии CD позволяют выстроить полностью автоматизированный путь до стадии production, +в рамках которого ПО тестируется и развертывается с использованием различных методов развертывания, таких как [канареечные](/canary-deployment/) или [сине-зеленые](/blue-green-deployment/) релизы. -Это позволяет разработчикам развертывать код с высокой частотой, будучи уверенными в том, что новая ревизия прошла тестирование. -Как правило, в стратегиях CD используется trunk-based-разработка, когда небольшие изменения кода часто вносятся в основную ветку +Это позволяет разработчикам развертывать код с высокой частотой и быть уверенными в том, что новая ревизия прошла все этапы тестирование. +Как правило, в стратегиях CD используется trunk-based-разработка, при которой в основную ветку постоянно вносятся небольшие изменения кода (в отличие от запросов на слияние (pull requests) и фич-веток (feature branching)). ## Связанные термины diff --git a/content/ru/continuous-deployment.md b/content/ru/continuous-deployment.md index 958bca7d78..8f41995897 100644 --- a/content/ru/continuous-deployment.md +++ b/content/ru/continuous-deployment.md @@ -5,28 +5,26 @@ category: concept tags: ["application", "methodology", ""] --- -## Описание - Непрерывное развертывание (Continuous Deployment, CD) развивает идеи [непрерывной доставки](/ru/continuous-delivery/), -позволяя размещать готовое программное обеспечение непосредственно в production. -Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/ru/continuous-integration/) (CI), поэтому обычно их объединяют в единый CI/CD-процесс. -CI помогает убедиться, что изменения, внесенные в код приложения, работают как задумано, +позволяя выкладывать готовое программное обеспечение непосредственно в production. +Непрерывное развертывание (CD) идет рука об руку с [непрерывной интеграцией](/ru/continuous-integration/) (CI), поэтому обычно их объединяют в единый процесс CI/CD. +CI помогает убедиться, что изменения, внесенные в код приложения, работают как и было задумано, а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). -## Проблема +## Какую проблему решает -Выпуск новых версий программного обеспечения может быть трудоемким и сопряженным с ошибками процессом. -Поэтому многие организации стараются уменьшить количество таких выпусков, чтобы избежать инцидентов в production +Выпуск новых версий программного обеспечения может быть трудоемким процессом и сопровождаться ошибками. +Поэтому многие организации стараются уменьшить количество релизов, чтобы избежать инцидентов в production и сократить время, в течение которого инженеры должны оставаться на связи (в т. ч. в нерабочие часы). Традиционные модели развертывания программного обеспечения приводят к тому, что организации попадают в порочный круг, в котором процесс выпуска программного обеспечения не отвечает потребностям организации -ни в стабильности, ни в скорости реализации новых функций. +ни в контексте стабильности, ни в контексте скорости реализации новых функций. -## Решение +## Как именно решает проблему Автоматизируя релизный цикл и заставляя организации чаще развертывать ПО в production, -CD делает для команд эксплуатации то же самое, что CI — для команд разработки. -А именно, автоматизирует болезненные и склонные к ошибкам этапы развертывания в production, снижая общий риск. +CD делает для команд эксплуатации то же самое, что CI для команд разработки. +То есть автоматизирует этапы развертывания ПО в production, сокращая вероятность ошибок и негативных последствий и снижая общий риск. Кроме того, организации привыкают к частым изменениям в production и лучше к ним адаптируются, что повышает стабильность. ## Связанные термины diff --git a/content/ru/continuous-integration.md b/content/ru/continuous-integration.md index 20a556c2c9..a77a1ece63 100644 --- a/content/ru/continuous-integration.md +++ b/content/ru/continuous-integration.md @@ -5,28 +5,25 @@ category: concept tags: ["application", "methodology", ""] --- -## Описание - -Непрерывная интеграция (Continuous Integration, CI) — это практика, при которой правки принимаются в код с максимальной возможной регулярностью. +Непрерывная интеграция (Continuous Integration, CI) — это практика, при которой правки внедряются в код как можно чаще. CI является предварительным условием для [непрерывной доставки](/ru/continuous-delivery/) (CD). Процесс CI традиционно начинается с внесения правок в код в системе контроля исходного кода (Git, Mercurial или Subversion) -и заканчивается получением протестированного артефакта, готового к использованию CD-системой. +и заканчивается получением протестированной сборки, готовой к использованию CD-системой. -## Проблема +## Какую проблему решает Программные системы часто бывают большими и сложными, их поддерживает и обновляет множество разработчиков. Работая параллельно над разными частями системы, -эти разработчики могут вносить конфликтующие изменения и непреднамеренно "портить" работу друг друга. -Кроме того, если над одним проектом работает несколько разработчиков, то все повседневные задачи, -такие как тестирование и оценка качества кода, приходится повторять каждому из них, что ведет к потере времени. +эти разработчики могут вносить такие изменения, которые будут приводить к конфликтам, и непреднамеренно «портить» работу смежных команд. +Кроме того, если над одним проектом работает несколько разработчиков, то все рутинные задачи, +такие как тестирование и оценка качества кода, приходится повторять каждому из них. А это ведет к потере времени. -## Решение +## Как именно решает проблему -Программное обеспечение CI автоматически следит за тем, чтобы изменения, вносимые в код, -нормально в него интегрировались после каждого коммита, сделанного разработчиком. -Использование CI-сервера для проверки качества кода, запуска тестов и даже развертывания является довольно распространенной практикой, -превращая его в один из неотъемлемых инструментов для контроля качества в командах разработчиков. -CI позволяет командам разработчиков перевести каждый коммит кода либо в разряд провальных, либо в разряд жизнеспособных кандидатов на релиз. +Программное обеспечение для CI автоматически следит за тем, чтобы изменения, которые вносятся в код, сразу и четко интегрировались в него после каждого коммита, сделанного разработчиком. +Использование CI-сервера для проверки качества кода, запуска тестов и даже развертывания является довольно распространенной практикой. +Таким образом, CI-сервер становится одиним из неотъемлемых инструментов для контроля качества в командах разработчиков. +CI позволяет командам разработчиков перевести каждый коммит либо к отклоненным коммитам, либо к готовым кандидатам на релиз. ## Связанные термины diff --git a/content/ru/devops.md b/content/ru/devops.md index 9c83d94f35..272ce4333f 100644 --- a/content/ru/devops.md +++ b/content/ru/devops.md @@ -5,30 +5,28 @@ category: concept tags: ["methodology", "", ""] --- -## Описание +DevOps — это методология, в рамках которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) +его эксплуатации (**OP**eration**S**) в production. Отсюда и название DevOps. +Методология DevOps выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. +DevOps предполагает наличие групп инженеров, которые работают над небольшими независимыми компонентами, а не над крупным функциональным блоком, в котором такие компоненты были бы тесно связаны, +позволяя сократить случаи передачи ответственности за компонент от одной команды к другой — а это нередко влечет за собой появление ошибок. -DevOps — это методология, в которой команды отвечают за весь процесс от разработки приложения (**DEV**elopment) -до его эксплуатации (**OP**eration**S**) в production, отсюда и название DevOps. -Она выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. -DevOps предполагает наличие групп инженеров, которые работают над небольшими компонентами-частями (а не над целой функцией), -что позволяет сократить количество передачи информации между разными людьми, что является распространенным источником ошибок. - -## Проблема +## Какую проблему решает Традиционно в крупных организациях с [тесно связанными](/tightly-coupled-architectures/) [монолитными приложениями](/monolithic-apps/) работа, как правило, была разделена между несколькими группами. Это приводило к необходимости часто передавать задачи друг другу и длительным срокам выполнения работ. -Каждый раз, когда компонент или обновление были готовы, они помещались в очередь для следующей команды. +Каждый раз, когда компонент или обновление были готовы, они помещались в бэклог следующей команды. Поскольку каждый инженер работал только над небольшой частью проекта, было сложно сказать, кто и за что отвечает. -Каждая команда стремилась выполнить свою часть работы и передать проект следующей, а не реализовать функции, нужные заказчику — -наблюдался явный конфликт приоритетов. +В итоге каждая команда стремилась просто выполнить свою часть работы и передать проект следующей команде, а не реализовать функции, необходимые заказчику (или пользователю) — +то есть наблюдался явный конфликт приоритетов. К тому времени, когда код, наконец, попадал в production, он проходил через такое количество разработчиков и команд, -что при возникновении проблемы было крайне трудно отследить ее источник. +что при возникновении любой проблемы было крайне трудно отследить ее источник. DevOps кардинально изменил этот подход. -## Решение +## Как именно решает проблему -Когда одна команда отвечает за весь жизненный цикл приложения, это позволяет свести к минимуму необходимость передавать информацию, +Когда одна команда отвечает за весь жизненный цикл приложения, это позволяет свести к минимуму необходимость передавать ответственность от одной команды к другой, снизить риски при развертывании в production и повысить качество кода (поскольку команды также отвечают за его работу в production). -Кроме того, растет удовлетворенность сотрудников, поскольку те ощущают себя более самостоятельными и причастными к общему делу. +Кроме того, растет общая удовлетворенность сотрудников от работы, поскольку они ощущают себя более самостоятельными и видят свое влияние на проект и ответственность за общий результат. diff --git a/content/ru/devsecops.md b/content/ru/devsecops.md index 780171d909..b7d0286023 100644 --- a/content/ru/devsecops.md +++ b/content/ru/devsecops.md @@ -5,26 +5,24 @@ category: concept tags: ["methodology", "security", ""] --- -## Описание +Термин DevSecOps означает слияние компетенций в области разработки (**DEV**elopment), безопасности (**SEC**urity) и эксплуатации (**OP**eration**S**) на уровне культуры. +Он добавляет в подход [DevOps](/ru/devops/) приоритеты в области безопасности — причем так, +чтобы минимально вмешиваться в процессы разработки и эксплуатации. +Как и DevOps, DevSecOps — это некий культурный сдвиг, который форсируется как самим фактом внедрения новых технологий, так и специфическими методами их внедрения. -Термин DevSecOps означает культурное слияние компетенций в области разработки (**DEV**elopment), безопасности (**SEC**urity) и эксплуатации (**OP**eration**S**). -Он дополняет подход [DevOps](/ru/devops/) приоритетами в области безопасности -с минимальным влиянием на процесс разработки и эксплуатации. -Как и DevOps, DevSecOps — это культурный сдвиг, подталкиваемый новыми технологиями и уникальными методами их внедрения. +## Какую проблему решает -## Проблема +Практики DevOps включают [непрерывную интеграцию](/ru/continuous-integration/) и [непрерывное развертывание](/ru/continuous-deployment/). +Кроме того, они ускоряют цикл разработки и релизный цикл приложений. +К сожалению, если автоматизация релизов не учитывает интересы всех заинтересованных сторон (стейкхолдеров) внутри организации, она может усугубить существующие проблемы. +А быстрый выпуск нового программного обеспечения без учета требований безопасности может усугубить проблемы с безопасностью на уровне всей компании. -Практики DevOps включают [непрерывную интеграцию](/ru/continuous-integration/) и [непрерывное развертывание](/ru/continuous-deployment/) -и ускоряют циклы разработки и выпуска приложений. -К сожалению, автоматизация релизов, не учитывающая интересы всех заинтересованных сторон в организации, может усугубить существующие проблемы. -Быстрый выпуск нового программного обеспечения без учета требований безопасности может негативно сказаться на компании. - -## Решение +## Как именно решает проблему DevSecOps фокусируется на устранении командной разобщенности и способствует созданию безопасных автоматизированных рабочих процессов. При выборе приложений для обеспечения безопасности организации должны использовать преимущества -автоматизированных рабочих CI/CD-процессов и контроля за соблюдением политик, которые расширяют возможности разработчиков. -Цель — не мешать, а следить за соблюдением политик безопасности, -одновременно предоставляя пользователям точную информацию о том, как развивать их проект. +автоматизированных процессов CI/CD и контроля за соблюдением политик, которые расширяют возможности, полномочия и статус разработчиков. +Цель практик DevSecOps — не блокировать работу инженеров, а обеспечивать следование политикам безопасности, +в то же время предоставляя техническим командам точную и подробную информацию о том, как правильно развивать проект. При правильном внедрении организация получает более эффективное взаимодействие в коллективе, -снижает количество ошибок в системе безопасности и связанные с ними затраты. +снижает количество инцидентов, связанных с безопасностью, и вызванные ими расходы. diff --git a/content/ru/kubernetes.md b/content/ru/kubernetes.md index 8c9401bb2f..b6d1f3c034 100644 --- a/content/ru/kubernetes.md +++ b/content/ru/kubernetes.md @@ -5,34 +5,32 @@ category: technology tags: ["infrastructure", "fundamental", ""] --- -## Описание +Kubernetes (часто сокращается до K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. +Kubernetes автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая в качестве «операционной системы для центров обработки данных», которая управляет приложениями в [распределенных системах](/distributed-systems/). -Kubernetes (часто используют его сокращенное название K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. -Она автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая "операционной системой" на уровне центров обработки данных для управления приложениями в [распределенных системах](/distributed-systems/). +Kubernetes планирует (т. е. распределяет) [контейнеры](/ru/container/) по [узлам](/nodes/) [кластера](/cluster/), попутно обеспечивая их различными инфраструктурными ресурсами: например, балансировщиками нагрузки, постоянным хранилищем и т. д., которые необходимы для запуска контейнеризованных приложений. -Kubernetes планирует (т. е. распределяет) [контейнеры](/ru/container/) на [узлы](/nodes/) [кластера](/cluster/), попутно обеспечивая их различными инфраструктурными ресурсами, такими как балансировщики нагрузки, постоянное хранилище и т. д., необходимыми для запуска контейнеризованных приложений. +Kubernetes также обеспечивает автоматизацию и расширяемость, позволяя пользователям использовать декларативность (см. ниже) и обеспечивать воспроизводимость в процессе развертывания приложений. +[API](/application-programming-interface/) Kubernetes позволяет опытным пользователям расширять и дополнять его возможности по автоматизации в соответствии со своими потребностями. -Kubernetes обеспечивает автоматизацию и расширяемость, позволяя пользователям развертывать приложения декларативным (см. ниже) и воспроизводимым образом. -[API](/application-programming-interface/), встроенный в Kubernetes, позволяет опытным пользователям расширять и дополнять его возможности в соответствии со своими потребностями. +## Какую проблему решает -## Проблема +Автоматизация инфраструктуры и декларативное управление конфигурацией уже давно занимают важное место в IT, но с ростом популярности [облачных вычислений](/cloud-computing/) их актуальность возросла еще сильнее. -Автоматизация инфраструктуры и декларативное управление конфигурацией уже давно занимают центральное место в информационных технологиях. С ростом популярности [облачных вычислений](/cloud-computing/) их актуальность значительно возросла. +Спрос на вычислительные ресурсы постоянно увеличивается, а компании стараются сделать труд инженеров максимально эффективным, чтобы оптимизировать ФОТ. Новые технологии и методы работы как раз призваны удовлетворить обе эти потребности. -Спрос на вычислительные ресурсы постоянно увеличивается. В то же время организации стараются сделать труд инженеров максимально эффективным, чтобы оптимизировать расходы на рабочую силу. Новые технологии и методы работы призваны удовлетворить обе этих потребности. +## Как именно решает проблему -## Решение +Как и традиционные инструменты или подходы, например, [инфраструктура как код (IaC)](/infrastructure-as-code/), Kubernetes помогает автоматизировать процессы, но у него есть и серьезное преимущество перед ними — использование контейнеров. -Как и традиционные инструменты типа [инфраструктура-как-код (IaC)](/infrastructure-as-code/), Kubernetes помогает автоматизировать процессы, а его отличительной чертой и преимуществом является использование контейнеров. +Контейнеры более устойчивы к накапливающимся со временем изменениям в конфигурации, нежели [виртуальные](/virtual-machine/) или физические машины. -Контейнеры более устойчивы к изменяющейся со временем конфигурации, нежели [виртуальные](/virtual-machine/) или физические машины. - -Кроме того, Kubernetes работает декларативно, то есть пользователь не указывает компьютеру, что нужно сделать, а лишь описывает желаемое состояние инфраструктуры (обычно в виде файлов-манифестов на языке YAML). +Кроме того, Kubernetes работает декларативно, то есть пользователь не указывает компьютеру, что и как нужно сделать, а лишь описывает желаемое конечное состояние инфраструктуры (обычно в виде файлов-манифестов на языке YAML). Все остальное Kubernetes берет на себя. -Таким образом, Kubernetes в высшей степени совместим с подходом инфраструктура-как-код. +Таким образом, Kubernetes в высшей степени совместим с подходом «инфраструктура как код». В Kubernetes также встроена функция [самовосстановления](/self-healing/). -Фактическое состояние кластера всегда стремится к состоянию, которое задал оператор. -Когда Kubernetes обнаруживает отклонение от того, что описано в файлах манифеста, в работу вступает контроллер Kubernetes и устраняет его. -Инфраструктура, с которой работает Kubernetes, может в любой момент измениться, однако оркестратор постоянно и автоматически адаптируется к этим изменениям, следя за тем, чтобы состояние кластера всегда соответствовало желаемому. +Фактическое состояние кластера всегда стремится к тому состоянию, которое описал оператор. +Когда Kubernetes обнаруживает отклонение от файлов манифеста, в дело вступает контроллер Kubernetes, который устраняет это отклонение. +Инфраструктура, с которой работает Kubernetes, может в любой момент измениться, однако оркестратор постоянно и автоматически адаптируется к изменениям, следя за тем, чтобы фактическое состояние кластера всегда соответствовало желаемому состоянию. diff --git a/content/ru/style-guide/_index.md b/content/ru/style-guide/_index.md index 36f3d33027..38e6e580ed 100644 --- a/content/ru/style-guide/_index.md +++ b/content/ru/style-guide/_index.md @@ -12,7 +12,7 @@ menu: Глоссарий Cloud Native придерживается [стандартного руководства по стилю репозитория CNCF](https://github.com/cncf/foundation/blob/master/style-guide.md). Кроме того, он следует перечисленным ниже правилам: -1. Используйте простой, доступный язык; избегайте технического жаргона и "модных" словечек. +1. Используйте простой, доступный язык; избегайте технического жаргона и «модных» словечек. 2. [Избегайте разговорного стиля](https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%BD%D1%8B%D0%B9_%D1%81%D1%82%D0%B8%D0%BB%D1%8C). 3. [Повествование должно быть последовательным и конкретным](https://guidetogrammar.org/grammar/composition/abstract.htm). 4. [Избегайте сокращений](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%8F%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5). From da9e375815d27854f4a248efa38949af84c2bd01 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Tue, 16 Jan 2024 16:17:28 +0530 Subject: [PATCH 038/130] minimal viable definition update on cloud computing Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index fe2ce7da3a..62090db0a5 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,36 +5,14 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- -## What it is - -Cloud computing offers compute resources like CPU, network, and disk capabilities on-demand over the internet, allowing users to access and use computing power in a remote physical location. -It extends beyond merely providing resources and we generally differentiate between private and public cloud. -These models differ based on the usage and accessibility of the cloud infrastructure. - -In a private cloud, the infrastructure is exclusively dedicated to a single organization, -and it can exist both on-premises (within the organization's physical location) or off-premises (hosted by a third-party service provider). -This setup offers more control over the infrastructure, data security, and regulatory compliance, -and can be customized to meet specific business needs. - -On the other hand, a public cloud is a shared infrastructure available for open public services, -where resources are owned and operated by third-party cloud service providers. - -Additionally, a hybrid cloud model combines aspects of both private and public clouds. -This model enables businesses to leverage the advantages of both deployment models by integrating their private cloud with the public cloud. -This combination can be used for creating a balanced, flexible, and cost-effective cloud environment. - -Therefore, the distinction among cloud computing models isn't solely about whether the infrastructure is private or public. -It also involves the location of the infrastructure and the customization level it can offer, -as well as the possibility to create a hybrid solution that maximizes the benefits of both environments. +Cloud computing is a method of providing computing resources such as CPU power, storage, and network capabilities via the internet. It allows users to leverage remote computing power located in distant data centers. There are two types: private cloud, dedicated to a single organization, and public cloud, open for general use. ## Problem it addresses -Organizations traditionally faced two main challenges when attempting to expand computing power. -They could either acquire, support, and design (new) facilities to host their physical servers and network or expand and maintain existing ones. -Cloud computing solves that challenge by allowing organizations to outsource some of their computing needs. +Historically, organizations looking to increase their computing capacity faced a dilemma: either invest in new facilities for their servers and networks or upgrade existing ones. This process was time-consuming and resource-intensive. ## How it helps -Cloud providers allow organizations to rent compute resources on-demand and pay for usage, delivering two key benefits. -First, organizations can focus on their product or service without waiting, planning, and spending resources on new physical infrastructure. And second, they can simply [scale](/scalability/) on-demand as needed. -Cloud computing allows organizations to adopt as much or as little infrastructure as they need. +Cloud computing addresses this by enabling organizations to rent computing resources as needed, without the burden of managing physical infrastructure. This approach offers two main advantages. Firstly, it frees organizations to concentrate on their core business, eliminating delays and costs associated with setting up new infrastructure. Secondly, it provides the flexibility to [scale](/scalability/) resources up or down based on demand, aligning infrastructure needs closely with business requirements. Thus, cloud computing offers a practical solution for organizations to access the amount of infrastructure they need, when they need it, without overcommitting resources. + +--- From dd742daa958d6f299730428c62c289994f52645c Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Tue, 16 Jan 2024 16:22:50 +0530 Subject: [PATCH 039/130] Update cloud-computing.md Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 62090db0a5..470a192c6b 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,6 +5,8 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- +## What it is + Cloud computing is a method of providing computing resources such as CPU power, storage, and network capabilities via the internet. It allows users to leverage remote computing power located in distant data centers. There are two types: private cloud, dedicated to a single organization, and public cloud, open for general use. ## Problem it addresses From 3d6f47b6060214014ea00e992fef5da13fd1d341 Mon Sep 17 00:00:00 2001 From: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> Date: Tue, 16 Jan 2024 16:24:25 +0530 Subject: [PATCH 040/130] Update cloud-computing.md Signed-off-by: Ronit Banerjee <91361382+ronitblenz@users.noreply.github.com> --- content/en/cloud-computing.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 470a192c6b..8ed8f57198 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,8 +5,6 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- -## What it is - Cloud computing is a method of providing computing resources such as CPU power, storage, and network capabilities via the internet. It allows users to leverage remote computing power located in distant data centers. There are two types: private cloud, dedicated to a single organization, and public cloud, open for general use. ## Problem it addresses @@ -15,6 +13,6 @@ Historically, organizations looking to increase their computing capacity faced a ## How it helps -Cloud computing addresses this by enabling organizations to rent computing resources as needed, without the burden of managing physical infrastructure. This approach offers two main advantages. Firstly, it frees organizations to concentrate on their core business, eliminating delays and costs associated with setting up new infrastructure. Secondly, it provides the flexibility to [scale](/scalability/) resources up or down based on demand, aligning infrastructure needs closely with business requirements. Thus, cloud computing offers a practical solution for organizations to access the amount of infrastructure they need, when they need it, without overcommitting resources. +Cloud computing addresses this by enabling organizations to rent computing resources as needed, without the burden of managing physical infrastructure. This approach offers two main advantages. Firstly, it frees organizations to concentrate on their core business, eliminating delays and costs associated with setting up new infrastructure. Secondly, it provides the flexibility to [scale](https://github.com/ronitblenz/glossary/blob/cloud_computing/content/en/scalability.md) resources up or down based on demand, aligning infrastructure needs closely with business requirements. Thus, cloud computing offers a practical solution for organizations to access the amount of infrastructure they need, when they need it, without overcommitting resources. --- From d7ccd29ff1edde80a432ed2adcf5b89a2b7c25cf Mon Sep 17 00:00:00 2001 From: Nate W Date: Thu, 15 Feb 2024 10:13:33 -0800 Subject: [PATCH 041/130] Update content/en/cloud-computing.md Co-authored-by: Rolfe Dlugy-Hegwer Signed-off-by: Nate W --- content/en/cloud-computing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 8ed8f57198..d6f704c469 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,7 +5,7 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- -Cloud computing is a method of providing computing resources such as CPU power, storage, and network capabilities via the internet. It allows users to leverage remote computing power located in distant data centers. There are two types: private cloud, dedicated to a single organization, and public cloud, open for general use. +Cloud computing offers CPU power, storage, and network capabilities over the internet, enabling scalable and flexible access to resources across global data centers. It spans private clouds, dedicated to single organizations for security and control, and public clouds, open for widespread use, optimizing cost and scalability. ## Problem it addresses From 215e94649c79c67184465f014d454ec9d24dd2c4 Mon Sep 17 00:00:00 2001 From: Nate W Date: Thu, 15 Feb 2024 10:14:01 -0800 Subject: [PATCH 042/130] Update content/en/cloud-computing.md Co-authored-by: Rolfe Dlugy-Hegwer Signed-off-by: Nate W --- content/en/cloud-computing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index d6f704c469..97884baec1 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -9,7 +9,7 @@ Cloud computing offers CPU power, storage, and network capabilities over the int ## Problem it addresses -Historically, organizations looking to increase their computing capacity faced a dilemma: either invest in new facilities for their servers and networks or upgrade existing ones. This process was time-consuming and resource-intensive. +Traditionally, organizations needing more computing capacity had to choose between costly investments in new server facilities or upgrades to existing infrastructure—a slow and resource-heavy process. ## How it helps From 04b3af81ea7e66032864070b8004ac11d5909f4c Mon Sep 17 00:00:00 2001 From: Nate W Date: Thu, 15 Feb 2024 10:14:59 -0800 Subject: [PATCH 043/130] Update content/en/cloud-computing.md Co-authored-by: Rolfe Dlugy-Hegwer Signed-off-by: Nate W --- content/en/cloud-computing.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 97884baec1..f2dde88082 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -13,6 +13,9 @@ Traditionally, organizations needing more computing capacity had to choose betwe ## How it helps -Cloud computing addresses this by enabling organizations to rent computing resources as needed, without the burden of managing physical infrastructure. This approach offers two main advantages. Firstly, it frees organizations to concentrate on their core business, eliminating delays and costs associated with setting up new infrastructure. Secondly, it provides the flexibility to [scale](https://github.com/ronitblenz/glossary/blob/cloud_computing/content/en/scalability.md) resources up or down based on demand, aligning infrastructure needs closely with business requirements. Thus, cloud computing offers a practical solution for organizations to access the amount of infrastructure they need, when they need it, without overcommitting resources. +Organizations can use cloud computing to rent computing resources on demand without the burden of managing physical infrastructure. This strategy has two main advantages: +- It removes the delays and expenses of establishing new infrastructure so organizations can concentrate on their core business. +- Organizations can [scale](https://github.com/ronitblenz/glossary/blob/cloud_computing/content/en/scalability.md) their resources up or down based on demand, aligning infrastructure with business needs. +Thus, cloud computing provides an efficient way for organizations to access necessary infrastructure flexibly and economically without excess commitment. --- From b932930804a728ee31fe19524a72a90ae0ea14f9 Mon Sep 17 00:00:00 2001 From: Dmitry Shurupov Date: Fri, 9 Feb 2024 17:49:02 +0700 Subject: [PATCH 044/130] More interlinking for containerisation & virtualisation Signed-off-by: Dmitry Shurupov --- content/en/container-orchestration.md | 2 +- content/en/containerization.md | 2 +- content/en/continuous-delivery.md | 7 ++++--- content/en/virtual-machine.md | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/content/en/container-orchestration.md b/content/en/container-orchestration.md index 504cdec363..5cc57322ff 100644 --- a/content/en/container-orchestration.md +++ b/content/en/container-orchestration.md @@ -4,7 +4,7 @@ status: Completed category: Concept --- -[Container](/container/) orchestration refers to managing and automating the lifecycle of containerized applications in dynamic environments. +[Container](/container/) orchestration refers to managing and automating the lifecycle of [containerized](/containerization/) applications in dynamic environments. It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes)), which enables deployments, (auto)scaling, auto-healing, and monitoring. Orchestration is a metaphor: The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should. diff --git a/content/en/containerization.md b/content/en/containerization.md index 60b01eefe3..8f51c9aedc 100644 --- a/content/en/containerization.md +++ b/content/en/containerization.md @@ -11,7 +11,7 @@ As long as the output is a container image that adheres to this standard, which ## Problem it addresses -Before containers became prevalent, organizations relied on virtual machines (VMs) to +Before [containers](/container/) became prevalent, organizations relied on [virtual machines](/virtual-machine/) (VMs) to orchestrate multiple applications on a single [bare-metal machine](/bare-metal-machine/). VMs are significantly larger than containers and require a hypervisor to run. Due to the storage, backup, and transfer of these larger VM templates, creating the VM templates is also slow. diff --git a/content/en/continuous-delivery.md b/content/en/continuous-delivery.md index 9cec1a23d8..ca9afe0788 100644 --- a/content/en/continuous-delivery.md +++ b/content/en/continuous-delivery.md @@ -10,8 +10,9 @@ in which code changes are automatically deployed into an acceptance environment (or, in the case of continuous deployment, into production). CD crucially includes procedures to ensure that software is adequately tested before deployment and provides a way to rollback changes if deemed necessary. -Continuous integration (CI) is the first step towards continuous delivery -(i.e., changes have to merge cleanly before being tested and deployed). +[Continuous integration](/continuous-integration/) (CI) is the first step towards +continuous delivery (i.e., changes have to merge cleanly before being tested and +deployed). ## Problem it addresses @@ -26,7 +27,7 @@ deploying more changes at once and increasing the risk that something goes wrong CD strategies create a fully automated path to production that tests and deploys the software using various deployment strategies such as [canary](/canary-deployment/) or [blue-green](/blue-green-deployment/) releases. -This allows developers to deploy code frequently, giving them peace of mind that the new revision has been tested. +This allows developers to deploy code frequently, giving them peace of mind that the new revision has been tested. ## Related terms diff --git a/content/en/virtual-machine.md b/content/en/virtual-machine.md index 1f27483723..b819a5083f 100644 --- a/content/en/virtual-machine.md +++ b/content/en/virtual-machine.md @@ -31,4 +31,4 @@ VMs allow you to use your existing physical hardware resources better by placing multiple virtual machines on a single physical machine. Not bound to a particular physical machine, VMs are also more resilient than physical machines. When a physical machine needs to go offline, -the VMs running on it can be moved to another machine with little to no downtime +the VMs running on it can be moved to another machine with little to no downtime. \ No newline at end of file From 59338a1d87e6fe133cc1411ceb39a0b1a1040618 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Sat, 17 Feb 2024 22:13:04 +0900 Subject: [PATCH 045/130] [ja] Localize Service Proxy into Japanese (#2898) Signed-off-by: Junya Okabe Signed-off-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/service-proxy.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 content/ja/service-proxy.md diff --git a/content/ja/service-proxy.md b/content/ja/service-proxy.md new file mode 100644 index 0000000000..689a35f202 --- /dev/null +++ b/content/ja/service-proxy.md @@ -0,0 +1,27 @@ +--- +title: サービスプロキシ +status: Completed +category: テクノロジー +tags: ["ネットワーキング", "", ""] +--- + +サービスプロキシは、特定の[サービス](/ja/service/)への、あるいはそこからのトラフィックをインターセプトします。 +そして、それに対して何らかのロジックを適用した後、そのトラフィックを別のサービスに転送します。 +これは、ネットワークトラフィックに関する情報を収集したり、ルールを適用したりする仲介者として機能します。 + +## 解決すべき問題はなんですか + +サービス間のコミュニケーション(通称: ネットワークトラフィック)を追跡し、それを変換したりリダイレクトしたりするためには、データを収集する必要があります。 +従来、データ収集とネットワークトラフィック管理を行うコードは、各アプリケーション内に組み込まれていました。 + +## どのように役に立つのでしょうか + +サービスプロキシにより、この機能を外部化することができます。 +もはやアプリ内に組み込む必要はありません。 +代わりに、プラットフォームレイヤー(アプリが実行される場所)に組み込まれるようになりました。 + +サービス間のゲートキーパーとして、プロキシはどのような種類のコミュニケーションが行われているかについての洞察を提供します。 +その洞察に基づき、特定のリクエストをどこに送るかを決定したり、完全に拒否したりします。 + +プロキシは重要なデータを収集し、ルーティングを管理します(トラフィックをサービス間で均等に分散させたり、一部のサービスが故障した場合には再ルーティングしたり)。 +また、接続を暗号化し、コンテンツをキャッシュします(リソース消費を減らします)。 From d9d1f71345994b7bf23615f02f9a74b1323b31e7 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Sat, 17 Feb 2024 22:19:46 +0900 Subject: [PATCH 046/130] [ja] Localize Mutual Transport Layer Security (mTLS) into Japanese (#2916) Signed-off-by: Junya Okabe Signed-off-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/mutual-transport-layer-security.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 content/ja/mutual-transport-layer-security.md diff --git a/content/ja/mutual-transport-layer-security.md b/content/ja/mutual-transport-layer-security.md new file mode 100644 index 0000000000..821f7bed45 --- /dev/null +++ b/content/ja/mutual-transport-layer-security.md @@ -0,0 +1,22 @@ +--- +title: 相互TLS認証(mTLS) +status: Completed +category: コンセプト +tags: ["セキュリティ", "ネットワーキング", ""] +--- + +相互TLS認証(mTLS)は、2つの[サービス](/ja/service/)間で送信されるメッセージを認証し、暗号化するために使用される技術です。 +相互TLS認証は、標準の[Transport Layer Security](/ja/transport-layer-security/) (TLS)プロトコルですが、一方の接続元だけを検証するのではなく、その両方が検証されます。 + +## 解決すべき問題はなんですか + +[マイクロサービス](/ja/microservices-architecture/)はネットワーク上で通信します。 +そして、あなたのWi-Fiネットワークのように、そのネットワーク上での通信はハッキングされる可能性があります。 +mTLSは、関係者以外が盗聴したり、正当なリクエストになりすましたりすることを防ぎます。 + +## どのように役に立つのでしょうか + +mTLSは、クライアントとサーバー間の双方向のトラフィックが安全で信頼できることを保証します。 +また、ネットワークやアプリケーションにログインするユーザーのための追加のセキュリティ層を提供します。 +これは例えばIoTデバイスのように、ログインプロセスを行わずに接続するクライアントデバイスからの接続も検証します。 +オンパス攻撃、スプーフィング攻撃、クレデンシャルスタッフィング、ブルートフォース攻撃などの攻撃は、mTLSによって防ぐことができます。 From 54e1d8d1b84372ca1618a8746cd213c166ca0de7 Mon Sep 17 00:00:00 2001 From: shizhenhu Date: Wed, 21 Feb 2024 07:07:24 +0900 Subject: [PATCH 047/130] Localize vertical scaling for Japanese (#2948) Signed-off-by: shizhenhu --- content/ja/horizontal-scaling.md | 2 +- content/ja/vertical-scaling.md | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 content/ja/vertical-scaling.md diff --git a/content/ja/horizontal-scaling.md b/content/ja/horizontal-scaling.md index 2ab37f55ad..5ae37a225a 100644 --- a/content/ja/horizontal-scaling.md +++ b/content/ja/horizontal-scaling.md @@ -30,4 +30,4 @@ tags: ["インフラストラクチャー", "", ""] ## 関連する用語はありますか * [垂直スケーリング](/ja/vertical-scaling/) -* [オートスケール](/ja/auto-scaling/) +* [オートスケーリング](/ja/auto-scaling/) diff --git a/content/ja/vertical-scaling.md b/content/ja/vertical-scaling.md new file mode 100644 index 0000000000..cdaa5b0ddd --- /dev/null +++ b/content/ja/vertical-scaling.md @@ -0,0 +1,23 @@ +--- +title: 垂直スケーリング +status: Completed +category: コンセプト +tags: ["インフラストラクチャー", "", ""] +--- + +垂直スケーリング(「スケールアップおよびスケールダウン」とも呼ばれる)は、個別の[ノード](/ja/nodes/)にCPUとメモリを追加することでシステムの処理能力を強化する方法です。 +例えば、4GB RAMのコンピュータを持っていて、その容量を16GB RAMに増やしたい場合、垂直スケーリングすることは、16GB RAMシステムに切り替えることを意味します。(別のスケーリングアプローチについては、[水平スケーリング](/ja/horizontal-scaling/)を参照してください。) + +## 解決すべき問題はなんですか + +アプリケーションへの需要が現在のアプリケーションインスタンスの処理能力を超えると、システムに処理能力を強化する方法が必要です。既存のノードにさらなる計算リソースを追加する(垂直スケーリング)か、システムにより多くのノードを追加する(水平スケーリング)ことができます。[スケーラビリティ](/ja/scalability/)は、競争力、効率、評判、品質に貢献します。 + +## どのように役に立つのでしょうか + +垂直スケーリングは、アプリケーションのコードを変更せずにサーバーの処理能力を変更することができます。 +一方で、水平スケーリングの場合、アプリケーションがスケールするために複製可能でなければなりません。コードの変更が必要になる可能性もあります。 +垂直スケーリングは、計算リソースを追加することで既存のアプリケーションの処理能力を強化し、アプリケーションがより多くのリクエストを処理し、より多くの作業を同時に行うことを可能にします。 + +## 関連する用語はありますか +* [水平スケーリング](/ja/horizontal-scaling/) +* [オートスケーリング](/ja/auto-scaling/) \ No newline at end of file From 19b78e49354af18f494030565422eedff5ce5308 Mon Sep 17 00:00:00 2001 From: Sajib Adhikary <60180521+sajibAdhi@users.noreply.github.com> Date: Sat, 24 Feb 2024 23:14:27 +0600 Subject: [PATCH 048/130] [bn] Update main branch with dev-bn (#2894) Signed-off-by: Sachin Sharma Signed-off-by: Tanmay Sarkar <84321236+sarkartanmay393@users.noreply.github.com> Signed-off-by: Md Shahriyar Al Mustakim Mitul Signed-off-by: AbdullahArean <2019-917-795@student.cse.du.ac.bd> Signed-off-by: Abdullah Ibne Hanif Arean <70502574+AbdullahArean@users.noreply.github.com> Signed-off-by: Tanmay Sarkar Signed-off-by: nazma1234 <78928674+nazma1234@users.noreply.github.com> Signed-off-by: Saber382 <78927820+Saber382@users.noreply.github.com> Signed-off-by: Imtiaz1234 <78928464+Imtiaz1234@users.noreply.github.com> Signed-off-by: Arindam Majumder <109217591+Arindam200@users.noreply.github.com> Signed-off-by: Abhijeet Basfore <68768410+abhijeet-26@users.noreply.github.com> Signed-off-by: Sajib Adhikary Signed-off-by: @sajibAdhi Signed-off-by: Noor E Jannat Nafia <90461705+noor-e-jannatnafia@users.noreply.github.com> Signed-off-by: Nikhil Barik <36399086+nerdynikhil@users.noreply.github.com> Signed-off-by: Nikhil Barik Signed-off-by: Refayatul Signed-off-by: Khan MD Saifullah Anjar <94192701+kmsanjar47@users.noreply.github.com> Signed-off-by: mahadihassanriyadh Signed-off-by: Md. Mahadi Hassan Riyadh Signed-off-by: Ritam Samanta <91908473+RitamSamant@users.noreply.github.com> Signed-off-by: Naymul Islam <68547750+ai-naymul@users.noreply.github.com> Signed-off-by: Khan MD Saifullah Anjar Signed-off-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Signed-off-by: Debaditya Som <121785700+Debaditya-Som@users.noreply.github.com> Signed-off-by: Sajib Adhikary <60180521+sajibAdhi@users.noreply.github.com> Co-authored-by: Md Shahriyar Al Mustakim Mitul Co-authored-by: Umme Abira Azmary <95493187+Mouly22@users.noreply.github.com> Co-authored-by: Imtiaz1234 <78928464+Imtiaz1234@users.noreply.github.com> Co-authored-by: seokho-son Co-authored-by: Shadman Rafy <103331572+smrafy20@users.noreply.github.com> Co-authored-by: nazma1234 <78928674+nazma1234@users.noreply.github.com> Co-authored-by: Saber382 <78927820+Saber382@users.noreply.github.com> Co-authored-by: Saber307 <78928137+Saber307@users.noreply.github.com> Co-authored-by: Md Shahriyar Al Mustakim Mitul <57193846+mitul3737@users.noreply.github.com> Co-authored-by: Mahrjose Co-authored-by: MD Ikramul Kayes <67923321+ikramulkayes@users.noreply.github.com> Co-authored-by: Md Mahibul Haque Co-authored-by: Jihoon Seo Co-authored-by: Sachin Sharma <66516153+devsachinsharma@users.noreply.github.com> Co-authored-by: Tanmay Sarkar <84321236+sarkartanmay393@users.noreply.github.com> Co-authored-by: Abdullah Ibne Hanif Arean <70502574+AbdullahArean@users.noreply.github.com> Co-authored-by: Pratik Dey <56970651+PratikDey@users.noreply.github.com> Co-authored-by: Arindam Majumder <109217591+Arindam200@users.noreply.github.com> Co-authored-by: Abhijeet Basfore <68768410+abhijeet-26@users.noreply.github.com> Co-authored-by: sajibAdhi Co-authored-by: Noor E Jannat Nafia <90461705+noor-e-jannatnafia@users.noreply.github.com> Co-authored-by: Nikhil Barik Co-authored-by: Refayatul Co-authored-by: Khan MD Saifullah Anjar <94192701+kmsanjar47@users.noreply.github.com> Co-authored-by: Md. Mahadi Hassan Riyadh Co-authored-by: Ritam Samanta <91908473+RitamSamant@users.noreply.github.com> Co-authored-by: Naymul Islam <68547750+ai-naymul@users.noreply.github.com> Co-authored-by: Khan MD Saifullah Anjar Co-authored-by: A K M Jubaeir Islam <32791753+Zubiii333@users.noreply.github.com> Co-authored-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Co-authored-by: Debaditya Som <121785700+Debaditya-Som@users.noreply.github.com> --- content/bn/_TEMPLATE.md | 12 +- content/bn/_index.md | 52 ++++- content/bn/abstraction.md | 2 +- content/bn/agile-software-development.md | 4 +- content/bn/api-gateway.md | 4 +- .../bn/application-programming-interface.md | 3 +- content/bn/auto-scaling.md | 28 +++ content/bn/auto_scaling.md | 12 -- content/bn/bare-metal-machine.md | 28 ++- content/bn/blue-green-deployment.md | 4 +- content/bn/canary-deployment.md | 4 +- content/bn/chaos-engineering.md | 4 +- content/bn/client-server-architecture.md | 4 +- content/bn/cloud-computing.md | 4 +- content/bn/cloud-native-apps.md | 4 +- content/bn/cloud-native-security.md | 4 +- content/bn/cloud-native-tech.md | 4 +- content/bn/cluster.md | 4 +- content/bn/container-image.md | 2 - content/bn/container-orchestration.md | 22 ++ content/bn/container.md | 6 +- content/bn/containerization.md | 4 +- content/bn/containers-as-a-service.md | 4 +- content/bn/continuous-delivery.md | 4 +- content/bn/continuous-deployment.md | 4 +- content/bn/continuous-integration.md | 4 +- content/bn/contribute/_index.md | 202 +++++++++++++----- content/bn/data-center.md | 36 ++-- content/bn/database-as-a-service.md | 2 - content/bn/debugging.md | 6 +- content/bn/devops.md | 4 +- content/bn/devsecops.md | 4 +- content/bn/digital-certificate.md | 22 ++ content/bn/distributed-apps.md | 28 +-- content/bn/distributed-systems.md | 19 +- content/bn/ebpf.md | 43 ++++ content/bn/edge-computing.md | 4 +- content/bn/event-driven-architecture.md | 4 +- content/bn/event-streaming.md | 4 +- content/bn/firewall.md | 2 - content/bn/function-as-a-service.md | 6 +- content/bn/gitops.md | 6 +- content/bn/horizontal-scaling.md | 4 +- content/bn/hypervisor.md | 4 +- content/bn/idempotence.md | 4 +- content/bn/immutable-infrastructure.md | 4 +- content/bn/infrastructure-as-a-service.md | 5 +- content/bn/infrastructure-as-code.md | 4 +- content/bn/ingress.md | 30 +++ content/bn/kubernetes.md | 30 ++- content/bn/load-balancer.md | 6 +- content/bn/loosely-coupled-architecture.md | 4 +- content/bn/managed-services.md | 2 - content/bn/microservices-architecture.md | 4 +- content/bn/monolithic-apps.md | 3 +- content/bn/multitenancy.md | 6 +- content/bn/mutual-transport-layer-security.md | 4 +- content/bn/nodes.md | 4 +- content/bn/observability.md | 19 +- content/bn/platform-as-a-service.md | 4 +- content/bn/pod.md | 30 +++ content/bn/policy-as-code.md | 4 +- content/bn/portability.md | 4 +- content/bn/reliability.md | 4 +- content/bn/role-based-access-control.md | 23 ++ content/bn/runtime.md | 36 ++++ content/bn/scalability.md | 4 +- content/bn/security-chaos-engineering.md | 6 +- .../bn/{self healing.md => self-healing.md} | 4 +- content/bn/serverless.md | 6 +- ...vice discovery.md => service-discovery.md} | 5 +- content/bn/service-mesh.md | 1 + content/bn/service-proxy.md | 3 +- content/bn/service.md | 2 +- content/bn/shift-left.md | 4 +- content/bn/site-reliability-engineering.md | 4 +- content/bn/software-as-a-service.md | 4 +- content/bn/stateful-apps.md | 23 +- content/bn/stateless-apps.md | 23 +- content/bn/style-guide/_index.md | 117 +++++++--- content/bn/tightly-coupled-architectures.md | 4 +- content/bn/transport-layer-security.md | 6 +- content/bn/version-control.md | 4 +- content/bn/vertical-scaling.md | 4 +- content/bn/virtual-machine.md | 6 +- content/bn/virtualization.md | 24 +-- content/bn/zero-trust-architecture.md | 5 +- i18n/bn.toml | 16 +- 88 files changed, 720 insertions(+), 420 deletions(-) create mode 100644 content/bn/auto-scaling.md delete mode 100644 content/bn/auto_scaling.md create mode 100644 content/bn/container-orchestration.md create mode 100644 content/bn/digital-certificate.md create mode 100644 content/bn/ebpf.md create mode 100644 content/bn/ingress.md create mode 100644 content/bn/pod.md create mode 100644 content/bn/role-based-access-control.md create mode 100644 content/bn/runtime.md rename content/bn/{self healing.md => self-healing.md} (92%) rename content/bn/{service discovery.md => service-discovery.md} (98%) diff --git a/content/bn/_TEMPLATE.md b/content/bn/_TEMPLATE.md index 534be65b3a..ab58fffc86 100644 --- a/content/bn/_TEMPLATE.md +++ b/content/bn/_TEMPLATE.md @@ -4,14 +4,16 @@ status: Feedback Appreciated category: ধারণা --- -## এটা কি - -এটি ধারণার একটি দ্রুত সারাংশ । +ধারণার দ্রুত সারাংশ এবং এটি কী। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে -এটি যে সমস্যার সমাধান করছে তার কয়েকটি লাইন। +এটি যে সমস্যাটি সমাধান করে তা সংজ্ঞায়িত করুন। আদর্শহবে, আপনি যে শব্দটি সংজ্ঞায়িত করছেন তা উল্লেখ করবেন না। ## এটা কিভাবে সাহায্য করে -জিনিসটি কীভাবে সমস্যার সমাধান করে তার কয়েকটি লাইন। +বর্ণনা করুন কিভাবে শব্দটি উপরে বর্ণিত সমস্যার সমাধান করে। + +## সম্পর্কিত পদ + +সম্পর্কিত শব্দকোষ পদ যোগ করুন (যদি প্রযোজ্য হয়) । diff --git a/content/bn/_index.md b/content/bn/_index.md index daee43d421..dd6104aeb3 100644 --- a/content/bn/_index.md +++ b/content/bn/_index.md @@ -5,23 +5,55 @@ status: Completed # ক্লাউড নেটিভ শব্দকোষ -ক্লাউড নেটিভ শব্দকোষ হল CNCF বিজনেস ভ্যালু সাবকমিটি (BVS) এর নেতৃত্বে একটি প্রকল্প। এর লক্ষ্য হল ক্লাউড নেটিভ ধারণাগুলিকে পরিষ্কার এবং সহজ ভাষায় ব্যাখ্যা করা কোনো পূর্বের প্রযুক্তিগত জ্ঞানের প্রয়োজন ছাড়াই।[আপনি এখানে (ইংরেজিতে) PDF সংস্করণ দেখতে বা ডাউনলোড করতে পারেন।](https://github.com/cncf/glossary/blob/main/cloudnative-glossary.pdf) +ক্লাউড নেটিভ শব্দকোষের লক্ষ্য হলো ক্লাউড নেটিভ স্পেসকে ( যা এর জটিলতার জন্য কুখ্যাত ) সহজতর করে বোঝার জন্য লোকেদের জন্য, +শুধুমাত্র প্রযুক্তিবিদদের জন্যই নয়, ব্যবসার দিকের লোকদের জন্যও। +এটি অর্জন করার জন্য, আমরা সরলতার উপর ফোকাস করি (যেমন, বাজওয়ার্ড থেকে মুক্ত সহজ ভাষা, প্রযুক্তি ব্যবহার করে যে কেউ এর সাথে সম্পর্কিত হতে পারে এমন উদাহরণ, অপ্রয়োজনীয় বিবরণ বাদ দিয়ে)। +শব্দকোষ হল CNCF বিজনেস ভ্যালু সাবকমিটি (BVS) এর নেতৃত্বে একটি প্রকল্প। + +

মানুষ একটি Kubecon উপস্থাপনা দেখছেন

## অবদান -ক্লাউড নেটিভ শব্দকোষে পরিবর্তন, সংযোজন এবং উন্নতির পরামর্শ দেওয়ার জন্য সবাইকে আমন্ত্রণ জানানো হয়েছে। আমরা এই ভাগ করা অভিধানের বিকাশ এবং উন্নতির জন্য CNCF দ্বারা পরিচালিত একটি সম্প্রদায়-চালিত প্রক্রিয়া নিযুক্ত করি। এই শব্দকোষটি ক্লাউড নেটিভ প্রযুক্তির আশেপাশে একটি ভাগ করা শব্দভাণ্ডার সংগঠিত করার জন্য একটি বিক্রেতা-নিরপেক্ষ প্ল্যাটফর্ম প্রদান করে৷ প্রজেক্টের উদ্দেশ্য এবং চার্টার মেনে চলা সকল অংশগ্রহণকারীদের থেকে অবদানকে স্বাগত জানানো হয়। +ক্লাউড নেটিভ শব্দকোষে পরিবর্তন, সংযোজন এবং উন্নতির পরামর্শ দেওয়ার জন্য সকলেই আমন্ত্রিত। +আমরা এই ভাগ করা অভিধানের বিকাশ এবং উন্নতির জন্য CNCF দ্বারা পরিচালিত একটি সম্প্রদায়-চালিত প্রক্রিয়া নিযুক্ত করি। +এই শব্দকোষটি ক্লাউড নেটিভ প্রযুক্তি জুড়ে একটি ভাগ করা শব্দভাণ্ডার সংগঠিত করার জন্য একটি বিক্রেতা-নিরপেক্ষ প্ল্যাটফর্ম প্রদান করে৷ +প্রজেক্টের উদ্দেশ্য এবং সনদ মেনে চলা সকল অংশগ্রহণকারীদের থেকে অবদানকে স্বাগত জানানো হয়। -যে কেউ একটি অবদান করতে ইচ্ছুক একটি GitHub সমস্যা(issue) জমা দিতে বা একটি পুল অনুরোধ (pull request) তৈরি করতে পারেন. অনুগ্রহ করে নিশ্চিত করুন যে আপনি [শৈলী নির্দেশিকা](/bn/style-guide/) অনুসরণ করছেন, [কীভাবে অবদান রাখবেন](/bn/contribute/) ডকটি পড়ুন এবং CNCF স্ল্যাকের #glossary চ্যানেলে যোগদান করুন। এছাড়াও যারা তাদের মাতৃভাষায় শব্দকোষ অনুবাদ করতে সাহায্য করতে চান তাদের জন্য একটি #glossary-localizations চ্যানেল রয়েছে। +যে অবদান করতে ইচ্ছুক, একটি GitHub সমস্যা (issue) জমা দিতে বা একটি পুল অনুরোধ (pull request) তৈরি করতে পারেন। +অনুগ্রহ করে নিশ্চিত করুন যে আপনি [শৈলী নির্দেশিকা](/bn/style-guide/) অনুসরণ করছেন, [কীভাবে অবদান রাখবেন](/bn/contribute/) ডকটি পড়ুন এবং CNCF স্ল্যাকের #glossary চ্যানেলে যোগদান করুন। +এছাড়াও যারা তাদের মাতৃভাষায় শব্দকোষ অনুবাদ করতে সাহায্য করতে চান তাদের জন্য একটি #glossary-localizations চ্যানেল রয়েছে। ## স্বীকৃতি -ক্লাউড নেটিভ শব্দকোষটি CNCF মার্কেটিং কমিটি (ব্যবসায়িক মূল্য উপকমিটি)দ্বারা সূচিত হয়েছিল এবং এতে অবদানকারী হিসেবে রয়েছে [Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), [Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), -[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), [Katelin Ramer](https://www.linkedin.com/in/katelinramer/), [Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca) এবং আরও অনেকে। একটি সম্পূর্ণ অবদানকারী তালিকার জন্য, অনুগ্রহ করে [এই GitHub পৃষ্ঠা](https://github.com/cncf/glossary/graphs/contributors) দেখুন। - -শব্দকোষটি পরিচালিত হয় [Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), [Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), এবং [Seokho Son](https://www.linkedin.com/in/seokho-son/) দ্বারা । - -ক্লাউড নেটিভ ভোকাবুলারির বাংলা স্থানীয়করণের সূচনা [Bengali localization team](https://cloud-native.slack.com/archives/C02UG2WGXQQ) দ্বারা করা হয়েছে এবং এতে অন্তর্ভুক্ত রয়েছে [MD Shahriyar Al Mustakim Mitul](https://www.linkedin.com/in/md-shahriyar-al-mustakim-mitul-9084b31a0/), [MD Ikramul Kayes](https://www.linkedin.com/in/md-ikramul-kayes-753674214/), [Umme Abira Azmary](https://www.linkedin.com/in/umme-abira-azmary-68404a1bb/) এবং আরও অনেক অবদানকারী। +ক্লাউড নেটিভ শব্দকোষটি CNCF মার্কেটিং কমিটি (বিজনেস ভ্যালু সাবকমিটি) দ্বারা সূচিত হয়েছিল এবং এতে অবদানকারী হিসেবে রয়েছে +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca) +এবং আরও অনেকে। +একটি সম্পূর্ণ অবদানকারী তালিকার জন্য, অনুগ্রহ করে [এই GitHub পৃষ্ঠা](https://github.com/cncf/glossary/graphs/contributors) দেখুন। + +শব্দকোষটি পরিচালিত হয় +[Seokho Son](https://www.linkedin.com/in/seokho-son/), +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Nate W.](https://www.linkedin.com/in/nate-double-u/)), +এবং [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/) দ্বারা । + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +এবং [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +ইমেরিটাস রক্ষণাবেক্ষণকারী, এবং আমরা গভীরভাবে কৃতজ্ঞ +বছরের পর বছর ধরে তাদের অমূল্য অবদানের জন্য। + +ক্লাউড নেটিভ ভোকাবুলারির বাংলা স্থানীয়করণের সূচনা [Bengali localization team](https://cloud-native.slack.com/archives/C02UG2WGXQQ) দ্বারা করা হয়েছে +এবং এতে অন্তর্ভুক্ত রয়েছে [MD Shahriyar Al Mustakim Mitul](https://www.linkedin.com/in/mitul-shahriyar/), +[Asem Hamid](https://www.linkedin.com/in/asemhamid/), +[Sajib Adhikary](https://www.linkedin.com/in/sajibadhi/) +এবং আরও অনেক অবদানকারী। ## লাইসেন্স -সমস্ত কোড অবদান Apache 2.0 লাইসেন্সের অধীনে। ডকুমেন্টেশন CC BY 4.0 এর অধীনে বিতরণ করা হয়। +সমস্ত কোড অবদান Apache 2.0 লাইসেন্সের অধীনে। +ডকুমেন্টেশন CC BY 4.0 এর অধীনে বিতরণ করা হয়। diff --git a/content/bn/abstraction.md b/content/bn/abstraction.md index a37c310bb3..26dd0e5789 100644 --- a/content/bn/abstraction.md +++ b/content/bn/abstraction.md @@ -2,7 +2,7 @@ title: অ্যাবস্ট্রাকশন (Abstraction) status: Completed category: বৈশিষ্ট্য -tags: ["fundamental", "", ""] +tags: ["মৌলিক", "", ""] --- কম্পিউটিং এর প্রেক্ষাপটে, অ্যাবস্ট্রাকশন অথবা বিমূর্ততা হল এক ধরনের উপস্থাপনা যেখানে সাধারণ ব্যবহারকারী এবং [সেবা](/bn/service/) ভোগকারীদের (কম্পিউটার প্রোগ্রাম অথবা মানুষ) কাছ থেকে সিস্টেমের জটিল এবং অপ্রয়োজনীয় বিষয়গুলি লুকিয়ে রাখা হয়, এভাবে সিস্টেমকে খুব সিম্পল ভাবে উপস্থাপন করা হয় ফলে সিস্টেমকে বুঝতেও সুবিধা হয়। একটি ভালো উদাহরণ হল আপনার ল্যাপটপের অপারেটিং সিস্টেম (OS)। এটি আপনার কম্পিউটার কিভাবে কাজ করে তার সমস্ত বিবরণ বিমূর্ত করে। আপনার সিপিইউ মেমোরি অথবা প্রোগ্রামগুলোকে কিভাবে পরিচালনা করতে হয় সে সম্পর্কে কিছু জানার দরকার নেই, আপনি শুধু আপনার অপারেটিং সিস্টেম চালান এবং আপনার OS নিজেই এই জটিল বিষয়গুলো পরিচালনা করে। OS কিভাবে কাজগুলো হ্যান্ডেল করে করে তা আপনার জানার দরকার নেই এবং সমস্ত বিবরণ এই OS "পর্দা" বা বিমূর্ততার পিছনে লুকানো রয়েছে। diff --git a/content/bn/agile-software-development.md b/content/bn/agile-software-development.md index bf799d2bcc..e64ea0e851 100644 --- a/content/bn/agile-software-development.md +++ b/content/bn/agile-software-development.md @@ -2,11 +2,9 @@ title: অ্যাজাইল সফটওয়্যার ডেভেলপমেন্ট (Agile Software Development) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - এটি একটি অনুশীলনের সেট যা পুনরাবৃত্তিমূলক বিকাশ চক্র এবং স্ব-সংগঠিত দলের উপর জোর স্থাপন করে। জলপ্রপাতের মতো প্রজেক্টগুলির বিপরীতে যেখানে একটি প্রজেক্টের সুবিধা কেবল প্রজেক্টের শেষেই পাওয়া যায়, অ্যাজাইল সফটওয়্যার ডেভলপমেন্ট দৃষ্টিপাত করে কিভাবে একটি ক্রমাগত, ক্রমবর্ধমান মূল্য সরবরাহ করতে পারা যায় এবং দৃষ্টিপাত করে যেন প্রক্রিয়াটি নিজের বিবর্তনীয় উন্নতির উপর দৃষ্টি নিবদ্ধ করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/api-gateway.md b/content/bn/api-gateway.md index 3861466767..eaa6887766 100644 --- a/content/bn/api-gateway.md +++ b/content/bn/api-gateway.md @@ -2,11 +2,9 @@ title: API গেটওয়ে(API Gateway) status: Completed category: প্রযুক্তি -tags: ["networking", "", ""] +tags: ["নেটওয়ার্কিং", "", ""] --- -## এটা কি - একটি [API](/bn/application-programming-interface/) গেটওয়ে হল একটি টুল যা অনন্য অ্যাপ্লিকেশন APIগুলিকে একত্রিত করে এবং সেগুলিকে এক জায়গায় উপলব্ধ করে। এটি সংস্থাগুলিকে মূল ফাংশনগুলি সরানোর অনুমতি দেয়, diff --git a/content/bn/application-programming-interface.md b/content/bn/application-programming-interface.md index 771d67f113..88b4a0883d 100644 --- a/content/bn/application-programming-interface.md +++ b/content/bn/application-programming-interface.md @@ -2,10 +2,9 @@ title: অ্যাপ্লিকেশান প্রোগ্রামিং ইন্টারফেস (API) status: Completed category: প্রযুক্তি -tags: ["architecture", "fundamental", ""] +tags: ["স্থাপত্য", "মৌলিক", ""] --- -## এটা কি একটি API হল কম্পিউটার প্রোগ্রামগুলির একে অপরের সাথে যোগাযোগ করার একটি উপায়। মানুষ যেমন একটি ওয়েব পৃষ্ঠার মাধ্যমে একটি ওয়েবসাইটের সাথে যোগাযোগ করে, তেমনি একটি API কম্পিউটার প্রোগ্রামগুলিকে একে অপরের সাথে যোগাযোগ করতে দেয়। মানুষের মিথস্ক্রিয়া থেকে ভিন্ন, API-গুলির সীমাবদ্ধতা রয়েছে তাদের থেকে কী জিজ্ঞাসা করা যায় এবং কী করা যায় না। ইন্টারঅ্যাকশনের সীমাবদ্ধতা প্রোগ্রামগুলির মধ্যে স্থিতিশীল এবং কার্যকরী যোগাযোগ তৈরি করতে সহায়তা করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/auto-scaling.md b/content/bn/auto-scaling.md new file mode 100644 index 0000000000..411c0b25ae --- /dev/null +++ b/content/bn/auto-scaling.md @@ -0,0 +1,28 @@ +--- +title: অটোস্কেলিং (Autoscaling) +status: Completed +category: সম্পত্তি +tags: ["অবকাঠামো", "", ""] +--- + +অটোস্কেলিং হলো সাধারণত একটি সিস্টেমের কম্পিউটিং রিসোর্সগুলোর পরিপ্রেক্ষিতে স্বয়ংক্রিয়ভাবে [স্কেল](/bn/scalability/) ক্ষমতা। +অটোস্কেলিং সিস্টেমের সাহায্যে, ব্যবহারকারী চাহিদা অনুযায়ী রিসোর্স স্কেল করতে এবং প্রয়োজনের সময় স্বয়ংক্রিয়ভাবে রিসোর্সগুলো যোগ করতে পারে। +অটোস্কেলিং প্রক্রিয়া পরিবর্তনশীল এবং মেমোরি বা প্রক্রিয়া সময়ের মতো বিভিন্ন মেট্রিক্সের উপর ভিত্তি করে স্কেল করার জন্য কনফিগারযোগ্য। +ক্লাউড পরিষেবাগুলো সাধারণত অটোস্কেলিং এর মাধ্যমে পরিচালিত হয় +কারণ বেশিরভাগ অন-প্রিমাইজ ডিপ্লোয়মেন্টের চেয়ে এটিতে আরও বেশি বাস্তবায়ন করার ব্যবস্থা রয়েছে। + +পূর্বে, সিস্টেমের অবকাঠামো এবং অ্যাপ্লিকেশনগুলোকে আর্কিটেক্ট করা হয়েছিল সিস্টেমের সর্বোচ্চ ব্যবহার বিবেচনা করার মাধ্যমে। +এই স্থাপনার দ্বারা রিসোর্সগুলো কম ব্যবহার হচ্ছিল এবং ভোক্তাদের চাহিদা পরিবর্তন করার জন্য স্থিতিস্থাপক ছিল। +এই স্থিতিস্থাপকতা ফলে ব্যবসায় উচ্চ খরচ ছিল এবং অতিরিক্ত চাহিদা দেখা দিলেই ব্যবসা বন্ধ হয়ে যাচ্ছিল। + +ক্লাউড, [ভারচুয়ালাইজিং](/bn/virtualization/), and [কন্টেইনারাইজিং](/bn/containerization/) অ্যাপ্লিকেশন এবং তাদের নির্ভরতা ব্যবহার করে, +সংস্থাগুলো ব্যবহারকারীর চাহিদা অনুযায়ী অ্যাপ্লিকেশন তৈরি করতে পারে। +এটি অ্যাপ্লিকেশন চাহিদা নিরীক্ষণ করতে পারে এবং স্বয়ংক্রিয়ভাবে এসব অ্যাপ্লিকেশন স্কেল করতে পারে, যার ফলে এট ব্যবহারকারীদের সর্বোত্তম অভিজ্ঞতা প্রদান করে। +যেমন প্রতি শুক্রবার সন্ধ্যায় Netflix-এর দর্শক সংখ্যা বৃদ্ধি পায়। +স্বয়ংক্রিয়ভাবে আউট করার অর্থ হল গতিশীলভাবে আরও রিসোর্স যোগ করা: উদাহরণস্বরূপ, +আরও ভিডিও স্ট্রিমিংয়ের অনুমতি দেয় এমন সার্ভারের সংখ্যা বৃদ্ধি করা এবং একবার ব্যবহার স্বাভাবিক হয়ে গেলে আবার স্কেল করা। + +## সম্পর্কিত পদ + +* [অনুভূমিক স্কেলিং](/bn/horizontal-scaling/) +* [উল্লম্ব স্কেলিং](/bn/vertical-scaling/) diff --git a/content/bn/auto_scaling.md b/content/bn/auto_scaling.md deleted file mode 100644 index 967b12c326..0000000000 --- a/content/bn/auto_scaling.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: অটোস্কেলিং (Autoscaling) -status: Completed -category: সম্পত্তি -tags: ["infrastructure", "", ""] ---- - -অটোস্কেলিং হল সাধারণত একটি সিস্টেমের কম্পিউটিং রিসোর্সগুলির পরিপ্রেক্ষিতে স্বয়ংক্রিয়ভাবে [স্কেল](/bn/scalability/) ক্ষমতা। অটোস্কেলিং সিস্টেমের সাহায্যে, ব্যবহারকারী চাহিদা অনুযায়ী রিসোর্স স্কেল করতে এবং প্রয়োজনের সময় স্বয়ংক্রিয়ভাবে রিসোর্সগুলি যোগ করতে পারে। অটোস্কেলিং প্রক্রিয়া পরিবর্তনশীল এবং মেমোরি বা প্রক্রিয়া সময়ের মতো বিভিন্ন মেট্রিক্সের উপর ভিত্তি করে স্কেল করার জন্য কনফিগারযোগ্য। ক্লাউড পরিষেবাগুলি সাধারণত অটোস্কেলিং এর মাধ্যমে পরিচালিত হয় কারণ বেশিরভাগ অন-প্রিমাইজ ডিপ্লোয়মেন্টের চেয়ে এটিতে আরও বেশি বাস্তবায়ন করার ব্যবস্থা রয়েছে। - -পূর্বে, সিস্টেমের অবকাঠামো এবং অ্যাপ্লিকেশনগুলিকে আর্কিটেক্ট করা হয়েছিল সিস্টেমের সর্বোচ্চ ব্যবহার বিবেচনা করার মাধ্যমে। এই স্থাপনার দ্বারা রিসোর্সগুলি কম ব্যবহার হচ্ছিল এবং ভোক্তাদের চাহিদা পরিবর্তন করার জন্য স্থিতিস্থাপক ছিল। এই স্থিতিস্থাপকতা ফলে ব্যবসায় উচ্চ খরচ ছিল এবং অতিরিক্ত চাহিদা দেখা দিলেই ব্যবসা বন্ধ হয়ে যাচ্ছিল। - -ক্লাউড, [ভারচুয়ালাইজিং](/bn/virtualization/), and [কন্টেইনারাইজিং](/bn/containerization/) অ্যাপ্লিকেশন এবং তাদের নির্ভরতা ব্যবহার করে, সংস্থাগুলি ব্যবহারকারীর চাহিদা অনুযায়ী অ্যাপ্লিকেশন তৈরি করতে পারে। এটি অ্যাপ্লিকেশন চাহিদা নিরীক্ষণ করতে পারে এবং স্বয়ংক্রিয়ভাবে এসব অ্যাপ্লিকেশন স্কেল করতে পারে, যার ফলে এট ব্যবহারকারীদের সর্বোত্তম অভিজ্ঞতা প্রদান করে। যেমন প্রতি শুক্রবার সন্ধ্যায় Netflix-এর দর্শক সংখ্যা বৃদ্ধি পায়। স্বয়ংক্রিয়ভাবে আউট করার অর্থ হল গতিশীলভাবে আরও সংস্থান যোগ করা: উদাহরণস্বরূপ, আরও ভিডিও স্ট্রিমিংয়ের অনুমতি দেয় এমন সার্ভারের সংখ্যা বৃদ্ধি করা এবং একবার ব্যবহার স্বাভাবিক হয়ে গেলে আবার স্কেল করা। diff --git a/content/bn/bare-metal-machine.md b/content/bn/bare-metal-machine.md index 8237c1666b..f501c584ac 100644 --- a/content/bn/bare-metal-machine.md +++ b/content/bn/bare-metal-machine.md @@ -2,33 +2,31 @@ title: বেয়ার মেটাল মেশিন (Bare Metal Machine) status: Completed category: প্রযুক্তি -tags: ["infrastructure", "", ""] +tags: ["অবকাঠামো", "", ""] --- -## এটা কি - -বেয়ার মেটাল(bare metal) বলতে একটি ভৌত ​​কম্পিউটারকে বোঝায়, আরও নির্দিষ্টভাবে একটি সার্ভার, যার একটি এবং শুধুমাত্র একটি অপারেটিং সিস্টেম রয়েছে। +বেয়ার মেটাল(bare metal) বলতে একটি ফিজিক্যাল ​​কম্পিউটারকে বোঝায়, আরও নির্দিষ্টভাবে একটি সার্ভার, যার একটি এবং শুধুমাত্র একটি অপারেটিং সিস্টেম রয়েছে। আধুনিক কম্পিউটিংয়ে পার্থক্যটি গুরুত্বপূর্ণ কারণ বেশিরভাগ সার্ভারগুলোই [ভার্চুয়াল মেশিন](/bn/virtual-machine/)। -একটি ভৌত ​​সার্ভার(physical server) সাধারণত শক্তিশালী হার্ডওয়্যার অন্তর্নির্মিত একটি মোটামুটি বড় কম্পিউটার। -[ভার্চুয়ালাইজেশন](/bn/virtualization/) ছাড়া একটি অপারেটিং সিস্টেম ইনস্টল করা এবং সরাসরি শারীরিক হার্ডওয়্যারে অ্যাপ্লিকেশনটি চালানো কে, -"বেয়ার মেটাল"("bare metal") এ চলমান হিসাবে উল্লেখ করা হয়। +একটি ফিজিক্যাল ​​সার্ভার সাধারণত শক্তিশালী হার্ডওয়্যার অন্তর্নির্মিত একটি মোটামুটি বড় কম্পিউটার। +[ভার্চুয়ালাইজেশন](/bn/virtualization/) ছাড়া একটি অপারেটিং সিস্টেম ইনস্টল করা এবং সরাসরি ফিজিক্যাল হার্ডওয়্যারে অ্যাপ্লিকেশনটি চালানো কে, +"বেয়ার মেটাল" এ চলমান হিসাবে উল্লেখ করা হয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে একটি অপারেটিং সিস্টেমকে একটি ফিজিক্যাল কম্পিউটারের সাথে যুগল করাই হলো কম্পিউটিং এর আসল প্যাটার্ন(pattern)। -শারীরিক কম্পিউটারের সমস্ত সংস্থান সরাসরি অপারেটিং সিস্টেমে উপলব্ধ এবং কোন ভার্চুয়ালাইজেশন(virtualization) স্তর উপস্থিত না থাকার ফলে, + ফিজিক্যাল কম্পিউটারের সমস্ত সংস্থান সরাসরি অপারেটিং সিস্টেমে উপলব্ধ এবং কোন ভার্চুয়ালাইজেশন(virtualization) স্তর উপস্থিত না থাকার ফলে, হার্ডওয়্যারে অপারেটিং সিস্টেম নির্দেশাবলী অনুবাদ করার জন্য কোন কৃত্রিম বিলম্ব নেই। ## এটা কিভাবে সাহায্য করে -একটি কম্পিউটারের সমস্ত গণনা সংস্থান একটি একক অপারেটিং সিস্টেমে উত্সর্গ করে, +একটি কম্পিউটারের সমস্ত কম্পিউটিং রিসোর্স একটি একক অপারেটিং সিস্টেমে উৎসর্গ করে, আপনি অপারেটিং সিস্টেমে সম্ভাব্য সর্বোত্তম কর্মক্ষমতা প্রদান করতে পারেন। -আপনার যদি এমন একটি ওয়ার্কলোড(workload) চালানোর প্রয়োজন হয় যাতে অবশ্যই হার্ডওয়্যার সংস্থানগুলিতে অত্যন্ত দ্রুত অ্যাক্সেস থাকতে হবে, -বেয়ার মেটাল(bare metal) সঠিক সমাধান হতে পারে। +আপনার যদি এমন একটি ওয়ার্কলোড চালানোর প্রয়োজন হয় যাতে অবশ্যই হার্ডওয়্যার রিসোর্সগুলোতে অত্যন্ত দ্রুত অ্যাক্সেস থাকতে হবে, +বেয়ার মেটাল সঠিক সমাধান হতে পারে। [ক্লাউড নেটিভ অ্যাপস](/bn/cloud-native-apps/) প্রসঙ্গে আমরা সাধারণত [স্কেলিং](/bn/scalability/)(scaling) এর পরিপ্রেক্ষিতে পারফরম্যান্সের কথা চিন্তা করি, -যা [অনুভূমিক স্কেলিং](/bn/horizontal-scaling/)(horizontal-scaling) (আপনার রিসোর্স পুলে(resource pool) আরও মেশিন যোগ করা) দ্বারা পরিচালিত হতে পারে। -কিন্তু কিছু ওয়ার্কলোডস-এর(workloads) [উল্লম্ব স্কেলিং](/bn/vertical-scaling/) (একটি বিদ্যমান শারীরিক মেশিনে আরও শক্তি যোগ করা) -এবং একটি অত্যন্ত দ্রুত শারীরিক হার্ডওয়্যার(hardware) এর প্রয়োজন হতে পারে যে ক্ষেত্রে বেয়ার মেটাল(bare metal) ভালো উপযুক্ত। -শারীরিক হার্ডওয়্যার(hardware) এবং হার্ডওয়্যার ড্রাইভারগুলির(hardware drivers) সাথে তাল মিলিয়ে বেয়ার মেটাল(bare metal) যে কোন কাজ সম্পন্ন করতে সহায়তা করার অনুমতি দেয়। +যা [অনুভূমিক স্কেলিং](/bn/horizontal-scaling/)(horizontal-scaling) (আপনার রিসোর্স পুলে আরও মেশিন যোগ করা) দ্বারা পরিচালিত হতে পারে। +কিন্তু কিছু ওয়ার্কলোডস-এর [উল্লম্ব স্কেলিং](/bn/vertical-scaling/) (একটি বিদ্যমান ফিজিক্যাল মেশিনে আরও শক্তি যোগ করা) +এবং একটি অত্যন্ত দ্রুত ফিজিক্যাল হার্ডওয়্যার(hardware) এর প্রয়োজন হতে পারে যে ক্ষেত্রে বেয়ার মেটাল ভালো উপযুক্ত। + ফিজিক্যাল হার্ডওয়্যার এবং হার্ডওয়্যার ড্রাইভারগুলোর সাথে তাল মিলিয়ে বেয়ার মেটাল যে কোন কাজ সম্পন্ন করতে সহায়তা করার অনুমতি দেয়। diff --git a/content/bn/blue-green-deployment.md b/content/bn/blue-green-deployment.md index acfed03708..f49f1b2208 100644 --- a/content/bn/blue-green-deployment.md +++ b/content/bn/blue-green-deployment.md @@ -2,11 +2,9 @@ title: নীল সবুজ স্থাপনা (Blue Green Deployment) status: Completed category: ধারণা -tags: ["methodology", "application", ""] +tags: ["পদ্ধতি", "অ্যাপ্লিকেশন", ""] --- -## এটা কি - ন্যূনতম ডাউনটাইম সহ চলমান কম্পিউটার সিস্টেম আপডেট করার জন্য নীল-সবুজ স্থাপনা একটি কৌশল। অপারেটর দুটি পরিবেশ বজায় রাখে, যা "নীল" এবং "সবুজ" নামে ডাকা হয়। একটি প্রোডাকশন ট্র্যাফিক পরিবেশন করে (সংস্করণটি যেটি সেই সময় ব্যবহারকারীরা ব্যবহার করেন), যখন অন্যটি আপডেট করা হয়। diff --git a/content/bn/canary-deployment.md b/content/bn/canary-deployment.md index 7660de240b..4be488a1cd 100644 --- a/content/bn/canary-deployment.md +++ b/content/bn/canary-deployment.md @@ -2,11 +2,9 @@ title: ক্যানারি ডিপ্লয়মেন্ট (Canary Deployment) status: Completed category: ধারণা -tags: ["methodology", "application", ""] +tags: ["পদ্ধতি", "অ্যাপ্লিকেশন", ""] --- -## এটা কি - ক্যানারি ডিপ্লয়মেন্ট হল একটি স্থাপনার কৌশল যা দুটি পরিবেশ দিয়ে শুরু হয়: একটি লাইভ ট্র্যাফিক সহ এবং অন্যটিতে লাইভ ট্র্যাফিক ছাড়াই আপডেট করা কোড রয়েছে৷ ট্র্যাফিকটি ধীরে ধীরে অ্যাপ্লিকেশনটির আসল সংস্করণ থেকে আপডেট হওয়া সংস্করণে স্থানান্তরিত হয়। diff --git a/content/bn/chaos-engineering.md b/content/bn/chaos-engineering.md index d3ca48f467..b61f15bc51 100644 --- a/content/bn/chaos-engineering.md +++ b/content/bn/chaos-engineering.md @@ -2,11 +2,9 @@ title: কেওস ইঞ্জিনিয়ারিং (Chaos Engineering) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - কেওস ইঞ্জিনিয়ারিং (Chaos Engineering) বা CE হল [ডিস্ট্রিবিউটেড সিস্টেমে (distributed system)](/bn/distributed-systems/) পরীক্ষা করার শৃঙ্খলা যাতে কোলাহলপূর্ণ এবং অপ্রত্যাশিত পরিস্থিতি সহ্য করার জন্য সিস্টেমে ক্ষমতা তৈরি হয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/client-server-architecture.md b/content/bn/client-server-architecture.md index 4021dca0c5..fbfe624015 100644 --- a/content/bn/client-server-architecture.md +++ b/content/bn/client-server-architecture.md @@ -2,11 +2,9 @@ title: ক্লায়েন্ট-সার্ভার স্থাপত্য (Client-Server Architecture) status: Completed category: ধারণা -tags: ["architecture", "", ""] +tags: ["স্থাপত্য", "", ""] --- -## এটা কি - একটি ক্লায়েন্ট-সার্ভার স্থাপত্য (Client-Server Architecture), যুক্তি (বা কোড) যা একটি অ্যাপ্লিকেশন তৈরি করে তা দুই বা ততোধিক উপাদানের মধ্যে বিভক্ত হয়ঃ একটি ক্লায়েন্ট যে কাজ করতে বলে (যেমন আপনার ওয়েব ব্রাউজারে চলমান জিমেইল ওয়েব অ্যাপ্লিকেশন), diff --git a/content/bn/cloud-computing.md b/content/bn/cloud-computing.md index 68aca3d72b..b8c6969612 100644 --- a/content/bn/cloud-computing.md +++ b/content/bn/cloud-computing.md @@ -2,11 +2,9 @@ title: ক্লাউড কম্পিউটিং (Cloud Computing) status: Completed category: ধারণা -tags: ["infrastructure", "fundamental", ""] +tags: ["অবকাঠামো", "মৌলিক", ""] --- -## এটা কি - ক্লাউড কম্পিউটিং হল এমন একটি মডেল যা ইন্টারনেটের মাধ্যমে চাহিদা অনুযায়ী CPU, নেটওয়ার্ক এবং ডিস্ক ক্ষমতার মতো গণনা বিষয়ক কাজ(compute) করার সংস্থান সরবরাহ করে। ক্লাউড কম্পিউটিং এর মাধ্যমে ব্যবহারকারীরা নিজেদের শারীরিক অবস্থান থেকে ক্লাউডে থেকে প্রবেশ করতে পারে এবং প্রয়োজন অনুযায়ী ব্যবহার করতে পারে। ক্লাউড সুবিধা প্রদানকারী সংস্থাসমূহ যেমন AWS, GCP, Azure, DigitalOcean এবং অন্যান্য সকলেই তৃতীয় পক্ষ অর্থাৎ ব্যবহারকারীদের একাধিক ভৌগলিক অবস্থান থেকে ভাড়ার মাধ্যমে কম্পিউটিং বিষয়ক কাজ করার সুবিধা প্রদান করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/cloud-native-apps.md b/content/bn/cloud-native-apps.md index 2b66ca48df..24696395bd 100644 --- a/content/bn/cloud-native-apps.md +++ b/content/bn/cloud-native-apps.md @@ -2,11 +2,9 @@ title: ক্লাউড নেটিভ অ্যাপস (Cloud Native Apps) status: Completed category: ধারণা -tags: ["application", "fundamental", ""] +tags: ["অ্যাপ্লিকেশন", "মৌলিক", ""] --- -## এটা কি - ক্লাউড নেটিভ অ্যাপ্লিকেশনগুলি বিশেষভাবে [ক্লাউড কম্পিউটিং (Cloud Computing)](/bn/cloud-computing/)-এ উদ্ভাবনের সুবিধা নেওয়ার জন্য ডিজাইন করা হয়েছে। এই অ্যাপ্লিকেশনগুলি তাদের নিজ নিজ ক্লাউড আর্কিটেকচারের সাথে সহজেই একত্রিত হয়, ক্লাউডের সংস্থান এবং [স্কেলিং](/bn/scalability/) ক্ষমতার সুবিধা নিয়ে থাকে। এটি ক্লাউড কম্পিউটিং দ্বারা চালিত অবকাঠামোতে(infrastructure) উদ্ভাবনের সুবিধা গ্রহণকারী অ্যাপ্লিকেশনগুলিকেও বোঝায়। diff --git a/content/bn/cloud-native-security.md b/content/bn/cloud-native-security.md index 7cdd1b639f..8551e18d5b 100644 --- a/content/bn/cloud-native-security.md +++ b/content/bn/cloud-native-security.md @@ -2,11 +2,9 @@ title: ক্লাউড নেটিভ নিরাপত্তা (Cloud Native Security) status: Completed category: ধারণা -tags: ["security", "", ""] +tags: ["নিরাপত্তা", "", ""] --- -## এটা কি - ক্লাউড নেটিভ সিকিউরিটি এমন একটি পদ্ধতি যা [ক্লাউড নেটিভ অ্যাপ্লিকেশন](/bn/cloud-native-apps/) এ নিরাপত্তা তৈরি করে। এটি নিশ্চিত করে যে নিরাপত্তা উন্নয়ন থেকে উৎপাদন পর্যন্ত সমগ্র অ্যাপ্লিকেশন জীবনচক্রের অংশ। ক্লাউড নেটিভ সিকিউরিটি ক্লাউড নেটিভ এনভায়রনমেন্টের বিবরণ, যথা দ্রুত কোড পরিবর্তন এবং অত্যন্ত ক্ষণস্থায়ী অবকাঠামোর সাথে খাপ খাওয়ানোর সময় প্রথাগত নিরাপত্তা মডেলের মতো একই মান নিশ্চিত করতে চায়। ক্লাউড নেটিভ নিরাপত্তা [DevSecOps](/bn/devsecops/) নামক অনুশীলনের সাথে অত্যন্ত সম্পর্কিত। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/cloud-native-tech.md b/content/bn/cloud-native-tech.md index 7885837b86..775e5ce325 100644 --- a/content/bn/cloud-native-tech.md +++ b/content/bn/cloud-native-tech.md @@ -2,11 +2,9 @@ title: ক্লাউড নেটিভ প্রযুক্তি (Cloud Native Technology) status: Completed category: ধারণা -tags: ["fundamental", "", ""] +tags: ["মৌলিক", "", ""] --- -## এটা কি - ক্লাউড নেটিভ টেকনোলজি, ক্লাউড নেটিভ স্ট্যাক হিসেবেও উল্লেখ করা হয়, [ক্লাউড নেটিভ অ্যাপ্লিকেশন](/bn/cloud-native-apps/) তৈরি করতে ব্যবহৃত প্রযুক্তি। সরকারী, প্রাইভেট এবং হাইব্রিড ক্লাউডের মতো আধুনিক, গতিশীল পরিবেশে মাপযোগ্য অ্যাপ্লিকেশনগুলি তৈরি এবং চালানোর জন্য সংস্থাগুলিকে সক্ষম করে, তারা 'ক্লাউডের প্রতিশ্রুতি' বজায় রাখে এবং ক্লাউড কম্পিউটিং সুবিধাগুলি তাদের সম্পূর্ণরূপে লাভ করে। ক্লাউড কম্পিউটিং এবং কন্টেইনার, সার্ভিস মেশ, মাইক্রোসার্ভিসেস এবং অপরিবর্তনীয় অবকাঠামোর ক্ষমতাকে কাজে লাগানোর জন্য গ্রাউন্ড আপ থেকে ডিজাইন করা হয়েছে এই পদ্ধতির উদাহরণ। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/cluster.md b/content/bn/cluster.md index 49c43c53e2..a653bac56d 100644 --- a/content/bn/cluster.md +++ b/content/bn/cluster.md @@ -2,11 +2,9 @@ title: ক্লাস্টার (Cluster) status: Completed category: ধারণা -tags: ["infrastructure", "fundamental", ""] +tags: ["অবকাঠামো", "মৌলিক", ""] --- -## এটা কি - একটি ক্লাস্টার হল কম্পিউটার বা অ্যাপ্লিকেশনগুলির একটি গ্রুপ যা একটি সাধারণ লক্ষ্যে একসাথে কাজ করে। ক্লাউড নেটিভ কম্পিউটিং প্রসঙ্গে, শব্দটি প্রায়শই কুবারনেটে প্রয়োগ করা হয়। একটি Kubernetes ক্লাস্টার হল পরিষেবাগুলির একটি সেট (বা কাজের চাপ) যা তাদের নিজস্ব পাত্রে চলে, সাধারণত বিভিন্ন মেশিনে। এই সমস্ত [কন্টেইনারাইজড(Containerized)](/bn/containerization/) পরিষেবাগুলির সংগ্রহ, একটি নেটওয়ার্কের মাধ্যমে সংযুক্ত, একটি ক্লাস্টার প্রতিনিধিত্ব করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/container-image.md b/content/bn/container-image.md index 0f03cac749..5ff6eb9f70 100644 --- a/content/bn/container-image.md +++ b/content/bn/container-image.md @@ -5,8 +5,6 @@ category: ধারণা tags: ["", "", ""] --- -## এটা কি - একটি কন্টেইনার ইমেজ হল একটি অপরিবর্তনীয়, স্ট্যাটিক ফাইল যাতে একটি [কন্টেইনার](/bn/container/) তৈরির নির্ভরতা থাকে। এই নির্ভরতাগুলির মধ্যে একটি একক এক্সিকিউটেবল (single executable) বাইনারি ফাইল, সিস্টেম লাইব্রেরি, সিস্টেম টুলস, এনভায়রনমেন্ট ভেরিয়েবল এবং অন্যান্য প্রয়োজনীয় প্ল্যাটফর্ম সেটিংস অন্তর্ভুক্ত থাকতে পারে। কন্টেইনার ইমেজ একটি অ্যাপ্লিকেশনের [কন্টেইনারাইজেশন](/bn/containerization/) থেকে আসে এবং সাধারণত কন্টেইনার রেজিস্ট্রিতে সংরক্ষণ করা হয়, যেখানে সেগুলি ডাউনলোড করা যায় এবং একটি কন্টেইনার রানটাইম ইন্টারফেস (সিআরআই) ব্যবহার করে একটি বিচ্ছিন্ন প্রক্রিয়া হিসাবে চালানো যায়। একটি কন্টেইনার ইমেজ ফ্রেমওয়ার্ককে অবশ্যই ওপেন কন্টেইনার ইনিশিয়েটিভ (OCI) দ্বারা সংজ্ঞায়িত স্ট্যান্ডার্ড স্কিমা অনুসরণ করতে হবে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/container-orchestration.md b/content/bn/container-orchestration.md new file mode 100644 index 0000000000..73ca03c628 --- /dev/null +++ b/content/bn/container-orchestration.md @@ -0,0 +1,22 @@ +--- +title: কন্টেইনার অর্কেস্ট্রেশন (Container Orchestration) +status: Completed +category: ধারণা +--- + +[কন্টেইনার](/bn/container/) অর্কেস্ট্রেশন বলতে বোঝায় গতিশীল পরিবেশে কন্টেইনারাইজড অ্যাপ্লিকেশনের জীবনচক্র পরিচালনা এবং স্বয়ংক্রিয়করণ করাকে । +এটি একটি কন্টেইনার অর্কেস্ট্রেটরের (বেশিরভাগ ক্ষেত্রে, [কুবারনেটিস](/bn/kubernetes)) মাধ্যমে কার্যকর করা হয় , যা স্থাপনা (deployments), [অটো-স্কেলিং](/bn/auto-scaling/) , অটো-হিলিং এবং পর্যবেক্ষণকে সক্ষম করে। +অর্কেস্ট্রেশন একটি রূপক অর্থে : +অর্কেস্ট্রেশন টুল একজন মিউজিক পরিচালকের মতো কন্টেইনারগুলোকে পরিচালনা করে, যা নিশ্চিত করে প্রতিটি কন্টেইনারের (বা সঙ্গীতশিল্পীর) যা করা উচিত । + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +সাধারণত বড় স্কেলে [মাইক্রোসার্ভিস](/bn/microservices-architecture/), নিরাপত্তা, এবং নেটওয়ার্ক কমিউনিকেশন পরিচালনা এবং [ডিস্ট্রিবিউটেড সিস্টেমগুলো](/bn/distributed-systems/) (যদি অসম্ভব নাও হয়) ম্যানুয়ালি পরিচালনা করা কঠিন । +কন্টেইনার অর্কেস্ট্রেশন ব্যবহারকারীদের এই সমস্ত পরিচালনার কাজগুলোকে স্বয়ংক্রিয় করতে দেয় । + +## এটা কিভাবে সাহায্য করে + +কন্টেইনার অর্কেস্ট্রেশন টুল ব্যবহারকারীদের একটি সিস্টেমের অবস্থা নির্ধারণ করতে দেয়। +প্রথমে, তারা ঘোষণা করে যে এটি কেমন হওয়া উচিত (যেমন, x কন্টেইনার, y পড, ইত্যাদি)। +অর্কেস্ট্রেশন টুলটি তখন স্বয়ংক্রিয়ভাবে অবকাঠামো পর্যবেক্ষণ করবে এবং যদি এটি তার ঘোষিত অবস্থা থেকে বিচ্যুত হয় তাহলে সংশোধন করবে (যেমন, একটি কন্টেইনার ক্র্যাশ হলে নতুন আরেকটি কন্টেইনার দেওয়া হবে ) । +এই স্বয়ংক্রিয়তা প্রকৌশল দলের অনেকগুলো অত্যন্ত ম্যানুয়াল এবং জটিল অপারেশনাল কাজকে সহজ করে , যার মধ্যে রয়েছে প্রভিশনিং, স্থাপনা, স্কেলিং (উপরে ও নিচে), নেটওয়ার্কিং, লোড ব্যালেন্সিং এবং অন্যান্য কার্যক্রম । diff --git a/content/bn/container.md b/content/bn/container.md index f7ceed0507..f0d169e5ff 100644 --- a/content/bn/container.md +++ b/content/bn/container.md @@ -2,11 +2,9 @@ title: কন্টেইনার (Container) status: Completed category: প্রযুক্তি -tags: ["application", "fundamental", ""] +tags: ["অ্যাপ্লিকেশন", "মৌলিক", ""] --- -## এটা কি - একটি কন্টেইনার একটি কম্পিউটারের অপারেটিং সিস্টেম দ্বারা পরিচালিত সম্পদ এবং সক্ষমতার সীমাবদ্ধতা সহ একটি চলমান প্রক্রিয়া। কন্টেইনার প্রক্রিয়ার জন্য উপলব্ধ ফাইলগুলি একটি কন্টেইনার চিত্র (Container image) হিসাবে প্যাকেজ করা হয়। কনটেইনারগুলি একই মেশিনে একে অপরের সংলগ্ন সঞ্চালিত হয়, তবে সাধারণত অপারেটিং সিস্টেম পৃথক কন্টেইনার প্রক্রিয়াগুলিকে একে অপরের সাথে ইন্টারঅ্যাক্ট করতে বাধা দেয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে @@ -17,4 +15,4 @@ tags: ["application", "fundamental", ""] কনটেইনারগুলি একই অপারেটিং সিস্টেম এবং এর মেশিন সংস্থানগুলি ভাগ করে, অপারেটিং সিস্টেমের সংস্থান ওভারহেড ছড়িয়ে দেয় এবং শারীরিক মেশিনের দক্ষ ব্যবহার তৈরি করে। এই ক্ষমতা শুধুমাত্র সম্ভব কারণ কন্টেইনারগুলি সাধারণত একে অপরের সাথে যোগাযোগ করতে সক্ষম হতে সীমিত। এটি একই শারীরিক মেশিনে আরও অনেক অ্যাপ্লিকেশন চালানোর অনুমতি দেয়। -তবে সীমাবদ্ধতা আছে। যেহেতু কন্টেইনারগুলি একই অপারেটিং সিস্টেম শেয়ার করে, তাই প্রক্রিয়াগুলি বিকল্পগুলির তুলনায় কম নিরাপদ বলে বিবেচিত হতে পারে৷ ধারকদেরও ভাগ করা সম্পদের সীমা প্রয়োজন। সম্পদের নিশ্চয়তা দিতে, প্রশাসকদের অবশ্যই মেমরি এবং সিপিইউ ব্যবহার সীমাবদ্ধ এবং সীমিত করতে হবে যাতে অন্যান্য অ্যাপ্লিকেশনগুলি খারাপভাবে কাজ না করে। \ No newline at end of file +তবে সীমাবদ্ধতা আছে। যেহেতু কন্টেইনারগুলি একই অপারেটিং সিস্টেম শেয়ার করে, তাই প্রক্রিয়াগুলি বিকল্পগুলির তুলনায় কম নিরাপদ বলে বিবেচিত হতে পারে৷ ধারকদেরও ভাগ করা সম্পদের সীমা প্রয়োজন। সম্পদের নিশ্চয়তা দিতে, প্রশাসকদের অবশ্যই মেমরি এবং সিপিইউ ব্যবহার সীমাবদ্ধ এবং সীমিত করতে হবে যাতে অন্যান্য অ্যাপ্লিকেশনগুলি খারাপভাবে কাজ না করে। diff --git a/content/bn/containerization.md b/content/bn/containerization.md index 12ddb7e70e..fc466e6118 100644 --- a/content/bn/containerization.md +++ b/content/bn/containerization.md @@ -2,11 +2,9 @@ title: কন্টেইনারাইজেশন (Containerization) status: Completed category: প্রযুক্তি -tags: ["application", "", ""] +tags: ["অ্যাপ্লিকেশন", "", ""] --- -## এটা কি - কন্টেইনারাইজেশন হল একটি প্রক্রিয়া যা একটি অ্যাপ্লিকেশন এবং এর সংশ্লিষ্ট জিনিসসমূহকে একটি কন্টেইনার ইমেজ (Container Image) এ বান্ডিল করার প্রক্রিয়া। কন্টেইনার নির্মাণ প্রক্রিয়ার জন্য [ওপেন কন্টেইনার ইনিশিয়েটিভ](https://opencontainers.org) (OCI) মান মেনে চলা প্রয়োজন। যতক্ষণ না একটি কন্টেইনার ইমেজ এই স্ট্যান্ডার্ড মেনে চলে, যে কোন কন্টেইনারাইজেশন টুল ই ব্যবহার করা হয় তা চিন্তার বিষয় নয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/containers-as-a-service.md b/content/bn/containers-as-a-service.md index 1cf27057b8..17ee4258c1 100644 --- a/content/bn/containers-as-a-service.md +++ b/content/bn/containers-as-a-service.md @@ -2,11 +2,9 @@ title: কন্টেইনার এজ এ সার্ভিস (Containers as a Service) status: Deprecated category: প্রযুক্তি -tags: ["platform", "", ""] +tags: ["প্ল্যাটফর্ম", "", ""] --- -## এটা কি - কন্টেইনার এজ এ সার্ভিস (CaaS) হল একটি ক্লাউড পরিষেবা যা অ্যাপগুলি পরিচালনা এবং স্থাপনে সহায়তা করে [ধারক](/bn/container/)-ভিত্তিক [বিমূর্ততা](/bn/abstraction) ব্যবহার করে। এই পরিষেবাটি প্রাঙ্গনে(on-premises) বা ক্লাউডে স্থাপন করা যেতে পারে। diff --git a/content/bn/continuous-delivery.md b/content/bn/continuous-delivery.md index 162cdb2df5..9975604380 100644 --- a/content/bn/continuous-delivery.md +++ b/content/bn/continuous-delivery.md @@ -2,11 +2,9 @@ title: ক্রমাগত বিতরণ (Continuous Delivery) (CD) status: Completed category: ধারণা -tags: ["methodology", "application", ""] +tags: ["পদ্ধতি", "অ্যাপ্লিকেশন", ""] --- -## এটা কি - ক্রমাগত বিতরণ (continuous delivery), প্রায়ই CD হিসাবে সংক্ষিপ্ত, অনুশীলনের একটি সেট যেখানে কোডের পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে একটি গ্রহণযোগ্য পরিবেশে স্থাপন করা হয় (অথবা, ক্রমাগত স্থাপনার (continuous deployment) ক্ষেত্রে, উৎপাদনে)। স্থাপনার (deployment) আগে সফ্টওয়্যারটি (software) পর্যাপ্তভাবে পরীক্ষা করা হয়েছে তা নিশ্চিত করার জন্য CD অত্যন্ত গুরুত্বপূর্ণভাবে প্রক্রিয়াগুলি অন্তর্ভুক্ত করে এবং প্রয়োজন মনে হলে পরিবর্তনগুলি রোলব্যাক (rollback) করার একটি উপায় প্রদান করে। ক্রমাগত একীকরণ (continuous integration) (CI) ক্রমাগত বিতরণের (continuous delivery) প্রথম পদক্ষেপ diff --git a/content/bn/continuous-deployment.md b/content/bn/continuous-deployment.md index 91aa57af1e..fb41b82799 100644 --- a/content/bn/continuous-deployment.md +++ b/content/bn/continuous-deployment.md @@ -2,11 +2,9 @@ title: ক্রমাগত স্থাপনা (Continuous Deployment (CD)) status: Completed category: ধারণা -tags: ["application", "methodology", ""] +tags: ["অ্যাপ্লিকেশন", "পদ্ধতি", ""] --- -## এটা কি - ক্রমাগত স্থাপনা (Continuous Deployment), প্রায়ই CD হিসাবে সংক্ষেপে, সরাসরি উৎপাদনে সমাপ্ত সফ্টওয়্যার (software) স্থাপনের মাধ্যমে [ক্রমাগত বিতরণ (Continuous Delivery)](/bn/continuous-delivery/) থেকে এক ধাপ এগিয়ে যায়। ক্রমাগত স্থাপনা (CD) [ক্রমাগত একীকরণ (Continuous Integration)](/bn/continuous-integration/) (CI) এর সাথে হাত মিলিয়ে যায় এবং প্রায়ই CI/CD হিসাবে উল্লেখ করা হয়। একটি প্রদত্ত অ্যাপ্লিকেশনে পরিবর্তনগুলি বৈধ কিনা তা CI প্রক্রিয়া পরীক্ষা করে এবং CD প্রক্রিয়া স্বয়ংক্রিয়ভাবে একটি প্রতিষ্ঠানের পরিবেশের মাধ্যমে পরীক্ষা থেকে উৎপাদন পর্যন্ত কোডের পরিবর্তনগুলি স্থাপন করে। diff --git a/content/bn/continuous-integration.md b/content/bn/continuous-integration.md index 725918ff0b..ac9e578eb4 100644 --- a/content/bn/continuous-integration.md +++ b/content/bn/continuous-integration.md @@ -2,11 +2,9 @@ title: ক্রমাগত একীকরণ (Continuous Integration) (CI) status: Completed category: ধারণা -tags: ["application", "methodology", ""] +tags: ["অ্যাপ্লিকেশন", "পদ্ধতি", ""] --- -## এটা কি - ক্রমাগত একীকরণ (Continuous integration), প্রায়ই CI হিসাবে সংক্ষেপে, যতটা সম্ভব নিয়মিত কোড পরিবর্তনগুলিকে একীভূত করার অনুশীলন। CI হল [ক্রমাগত বিতরণ (Continuous Delivery)](/bn/continuous-delivery/) (CD) এর পূর্বশর্ত। ঐতিহ্যগতভাবে, CI প্রক্রিয়া শুরু হয় যখন কোড পরিবর্তনগুলি একটি উৎস নিয়ন্ত্রণ ব্যবস্থার (Git, Mercurial, বা Subversion) প্রতি প্রতিশ্রুতিবদ্ধ হয় এবং একটি CD সিস্টেমের দ্বারা গ্রাস করার জন্য প্রস্তুত একটি পরীক্ষিত আর্টিফ্যাক্ট দিয়ে শেষ হয়। diff --git a/content/bn/contribute/_index.md b/content/bn/contribute/_index.md index 1ace3aba8e..c59ec4bc71 100644 --- a/content/bn/contribute/_index.md +++ b/content/bn/contribute/_index.md @@ -7,125 +7,219 @@ menu: weight: 10 --- -ক্লাউড নেটিভ শব্দকোষের(glossary) সমস্ত বিষয়বস্তু এই Github Repo সংরক্ষণ করা হয়েছে। আপনি সেখানে [issues](https://github.com/cncf/glossary/issues), [PRs](https://github.com/cncf/glossary/pulls) এবং শব্দকোষ(glossary) সম্পর্কে [আলোচনার](https://github.com/cncf/glossary/discussions) একটি তালিকা পাবেন। +## স্বাগত -তিনটি উপায়ে আপনি অবদান রাখতে পারেন: +ক্লাউড নেটিভ শব্দকোষ অবদানকারী গাইডে স্বাগতম, এবং আপনার আগ্রহের জন্য আপনাকে ধন্যবাদ। +আপনি এই প্রকল্পে অবদান রাখতে পারেন এমন অনেক উপায় রয়েছে, যা আমরা এখানে বিস্তারিতভাবে কভার করব: -1) [একটি বিদ্যমান সমস্যা নিয়ে কাজ করুন](#work-on-an-existing-issue) -2) [নতুন শর্তাদি প্রস্তাব করুন](#propose-new-terms) +1) [বিদ্যমান সমস্যা নিয়ে কাজ করুন](#work-on-an-existing-issue) +2) [নতুন শর্তাবলী প্রস্তাব](#propose-new-terms) 3) [বিদ্যমানগুলি আপডেট করুন](#update-an-existing-term) -4) [শব্দকোষ অনুবাদে সাহায্য করুন](#help-translate-the-glossary) +4) [শব্দকোষ অনুবাদে সাহায্য করুন](#help-localize-the-glossary) + +## CNCF শব্দকোষ ওভারভিউ + +এই শব্দকোষের লক্ষ্য হল ক্লাউড নেটিভ স্পেসকে সহজ করা — যা এর জটিলতার জন্য কুখ্যাত — এবং এইভাবে এটিকে মানুষের কাছে আরও সহজগম্য করে তোলা। + +ক্লাউড নেটিভ শব্দকোষের বিষয়বস্তু [এই GitHub repo](https://github.com/cncf/glossary) সংরক্ষণ করা হয় +যেখানে আপনি [সমস্যার](https://github.com/cncf/glossary/issues) একটি তালিকা পাবেন, অনুরোধের ([PRs](https://github.com/cncf/glossary/pulls)) +এবং শব্দকোষ সম্পর্কে [আলোচনা](https://github.com/cncf/glossary/discussions) পাবেন। + +## কে অবদান রাখতে পারেন? + +আপনি কীভাবে এই প্রকল্পে অংশগ্রহণ করতে পারেন তা নির্ভর করে আপনার ক্লাউড নেটিভ দক্ষতার স্তরের উপর। +জটিল ধারণাগুলি সরলীকরণের জন্য বিষয়টির গভীর জ্ঞান প্রয়োজন। +অতএব, নতুন শর্তাবলী অবদান রাখতে, আপনাকে অবশ্যই সেগুলিতে দক্ষ হতে হবে। +অবদানকারীরা সাধারণত প্রকৌশলী যারা কিছু সময়ের জন্য এই প্রযুক্তিগুলির সাথে কাজ করেছেন বা শিক্ষাবিদ যারা ক্লাউড নেটিভের উপর মনোনিবেশ করেন। + +এই জ্ঞানের প্রয়োজন কারণ জটিল ধারণাগুলিকে সহজ শব্দে ব্যাখ্যা করা সত্যিই_ কঠিন। এবং যদিও হজমযোগ্য, ব্যবহারকারী-বান্ধব ফলাফল সহজ বলে মনে হতে পারে, ক্লাউড নেটিভ বিশেষজ্ঞদের মধ্যে কঠোর পরিশ্রম এবং সহযোগিতার মাধ্যমে কাঙ্ক্ষিত সহজ ফলাফল অর্জন করা। + +আপনি যদি ক্লাউড-নেটিভ বিশেষজ্ঞ না হন তাও অবদান রাখতে চান, তাহলে আমরা একজন বিশেষজ্ঞের সাথে টিম আপ করার পরামর্শ দিই। +একবার বিশেষজ্ঞ আত্মবিশ্বাসী হন যে শব্দটি সঠিকভাবে ধারণাটিকে বর্ণনা করে, তাহলে আপনি আপনার প্রথম শব্দকোষ অবদানের জন্য প্রস্তুত। + +স্থানীয়করণের প্রচেষ্টা হল যেখানে অন্য ভাষায় দক্ষ নতুনরা শব্দকোষে মূল্যবান অবদান রাখতে পারে। +ইংরেজিতে বিদ্যমান দৃঢ় সংজ্ঞা সহ, কম অভিজ্ঞ অবদানকারীরা একটি টার্গেট ভাষায় স্থানীয়করণ করতে পারেন। আপনি একটি বিদ্যমান স্থানীয়করণ দলে যোগ দিতে পারেন বা একটি নতুন দল তৈরি করতে পারেন৷ কিভাবে শুরু করবেন তা জানতে এই গাইডের [শব্দকোষ স্থানীয়করণে সাহায্য করুন](#help-localize-the-glossary) বিভাগটি পড়ুন। + +## শুরু করার আগে + +আপনার শব্দকোষ অবদানকারীর যাত্রা শুরু করার আগে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করতে ভুলবেন না: + +1. একটি [GitHub অ্যাকাউন্ট](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account) তৈরি করুন, যদি আপনি ইতিমধ্যে না থাকে। +2. [কন্ট্রিবিউটর লাইসেন্স চুক্তিতে](https://docs.linuxfoundation.org/lfx/easycla/v2-current/contributors) (CLA) স্বাক্ষর করুন। +3. [আপনার প্রতিশ্রুতি স্বাক্ষর যাচাই করুন](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) +4. [সতর্ক মোড] সক্ষম করুন(https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode) আপনার প্রতিশ্রুতিতে "যাচাইকৃত" স্থিতি প্রদর্শন করতে আপনার GitHub অ্যাকাউন্টে। + +## সর্বোত্তম অনুশীলন {#best-practices} + +পর্যালোচনা প্রক্রিয়া সহজতর করার জন্য, অনুগ্রহ করে [অর্থবোধক লাইন বিরতি](https://sembr.org/) ব্যবহার করুন (যেমন, প্রতি বাক্যে এক লাইন)। +আমরা এই [মার্কডাউন চিট শীট](https://www.markdownguide.org/cheat-sheet/) চেক করার পরামর্শ দিই +GitHub-এ মার্কডাউন টেক্সট সঠিকভাবে ফরম্যাট করতে (যেমন, হাইপারলিঙ্ক, বোল্ড, ইটালিক)। +এবং .md ফাইলের নামকরণ করার সময়, শব্দগুলিকে আলাদা করতে এবং বন্ধনী এড়াতে স্পেসের পরিবর্তে অনুগ্রহ করে ছোট হাতের অক্ষর এবং হাইফেন ব্যবহার করুন। + +## স্টাইল গাইড + +নথি বিন্যাস এবং লেখার জন্য আমাদের নির্দেশিকা বুঝতে এবং অবদান প্রক্রিয়াকে আরও দক্ষ করে তুলতে আমাদের [স্টাইল নির্দেশিকা](/bn/style-guide/) পড়ুন। ## শব্দকোষ সম্প্রদায়ে যোগ দিন! {#join-the-glossary-community} -আপনি যদি নিয়মিত অবদান রাখতে চান তবে আমাদের মাসিক শব্দকোষ ওয়ার্কিং গ্রুপ মিটিংয়ে যোগদানের কথা বিবেচনা করুন। আপনি [CNCF ক্যালেন্ডার](https://www.cncf.io/calendar/) এ মিটিংয়ের বিশদ বিবরণ পেতে পারেন। এছাড়াও আপনি CNCF Slack-এ আমাদের [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) চ্যানেলে রক্ষণাবেক্ষণকারী এবং সহযোগী অবদানকারীদের সাথে সংযোগ করতে পারেন — আমরা আপনার সাথে দেখা করতে চাই! +আপনি যদি নিয়মিত অবদান রাখতে চান তবে আমাদের মাসিক শব্দকোষ ওয়ার্কিং গ্রুপ মিটিংয়ে যোগদানের কথা বিবেচনা করুন। +আপনি [CNCF ক্যালেন্ডার](https://www.cncf.io/calendar/) এ মিটিংয়ের বিশদ বিবরণ পাবেন। +এছাড়াও আপনি CNCF স্ল্যাকে (slack) আমাদের [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) চ্যানেলে রক্ষণাবেক্ষণকারী এবং সহযোগী অবদানকারীদের সাথে সংযোগ করতে পারেন +— আমরা আপনার সাথে দেখা করতে চাই! + +## বিদ্যমান সমস্যা নিয়ে কাজ করুন {#work-on-an-existing-issue} + +উপলব্ধ সমস্যাগুলির একটি তালিকা খুঁজতে [Glossary GitHub repo issue](https://github.com/cncf/glossary/issues) এ যান। +সমস্যাগুলি ফিল্টার করতে আপনি লেবেলগুলি (labels) ব্যবহার করতে পারেন (যেমন, ইংরেজি ভাষা (English language), সাহায্যের প্রয়োজন (help needed), ভাল প্রথম সমস্যা (good first issue))। -## একটি বিদ্যমান সমস্যা নিয়ে কাজ করুন {#work-on-an-existing-issue} +![সমস্যা এবং লেবেল](/images/how-to/issue-and-labels.png) -[Glossary GitHub repository issues](https://github.com/cncf/glossary/issues) এ যান। সেখানে আপনি সমস্ত সমস্যার একটি তালিকা দেখতে পাবেন। আপনি লেবেল দ্বারা ফিল্টার করতে পারেন (যেমন বাংলা ভাষা, সাহায্যের প্রয়োজন(help needed), প্রথম ভাল সমস্যা(good first issue)। মনে রাখবেন যে এটি করার জন্য আপনার একটি GitHub অ্যাকাউন্টের প্রয়োজন হবে। +নিশ্চিত করুন যে আপনি যে শব্দটি নির্বাচন করেছেন তা ইতিমধ্যে কাউকে বরাদ্দ করা হয়নি। +উদাহরণস্বরূপ, এখানে আপনি দেখতে পাচ্ছেন যে প্রথম তিনটি পদ উপলব্ধ রয়েছে যখন চতুর্থটি ইতিমধ্যেই বরাদ্দ করা হয়েছে৷ -![ইস্যু এবং লেবেল](/images/how-to/issue-and-labels.png) +![একটি মেয়াদ নির্ধারণ](/images/how-to/howto-04.png) -নিশ্চিত করুন যে আপনি যে পদ/শব্দটিতে আগ্রহী তা ইতিমধ্যেই কাউকে বরাদ্দ করা হয়নি। এখানে আপনি দেখতে পাচ্ছেন যে প্রথম তিনটি পদ/শব্দ উপলব্ধ রয়েছে যখন পরবর্তী মেয়াদ ইতিমধ্যেই বরাদ্দ করা হয়েছে৷ +একবার আপনি কাজ করার জন্য একটি শব্দ নির্বাচন করলে, সমস্যাটির বিষয়ে মন্তব্য করুন। -![একটি শব্দ বরাদ্দ করা](/images/how-to/howto-04.png) +![একটি সমস্যা দাবি করা](/images/how-to/claiming-an-issue.png) -একবার আপনি এমন একটি শব্দ খুঁজে পেলেন যেটিতে আপনি কাজ করতে চান, ইস্যুতে(issue) বলুন। এটি ক্লিক করুন এবং একটি মন্তব্য যোগ করুন. +উপরন্তু, CNCF স্ল্যাক (slack) ওয়ার্কস্পেসের (workspace) [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) চ্যানেলে রক্ষণাবেক্ষণকারীদের অবহিত করুন এবং +ট্যাগ করুন _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_, এবং/অথবা _@castrojo_ যাতে তারা এটি মিস না করে। -![একটি সমস্যা(issue) দাবি করা](/images/how-to/claiming-an-issue.png) +পরবর্তী পদক্ষেপের জন্য, অনুগ্রহ করে [একটি নতুন শব্দ জমা দেওয়া (একটি PR তৈরি করুন)](#submitting-a-new-term) বিভাগটি পড়ুন। -এছাড়াও, অনুগ্রহ করে CNCF Slack-এর [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) চ্যানেলে যোগ দিন এবং রক্ষণাবেক্ষণকারীদের জানান যে আপনি একটি নতুন শব্দের জন্য একটি সমস্যা উত্থাপন করেছেন (আদর্শভাবে) , ট্যাগ করুন _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_, এবং/অথবা _@iamnoah_ যাতে তারা এটি মিস না করে)। মনে রাখবেন যে আপনি একবারে শুধুমাত্র একটি মেয়াদ দাবি করতে পারেন। আপনি যদি একাধিক শর্তে কাজ করতে চান, অনুগ্রহ করে পরেরটি দাবি করার আগে একটি শেষ করুন। +**দ্রষ্টব্য**: রক্ষণাবেক্ষণকারীরা আপনাকে এটি বরাদ্দ করার পরে আপনি একটি সমস্যা নিয়ে কাজ শুরু করতে পারেন। +আপনি একটি সময়ে শুধুমাত্র একটি শব্দ দাবি করতে পারবেন. +ক্রমিক ভাবে একাধিক শব্দে কাজ করার জন্য, পরেরটি দাবি করার আগে আপনাকে অবশ্যই একটি শব্দ সম্পূর্ণ করতে হবে। -একবার তারা এটি আপনাকে বরাদ্দ করলে, আপনি এটিতে কাজ শুরু করতে পারেন। পরবর্তী ধাপগুলির জন্য, অনুগ্রহ করে [একটি নতুন শব্দ জমা দেওয়া (একটি পিআর তৈরি করা)](#submitting-a-new-term) বিভাগটি পড়ুন। +## প্রপস-এ নতুন শব্দ {#propose-new-terms} -## নতুন শর্তাবলী প্রস্তাব করুন {#propose-new-terms} +আপনি অন্যদের জন্য একটি নতুন শব্দ প্রস্তাব করতে পারেন বা নিজে একটি নতুন সংজ্ঞা তৈরি করতে পারেন৷ +যেভাবেই হোক, আপনি শুরু করবেন [একটি সমস্যা তৈরি করে](#creating-an-issue)। +শব্দকোষে যোগ করার জন্য, প্রতিটি নতুন শব্দ অবশ্যই [CNCF এর ক্লাউড নেটিভ সংজ্ঞা](https://github.com/cncf/toc/blob/main/DEFINITION.md) পূরণ করতে হবে। +শুধুমাত্র ব্যতিক্রমগুলি হল ক্লাউড নেটিভ ধারণাগুলি বোঝার জন্য প্রয়োজনীয় মৌলিক পদ। -আপনি অন্যদের জন্য একটি নতুন শব্দ প্রস্তাব করতে পারেন বা নিজে একটি নতুন সংজ্ঞা তৈরি করতে পারেন৷ যেভাবেই হোক, আপনি একটি সমস্যা তৈরি করে শুরু করবেন। +নীচে গিটহাবের সাথে অপরিচিত লোকেদের জন্য একটি ধাপে ধাপে নির্দেশিকা রয়েছে৷ +**যদি আপনি একজন GitHub Pro** হন, তাহলে অনুগ্রহ করে নিম্নলিখিত বিষয়গুলি সম্পর্কে যথেষ্ট তথ্য সংগ্রহ করতে এই নির্দেশিকাটি স্ক্যান করুন: -যারা এখনও GitHub এর সাথে পরিচিত নন তাদের জন্য নীচে একটি ধাপে ধাপে নির্দেশিকা। **আপনি যদি একজন GitHub Pro** হন, তাহলে অনুগ্রহ করে _করুন_ যাতে আপনি আমাদের ইস্যু টেমপ্লেট, উপযুক্ত নামকরণ প্রথা ব্যবহার করেন, স্ল্যাকের উপর একটি পিআর দাবি করেন (অন্যথায় আমরা এটি মিস করতে পারি), এবং কোথায় পাবেন তা নিশ্চিত করতে দ্রুত দেখুন ফাইল টেমপ্লেট। এবং অনুগ্রহ করে শুরু করার আগে [স্টাইল গাইড](/bn/style-guide/) পড়া নিশ্চিত করুন — ধন্যবাদ! +1. সমস্যা এবং নতুন পদগুলির জন্য টেমপ্লেটগুলি সনাক্ত করা৷ +2. দাবি সংক্রান্ত সমস্যা। +3. [বানান পরীক্ষা](#spell-check) ব্যর্থতা সমাধান করা৷ ### একটি সমস্যা তৈরি করা {#creating-an-issue} [Glossary GitHub repo](https://github.com/cncf/glossary/issues) সমস্যাগুলিতে যান এবং "নতুন সমস্যা" এ ক্লিক করুন। -![সমস্যা(issues)](/images/how-to/howto-01.png) +![সমস্যা (issues)](/images/how-to/howto-01.png) -আপনি বিভিন্ন ধরনের টেমপ্লেট দেখতে পাবেন। ইংরেজিতে একটি নতুন শব্দ প্রস্তাব করতে, "একটি নতুন শব্দ যোগ করার অনুরোধ (ডিফল্ট: ইংরেজি) নির্বাচন করুন৷ +টেমপ্লেটের তালিকা থেকে "একটি নতুন শব্দ (ইংরেজি) যোগ করার অনুরোধ" নির্বাচন করুন। -![টেমপ্লেট(template)](/images/how-to/english-issue-template-new.png) +![টেমপ্লেট](/images/how-to/english-issue-template.jpg) -আপনি যে শব্দটি প্রস্তাব করছেন তা যোগ করুন, নীচের দুটি প্রশ্নের উত্তর দিন এবং "নতুন সমস্যা জমা দিন" টিপুন। আপনি যদি শুধু একটি নতুন শব্দ প্রস্তাব করেন, আপনি সম্পন্ন! এটিতে কাজ করতে, পরবর্তী পদক্ষেপগুলি অনুসরণ করুন৷ +আপনি যে শব্দটি প্রস্তাব করছেন তা যোগ করুন, প্রশ্নের উত্তর দিন, বাক্সে টিক চিহ্ন দিন এবং "নতুন সমস্যা জমা দিন (Submit new issue)" টিপুন। +আপনি যদি শুধুমাত্র একটি নতুন শব্দ প্রস্তাব করছেন, আপনি সম্পন্ন! আপনি যদি সংজ্ঞা নিয়ে কাজ করতে চান তবে পড়তে থাকুন। -### আপনার সমস্যা এর পরবর্তী ধাপ {#triaging-your-issue} +### আপনার সমস্যা triaging {#triaging-your-issue} -এর পরে, রক্ষণাবেক্ষণকারীরা সমস্যাটি সমাধান করবে। এর অর্থ হল শব্দটি শব্দকোষের অংশ হওয়া উচিত কিনা তা তারা মূল্যায়ন করবে (দ্রষ্টব্য, প্রতিটি পদকে সংযুক্ত করা হবে না। শর্তাবলী প্রতিষ্ঠিত হওয়া উচিত এবং ব্যাপকভাবে ব্যবহৃত ক্লাউড নেটিভ টার্মস)। +এর পরে, রক্ষণাবেক্ষণকারীরা সমস্যাটি সমাধান করবে। +এর মানে তারা মূল্যায়ন করবে যে শব্দটি শব্দকোষের অংশ হওয়া উচিত কিনা। +প্রতিটি পদে ভর্তি হবে না। শব্দকোষে অন্তর্ভুক্ত করার জন্য, সেগুলিকে প্রতিষ্ঠিত করতে হবে এবং ব্যাপকভাবে ব্যবহৃত ক্লাউড নেটিভ ধারণাগুলি ব্যবহার করতে হবে৷ -অনুগ্রহ করে রক্ষণাবেক্ষণকারীদের জানান যে আপনি স্ল্যাকে একটি মেয়াদ জমা দিয়েছেন কারণ তারা অন্যথায় এটি মিস করতে পারে। আদর্শভাবে, ট্যাগ করুন _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_ অথবা _@iamnoah_। যদি শব্দটি অনুমোদিত হয় এবং আপনি এটিতে কাজ করতে চান তবে তারা এটি আপনাকে বরাদ্দ করবে। - -মনে রাখবেন যে আপনি একবারে শুধুমাত্র একটি মেয়াদ দাবি করতে পারেন। আপনি যদি একাধিক শর্তে কাজ করতে চান, অনুগ্রহ করে পরেরটি দাবি করার আগে একটি শেষ করুন। +অনুগ্রহ করে রক্ষণাবেক্ষণকারীদের স্ল্যাক (slack) এ জানান এবং ট্যাগ (tag) করুন _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_, এবং _@castrojo_ যে একটি নতুন শব্দ প্রস্তাব করেছেন যাতে তারা এটা মিস না করে। +আপনি যদি সংজ্ঞা নিয়ে কাজ করতে চান তবে রক্ষণাবেক্ষণকারীদের জানান এবং তারা এটি আপনাকে বরাদ্দ করবে। ### একটি নতুন পদ জমা দেওয়া (একটি PR তৈরি করা) {#submitting-a-new-term} -শুরু করার আগে, অনুগ্রহ করে [শৈলী নির্দেশিকা](/bn/style-guide/) পড়ুন — এটি পিছনে এবং পিছনে ছোট করতে সাহায্য করবে। শৈলী নির্দেশিকাতে যেমন বলা হয়েছে, আমরা একটি Google বা Word ডক দিয়ে শুরু করার সুপারিশ করি। +আমাদের [শৈলী নির্দেশিকা](/bn/style-guide/) এ যেমন বলা হয়েছে, আমরা একটি Google বা Word ডক দিয়ে শুরু করার সুপারিশ করি। -শব্দটি জমা দেওয়ার জন্য প্রস্তুত হয়ে গেলে, সামগ্রীতে যান (কোডের অধীনে)… +শব্দটি জমা দেওয়ার জন্য প্রস্তুত হয়ে গেলে, সামগ্রীতে যান (<>কোডের অধীনে)… -![content](/images/how-to/howto-05.png) +![বিষয়বস্তু](/images/how-to/howto-05.png) -…তারপর "en" (বা আপনি যে ভাষার জন্য জমা দিচ্ছেন)… +…তারপর "en" (ইংরেজির জন্য) অথবা আপনি যে ভাষার জন্য অবদান রাখছেন তার প্রথম দুটি অক্ষর... ![ভাষা ফোল্ডার](/images/how-to/howto-06.png) -…এবং _TEMPLATE.md নির্বাচন করুন +…এবং `_TEMPLATE.md` নির্বাচন করুন -![টেমপ্লেট](/images/how-to/howto-07.png) +![টেমপ্লেট (template)](/images/how-to/howto-07.png) কন্টেন্ট কপি করুন... ![কন্টেন্ট কপি](/images/how-to/howto-08.png) -…এবং "en" ফোল্ডারে ফিরে যান। "ফাইল যোগ করুন" টিপুন এবং "নতুন ফাইল তৈরি করুন" নির্বাচন করুন। +…এবং "en" ফোল্ডারে ফিরে যান। "ফাইল যোগ করুন (Add file)" ক্লিক করুন এবং "নতুন ফাইল তৈরি করুন (Create new file)" নির্বাচন করুন। ![নতুন ফাইল তৈরি করুন](/images/how-to/howto-09.png) -URL-এ শব্দের নাম যোগ করুন (কোনও ক্যাপিটালাইজেশন এবং স্পেস নেই) এবং শেষে .md (দ্রষ্টব্য: যদি আপনার পূর্বরূপ কাজ না করে, আপনি সম্ভবত শেষে .md যোগ করতে ভুলে গেছেন)। এখন নিচের টেমপ্লেট কন্টেন্ট পেস্ট করুন। ফাইলটিতে আপনার সংজ্ঞাটি অনুলিপি করুন এবং পেস্ট করুন। মনে রাখবেন GitHub টেক্সট ফরম্যাট করতে মার্কডাউন ব্যবহার করে (যেমন, হাইপারলিঙ্ক, বোল্ড, ইটালিক)। অনুগ্রহ করে এই [মার্কডাউন চিট শীট](https://www.markdownguide.org/cheat-sheet/) দেখুন। আপনি যেভাবে মার্কডাউন ব্যবহার করেছেন তা যাচাই করতে, "প্রিভিউ" এ যান। +[সর্বোত্তম অনুশীলন](#best-practices) বিভাগে বর্ণিত URL-এ শব্দটির নাম যোগ করুন। +নামের শেষে .md এক্সটেনশন যোগ করুন (এই এক্সটেনশনটি ছাড়া আপনি আপনার ফাইলের পূর্বরূপ দেখতে পারবেন না)। +এখন নীচের বিভাগে টেমপ্লেট সামগ্রী পেস্ট করুন। ফাইলটিতে আপনার সংজ্ঞার পাঠ্যটি অনুলিপি করুন এবং পেস্ট করুন। +আপনি [সর্বোত্তম অনুশীলন](#best-practices) বিভাগে বর্ণিত মার্কডাউন ব্যবহার করেছেন তা যাচাই করতে, "প্রিভিউ (Preview)" এ ক্লিক করুন। -![চূড়ান্ত মেয়াদ](/images/how-to/howto-10.png) +![শব্দ চূড়ান্ত করা](/images/how-to/howto-10.png) -আপনি যখন জমা দিতে প্রস্তুত তখন নিচে স্ক্রোল করুন এবং নতুন কমিট ফাইলের নাম দিন। আপনি এখন আপনার নিজের শাখায় শব্দটি কমিট করতে চলেছেন। একটি PR জমা দেওয়ার জন্য আরও একটি ধাপ প্রয়োজন৷ "নতুন ফাইল কমিট" টিপুন এবং... +নিচে স্ক্রোল করুন এবং নতুন কমিট ফাইলের নাম দিন। আপনি যখন জমা দিতে প্রস্তুত তখন "নতুন ফাইল কমিট করুন (Commit new file)" টিপুন +এবং… -![নতুন ফাইল কমিট](/images/how-to/howto-11.png) +![নতুন ফাইল কমিট (commit new file)](/images/how-to/howto-11.png) -…এখন আপনি একটি PR তৈরি করছেন: +… আপনি এখন একটি নতুন PR তৈরি করতে প্রস্তুত: -![একটি PR তৈরি করুন](/images/how-to/howto-12.png) +![একটি pr তৈরি করুন](/images/how-to/howto-12.png) -আপনার এখন "পুল রিকোয়েস্ট" এর অধীনে আপনার PR দেখতে হবে। +একবার আপনি "পুল রিকোয়েস্ট তৈরি করুন (Create pull request)" বোতাম টিপলে আপনার পিআর "পুল রিকোয়েস্ট (Pull requests)" ট্যাবে দৃশ্যমান হবে। -![prs](/images/how-to/howto-13.png) +![PRs](/images/how-to/howto-13.png) -## একটি বিদ্যমান টার্ম আপডেট করুন {#update-an-existing-term} +## একটি বিদ্যমান শব্দ আপডেট করুন {#update-an-existing-term} -একটি বিদ্যমান শব্দ আপডেট করতে, আপনি হয় একটি সমস্যার মাধ্যমে একটি পরিবর্তনের পরামর্শ দিতে পারেন বা এগিয়ে যান এবং একটি পুল অনুরোধ (PR) জমা দিয়ে সরাসরি শব্দটি আপডেট করতে পারেন৷ +একটি বিদ্যমান শব্দ আপডেট করতে, আপনি একটি সমস্যা তৈরি করে পরিবর্তনের অনুরোধ করতে পারেন +অথবা পরিবর্তনগুলি নিজে কাজ করুন এবং একটি PR জমা দিন। -### একটি সমস্যার মাধ্যমে একটি পরিবর্তনের অনুরোধ করুন {#request-a-change-via-an-issue} +### একটি সমস্যা (issue) মাধ্যমে একটি পরিবর্তন অনুরোধ {#request-a-change-via-an-issue} -আপনি যদি একটি শব্দের সাথে একটি সমস্যা ফ্ল্যাগ করতে চান কিন্তু কীভাবে এটি নিজেই ঠিক করতে চান না জানেন, তাহলে "সমস্যা প্রতিবেদন করুন" এ ক্লিক করুন৷ +আপনি যদি একটি শব্দের সাথে একটি সমস্যা ফ্ল্যাগ করতে চান, আপনি CNCF শব্দকোষ ওয়েবপৃষ্ঠার "ইস্যু রিপোর্ট করুন (Report issue)" বিকল্পটি ব্যবহার করতে পারেন। +আপনি যে ধারণাটি পতাকাঙ্কিত করতে চান তার CNCF পৃষ্ঠায় নিজেকে সনাক্ত করুন এবং "ইস্যু রিপোর্ট করুন (Report issue)" এ ক্লিক করুন। +এটি স্বয়ংক্রিয়ভাবে আপনার জন্য একটি সমস্যা খুলবে -![রিপোর্ট সমস্যা](/images/how-to/howto-14.png) +![রিপোর্ট সমস্যা (Report issue)](/images/how-to/howto-14.png) -এটি সরাসরি একটি সমস্যা খুলবে। কোন পরিবর্তন প্রয়োজন এবং কেন তা বিস্তারিতভাবে বলুন। জমা দিন, এবং যে এটা. +আপনার পরামর্শ বর্ণনা করুন এবং কেন তারা প্রয়োজন. জমা দিন, এবং যে এটি। -![সমস্যার জমা দিন](/images/how-to/howto-15.png) +![সমস্যা জমা দিন (submit issue)](/images/how-to/howto-15.png) -### একটি টার্ম সরাসরি আপডেট করুন {#update-a-term-directly} +### সরাসরি একটি শব্দ আপডেট করুন {#update-a-term-directly} -একটি শব্দ সরাসরি পরিবর্তন করতে, "এই পৃষ্ঠাটি সম্পাদনা করুন" এ যান। +একটি শব্দ সংশোধন করতে এবং আপনার পরামর্শ জমা দিতে, "এই পৃষ্ঠাটি সম্পাদনা করুন (Edit this page)" এ ক্লিক করুন। ![এই পৃষ্ঠাটি সম্পাদনা করুন](/images/how-to/howto-16.png) -এটি শব্দের GitHub পৃষ্ঠা খুলবে। আপনার পরিবর্তন করুন এবং একটি পিআর জমা দিন। বিশদ বিবরণের জন্য অনুগ্রহ করে উপরে "একটি নতুন শব্দ জমা দেওয়া" দেখুন (মার্কডাউন সম্পর্কে কথা বলা বিভাগে যান)। +এটি শব্দের GitHub পৃষ্ঠা খুলবে। আপনার পরিবর্তন করুন এবং একটি PR তৈরি করুন। +অনুগ্রহ করে উপরের [সর্বোত্তম অনুশীলন](#best-practices) বিভাগটি দেখুন +এবং আপনি আমাদের নির্দেশিকা অনুসরণ করেন তা নিশ্চিত করতে আমাদের [স্টাইল গাইড](/bn/style-guide/) পড়ুন। + +## শব্দকোষ স্থানীয়করণে সাহায্য করুন {#help-localize-the-glossary} + +শব্দকোষটিকে একটি টার্গেট ভাষায় স্থানীয়করণে সহায়তা করতে, অনুগ্রহ করে CNCF স্ল্যাক ওয়ার্কস্পেসে (slack workspace) [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) চ্যানেলে যোগ দিন এবং আমাদের একটি বার্তা পাঠান। +আপনি হয় একটি বিদ্যমান দলে যোগ দিতে পারেন বা একটি নতুন দল তৈরি করতে পারেন৷ +(এতে কী লাগে তা দেখতে, আমাদের [স্থানীয়করণ নির্দেশিকা](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md) পড়ুন)। +অনুগ্রহ করে সেই দলের অবদান প্রক্রিয়ার সুনির্দিষ্ট তথ্য সংগ্রহ করতে লক্ষ্য ভাষার **কীভাবে অবদান রাখবেন (How to contribute)** নির্দেশিকা পড়ুন। + +## বানান যাচাই {#spell-check} + +বানান পরীক্ষা ব্যর্থ হওয়ার দুটি প্রধান কারণ রয়েছে: + +- PR-এ ভুল বানান রয়েছে। +- PR-এ এমন শব্দ রয়েছে যা শব্দ তালিকায় নিবন্ধিত নয়। + +তালিকায় নতুন শব্দ যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন: + +1. আপনার PR-এ, "wordlist.txt" ফাইলটি সন্ধান করুন। +2. "এই ফাইলটি সম্পাদনা করুন (Edit this file)" এ ক্লিক করুন এবং অনুপস্থিত শব্দগুলিকে বর্ণানুক্রমিক (alphabetic) ক্রমে যুক্ত করুন৷ +3. একটি প্রতিশ্রুতি বার্তা যোগ করুন এবং "সাইন অফ করুন এবং পরিবর্তনগুলি প্রস্তাব করুন (Sign off and propose changes)" নির্বাচন করুন। + +**দ্রষ্টব্য**: বানান পরীক্ষা অক্ষর-সংবেদনশীল। -## শব্দকোষ অনুবাদ করতে সাহায্য করুন {#help-translate-the-glossary} -আপনার মাতৃভাষায় শব্দকোষটি অনুবাদ করতে সাহায্য করতে, অনুগ্রহ করে CNCF Slack-এ #glossary-localizations চ্যানেলে যোগ দিন এবং আমাদের জানান। আপনি হয় একটি বিদ্যমান দলে যোগ দিতে পারেন বা একটি নতুন দল তৈরি করতে পারেন (এটি কী নেয় তা দেখতে, চেক আউট করুন বা [স্থানীয়করণ গাইড](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md))। এছাড়াও আমাদের মাসিক শব্দকোষ ওয়ার্কিং গ্রুপ মিটিং যোগদান করুন. আপনি [CNCF ক্যালেন্ডার](https://www.cncf.io/calendar/) এ মিটিংয়ের বিশদ বিবরণ পেতে পারেন। আমরা সেখানে আপনার সাথে দেখা করার জন্য উন্মুখ! +**আমরা [The Good Docs Project](https://thegooddocsproject.dev/) থেকে টেমপ্লেটের ভিত্তিতে এই নির্দেশিকা আপডেট করেছি।** diff --git a/content/bn/data-center.md b/content/bn/data-center.md index 3ce45d3263..08ad17ac35 100644 --- a/content/bn/data-center.md +++ b/content/bn/data-center.md @@ -1,29 +1,29 @@ --- title: তথ্য কেন্দ্র (Data center) -status: Feedback Appreciated -category: প্রযুক্তি -tags: ["infrastructure", "", ""] +status: Completed +category: প্রযুক্তি +tags: ["অবকাঠামো","মৌলিক"] --- -## এটা কি - একটি তথ্য কেন্দ্র হল একটি বিশেষ ভবন বা সুবিধা যা বিশেষভাবে হাউজ কম্পিউটার, প্রায়শই সার্ভারগুলির জন্য ডিজাইন করা হয়। -তথ্য কেন্দ্রগুলি উচ্চ-গতির ইন্টারনেট লাইনের সাথে সংযুক্ত থাকে, -বিশেষ করে তথ্য কেন্দ্রের ক্ষেত্রে [ক্লাউড কম্পিউটিং](bn/cloud-computing/) উপর নির্ভর করে। -বিভিন্ন ধরণের ঘটনাগুলির ক্ষেত্রেও তথ্য কেন্দ্র গুলোর ভবন রয়েছে পরিষেবা বজায় রাখার জন্য সরঞ্জাম রয়েছে, -যেমন বিদ্যুৎ বিভ্রাটের সময় বিদ্যুৎ সরবরাহ করতে জেনারেটর, পাশাপাশি কম্পিউটার দ্বারা উত্পাদিত অতিরিক্ত তাপ মোকাবেলা করার জন্য শক্তিশালী শীতাতপ নিয়ন্ত্রণ ব্যবস্থা। +তথ্য কেন্দ্রগুলি উচ্চ-গতির ইন্টারনেট লাইনের সাথে সংযুক্ত থাকে, বিশেষ করে তথ্য কেন্দ্রের ক্ষেত্রে [ক্লাউড কম্পিউটিং](bn/cloud-computing/) উপর নির্ভর করে। +বিভিন্ন ধরণের ঘটনাগুলির ক্ষেত্রেও তথ্য কেন্দ্র গুলোর ভবন রয়েছে পরিষেবা বজায় রাখার জন্য সরঞ্জাম রয়েছে, যেমন বিদ্যুৎ বিভ্রাটের সময় বিদ্যুৎ সরবরাহ করতে জেনারেটর, পাশাপাশি কম্পিউটার দ্বারা উত্পাদিত অতিরিক্ত তাপ মোকাবেলা করার জন্য শক্তিশালী শীতাতপ নিয়ন্ত্রণ ব্যবস্থা। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে -প্রতিটি ব্যবসা প্রতিষ্ঠান, যেখানে তারা অবস্থিত, সেখানে নিজস্ব সার্ভার সরঞ্জাম হোস্ট করার পরিবর্তে -তথ্য কেন্দ্র এসব প্রতিষ্ঠান এবং ব্যক্তিদের বড় পরিসরে তথ্য ব্যবস্থাপনার বিশেষ জ্ঞান এবং দক্ষতা ব্যবহার করতে অনুমতি দেয় -এর মানে হল শক্তি সরবরাহ , অগ্নি প্রযুক্তি , শীতাতপ নিয়ন্ত্রণ, উচ্চ গতির ইন্টারনেট সংযোগ নিয়ে চিন্তা করতে হবে না। +1990 এর দশকের শেষের দিকে ডেটাসেন্টারগুলো প্রচলিত হওয়ার আগে, 1990 এর দশকের শেষের দিকে ডেটাসেন্টারগুলো প্রচলিত হওয়ার আগে, সেখানে প্রধানত পৃথক কম্পিউটারগুলো ছিল নির্দিষ্ট কাজ করার জন্য অথবা ব্যক্তিরা তাদের কাজ করার জন্য সেগুলো ব্যবহার করত। + +কিন্তু কম্পিউটারে সীমিত সম্পদ (ডিস্ক, র‍্যাম এবং সিপিই) রয়েছে। +এর মানে হলো যে সেগুলোতে চলমান অ্যাপ্লিকেশনগুলোরও একই কঠিন সীমাবদ্ধতা রয়েছেে , ফলে এটি যত ধরণের অ্যাপ্লিকেশনগুলো চালাতে পারে তাকে সীমিত করে । +ডেটাসেন্টারগুলোর আগে, অ্যাপ্লিকেশনটির স্কেল যে কম্পিউটারে চলছিল তার ধারণক্ষমতার উপর সীমাবদ্ধ ছিল। +কিন্তু আপনি যদি Gmail বা Netflix (অ্যাপ, আপনার ফোন বা কম্পিউটারে থাকা ইউজার ইন্টারফেস নয়) এর মতো স্কেলের অ্যাপের কথা চিন্তা করেন, তাহলে তাদের যেকোন একটি কম্পিউটারের চেয়ে বেশি কম্পিউটিং ক্ষমতা প্রয়োজন। +এবং এখানেই আসে ডেটাসেন্টারের কাজ । ## এটা কিভাবে সাহায্য করে -ক্লাউড কম্পিউটিংয়ের জন্য, তথ্য কেন্দ্র গুলি অত্যন্ত গুরুত্বপূর্ণ। -যেহেতু চাহিদার [স্কেল](bn/scalability/) অনুযায়ী সংস্থান এবং অবকাঠামোর ব্যবস্থা করা যেতে পারে, -ব্যবসাপ্রতিষ্ঠানগুলি কম্পিউটিং সংস্থানগুলির জন্য পূর্বাভাস এবং সম্ভাব্যভাবে কম রিসোর্সিং বা অতিরিক্ত অর্থ প্রদান সম্পর্কে চিন্তা না করেই একটি তথ্য কেন্দ্র এ ক্লাউড কম্পিউটিং সংস্থান ভাড়া নিতে পারে। -যেহেতু সারা বিশ্বে তথ্য কেন্দ্র সেন্টার রয়েছে, -এটি ভৌগোলিকভাবে চাহিদার কাছাকাছি সংস্থান সরবরাহের অনুমতি দেয় -সত্যিকারের সরঞ্জাম আনা এবং সরঞ্জাম সেট আপ না করে। +বিভিন্ন সার্ভার সংযুক্ত করে, ব্যবহারকারীরা একটি [ডিস্ট্রিবিউটেড সিস্টেম](/bn/distributed-systems/) তৈরি করতে পারে যা "সুপার কম্পিউটার" এর মত কাজ করে। +যেহেতু আমরা বেশ কয়েকটি মেশিনের শক্তি একত্রিত করছি, আমরা এখন অনেক বড় অ্যাপ চালাতে পারি বা অনেক বেশি শক্তিশালী কম্পিউটেশনাল কাজগুলো প্রক্রিয়া করতে পারি। +ডেটাসেন্টারগুলো আমাদের দৈনিক ভিত্তিতে ব্যবহার করা বেশিরভাগ অ্যাপ্লিকেশনগুলোকে শক্তি দেয়। + +[পাবলিক ক্লাউডস](/bn/cloud-computing/) হলো ডেটাসেন্টার যা তাদের ক্লায়েন্টদের ধারণক্ষমতা ভাড়া দেয়। +বিগত বছরগুলোতে, আমরা দেখেছি এন্টারপ্রাইজ-মালিকানাধীন ডেটাসেন্টার থেকে ক্লাউডে অ্যাপ্লিকেশনগুলোকে সরানো হয়েছে । diff --git a/content/bn/database-as-a-service.md b/content/bn/database-as-a-service.md index c0f82ab730..9b253f6b9b 100644 --- a/content/bn/database-as-a-service.md +++ b/content/bn/database-as-a-service.md @@ -6,8 +6,6 @@ draft: true tags: ["", "", ""] --- -## এটা কি - ডেটবেস-এজ-এ-সার্ভিস (DBaaS) হল একটি "[ক্লাউড](/bn/cloud_computing/)" অপারেটর (সর্বজনীন বা ব্যক্তিগত) দ্বারা পরিচালিত একটি পরিষেবা যেটি অ্যাপ্লিকেশন টিমের প্রয়োজন ছাড়াই অ্যাপ্লিকেশনগুলিকে সমর্থন করে৷ ঐতিহ্যগত ডাটাবেস প্রশাসন ফাংশন সঞ্চালন. diff --git a/content/bn/debugging.md b/content/bn/debugging.md index 46fe2ca9ee..511e294687 100644 --- a/content/bn/debugging.md +++ b/content/bn/debugging.md @@ -3,11 +3,9 @@ title: ডিবাগিং (Debugging) status: Deprecated category: ধারণা draft: true -tags: ["application", "methodology", ""] +tags: ["অ্যাপ্লিকেশন", "পদ্ধতি", ""] --- -## এটা কি - ডিবাগিং হল কম্পিউটার প্রোগ্রাম, সফ্টওয়্যার, বা সিস্টেম থেকে পছন্দসই ফলাফল পেতে বাগগুলি (বা ত্রুটিগুলি) খুঁজে বের করার এবং সমাধান করার প্রক্রিয়া বা কার্যকলাপ। একটি বাগ হল একটি ত্রুটি বা একটি সমস্যা যা ভুল বা অপ্রত্যাশিত ফলাফলের দিকে পরিচালিত করে। @@ -27,4 +25,4 @@ tags: ["application", "methodology", ""] এখানেই বিভিন্ন ডিবাগিং কৌশল এবং সরঞ্জামগুলি কাজে আসে৷ লগ, ট্রেস এবং মেট্রিক্সের বিশ্লেষণ, উদাহরণস্বরূপ, সরাসরি উৎপাদনে ডিবাগ করার জন্য ব্যবহার করা হয়। ডেভেলপাররা ইন্টারেক্টিভ ডিবাগিং ব্যবহার করে রানটাইমে কোডের মধ্য দিয়ে যেতে পারে যখন সম্পর্কিত এক্সিকিউশন প্রসঙ্গ বিশ্লেষণ করে। -একবার তারা ব্যর্থতার উৎস সনাক্ত করার পরে, তারা কোডটি সংশোধন করে এবং একটি বাগ ফিক্স বা প্যাচ তৈরি করে। \ No newline at end of file +একবার তারা ব্যর্থতার উৎস সনাক্ত করার পরে, তারা কোডটি সংশোধন করে এবং একটি বাগ ফিক্স বা প্যাচ তৈরি করে। diff --git a/content/bn/devops.md b/content/bn/devops.md index fbc917e659..15b1fc384b 100644 --- a/content/bn/devops.md +++ b/content/bn/devops.md @@ -2,11 +2,9 @@ title: ডেভওপস (DevOps) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - ডেভওপস হল একটি পদ্ধতি যেখানে দলগুলি অ্যাপ্লিকেশন ডেভেলপমেন্ট থেকে প্রোডাকশন অপারেশন পর্যন্ত সম্পূর্ণ প্রক্রিয়ার পরিচালনা করে থাকে। এটি সাধারণ প্রযুক্তি থেকে উচ্চ পর্যায় রয়েছে এবং সাধারণ ধরন থেকে আলাদা হয়। ডেভওপস প্রকৌশলীদের দলদের জন্য আহ্বান করে যারা ছোট উপাদানগুলিতে কাজ করে (একটি সম্পূর্ণ বৈশিষ্ট্যের বিপরীতে), হ্যান্ডঅফগুলি হ্রাস করে – যা সাধারণ ভুলের কারন। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/devsecops.md b/content/bn/devsecops.md index 286f745958..f6bb61b9f2 100644 --- a/content/bn/devsecops.md +++ b/content/bn/devsecops.md @@ -2,11 +2,9 @@ title: ডেভসেকঅপ্স (DevSecOps) status: Completed category: ধারণা +tags: ["পদ্ধতি", "নিরাপত্তা", ""] --- - -## এটা কি - ডেভসেকঅপ্স (DevSecOps) শব্দটি উন্নয়ন, কর্মক্ষম, এবং নিরাপত্তা দায়িত্বের সাংস্কৃতিক একীকরণকে বোঝায়। এটি ডেভেলপার এবং অপারেশনাল ওয়ার্কফ্লোতে ন্যূনতম কোনও ব্যাঘাত না করে সুরক্ষা অগ্রাধিকারগুলি অন্তর্ভুক্ত করতে ডেভঅপ্স [(DevOps)](/bn/devops/) পদ্ধতির প্রসারিত করে৷ ডেভঅপ্স-এর মতো, ডেভসেকঅপ্স হল একটি সাংস্কৃতিক পরিবর্তন, যা গৃহীত প্রযুক্তির দ্বারা ঠেলে দেওয়া হয়, অনন্য গ্রহণের পদ্ধতি সহ। diff --git a/content/bn/digital-certificate.md b/content/bn/digital-certificate.md new file mode 100644 index 0000000000..48b39ec47d --- /dev/null +++ b/content/bn/digital-certificate.md @@ -0,0 +1,22 @@ +--- +title: ডিজিটাল সার্টিফিকেট +status: Feedback Appreciated +category: প্রযুক্তি +tags: ["নিরাপত্তা"] +--- + +একটি (ডিজিটাল) সার্টিফিকেট ( যা প্রায়শই একটি পাবলিক কীসার্টিফিকেট(public key), বা SSL সার্টিফিকেট হিসাবেও উল্লেখ করা হয় ) একটি ডিজিটাল নথি যা নেটওয়ার্কের মাধ্যমে সুরক্ষিত যোগাযোগে সহায়তা করতে ব্যবহৃত হয়। +সার্টিফিকেটগুলো আমাদের জানতে দেয় যে আমরা যে নির্দিষ্ট সত্তার সাথে যোগাযোগ করছি তারা সেটাই যা নিজেকে দাবি করে । +আমরা যে ডেটা প্রেরণ এবং গ্রহণ করি তা এনক্রিপ্ট করে তারা আমাদের যোগাযোগগুলো প্রাইভেট কিনা তা নিশ্চিত করে । + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +যখন ডিভাইসগুলো একটি নেটওয়ার্কের মাধ্যমে যোগাযোগ করে তখন কোন নির্দিষ্ট গ্যারান্টি নেই যে একটি নির্দিষ্ট ডিভাইসটি যা নিজেকে দাবি করে । +উপরন্তু, আমরা গ্যারান্টি দিতে পারি না যে কোনো দুইটি ডিভাইসের মধ্যে ট্র্যাফিক কোনো তৃতীয় পক্ষ দ্বারা বাধাপ্রাপ্ত হবে না। +ফলস্বরূপ, যেকোনো যোগাযোগ সম্ভাব্যভাবে বাধাপ্রাপ্ত হতে পারে , ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মতো সংবেদনশীল তথ্যের সাথে আপস করতে হতে পারে । + +## এটা কিভাবে সাহায্য করে + +আধুনিক ইমেল ক্লায়েন্ট যারা সার্টিফিকেট ব্যবহার করে তারা আপনাকে অবহিত করতে পারে যদি একজন প্রেরকের পরিচয় সঠিক হয়, যেমন ওয়েব ব্রাউজার (আপনার ওয়েব ব্রাউজারের এড্রেস বারের সামনে ছোট্ট লকটি লক্ষ্য করুন)। +অন্য দিকে, সার্টিফিকেট ইন্টারনেটে সত্তার মধ্যে যোগাযোগ এনক্রিপ্ট করতে ব্যবহার করা যেতে পারে। +তারা একটি এনক্রিপশন কৌশল সরবরাহ করে যা এটিকে প্রকৃতপক্ষে প্রায় অসম্ভব করে তোলে ডেটা পড়ার ক্ষেত্রে , তাদের জন্য যারা যোগাযোগে বাধা দান করতে আসে । diff --git a/content/bn/distributed-apps.md b/content/bn/distributed-apps.md index 58acc50701..229c8973f4 100644 --- a/content/bn/distributed-apps.md +++ b/content/bn/distributed-apps.md @@ -1,23 +1,27 @@ --- -title: বিতরিত অ্যাপ্লিকেশন (Distributed Apps) +title: ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন (Distributed Apps) status: Completed category: ধারণা +tags: ["স্থাপত্য", "", ""] --- -## এটা কি - -একটি বিতরিত অ্যাপ্লিকেশন হল একটি অ্যাপ্লিকেশন যেখানে কার্যকারিতা একাধিক ছোট স্বাধীন অংশে বিভক্ত হয়। -বিতরিত অ্যাপ্লিকেশনগুলি সাধারণত পৃথক [মাইক্রোসার্ভিসগুলির](/bn/microservices-architecture/) সমন্বয়ে গঠিত হয় যা বিস্তৃত অ্যাপ্লিকেশনের মধ্যে বিভিন্ন উদ্বেগ পরিচালনা করে। -একটি ক্লাউড নেটিভ পরিবেশে, পৃথক উপাদানগুলি সাধারণত একটি [ক্লাস্টারে](/bn/cluster/) [পাত্র(container)](/bn/container/) হিসাবে চালিত হয়। +একটি ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন হল একটি অ্যাপ্লিকেশন যেখানে কার্যকারিতা একাধিক ছোট স্বাধীন অংশে বিভক্ত হয়। +ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলো সাধারণত পৃথক [মাইক্রোসার্ভিসগুলোর](/bn/microservices-architecture/) সমন্বয়ে গঠিত হয় + যা বিশাল অ্যাপ্লিকেশনের মধ্যে বিভিন্ন উদ্বেগ পরিচালনা করে। +একটি ক্লাউড নেটিভ পরিবেশে, পৃথক উপাদানগুলি সাধারণত একটি [ক্লাস্টারে](/bn/cluster/) [কন্টেইনার](/bn/container/) হিসাবে চালিত হয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে -একটি একক কম্পিউটারে চলমান একটি অ্যাপ্লিকেশন ব্যর্থতার একক পয়েন্ট উপস্থাপন করে - যদি সেই কম্পিউটারটি ব্যর্থ হয়, অ্যাপ্লিকেশনটি অনুপলব্ধ হয়ে যায়। -বিতরিত অ্যাপ্লিকেশনগুলি প্রায়শই [মনোলিথিক অ্যাপ্লিকেশনের](/bn/monolithic-apps/) বিপরীতে থাকে। একটি মনোলিথিক অ্যাপ স্কেল করা কঠিন হতে পারে কারণ বিভিন্ন উপাদান স্বাধীনভাবে স্কেল করা যায় না। -তারা বৃদ্ধির সাথে সাথে ডেভেলপারএর গতিতেও টেনে আনতে পারে কারণ আরও ডেভেলপারদের একটি ভাগ করা কোডবেসে কাজ করতে হবে যার অগত্যা ভালভাবে সংজ্ঞায়িত সীমানা নেই। +একটি একক কম্পিউটারে চলমান একটি অ্যাপ্লিকেশন ব্যর্থতার একক পয়েন্ট উপস্থাপন করে - যদি সেই কম্পিউটারটি ব্যর্থ হয়, অ্যাপ্লিকেশনটি অপ্রাপ্য হয়ে যায়। +ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলো প্রায়শই [মনোলিথিক অ্যাপ্লিকেশনের](/bn/monolithic-apps/) বিপরীতে থাকে। +একটি মনোলিথিক অ্যাপ স্কেল করা কঠিন হতে পারে কারণ বিভিন্ন উপাদান স্বাধীনভাবে স্কেল করা যায় না। +তারা বৃদ্ধির সাথে সাথে ডেভেলপারের গতিতেও টেনে আনতে পারে +কারণ আরও ডেভেলপারদের একটি ভাগ করা কোডবেসে কাজ করতে হবে যার বাধ্যতামূলকভাবে সংজ্ঞায়িত সীমানা নেই। ## এটা কিভাবে সাহায্য করে -একটি অ্যাপ্লিকেশনকে বিভিন্ন অংশে বিভক্ত করার সময় এবং সেগুলিকে অনেক জায়গায় চালানোর সময়, সামগ্রিক সিস্টেম আরও ব্যর্থতা সহ্য করতে পারে। -এটি একটি অ্যাপ্লিকেশনকে একটি একক অ্যাপ্লিকেশন উদাহরণের জন্য উপলব্ধ নয় এমন স্কেলিং বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়, যেমন [অনুভূমিকভাবে স্কেল](/bn/horizontal-scaling/) করার ক্ষমতা। -তবে এটি একটি খরচে আসে: জটিলতা বৃদ্ধি এবং অপারেশনাল ওভারহেড - আপনি এখন একটি অ্যাপের পরিবর্তে প্রচুর অ্যাপ্লিকেশন উপাদান চালাচ্ছেন। +একটি অ্যাপ্লিকেশনকে বিভিন্ন অংশে বিভক্ত করার সময় এবং সেগুলোকে অনেক জায়গায় চালানোর সময়, সামগ্রিক সিস্টেম আরও ব্যর্থতা সহ্য করতে পারে। +এটি একটি অ্যাপ্লিকেশনকে একটি একক অ্যাপ্লিকেশন উদাহরণের জন্য উপলব্ধ নয় এমন স্কেলিং বৈশিষ্ট্যগুলোর সুবিধা নিতে দেয়, + যেমন [অনুভূমিকভাবে স্কেল](/bn/horizontal-scaling/) করার ক্ষমতা। +তবে এটি একটি খরচ নিয়ে আসে; বৃদ্ধি করে জটিলতা এবং অপারেশনাল ওভারহেড + - কারণ আপনি এখন একটি অ্যাপের পরিবর্তে প্রচুর অ্যাপ্লিকেশন উপাদান চালাচ্ছেন। diff --git a/content/bn/distributed-systems.md b/content/bn/distributed-systems.md index 064da9d532..4bab7c7d9c 100644 --- a/content/bn/distributed-systems.md +++ b/content/bn/distributed-systems.md @@ -1,20 +1,21 @@ --- -title: বিতরিত সিস্টেম (Distributed System) +title: ডিস্ট্রিবিউটেড সিস্টেম (Distributed System) status: Completed category: ধারণা +tags: ["স্থাপত্য", "", ""] --- -## এটা কি - -একটি বিতরিত সিস্টেম হল একটি নেটওয়ার্কের সাথে সংযুক্ত স্বায়ত্তশাসিত কম্পিউটিং উপাদানগুলির একটি সংগ্রহ যা ব্যবহারকারীদের কাছে একটি একক সুসংগত সিস্টেম হিসাবে প্রদর্শিত হয়। -সাধারণত [নোড](/bn/nodes/) হিসাবে উল্লেখ করা হয়, এই উপাদানগুলি হার্ডওয়্যার ডিভাইস (যেমন কম্পিউটার, মোবাইল ফোন) বা সফ্টওয়্যার প্রক্রিয়া হতে পারে। -নোডগুলি একটি সাধারণ লক্ষ্য অর্জনের জন্য প্রোগ্রাম করা হয় এবং সহযোগিতা করার জন্য, তারা নেটওয়ার্কে বার্তা বিনিময় করে। +একটি ডিস্ট্রিবিউটেড সিস্টেম হলো একটি নেটওয়ার্কের সাথে সংযুক্ত স্বায়ত্তশাসিত কম্পিউটিং উপাদানগুলোর একটি সংগ্রহ +যা ব্যবহারকারীদের কাছে একটি একক সুসংগত সিস্টেম হিসাবে প্রদর্শিত হয়। +সাধারণত [নোড](/bn/nodes/) হিসাবে উল্লেখ করা হয়, এই উপাদানগুলো হার্ডওয়্যার ডিভাইস (যেমন কম্পিউটার, মোবাইল ফোন) বা সফ্টওয়্যার প্রক্রিয়া হতে পারে। +নোডগুলো একটি সাধারণ লক্ষ্য অর্জনের জন্য প্রোগ্রাম করা হয় এবং সহযোগিতা করার জন্য, তারা নেটওয়ার্কে বার্তা বিনিময় করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে অনেক আধুনিক অ্যাপ্লিকেশন আজ এত বড় যে তাদের পরিচালনা করার জন্য সুপার কম্পিউটারের প্রয়োজন হবে। জিমেইল বা নেটফ্লিক্সের কথা ভাবুন। সম্পূর্ণ অ্যাপ্লিকেশন হোস্ট করার জন্য কোনো একক কম্পিউটার যথেষ্ট শক্তিশালী নয়। -একাধিক কম্পিউটার সংযোগ করে, গণনার শক্তি প্রায় সীমাহীন হয়ে যায়। ডিস্ট্রিবিউটেড কম্পিউটিং ছাড়া, আজকে আমরা অনেক অ্যাপ্লিকেশন উপর নির্ভরশীল হওয়া সম্ভব হবে না। +একাধিক কম্পিউটার সংযোগ করে, কম্পিউট শক্তি প্রায় সীমাহীন হয়ে যায়। +ডিস্ট্রিবিউটেড কম্পিউটিং ছাড়া, আজকে আমরা অনেক অ্যাপ্লিকেশন উপর নির্ভরশীল হওয়া সম্ভব হবে না। ঐতিহ্যগতভাবে, সিস্টেমগুলি উল্লম্বভাবে [স্কেল](/bn/scalability/) করবে। আপনি যখন একটি পৃথক মেশিনে আরও সিপিউ (CPU) বা মেমরি যোগ করেন তখনই। @@ -23,8 +24,8 @@ category: ধারণা ## এটা কিভাবে সাহায্য করে -বিতরিত সিস্টেমগুলি [ অনুভূমিক স্কেলিং](/bn/horizontal-scaling/) করার অনুমতি দেয় (যেমন যখনই প্রয়োজন হয় সিস্টেমে আরও নোড যোগ করা) | +ডিস্ট্রিবিউটেড সিস্টেমগুলো [ অনুভূমিক স্কেলিং](/bn/horizontal-scaling/) করার অনুমতি দেয় (যেমন যখনই প্রয়োজন হয় সিস্টেমে আরও নোড যোগ করা) | এটি স্বয়ংক্রিয়ভাবে একটি সিস্টেমকে কাজের চাপ বা সম্পদ খরচে হঠাৎ বৃদ্ধি পরিচালনা করার অনুমতি দেয়। একটি নন-ডিস্ট্রিবিউটেড সিস্টেম ব্যর্থতার ঝুঁকিতে নিজেকে প্রকাশ করে কারণ যদি একটি মেশিন ব্যর্থ হয়, পুরো সিস্টেম ব্যর্থ হয়। -একটি বিতরিত সিস্টেম এমনভাবে ডিজাইন করা যেতে পারে যে, এমনকি কিছু মেশিন নিচে গেলেও, সামগ্রিক সিস্টেম একই ফলাফল তৈরি করতে কাজ চালিয়ে যেতে পারে। +একটি ডিস্ট্রিবিউটেড সিস্টেম এমনভাবে ডিজাইন করা যেতে পারে যে, এমনকি কিছু মেশিন নিচে গেলেও, সামগ্রিক সিস্টেম একই ফলাফল তৈরি করতে কাজ চালিয়ে যেতে পারে। diff --git a/content/bn/ebpf.md b/content/bn/ebpf.md new file mode 100644 index 0000000000..4caad31212 --- /dev/null +++ b/content/bn/ebpf.md @@ -0,0 +1,43 @@ +--- +title: ইবিপিএফ(eBPF) +status: Completed +category: প্রযুক্তি +tags: ["স্থাপত্য", " নেটওয়ার্কিং", "নিরাপত্তা"] + +--- + +ইবিপিএফ(eBPF) , বা বর্ধিত বার্কলে প্যাকেট ফিল্টার (extended Berkeley Packet Filter), এমন একটি প্রযুক্তি যা কার্নেলের সোর্স কোড পরিবর্তন না করে বা লিনাক্স কার্নেল মডিউল লোড না করেই লিনাক্স সিস্টেমের কার্নেল স্পেসে ছোট, স্যান্ডবক্সড প্রোগ্রাম বা স্ক্রিপ্ট চালানোর অনুমতি দেয়। + +একটি লিনাক্স সিস্টেমে দুইটি স্পেস আছে : কার্নেল এবং ইউজার স্পেস। +কার্নেল অপারেটিং সিস্টেমের কোর এর প্রতিনিধিত্ব করে এবং +এটি একমাত্র অংশ যার কাছে হার্ডওয়্যারের সীমাহীন অ্যাক্সেস রয়েছে । + +অ্যাপ্লিকেশনগুলো ইউজার স্পেসে থাকে, এবং যখন তাদের উচ্চতর অনুমতির প্রয়োজন হয়, +তারা কার্নেলের কাছে একটি রিকোয়েস্ট পাঠায়। +যে অ্যাপ্লিকেশনগুলোর জন্য আরও ফ্লেক্সিবিলিটি প্রয়োজন, যেমন সরাসরি হার্ডওয়্যার অ্যাক্সেসের জন্য, +কার্নেলটিকে "লিনাক্স কার্নেল মডিউল" পদ্ধতির মাধ্যমে প্রসারিত করা যেতে পারে। +এই পদ্ধতিটি কার্নেলের ডিফল্ট কার্যকারিতা প্রসারিত করে, +অ্যাপ্লিকেশনগুলোকে অন্তর্নিহিত উপাদানগুলোতে গভীরতর অ্যাক্সেসের অনুমতি দেয়। +যাইহোক, এই পদ্ধতিটি নিরাপত্তা ঝুঁকিও নিয়ে আসে, যা ইবিপিএফকে একটি আকর্ষণীয় বিকল্প করে তোলে । + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +সাধারণত, অ্যাপ্লিকেশনগুলো ইউজার স্পেসে চলে এবং যদি অ্যাপ্লিকেশনটির কার্নেল থেকে কিছু সুবিধার প্রয়োজন হয় (যেমন, কিছু হার্ডওয়্যার অ্যাক্সেস করার জন্য), +এটি তথাকথিত "সিস্টেম কল" এর মাধ্যমে কার্নেল থেকে এটির জন্য অনুরোধ করে। +বেশিরভাগ ক্ষেত্রে, এই পদ্ধতিটি ঠিক কাজ করে। যাইহোক, এমন কিছু উদাহরণ রয়েছে যেখানে ডেভেলপারদের নিম্ন-স্তরের সিস্টেম অ্যাক্সেসের জন্য আরও ফ্লেক্সিবিলিটি প্রয়োজন। +পর্যবেক্ষণযোগ্যতা, নিরাপত্তা এবং নেটওয়ার্কিং ফিচারগুলো এর ভালো উদাহরণ। +এটি অর্জন করতে, আমরা লিনাক্স কার্নেল মডিউল ব্যবহার করতে পারি, কার্নেল সোর্স কোড পরিবর্তন না করেই কার্নেল বেস প্রসারিত করতে পারি। +যদিও লিনাক্স কার্নেল মডিউল ব্যবহার করার সুবিধা রয়েছে, এটি নিরাপত্তা ঝুঁকিও নিয়ে আসে। +যেহেতু তারা কার্নেল স্পেসের মধ্যে কাজ করে, লিনাক্স কার্নেল মডিউলগুলো কার্নেলটি ক্র্যাশ করতে পারে এবং যখন কার্নেলটি ক্র্যাশ হয়, তখন পুরো মেশিনটির ক্ষেত্রেও তাই হয়। +অতিরিক্তভাবে, কার্নেল মডিউলগুলোর কাছে অতিরিক্ত সুবিধা এবং সিস্টেম রিসোর্সগুলোর সরাসরি অ্যাক্সেস রয়েছে। এবং এটি সঠিকভাবে সুরক্ষিত না করা হলে, আক্রমণকারীরা এগুলোকে কাজে লাগাতে পারে । + +## এটা কিভাবে সাহায্য করে + +ইবিপিএফ লিনাক্স কার্নেল মডিউলের তুলনায় ব্যবহারকারী-সংজ্ঞায়িত প্রোগ্রামগুলো চালানোর জন্য আরও নিয়ন্ত্রিত এবং ধারণকৃত পরিবেশ প্রদান করে। +এটি কার্নেলের মধ্যে একটি স্যান্ডবক্সযুক্ত পরিবেশে চলে, আইসোলেশন প্রদান করে এবং ঝুঁকি হ্রাস করে। +যদি একটি ইবিপিএফ প্রোগ্রামে একটি দুর্বলতা বা ত্রুটি পাওয়া যায়, তবে এর প্রভাব সাধারণত স্যান্ডবক্সযুক্ত পরিবেশে সীমাবদ্ধ থাকে। +তাছাড়া, একটি ইবিপিএফ প্রোগ্রাম কার্নেলে চলা শুরু করার আগে, এটিকে কিছু যাচাইকরণ পাস করতে হবে। +যাচাইকারী উপাদান সম্ভাব্য নিরাপত্তা লঙ্ঘনের জন্য ইবিপিএফ প্রোগ্রাম চেক করে, +যেমন সীমার বাইরে মেমরি অ্যাক্সেস, অসীম লুপ, এবং অননুমোদিত কার্নেল ফাংশন। +এইভাবে, এটি নিশ্চিত করে যে প্রোগ্রামটি একটি অসীম লুপে প্রবেশ করবে না এবং কার্নেল ক্র্যাশ ঘটাবে না । +এই নিরাপত্তা নিয়ন্ত্রণগুলো ইবিপিএফকে লিনাক্স কার্নেল মডিউলের তুলনায় লিনাক্স কার্নেলে অ্যাপ্লিকেশন চালানোর জন্য একটি অধিক নিরাপদ বিকল্প করে তোলে। diff --git a/content/bn/edge-computing.md b/content/bn/edge-computing.md index 087c3f7ace..bd0887de04 100644 --- a/content/bn/edge-computing.md +++ b/content/bn/edge-computing.md @@ -1,11 +1,9 @@ --- title: এজ কম্পিউটিং (Edge Computing) status: Completed -category: ধারণা +category: প্রযুক্তি --- -## এটা কি - এজ কম্পিউটিং হল একটি [বিতরণ সিস্টেম](/bn/distributed-systems/) পদ্ধতি যা প্রাথমিক ডেটা সেন্টার থেকে ডেটা উৎসে কিছু স্টোরেজ এবং কম্পিউটিং ক্ষমতা স্থানান্তর করে। সংগৃহীত ডেটা স্থানীয়ভাবে গণনা করা হয় (যেমন, একটি কারখানার মেঝেতে,একটি দোকানে বা একটি শহর জুড়ে) প্রক্রিয়াকরণ (processing) এবং বিশ্লেষণের জন্য কেন্দ্রীভূত ডেটা সেন্টারে পাঠানোর পরিবর্তে। এই স্থানীয় প্রক্রিয়াকরণ ইউনিট বা ডিভাইসগুলি সিস্টেমের প্রান্তের (edge) প্রতিনিধিত্ব করে,যেখানে ডেটা সেন্টার হল এর কেন্দ্র। প্রান্তে গণনা করা আউটপুট পরবর্তী প্রক্রিয়াকরণের জন্য প্রাথমিক ডেটা সেন্টারে ফেরত পাঠানো হয়। এজ কম্পিউটিংয়ের উদাহরণগুলির মধ্যে রয়েছে হাতের কব্জির গ্যাজেট বা কম্পিউটার যা ট্র্যাফিক প্রবাহ বিশ্লেষণ করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/event-driven-architecture.md b/content/bn/event-driven-architecture.md index 505b40d31f..1ccbdd5617 100644 --- a/content/bn/event-driven-architecture.md +++ b/content/bn/event-driven-architecture.md @@ -2,11 +2,9 @@ title: ঘটনা-চালিত স্থাপত্য (Event-Driven Architecture) status: Completed category: ধারণা -tags: ["architecture", "", ""] +tags: ["স্থাপত্য", "", ""] --- -## এটা কি - ঘটনা চালিত স্থাপত্য হল একটি সফ্টওয়্যার স্থাপত্য যা ঘটনা তৈরি, প্রক্রিয়াকরণ এবং ব্যবহারকে প্রচার করে। একটি ঘটনা হল একটি অ্যাপ্লিকেশনের অবস্থার পরিবর্তন। উদাহরণস্বরূপ, একটি রাইড-শেয়ারিং অ্যাপে রাইডের প্রশংসা করা একটি ঘটনার প্রতিনিধিত্ব করে৷ diff --git a/content/bn/event-streaming.md b/content/bn/event-streaming.md index 861fc9689f..7c15e271ca 100644 --- a/content/bn/event-streaming.md +++ b/content/bn/event-streaming.md @@ -2,11 +2,9 @@ title: ঘটনা প্রবাহ ( Event Streaming ) status: Completed category: ধারণা -tags: ["methodology", "networking", ""] +tags: ["পদ্ধতি", " নেটওয়ার্কিং", ""] --- -## এটা কি - ঘটনা প্রবাহ হল এমন একটি পদ্ধতি যেখানে সফ্টওয়্যার একটি অ্যাপ্লিকেশন থেকে অন্য অ্যাপ্লিকেশনে ঘটনার তথ্য পাঠায় যাতে তারা কী করছে তা অবিরতভাবে যোগাযোগ করতে পারে। অন্য সমস্ত পরিষেবাতে যা করে তা সম্প্রচার করে এমন একটি পরিষেবার চিত্র নিন৷ একটি পরিষেবা দ্বারা নেওয়া প্রতিটি কার্যকলাপকে একটি ঘটনা হিসাবে উল্লেখ করা হয়, তাই ঘটনা প্রবাহ। diff --git a/content/bn/firewall.md b/content/bn/firewall.md index d43839a012..ccee670aeb 100644 --- a/content/bn/firewall.md +++ b/content/bn/firewall.md @@ -6,8 +6,6 @@ category: প্রযুক্তি tags: ["", "", ""] --- -## এটা কি - ফায়ারওয়াল হল এমন একটি সিস্টেম যা নির্দিষ্ট নিয়মের ভিত্তিতে নেটওয়ার্ক ট্র্যাফিক ফিল্টার করে। ফায়ারওয়ালগুলি হার্ডওয়্যার, সফ্টওয়্যার বা দুটির সংমিশ্রণ হতে পারে। diff --git a/content/bn/function-as-a-service.md b/content/bn/function-as-a-service.md index e075838139..5e384ce66d 100644 --- a/content/bn/function-as-a-service.md +++ b/content/bn/function-as-a-service.md @@ -1,12 +1,10 @@ --- title: ফাংশন-এজ়-এ-সার্ভিস (Function as a Service) (FaaS) status: Completed -category: প্রযুক্তিবিদ্যা -tags: ["infrastructure", "", ""] +category: প্রযুক্তি +tags: ["অবকাঠামো", "", ""] --- -## এটা কি - ফাংশন-এজ়-এ-সার্ভিস একটি পরিষেবা হিসাবে ফাংশন (FaaS) হল এক প্রকার [সার্ভারলেস](/bn/serverless/) [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) [সর্বিস](/bn/service/) যা ইভেন্টের প্রতিক্রিয়ায় কোড চালানোর অনুমতি দেয় diff --git a/content/bn/gitops.md b/content/bn/gitops.md index f6adaee5f6..316247bbcd 100644 --- a/content/bn/gitops.md +++ b/content/bn/gitops.md @@ -2,11 +2,9 @@ title: গিটঅপস (GitOps) status: Feedback Appreciated category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - গিটঅপস (GitOps) হল [শেয়ার করা নীতির (shared principles)](https://opengitops.dev/) উপর ভিত্তি করে সর্বোত্তম অনুশীলনের একটি সেট, যা একটি ওয়ার্কফ্লোতে প্রয়োগ করা হয় যা সফ্টওয়্যার এজেন্টের উপর নির্ভর করে যা একটি গিট রিপোজিটরিতে ঘোষিত সিস্টেমের (declared system) অবস্থা বা কনফিগারেশনের পুনর্মিলন (reconcile) করতে স্বয়ংক্রিয়করণে সক্ষম করে। এই সফ্টওয়্যার এজেন্ট এবং অনুশীলনগুলি একটি সমন্বিত কর্মপ্রবাহ (cohesive workflow) চালানোর জন্য ব্যবহৃত হয় যা গিট-এর মতো একটি সোর্স কন্ট্রোল ব্যবস্থাকে "সত্যের একক উৎস" হিসাবে ব্যবহার করে এবং এই অনুশীলনটিকে অ্যাপ্লিকেশন, অবকাঠামো এবং অপারেশনাল পদ্ধতিতে প্রসারিত করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে @@ -15,4 +13,4 @@ tags: ["methodology", "", ""] ## এটা কিভাবে সাহায্য করে -GitOps একটি দৃষ্টান্ত যা একটি অ্যাপ্লিকেশন এবং ক্লাউড সিস্টেম অবকাঠামো পরিচালনা করতে সাহায্য করার জন্য একটি কর্মপ্রবাহে প্রয়োগ করা যেতে পারে। এটি সংস্থাগুলিকে বিভিন্ন সুবিধা প্রদান করে যেমন উন্নত সমন্বয়, স্বচ্ছতা, স্থিতিশীলতা, এবং একটি সিস্টেমের নির্ভরযোগ্যতা। একটি ক্লোজ লুপে ক্রিয়াকলাপ নিশ্চিত করে যে একটি সিস্টেমের বর্তমান লাইভ স্টেটটি গিট রিপোজিটরিতে নির্দিষ্ট করা কাঙ্ক্ষিত টার্গেট স্টেটের সাথে মেলে। \ No newline at end of file +GitOps একটি দৃষ্টান্ত যা একটি অ্যাপ্লিকেশন এবং ক্লাউড সিস্টেম অবকাঠামো পরিচালনা করতে সাহায্য করার জন্য একটি কর্মপ্রবাহে প্রয়োগ করা যেতে পারে। এটি সংস্থাগুলিকে বিভিন্ন সুবিধা প্রদান করে যেমন উন্নত সমন্বয়, স্বচ্ছতা, স্থিতিশীলতা, এবং একটি সিস্টেমের নির্ভরযোগ্যতা। একটি ক্লোজ লুপে ক্রিয়াকলাপ নিশ্চিত করে যে একটি সিস্টেমের বর্তমান লাইভ স্টেটটি গিট রিপোজিটরিতে নির্দিষ্ট করা কাঙ্ক্ষিত টার্গেট স্টেটের সাথে মেলে। diff --git a/content/bn/horizontal-scaling.md b/content/bn/horizontal-scaling.md index 68adef9108..2c0945aa6d 100644 --- a/content/bn/horizontal-scaling.md +++ b/content/bn/horizontal-scaling.md @@ -2,11 +2,9 @@ title: অনুভূমিক স্কেলিং (Horizontal Scaling) status: Completed category: ধারণা -tags: ["infrastructure", "", ""] +tags: ["অবকাঠামো", "", ""] --- -## এটা কি - অনুভূমিক স্কেলিং হল এমন একটি কৌশল যেখানে আরও [নোড](/bn/nodes/) যোগ করে একটি সিস্টেমের ক্ষমতা বৃদ্ধি করা হয়। স্বতন্ত্র নোডগুলিতে আরও গণনা সংস্থান যোগ করার বিপরীতে (পরবর্তীটি [উল্লম্ব স্কেলিং](/bn/vertical-scaling/) নামে পরিচিত)। ধরা যাক, আমাদের 4GB RAM এর একটি সিস্টেম আছে এবং এর ক্ষমতা 16GB RAM-তে বাড়াতে চাই, diff --git a/content/bn/hypervisor.md b/content/bn/hypervisor.md index 575ce08cef..97e1c789d3 100644 --- a/content/bn/hypervisor.md +++ b/content/bn/hypervisor.md @@ -2,11 +2,9 @@ title: হাইপারভাইজার (Hypervisor) status: Feedback Appreciated category: প্রযুক্তি -tags: ["application", "", ""] +tags: ["অ্যাপ্লিকেশন", "", ""] --- -## এটা কি - একটি হাইপারভাইজার [বেয়ার মেটাল মেশিন (bare metal machine)](/bn/bare-metal-machine/) সম্পদ (সিপিইউ (CPU), স্মৃতি (Memory), অন্তর্জাল (Network) এবং সঞ্চয়স্থান (Storage)) এর সুবিধা গ্রহণ করে [ভার্চুয়ালাইজেশন (virtualization)](/bn/virtualization/) সক্ষম করে, সেগুলিকে উপ-অংশে ভাগ করে এবং অন্তর্নিহিত হোস্ট (host) তার কর্মক্ষমতা সীমাতে না পৌঁছা পর্যন্ত [ভার্চুয়াল মেশিন (Virtual Machine (VM))](/bn/virtual-machine/) তৈরি করার জন্য সেই অনুযায়ী সংস্থান বরাদ্দ করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/idempotence.md b/content/bn/idempotence.md index 5ff8b33d23..23d35d781b 100644 --- a/content/bn/idempotence.md +++ b/content/bn/idempotence.md @@ -1,8 +1,8 @@ --- title: অক্ষমতা (Idempotence) status: Completed -category: সম্পত্তি -tags: ["property", "", ""] +category: বৈশিষ্ট্য +tags: ["বৈশিষ্ট্য", "", ""] --- গণিত বা কম্পিউটার বিজ্ঞানে, অক্ষমতা এমন একটি প্রক্রিয়াকে বর্ণনা করে যা সর্বদা একই ফলাফলের দিকে নিয়ে যায়, diff --git a/content/bn/immutable-infrastructure.md b/content/bn/immutable-infrastructure.md index fda630e401..57fbeba582 100644 --- a/content/bn/immutable-infrastructure.md +++ b/content/bn/immutable-infrastructure.md @@ -1,8 +1,8 @@ --- title: অপরিবর্তনীয় পরিকাঠামো (Immutable Infrastructure) status: Completed -category: সম্পত্তি -tags: ["infrastructure", "property", ""] +category: বৈশিষ্ট্য +tags: ["অবকাঠামো", "বৈশিষ্ট্য", ""] --- অপরিবর্তনীয় অবকাঠামো বলতে কম্পিউটার অবকাঠামো বোঝায় diff --git a/content/bn/infrastructure-as-a-service.md b/content/bn/infrastructure-as-a-service.md index 306d6688aa..388631f344 100644 --- a/content/bn/infrastructure-as-a-service.md +++ b/content/bn/infrastructure-as-a-service.md @@ -2,12 +2,9 @@ title: পরিষেবা হিসেবে পরিকাঠামো (Infrastructure as a service) status: Completed category: ধারণা -tags: ["infrastructure", "", ""] +tags: ["অবকাঠামো", "", ""] --- - -## এটা কি - পরিষেবা হিসেবে পরিকাঠামো অথবা IaaS হল একটি [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) পরিষেবার আদল যেটি Pay as you go এর আদলে [ফিজিক্যাল](/bn/bare-metal-machine/) অথবা [ভার্চুয়ালাইজড](/bn/virtualization/) কম্পিউট, স্টোরেজ এবং প্রয়োজনে নেটওয়ার্ক রিসোর্স প্রদান করে। ক্লাউড প্রদানকারীরা হার্ডওয়্যার এবং সফটওয়্যার এর মালিক হন এবং পরিচালনা করেন যা গ্রাহকদের জন্য সরকারি ,ব্যক্তিগত কিংবা হাইব্রিড ক্লাউড স্থাপনায় উপলব্ধ। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/infrastructure-as-code.md b/content/bn/infrastructure-as-code.md index 241a957ace..9f0b3bc069 100644 --- a/content/bn/infrastructure-as-code.md +++ b/content/bn/infrastructure-as-code.md @@ -2,11 +2,9 @@ title: কোড হিসেবে পরিকাঠামো (Infrastructure as Code) status: Completed category: ধারণা -tags: ["infrastructure", "methodology", ""] +tags: ["অবকাঠামো", "পদ্ধতি", ""] --- -## এটা কি - কোড হিসেবে পরিকাঠামো হল, অবকাঠামোর সংজ্ঞা এক বা একধিক ফাইল হিসেবে সংরক্ষণ করার অনুশীলন। এটি প্রথাগত মডেলকে প্রতিস্থাপন করে যেখানে পরিকাঠামোকে একটি পরিষেবা হিসেবে মানবিকভাবে প্রতিবিধান করা হয় সাধারণত সেল স্ক্রিপ্ট বা অন্যান্য কনফিগারেশন উপাদানের মাধ্যমে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/ingress.md b/content/bn/ingress.md new file mode 100644 index 0000000000..dbb4bd44fa --- /dev/null +++ b/content/bn/ingress.md @@ -0,0 +1,30 @@ +--- +title: ইনগ্রেস(Ingress) +status: Completed +category: প্রযুক্তি +tags: ["মৌলিক"] +--- + +একটি ইনগ্রেস হলো এক গুচ্ছ নিয়মাবলি যা বাইরে থেকে একটি কন্টেইনারে অথবা একটি ক্লাস্টারে চলমান কন্টেইনারগুলোর একটি গ্রুপের মধ্যে ইন্টারনেট ট্র্যাফিক পরিচালনা করতে সহায়তা করে। +এটি দুইটি উপাদান নিয়ে গঠিত: ইনগ্রেস রিসোর্স এবং ইনগ্রেস কন্ট্রোলার। +ইনগ্রেস রিসোর্স হলো একটি কনফিগারেশন ফাইল যা অন্যান্য ম্যানিফেস্ট ফাইলের সাথে থাকে এবং অ্যাডমিনদের বাহ্যিক ট্রাফিক রাউটিং কনফিগার করতে দেয়। +ইনগ্রেস কন্ট্রোলার হলো ওয়েব সার্ভার প্রযুক্তি যা প্রকৃতপক্ষে ইনগ্রেস রিসোর্সের কনফিগারেশন অনুযায়ী ট্র্যাফিকের রাউটিং করে। + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +ক্লাউড নেটিভ ওয়েব অ্যাপ্লিকেশানগুলো একাধিক পরিষেবা নিয়ে গঠিত এবং প্রায়শই, ব্যবহারকারীদের তাদের ব্রাউজার ব্যবহার করে দেখার জন্য সেই [পরিষেবাসমূহকে](/bn/service/) ইন্টারনেটে অ্যাক্সেসযোগ্য হতে হয় ৷ +এই অ্যাপ্লিকেশন চালানোর জন্য [কুবারনেটিস](/bn/kubernetes/) ব্যবহার করার সময় এই পরিষেবাসমূহ ব্যবহারকারীদের অ্যাক্সেসযোগ্য করে তুলতে, আমাদের প্রতিটি অ্যাপ্লিকেশন পরিষেবাকে বাইরের বিশ্বের কাছে প্রকাশ করতে হবে। +সবচেয়ে সহজ উপায় হলো একটি কুবারনেটিস লোড ব্যালেন্সার পরিষেবা ব্যবহার করা। +কিন্তু এই ধরনের পরিষেবা তৈরি করার ফলে অন্তর্নিহিত অবকাঠামোতে একটি নতুন উপাদান তৈরি হয়। +এটি মাথার উপর শুধুমাত্র নতুন খরচ এবং ব্যবস্থাপনা নিয়ে আসে না, সাথে প্রতিটি নতুন তৈরি লোড ব্যালেন্সারের নিজস্ব বাহ্যিক আইপি ঠিকানাও থাকে। +যা একটি খারাপ ব্যবহারকারীর অভিজ্ঞতার দিকে নিয়ে যায়, কারণ একজন ব্যবহারকারী হিসাবে, আমরা একটি অ্যাপ্লিকেশন অ্যাক্সেস করার জন্য ভিন্ন ভিন্ন URL ব্রাউজ করতে চাই না। + +## এটা কিভাবে সাহায্য করে + +একটি ইনগ্রেস রিসোর্স আপনাকে কনফিগার করতে দেয় যে কীভাবে ট্র্যাফিক ব্যালেন্সড এবং রুট করা যায় একটি অ্যাপ্লিকেশনের পরিষেবাসমূহে। +ইনগ্রেস কন্ট্রোলার একটি ইউআরএল (www.example-url.com) এর মাধ্যমে একটি একক এন্ট্রি পয়েন্ট প্রকাশ করে এবং বিভিন্ন ইউআরএল পাথের (www.example-url.com/path) উপর ভিত্তি করে প্রকৃত রাউটিং এবং ব্যালেন্সিং করে। +একটি ইনগ্রেস কন্ট্রোলার হলো এমন একটি উপাদান যা ক্লাস্টারের মধ্যে চলে এবং ইনগ্রেস রিসোর্সে সংজ্ঞায়িত নিয়মগুলো ব্যাখ্যা করে। +এটি ক্লাস্টার অপারেটরদের উপর নির্ভর করে যেখানে ওয়েব অ্যাপটি Nginx, Traefik, HAProxy ইত্যাদির মতো সম্ভাব্য প্রযুক্তির সেট থেকে একটি নির্দিষ্ট ইনগ্রেস কন্ট্রোলার বেছে নিতে কাজ করে। +ফলে এখন, যদি একটি অ্যাপ্লিকেশন একাধিক পরিষেবা নিয়ে গঠিত হয়, তখন ব্যবহারকারী একটি মাত্র URL ব্যবহার করে এটি অ্যাক্সেস করতে পারবেন । +এটি অবকাঠামো স্তরে অসংখ্য পৃথক লোড ব্যালেন্সারের প্রয়োজনীয়তা দূর করে এবং প্রতিটি পরিষেবার জন্য ফায়ারওয়াল এবং লোড ব্যালেন্সারের নিয়মগুলোর কনফিগারেশন সহজ করে। +ট্র্যাফিক রাউটিং এবং কনফিগারেশন পরিচালনার কেন্দ্রীকরণের মাধ্যমে, ইনগ্রেস সুবিন্যস্ত স্কেলেবিলিটি প্রদান করে, রিসোর্সের ব্যবহার অপ্টিমাইজ করে, খরচ কমায় এবং একটি ক্লাস্টারে চলমান অ্যাপ্লিকেশনগুলোর সামগ্রিক ব্যবস্থাপনার উন্নতি করে। diff --git a/content/bn/kubernetes.md b/content/bn/kubernetes.md index 415d3e7c38..0f47b84169 100644 --- a/content/bn/kubernetes.md +++ b/content/bn/kubernetes.md @@ -1,25 +1,33 @@ --- title: কুবারনেটিস (Kubernetes) -status: Completed +status: Completed category: প্রযুক্তি -tags: ["infrastructure", "fundamental", ""] +tags: ["অবকাঠামো", "মৌলিক", ""] --- -## এটা কি +কুবারনেটিস (Kubernetes), প্রায়ই K8s হিসাবে সংক্ষিপ্ত হয়, একটি ওপেন-সোর্স কন্টেইনার অর্কেস্ট্রেটর । + যা আধুনিক অবকাঠামোতে [কন্টেইনারাইজড (containerized)](/bn/container/) অ্যাপ্লিকেশনের জীবনচক্রকে স্বয়ংক্রিয় করে , এটি একটি "ডেটাসেন্টার অপারেটিং সিস্টেম" হিসাবে কাজ করে যা একটি [ডিস্ট্রিবিউটেড সিস্টেম](/bn/distributed-systems/) জুড়ে অ্যাপ্লিকেশনগুলোকে পরিচালনা করে। -কুবারনেটিস (Kubernetes), প্রায়ই K8s হিসাবে সংক্ষিপ্ত হয়, একটি ওপেন-সোর্স কন্টেইনার অর্কেস্ট্রেটর যা আধুনিক পরিকাঠামোতে [কন্টেইনারাইজড (containerized)](/bn/container/) অ্যাপ্লিকেশনের জীবনচক্রকে স্বয়ংক্রিয় করে। এটি একটি ডেটা সেন্টারের অপারেটিং সিস্টেমের মতো, যা অংশ-বিভাগিত সিস্টেম (Distributed System) জুড়ে চলমান অ্যাপ্লিকেশনগুলিকে পরিচালনা করে (ঠিক যেমন আপনার ল্যাপটপের OS আপনার অ্যাপগুলি পরিচালনা করে) ‍। +কুবারনেটিস একটি [ক্লাস্টারের](/bn/cluster.md) [নোড](/bn/nodes/) জুড়ে [কন্টেইনারের](/bn/container/) সময়সূচী নির্ধারণ করে , কন্টেইনারাইজড অ্যাপ্লিকেশনগুলো চালানোর জন্য বিভিন্ন ধরনের অবকাঠামো রিসোর্স (infrustructure resources) যেমন- লোড ব্যালেন্সার (Load Balancer), ক্রমাগত স্টোরেজ (Persistance Storage) ইত্যাদি একত্রিত করে। -কুবারনেটিস একটি [ক্লাস্টারের](cluster.md) নোড জুড়ে কন্টেইনারের সময়সূচী নির্ধারণ করে। এটিতে বিভিন্ন ধরনের ইনফ্রাস্টাকচার কনস্টাক্টস (infrustructure contructs)(যেমন- প্রিমিটিভস (primitives)), কোনো অ্যাপ্লিকেশনের ইনস্টেন্স, লোড ব্যালেন্সার (Load Balancer), পারসিস্টেন্ট স্টোরেজ (Persistance Storage) এবং অন্যান্য সার্ভিস একত্রিত করে অ্যাপ্লিকেশন বানানো হয়। - -কুবারনেটিস অটোমেশন (Automation) এবং এক্সটেনসিবিলিটি (Extensibility) সক্ষম করে এবং ব্যবহারকারীদেরকে পুনর্গঠনযোগ্য ও ঘোষণামূলকভাবে অ্যাপ্লিকেশন স্থাপন করতে দেয়। কুবারনেটিস ইকোসিস্টেমের সফ্টওয়্যার প্রডাক্ট এবং প্রজেক্টগুলি, কুবারনেটিস [এপিআই (API)](/bn/application-programming-interface/) প্রসারিত করার জন্য সেই অটোমেশন এবং এক্সটেনসিবিলিটির সুবিধা নেয়। কুবারনেটিসের অটোমেশনকে ব্যবহার করে, কুবারনেটিসের টুলসগুলিকে আরও অ্যাক্সেসযোগ্য করে তোলা হয় অভিজ্ঞ কুবারনেটিস অনুশীলনকারীদের কাছে। +কুবারনেটিস অটোমেশন (Automation) এবং সম্প্রসারণযোগ্যতা (Extensibility) সক্ষম করে এবং ব্যবহারকারীদেরকে পুনর্গঠনযোগ্য ও ঘোষণামূলকভাবে (নীচে দেখুন) অ্যাপ্লিকেশন স্থাপন করতে দেয়। +কুবারনেটিস এর [এপিআই (API)](/bn/application-programming-interface/) মাধ্যমে প্রসারণযোগ্য (extensible), অভিজ্ঞ কুবারনেটিস অনুশীলনকারীদের তাদের প্রয়োজন অনুযায়ী এর স্বয়ংক্রিয়তার সক্ষমতা লাভ করতে দেয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে -ইনফ্রাস্ট্রাকচার অটোমেশন (Infrastructure automation) এবং ঘোষণামূলক কনফিগারেশন ম্যানেজমেন্ট (Declarative Configuration Management) দীর্ঘকাল ধরে একটি গুরুত্বপূর্ণ ধারণা, এবং [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) জনপ্রিয়তা অর্জন করায় এটি আরও বেশি চাপে পড়ে। কম্পিউট রিসোর্সের (compute resources) চাহিদা বৃদ্ধি পাওয়ায় কম সংখ্যক ইন্জিনিয়ারের সাথে সার্ভিস প্রদান করতে সংস্থাগুলি চাপ অনুভব করে, এবং এটি পূরণের জন্য নতুন প্রযুক্তি এবং কাজের পদ্ধতিরই প্রয়োজন হয়। উপরন্তু, ক্লাউড কম্পিউটিং-এর (Cloud computing) জনপ্রীয়তা কন্টেনারাইজেশনের (Containerization) সাথে যুক্ত ছিল এবং যে সংস্থাগুলি ঐতিহ্যগত ইনফ্রাস্ট্রাকচারকে (Traditional infrastructure), অটোমেট করতে ব্যস্ত ছিল তাদেরই কনফিগারেশন (Configuration) এবং ডিপ্লয়মেন্ট (Deployment) অটোমেশন করার জন্য একটি প্রক্রিয়ার প্রয়োজন পরে। +ইনফ্রাস্ট্রাকচার অটোমেশন (Infrastructure automation) এবং ঘোষণামূলক কনফিগারেশন ম্যানেজমেন্ট (Declarative Configuration Management) দীর্ঘকাল ধরে একটি গুরুত্বপূর্ণ ধারণা, এবং [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) জনপ্রিয়তা অর্জন করায় এটি আরও বেশি চাপে পড়ে। +কম্পিউট রিসোর্সের (compute resources) চাহিদা বৃদ্ধি পাওয়ায় কম সংখ্যক ইন্জিনিয়ারের সাথে সার্ভিস প্রদান করতে সংস্থাগুলো চাপ অনুভব করে, এবং এটি পূরণের জন্য নতুন প্রযুক্তি এবং কাজের পদ্ধতিরই প্রয়োজন হয়। ## এটা কিভাবে সাহায্য করে -ঐতিহ্যগতভাবে ইনফ্রাস্ট্রাকচার এস কোড (Traditional infrastructure as code) টুলসগুলির মতোই একই রকম পদ্ধতিতে কুবারনেটিসও অটোমেশনে সাহায্য করে কিন্তু কুবারনেটিসে ভার্চুয়াল বা ফিজিক্যাল মেশিনের তুলনায় কনফিগারেশন ড্রিফ্টে (Configuration Drift) বেশি প্রতিরোধী কন্টেইনারগুলির সাথে কাজ করার সুবিধা রয়েছে। -কুবারনেটিস ঘোষণামূলকভাবে (declaratively) কাজ করে, যার মানে হল অপারেটররা কীভাবে কিছু করতে হবে সে সম্পর্কে নির্দেশনা প্রদান করার পরিবর্তে তারা যা করতে চায় সেটা সাধারণত ম্যানিফেস্ট (Manifest) ফাইল (যেমন YAML) হিসাবে বর্ণনা করে; কুবারনেটিস নিজে থেকেই "কিভাবে" করতে হবে সেটার যত্ন নেয়। এর ফলে কুবারনেটিস ইনফ্রাস্ট্রাকচার এস কোডের (Infrastructure as code) সাথে অত্যন্ত সামঞ্জস্যপূর্ণ। +প্রথাগত [কোড হিসাবে পরিকাঠামো](/bn/infrastructure-as-code/) টুলের মতো, কুবারনেটস অটোমেশনে সাহায্য করে তবে এতে কন্টেইনারগুলোর সাথে কাজ করার সুবিধা রয়েছে। +কনটেইনারগুলো [ভার্চুয়াল](/bn/virtual-machine/) বা ফিজিক্যাল মেশিনের তুলনায় কনফিগারেশন ড্রিফটের জন্য বেশি প্রতিরোধী। + +উপরন্তু, কুবারনেটিস ঘোষণামূলকভাবে (declaratively) কাজ করে, যার মানে হল অপারেটররা কীভাবে কিছু করতে হবে সে সম্পর্কে নির্দেশনা প্রদান করার পরিবর্তে তারা বর্ণনা করে — সাধারণত ম্যানিফেস্ট (Manifest) ফাইল (যেমন YAML) হিসাবে — অবকাঠামোটি কেমন হওয়া উচিত। +কুবারনেটিস নিজে থেকেই "কিভাবে" করতে হবে সেটার যত্ন নেয়। +এর ফলে কুবারনেটিস 'কোড হিসাবে পরিকাঠামো' (Infrastructure as code) এর সাথে অত্যন্ত সামঞ্জস্যপূর্ণ। -কুবারনেটিস নিজেও নিজের নিরাময় (self-heal) করে। এর মানে হল যে কুবারনেটিস নিশ্চিত করে ক্লাস্টারের প্রকৃত অবস্থা সর্বদা অপারেটরের পছন্দসই অবস্থার সাথে মেলে। কুবারনেটিস কোনো বিচ্যুতি সনাক্ত করলে, একটি কুবারনেটিস কন্ট্রোলার (Kubernetes Controller) কাজে নামে এবং সেটিকে ঠিক করে। সুতরাং এটি যে ইনফ্রাস্ট্রাকচার (Infrastructure) ব্যবহার করে তা ক্রমাগত পরিবর্তীত হতে পারে, তাই কুবারনেটিস ক্রমাগত স্বয়ংক্রিয়ভাবে পরিবর্তিত হতে থাকে এবং নিশ্চিত করে এটি যাতে পছন্দসই অবস্থার সাথে মেলে। +কুবারনেটিস নিজেও নিজের নিরাময় (self-heal) করে। +এর মানে হল যে কুবারনেটিস নিশ্চিত করে ক্লাস্টারের প্রকৃত অবস্থা সর্বদা অপারেটরের পছন্দসই অবস্থার সাথে মেলে। +কুবারনেটিস কোনো বিচ্যুতি শনাক্ত করলে, একটি কুবারনেটিস কন্ট্রোলার (Kubernetes Controller) কাজে নামে এবং সেটিকে ঠিক করে। +যদিও এটি যে অবকাঠামো (Infrastructure) ব্যবহার করে তা ক্রমাগত পরিবর্তীত হতে পারে, তাই কুবারনেটিস ক্রমাগত স্বয়ংক্রিয়ভাবে পরিবর্তিত হতে থাকে এবং নিশ্চিত করে এটি যাতে পছন্দসই অবস্থার সাথে মেলে। diff --git a/content/bn/load-balancer.md b/content/bn/load-balancer.md index ecc4a1f954..39c9fc2bfb 100644 --- a/content/bn/load-balancer.md +++ b/content/bn/load-balancer.md @@ -2,11 +2,9 @@ title: লোড ব্যালেন্সার (Load Balancer) status: Feedback Appreciated category: ধারণা -tags: ["infrastructure", "networking", ""] +tags: ["অবকাঠামো", "নেটওয়ার্কিং", ""] --- -## এটা কি - একটি লোড ব্যালেন্সার এমন একটি টুল যা একটি অ্যাপ্লিকেশনের একাধিক ইন্সটেন্স এর (instance) মধ্যে আগত অনুরোধগুলি (incoming requests) দক্ষতার সাথে বিতরণ করে। উদাহরণস্বরূপ একটি [মাইক্রোসার্ভিস](/bn/microservices-architecture/) আর্কিটেকচার নিন, যেখানে প্রতিটি পরিষেবা [অনুভূমিকভাবে স্কেল করা (Horizontal Scaling)](/bn/horizontal-scaling/) যেতে পারে। একটি লোড ব্যালেন্সার একটি স্কেলড মাইক্রোসার্ভিসের সামনে বসে এবং নিশ্চিত করে যেন একটি ইন্সটেন্সই বেশিরভাগ অনুরোধগুলি না পায়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে @@ -15,4 +13,4 @@ tags: ["infrastructure", "networking", ""] ## এটা কিভাবে সাহায্য করে -লোড ব্যালেন্সারগুলি গতিশীলভাবে (dynamically) সমস্ত আগত অনুরোধগুলি একাধিক পরিষেবার মধ্যে বিতরণ করে, নিশ্চিত করে যে যখন অন্য পরিষেবাগুলো কেবল কয়েকটি বা কিছুই পায় না তখন কেউ একাই পরিষেবার সিংহভাগ যেন না পায়। সংক্ষেপে, এটি একটি সংজ্ঞায়িত স্কিমা অনুসরণ করে একাধিক পরিষেবা জুড়ে লোড ছড়িয়ে দেয় (অর্থাৎ, সমানভাবে বা শতাংশ-ভিত্তিক)। লোড ব্যালেন্সার একটি অ্যাপ্লিকেশনের সামগ্রিক কর্মক্ষমতা এবং শেষ পর্যন্ত ব্যবহারকারীর অভিজ্ঞতার জন্য অপরিহার্য। \ No newline at end of file +লোড ব্যালেন্সারগুলি গতিশীলভাবে (dynamically) সমস্ত আগত অনুরোধগুলি একাধিক পরিষেবার মধ্যে বিতরণ করে, নিশ্চিত করে যে যখন অন্য পরিষেবাগুলো কেবল কয়েকটি বা কিছুই পায় না তখন কেউ একাই পরিষেবার সিংহভাগ যেন না পায়। সংক্ষেপে, এটি একটি সংজ্ঞায়িত স্কিমা অনুসরণ করে একাধিক পরিষেবা জুড়ে লোড ছড়িয়ে দেয় (অর্থাৎ, সমানভাবে বা শতাংশ-ভিত্তিক)। লোড ব্যালেন্সার একটি অ্যাপ্লিকেশনের সামগ্রিক কর্মক্ষমতা এবং শেষ পর্যন্ত ব্যবহারকারীর অভিজ্ঞতার জন্য অপরিহার্য। diff --git a/content/bn/loosely-coupled-architecture.md b/content/bn/loosely-coupled-architecture.md index 9663d06b53..2be17a067f 100644 --- a/content/bn/loosely-coupled-architecture.md +++ b/content/bn/loosely-coupled-architecture.md @@ -1,8 +1,8 @@ --- title: শিথিল সংযোজিত স্থাপত্য (Loosely Coupled Architecture) status: Completed -category: ধারণা -tags: ["fundamental", "architecture", "property"] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "স্থাপত্য", "বৈশিষ্ট্য"] --- শিথিল সংযোজিত স্থাপত্য হল সেই ধরনের স্থাপত্যশৈলী যেখানে প্রতিটি পৃথক উপাদান স্বাধীনভাবে তৈরি হয় ([ দৃঢ় সংবদ্ধ স্থাপত্য শৈলীর](/bn/tightly-coupled-architectures/) ঠিক বিপরীত )| অনেক সময় এর প্রতিটি উপাদানকে [মাইক্রোসার্ভিসেস আর্কিটেকচার](/bn/microservices-architecture/) হিসেবে চিহ্নিত করা যায় diff --git a/content/bn/managed-services.md b/content/bn/managed-services.md index cddf8faf52..5934663124 100644 --- a/content/bn/managed-services.md +++ b/content/bn/managed-services.md @@ -6,8 +6,6 @@ category: প্রযুক্তি tags: ["", "", ""] --- -## এটা কি - একটি ম্যানাজ্ড পরিষেবা হল একটি সফ্টওয়্যার অফার যেখানে অপারেশন এবং পরিচালনা তৃতীয় পক্ষ দ্বারা যত্ন নেওয়া হয়। উদাহরণগুলির মধ্যে একটি পরিষেবা অফার হিসাবে ডেটাবেস অন্তর্ভুক্ত রয়েছে যেমন Amazon-এর RDS বা Datadog-এর মতো একটি বাহ্যিক পর্যবেক্ষণ পরিষেবা৷ diff --git a/content/bn/microservices-architecture.md b/content/bn/microservices-architecture.md index 9f88b50ee9..3f6a9741f7 100644 --- a/content/bn/microservices-architecture.md +++ b/content/bn/microservices-architecture.md @@ -2,11 +2,9 @@ title: মাইক্রোসার্ভিসেস আর্কিটেকচার (Microservices Architecture) status: Completed category: প্রযুক্তি -tags: ["architecture", "fundamental", ""] +tags: ["স্থাপত্য", "মৌলিক", ""] --- -## এটা কি - অ্যাপ্লিকেশন ডেভেলপমেন্টে (Application Development) একটি আধুনিক পন্থা হলো মাইক্রোসার্ভিস (Microservice), যা ক্লাউড নেটিভ (Cloud Native) প্রযুক্তির সুবিধা নেয়। যেখানে আধুনিক অ্যাপ্লিকেশনগুলি, যেমন নেটফ্লিক্স(netflix) একটি একক অ্যাপ এর মত দেখায় কিন্তু এটি আসলে অনেকগুলি ছোট ছোট সার্ভিসের একত্রিত রূপ, সবগুলি একে অপরের সাথে আবদ্ধ ভাবে কাজ করে চলেছে। এই ক্ষেত্রে, কোনো অ্যাপ এর একটি একক পেজ যা আমাদের search, authenticate এবং ভিডিও দেখতে অনুমতি দেয় তা আসলে অনেকগুলি ছোট ছোট সার্ভিস দ্বারা চালিত হয়, যেখানে এক একটি সার্ভিস এক একটি বৈশিষ্ট্য সামলায়। সংক্ষেপে, মাইক্রোসার্ভিস বলতে একটি এপ্লিকেশন আর্কিটেকচার প্যাটার্ন (Application Architecture Pattern) কে বোঝানো হয় যা [মনোলিথিক এপ্লিকেশন (Monolithic Application)](/bn/monolithic_apps/) এর থেকে স্বাভাবিকত বিপরীত। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/monolithic-apps.md b/content/bn/monolithic-apps.md index 9178d8ae39..8dc63812a4 100644 --- a/content/bn/monolithic-apps.md +++ b/content/bn/monolithic-apps.md @@ -2,10 +2,9 @@ title: মনোলিথিক অ্যাপ (Monolithic Apps) status: Completed category: ধারণা +tags: ["স্থাপত্য", "মৌলিক", ""] --- -## এটা কি - একটি মনোলিথিক অ্যাপ্লিকেশন একটি একক স্থাপনযোগ্য (deployable) প্রোগ্রামে সমস্ত কার্যকারিতা ধারণ করে। একটি অ্যাপ্লিকেশন তৈরি করার সময় এটি প্রায়শই শুরু করার সবচেয়ে সরল এবং সহজ পদ্ধতি। যাইহোক, একবার অ্যাপ্লিকেশন জটিলতায় বৃদ্ধি পেলে, মনোলিথগুলি বজায় রাখা কঠিন হয়ে উঠতে পারে। একই কোডবেসে আরও বেশি ডেভেলপার কাজ করার সাথে সাথে বিরোধপূর্ণ পরিবর্তনের সম্ভাবনা এবং ডেভেলপারদের মধ্যে আন্তঃব্যক্তিক যোগাযোগের প্রয়োজনীয়তা বৃদ্ধি পায়। diff --git a/content/bn/multitenancy.md b/content/bn/multitenancy.md index a4dfbd152c..33e815baa7 100644 --- a/content/bn/multitenancy.md +++ b/content/bn/multitenancy.md @@ -1,12 +1,10 @@ --- title: বহু মালিকানা (Multitenancy) status: Completed -category: সম্পত্তি -tags: ["architecture", "property", ""] +category: বৈশিষ্ট্য +tags: ["স্থাপত্য", "বৈশিষ্ট্য", ""] --- -## এটা কি - বহু মালিকানা (multitenancy) (বা মাল্টি-টেনেন্সি (multi-tenancy)) একটি একক সফ্টওয়্যার (software) ইনস্টলেশনকে (installation) বোঝায় যা একাধিক ভাড়াটেদের পরিষেবা দেয়। ভাড়াটে হল একজন ব্যবহারকারী, অ্যাপ্লিকেশন (application), বা ব্যবহারকারী/অ্যাপ্লিকেশনের একটি গোষ্ঠী যারা তাদের নিজস্ব ডেটা সেটে (data set) কাজ করার জন্য সফ্টওয়্যারটি (software) ব্যবহার করে। এই ভাড়াটেরা ডেটা ভাগ করে না (যদি না মালিকের দ্বারা স্পষ্টভাবে নির্দেশ দেওয়া হয়) এবং এমনকি একে অপরের বিষয়ে সচেতন নাও হতে পারে। diff --git a/content/bn/mutual-transport-layer-security.md b/content/bn/mutual-transport-layer-security.md index 6558f471eb..b23e499319 100644 --- a/content/bn/mutual-transport-layer-security.md +++ b/content/bn/mutual-transport-layer-security.md @@ -2,11 +2,9 @@ title: পারস্পরিক পরিবহন স্তর নিরাপত্তা (Mutual Transport Layer Security) status: Completed category: ধারণা -tags: ["security", "", ""] +tags: ["নিরাপত্তা", "নেটওয়ার্কিং", ""] --- -## এটা কি - মিউচুয়াল টিএলএস (এমটিএলএস) একটি প্রযুক্তি যা দুটি [পরিষেবা](/bn/service/) এর মধ্যে প্রেরিত বার্তাগুলি প্রমাণীকরণ এবং এনক্রিপ্ট করতে ব্যবহৃত হয়। মিউচুয়াল টিএলএস একটি [ট্রান্সপোর্ট লেয়ার সিকিউরিটি](/bn/transport-layer-security/) (টিএলএস) প্রোটোকল কিন্তু, শুধুমাত্র একটি সংযোগের পরিচয় যাচাই করার পরিবর্তে উভয় পক্ষকেই যাচাই করে। diff --git a/content/bn/nodes.md b/content/bn/nodes.md index 026e3f665f..0f7cec82dd 100644 --- a/content/bn/nodes.md +++ b/content/bn/nodes.md @@ -2,11 +2,9 @@ title: নোড (Nodes) status: Completed category: ধারণা -tags: ["infrastructure", "fundamental", ""] +tags: ["অবকাঠামো", "মৌলিক", ""] --- -## এটা কি - একটি নোড হল এমন একটি কম্পিউটার, যা অন্য কম্পিউটার বা নোডগুলির সহযোগিতায় একটি সাধারণ কাজ সম্পাদন করে। উদাহরণস্বরূপ আপনার ল্যাপটপ, মোডেম এবং প্রিন্টারকে ধরা যেতে পারে। এই ডিভাইসগুলো আপনার ওয়াইফাই নেটওয়ার্কের মাধ্যমে সংযোগ স্থাপন করে এবং একত্রে কাজ করে, প্রতিটি একটি নোডের প্রতিনিধিত্ব করে। [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) এ, একটি নোড হতে পারে একটি ফিজিক্যাল কম্পিউটার, [ভার্চুয়াল মেশিন](/bn/virtual-machine/) নামে পরিচিত একটি ভার্চুয়াল কম্পিউটার বা একটি [কন্টেনার](/bn/container/)। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/observability.md b/content/bn/observability.md index d513ea77be..d9e8b2341d 100644 --- a/content/bn/observability.md +++ b/content/bn/observability.md @@ -2,20 +2,15 @@ title: পর্যবেক্ষণযোগ্যতা (Observability) status: Completed category: ধারণা -tags: ["property", "", ""] +tags: ["বৈশিষ্ট্য", "", ""] --- -## এটা কি +পর্যবেক্ষণযোগ্যতা (Observability) হলো একটি সিস্টেমের বৈশিষ্ট্য যা ডিগ্রীকে সংজ্ঞায়িত করে যেখানে সিস্টেমটি কার্যযোগ্য অন্তর্দৃষ্টি (actionable insights) তৈরি করতে পারে। +এটি ব্যবহারকারীদের এই বাহ্যিক আউটপুটগুলি থেকে একটি সিস্টেমের অবস্থা বুঝতে এবং (সংশোধনমূলক) পদক্ষেপ নিতে দেয়। -পর্যবেক্ষণযোগ্যতা (Observability) হল পর্যবেক্ষণের অধীনে থাকা সিস্টেম থেকে সংকেতগুলির উপর ভিত্তি করে ক্রমাগত কার্যযোগ্য সূক্ষ্মদর্শিতা (continuous actionable insights) তৈরি এবং আবিষ্কার করার ক্ষমতা। অন্য কথায়, পর্যবেক্ষণযোগ্যতা ব্যবহারকারীদের বাহ্যিক আউটপুট থেকে একটি সিস্টেমের অবস্থা বুঝতে এবং (সংশোধনমূলক) পদক্ষেপ নিতে দেয়। +কম্পিউটার সিস্টেমগুলো পরিমাপ করা হয় নিম্ন-স্তরের সংকেত যেমন সিপিইউ সময়, মেমরি, ডিস্ক স্পেস এবং উচ্চ-স্তরের এবং ব্যবসায়িক সংকেতগুলো পর্যবেক্ষণ করে যার মধ্যে রয়েছে এপিআই প্রতিক্রিয়া সময়, ত্রুটি, প্রতি সেকেন্ডে লেনদেন ইত্যাদি । +এই পর্যবেক্ষণযোগ্য সিস্টেমগুলো **পর্যবেক্ষণ** করা হয় (বা মনিটর করা হয়) বিশেষ টুলসের মাধ্যমে, তথাকথিত পর্যবেক্ষণের টুল। এই টুলগুলির একটি তালিকা [ক্লাউড নেটিভ ল্যান্ডস্কেপের পর্যবেক্ষণ বিভাগে](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category) দেখা যেতে পারে। -## এটা যেসব সমস্যাতে দৃষ্টিপাত করে +পর্যবেক্ষণযোগ্য সিস্টেমগুলো তাদের অপারেটরদের কাছে অর্থপূর্ণ, কার্যকরী ডেটা প্রদান করে, তাদের অনুকূল ফলাফল (দ্রুত ঘটনার প্রতিক্রিয়া, বিকাশকারীর উৎপাদনশীলতা (developer productivity) বৃদ্ধি) এবং কম পরিশ্রম এবং ডাউনটাইম অর্জন করতে দেয়। -কম্পিউটার সিস্টেমগুলি নিম্ন-স্তরের সংকেতগুলি যেমন CPU সময়, মেমরি, ডিস্ক স্পেস এবং উচ্চ-স্তরের এবং ব্যবসায়িক সংকেত, API প্রতিক্রিয়া সময়সহ, ত্রুটি, প্রতি সেকেন্ডে লেনদেন, ইত্যাদি সহ পরিমাপ করা হয়। - -একটি সিস্টেমের পর্যবেক্ষণযোগ্যতা তার অপারেটিং এবং উন্নয়ন খরচের উপর একটি উল্লেখযোগ্য প্রভাব ফেলে। -পর্যবেক্ষণযোগ্য সিস্টেমগুলি তাদের অপারেটরদের কাছে অর্থপূর্ণ, কার্যকরী ডেটা প্রদান করে, তাদের অনুকূল ফলাফল (দ্রুত ঘটনার প্রতিক্রিয়া, বিকাশকারীর উৎপাদনশীলতা (developer productivity) বৃদ্ধি) এবং কম পরিশ্রম এবং ডাউনটাইম অর্জন করতে দেয়। - -## এটা কিভাবে সাহায্য করে - -বুঝতে হবে যে শুধু অধিক তথ্যই আরও পর্যবেক্ষণযোগ্য সিস্টেমে তৈরি করে না। আদতে, কখনও কখনও, একটি সিস্টেম দ্বারা উৎপণ্য তথ্যের পরিমাণ অ্যাপ্লিকেশন দ্বারা উৎপণ্য কোলাহল থেকে মূল্যবান আকাঙ্ক্ষণীয় সংকেত সনাক্ত করা কঠিন করে তুলতে পারে। সঠিক সিদ্ধান্ত নেওয়ার জন্য পর্যবেক্ষণযোগ্যতার প্রয়োজন সঠিক সময়ে সঠিক ডাটা, সঠিক ভোক্তার জন্য (মানুষ অথবা সফ্টওয়্যারের অংশ)। \ No newline at end of file +ফলস্বরূপ, একটি সিস্টেম কতটা পর্যবেক্ষণযোগ্য তা এর অপারেটিং এবং বিকাশের খরচগুলোকে উল্লেখযোগ্যভাবে প্রভাবিত করবে। diff --git a/content/bn/platform-as-a-service.md b/content/bn/platform-as-a-service.md index eb804ec0f2..f03aa0836d 100644 --- a/content/bn/platform-as-a-service.md +++ b/content/bn/platform-as-a-service.md @@ -3,11 +3,9 @@ title: পরিষেবা হিসাবে একটি প্ল্যা status: Deprecated category: প্রযুক্তি draft: true -tags: ["fundamental", "platform", ""] +tags: ["মৌলিক", "প্ল্যাটফর্ম", ""] --- -## এটা কি - পরিষেবা হিসাবে একটি প্ল্যাটফর্ম, বা পিএএএস, হলো অ্যাপ্লিকেশন ডেভেলপমেন্ট টিমগুলিকে তাদের অ্যাপ্লিকেশনগুলি স্থাপন এবং চালানোর জন্য একটি বাহ্যিক প্ল্যাটফর্ম। হিরোকু, ক্লাউড ফাউন্ড্রি, অ্যাপ ইঞ্জিন পিএএএস অফারগুলির উদাহরণ। diff --git a/content/bn/pod.md b/content/bn/pod.md new file mode 100644 index 0000000000..045ee4ade1 --- /dev/null +++ b/content/bn/pod.md @@ -0,0 +1,30 @@ +--- +title: পড (Pod) +status: Completed +category: ধারণা +tags: ["অবকাঠামো", "মৌলিক", ""] +--- + +একটি [কুবারনেটিস (Kubernetes)](/bn/kubernetes/) পরিবেশের মধ্যে, একটি পড সবচেয়ে মৌলিক স্থাপনযোগ্য ইউনিট হিসাবে কাজ করে । +এটি কন্টেইনারাইজড অ্যাপ্লিকেশন স্থাপন এবং পরিচালনার জন্য একটি অপরিহার্য বিল্ডিং ব্লক হিসেবে প্রতিনিধিত্ব করে। +প্রতিটি পড একটি একক অ্যাপ্লিকেশনের দৃষ্টান্ত ধারণ করে এবং এক বা একাধিক [কন্টেইনার](/bn/container/) ধারণ করে রাখতে পারে। +কুবারনেটিস একটি বৃহত্তর স্থাপনার অংশ হিসাবে পডগুলো পরিচালনা করে এবং প্রয়োজন অনুসারে পডগুলো [উল্লম্বভাবে](/bn/vertical-scaling/) বা [অনুভূমিকভাবে](/bn/horizontal-scaling/) স্কেল করতে পারে। + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +যদিও কন্টেইনারগুলো সাধারণত স্বাধীন ইউনিট হিসাবে কাজ করে যা একটি নির্দিষ্ট কাজের চাপ পরিচালনা এবং নিয়ন্ত্রণ করে, +তবুও এমন কিছু ক্ষেত্রে রয়েছে যখন কন্টেইনারগুলোকে সম্মিলিতভাবে যোগাযোগ এবং নিয়ন্ত্রণ করতে হয়। + +যদি এই পরস্পর ঘনিষ্ঠভাবে সম্পর্কিত কন্টেইনারগুলোর প্রত্যেকটি পৃথকভাবে পরিচালিত করা হয়, তাহলে এটি অপ্রয়োজনীয় ব্যবস্থাপনার কাজগুলো তৈরি করবে। +উদাহরণস্বরূপ, অপারেটরকে বারবার সংশ্লিষ্ট কন্টেইনারগুলোর স্থান নির্ধারণ করতে হবে যাতে তারা একসাথে থাকে। +এবং যদিও এই পরস্পর সম্পর্কিত কন্টেইনারগুলোর জীবনচক্রগুলোকে সিঙ্ক্রোনাইজ ( একই সময় ঘটানো) করা প্রয়োজন, তবুও তখন সেগুলোকে শুধুমাত্র পৃথকভাবে পরিচালনা করা যাবে। + +## এটা কিভাবে সাহায্য করে + +পড কন্টেইনারগুলোকে ঘনিষ্ঠভাবে আবদ্ধ করে একটি ইউনিটে নিয়ে আসে, ফলে কন্টেইনার অপারেশনগুলো উল্লেখযোগ্যভাবে সহজতর হয়ে হয়। +উদাহরণস্বরূপ, অতিরিক্ত কার্যকারিতা যোগ করতে বা গ্লোবাল কনফিগারেশন সেট আপ করতে প্রায়শই প্রধান কন্টেইনারের পাশাপাশি গৌণ কন্টেইনার ব্যবহার করা হয়। +উদাহরণগুলোর মধ্যে অন্তর্ভুক্ত রয়েছে এমন কন্টেইনার যা অনুপ্রবেশ করে এবং মূল কন্টেইনারে মৌলিক সেটিংস (settings) প্রয়োগ করে, +_সাইডকার_ (কন্টেইনার) যা প্রধান কন্টেইনারের জন্য নেটওয়ার্ক ট্র্যাফিক রাউটিং পরিচালনা করে [ দেখুন [সার্ভিস মেশ (Service Mesh)](/bn/service-mesh/) ] , +অথবা প্রতিটি কন্টেইনারের সাথে সংযুক্ত লগ সংগ্রহকারী কন্টেইনারগুলো । + +মেমরি এবং সিপিইউ বরাদ্দকরণ করা যেতে পারে হয় একটি পড স্তরে ( যা ভিতরের কন্টেইনারগুলোকে সহজ উপায়ে রিসোর্সেস ভাগাভাগি করতে দেয়) অথবা প্রতি কন্টেইনারে। diff --git a/content/bn/policy-as-code.md b/content/bn/policy-as-code.md index d3d58fb44c..a71d551354 100644 --- a/content/bn/policy-as-code.md +++ b/content/bn/policy-as-code.md @@ -2,12 +2,10 @@ title: কোড হিসাবে নীতি (Policy as Code) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] draft: --- -## এটা কি - কোড হিসাবে নীতি (PaC ) হলো মেশিন-পাঠযোগ্য এবং প্রক্রিয়াযোগ্য আকারে এক বা একাধিক ফাইল হিসাবে নীতিগুলির সংজ্ঞা সংরক্ষণের অনুশীলন। এটি ঐতিহ্যগত মডেলকে প্রতিস্থাপন করে যেখানে নীতিগুলি পৃথক নথিতে মানব-পাঠযোগ্য আকারে নথিভুক্ত করা হতো। diff --git a/content/bn/portability.md b/content/bn/portability.md index 4af70292f0..cd48515437 100644 --- a/content/bn/portability.md +++ b/content/bn/portability.md @@ -1,8 +1,8 @@ --- title: বহনযোগ্যতা (Portability) status: Completed -category: সম্পত্তি -tags: ["fundamental", "property", ""] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "বৈশিষ্ট্য", ""] --- বহনযোগ্যতা হল একটি সফ্টওয়্যার বৈশিষ্ট্য এবং পুনঃব্যবহারযোগ্যতার একটি রূপ যা নির্দিষ্ট অপারেটিং পরিবেশে "আটকে যাওয়া" এড়াতে সাহায্য করে । diff --git a/content/bn/reliability.md b/content/bn/reliability.md index 5e047bfa63..4b5dc2a5cd 100644 --- a/content/bn/reliability.md +++ b/content/bn/reliability.md @@ -1,8 +1,8 @@ --- title: নির্ভরযোগ্যতা (Reliability) status: Completed -category: সম্পত্তি -tags: ["fundamental", "property", ""] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "বৈশিষ্ট্য", ""] --- diff --git a/content/bn/role-based-access-control.md b/content/bn/role-based-access-control.md new file mode 100644 index 0000000000..54915c5fec --- /dev/null +++ b/content/bn/role-based-access-control.md @@ -0,0 +1,23 @@ +--- +title: রোল-বেসড অ্যাক্সেস কন্ট্রোল (আরবিএসি) [Role-Based Access Control (RBAC)] +status: Completed +category: ধারণা +tags: ["নিরাপত্তা"] +--- + +রোল-বেসড অ্যাক্সেস কন্ট্রোল (আরবিএসি) হলো একটি টিম বা বৃহত্তর সংস্থার মধ্যে ব্যবহারকারীদের ভূমিকার উপর ভিত্তি করে সিস্টেম, নেটওয়ার্ক বা রিসোর্সগুলোতে তাদের অ্যাক্সেস পরিচালনা করার একটি নিরাপত্তা পদ্ধতি। +আরবিএসি আইটি অ্যাডমিনিস্ট্রেটরদেরকে সমস্ত ব্যবহারকারীদের জন্য একটি নির্দিষ্ট কাজের ফাংশন সহ অ্যাক্সেসের প্রয়োজনীয় স্তর শনাক্ত করার এবং সেই ব্যবহারকারীদের একটি পূর্বনির্ধারিত অনুমতির সেট সহ একটি ভূমিকা অর্পণ করার ক্ষমতা দেয়৷ । +আরবিএসি ব্যবহার করে সংস্থাগুলো তাদের কর্মচারীদের তাদের ভূমিকা এবং দায়িত্ব অনুসারে বিভিন্ন স্তরের অ্যাক্সেস সরবরাহ করে থাকে । + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +আরবিএসি টিমের সদস্যরা এবং অ্যাপ্লিকেশনগুলো অ্যাক্সেস করতে পারে এমন রিসোর্সগুলো নিয়ন্ত্রণ করার চ্যালেঞ্জ মোকাবেলা করে +(সেইসাথে তারা যে কাজগুলো সম্পাদন করতে পারে) বিশেষ করে যখন অ্যাপ্লিকেশন এবং দলের সদস্যদের সংখ্যা বৃদ্ধি পেতে থাকে । +অ্যাডমিনিস্ট্রেটরদেরকে অবশ্যই নিশ্চিত করতে হবে যে প্রতিটি ব্যবহারকারীর কাছে তাদের প্রয়োজনীয় রিসোর্সগুলো অ্যাক্সেস করার জন্য সঠিক অনুমতি রয়েছে । +এই কাজটি কষ্টকর এবং ত্রুটিপূর্ণ হয়ে উঠতে পারে যদি না কাঠামোগত অ্যাক্সেস নিয়ন্ত্রণ ব্যবস্থা থাকে । + +## এটা কিভাবে সাহায্য করে + +আরবিএসি আইটি টিমগুলোকে একটি গ্রুপের সমস্ত ব্যবহারকারীর জন্য অনুমতিগুলোকে সহজে একযোগে পরিচালনা করার ক্ষমতা প্রদান করে অথবা একটি ভূমিকা বরাদ্দ বা সরিয়ে দেওয়ার মাধ্যমে একটি পৃথক ব্যবহারকারীর অ্যাক্সেস স্তরে দ্রুত সামঞ্জস্য করার ক্ষমতা দেয় ৷ +এটি সংবেদনশীল ডেটা রক্ষা করে এবং নিশ্চিত করে যে কর্মীরা শুধুমাত্র তাদের কাজের দায়িত্বগুলোর জন্য প্রয়োজনীয় তথ্য অ্যাক্সেস করতে পারে এবং কাজগুলো সম্পাদন করতে পারে । +সামগ্রিকভাবে, আরবিএসি অ্যাক্সেস ম্যানেজমেন্ট উন্নত করে, নিরাপত্তা জোরদার করে এবং সংস্থাগুলোর মধ্যে অপারেশনাল দক্ষতা বাড়ায় । diff --git a/content/bn/runtime.md b/content/bn/runtime.md new file mode 100644 index 0000000000..e82760742b --- /dev/null +++ b/content/bn/runtime.md @@ -0,0 +1,36 @@ +--- +title: রানটাইম (Runtime) +status: Completed +category: ধারণা +tags: ["অ্যাপ্লিকেশন"] +--- + +সাধারণত একটি রানটাইম সফ্টওয়্যারের একটি অংশকে কার্যকর করে। +এটি অন্তর্নিহিত অপারেটিং সিস্টেমের একটি [অ্যাবস্ট্রাকশন](/bn/abstraction/) যা প্রোগ্রামের কমান্ডগুলোকে অপারেটিং সিস্টেমের জন্য নিজ নিজ কাজে অনুবাদ করে দেয়। + +[ক্লাউড নেটিভের](/cloud-native-apps/) প্রসঙ্গে, _রানটাইম_ বলতে সাধারণত কন্টেইনার রানটাইমকে বোঝায়। +একটি কন্টেইনার রানটাইম বিশেষভাবে [ওপেন কন্টেইনার ইনিশিয়েটিভ](https://opencontainers.org/) এর নির্দেশনাকে বাস্তবায়ন করে যাতে ভিন্ন ভিন্ন [কন্টেইনার অর্কেস্ট্রেশন](/bn/container-orchestration/) প্রযুক্তির মাঝে সামঞ্জস্যপূর্ণ পরিচালনা নিশ্চিত করা যায়। + +## এটা যেসব সমস্যাতে দৃষ্টিপাত করে + +একটি কন্টেইনার রানটাইমের অ্যাবস্ট্রাকশন ছাড়া, অ্যাপ্লিকেশনটিকে প্রতিটি অপারেটিং সিস্টেমের সমস্ত মেকানিক্সের সাথে মোকাবিলা করতে হবে, যা অ্যাপটি চালানোর জটিলতা বৃদ্ধি করবে। + +## এটা কিভাবে সাহায্য করে + +কন্টেইনার রানটাইমগুলো কন্টেইনার অর্কেস্ট্রেটর যেমন [কুবারনেটিসের](/bn/kubernetes) একটি প্রয়োজনীয় উপাদান। +তারা কন্টেইনারের জীবনচক্র পরিচালনা করে, যা প্রধানত তিনটি কাজ করে। +প্রথমত, এটি নির্ধারণ করে যে কীভাবে কন্টেইনার চিত্রগুলো নির্দিষ্ট করা যায় এবং কীভাবে রানটাইম সেগুলোকে পুনরুদ্ধার করতে পারে। +দ্বিতীয়ত, তারা কীভাবে এই ছবিগুলো আনপ্যাক করা, স্তরযুক্ত করা , মাউন্ট করা এবং কার্যকর করা যায় তা পরিচালনা করে। +অতঃপর, রানটাইমগুলো এই সমস্ত অপারেটিং সিস্টেম-স্তরের ক্রিয়াগুলোর যত্ন নেওয়ার মাধ্যমে হার্ডওয়্যার রিসোর্সগুলো পরিচালনা করে। +এর মধ্যে রয়েছে সম্পদ বরাদ্দ এবং বিচ্ছিন্ন করা। +সময়ের সাথে সাথে, বিভিন্ন কন্টেইনার রানটাইম পণ্যগুলো বিকশিত হয়, +যা ওসিআই স্পেসিফিকেশনের দিকে নিয়ে যায়, যা কন্টেইনার রানটাইমের জন্য আদর্শ হয়ে উঠেছে। + +এই স্ট্যান্ডার্ডটি প্রবর্তন করার মাধ্যমে শেষ ব্যবহারকারীদের যেকোনও ওসিআই-অনুগত রানটাইমকে যেকোনও ওসিআই-অনুগত কন্টেইনার অর্কেস্ট্রেটরের সাথে একত্রিত করতে দেয় (যেমন কুবারনেটিস) + +## সম্পর্কিত পদ + +- [ক্লাউড নেটিভ](https://glossary.cncf.io/bn/cloud-native-apps/) +- [কন্টেইনারাইজেশন](https://glossary.cncf.io/bn/containerization/) +- [কন্টেইনার অর্কেস্ট্রেশন](https://glossary.cncf.io/bn/container-orchestration/) +- [মাইক্রোসার্ভিসেস আর্কিটেকচার](https://glossary.cncf.io/bn/microservices-architecture/) diff --git a/content/bn/scalability.md b/content/bn/scalability.md index 305140379b..1ef80dc529 100644 --- a/content/bn/scalability.md +++ b/content/bn/scalability.md @@ -1,8 +1,8 @@ --- title: মাপযোগ্যতা (Scalability) status: Completed -category: সম্পত্তি -tags: ["fundamental", "property", ""] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "বৈশিষ্ট্য", ""] --- মাপযোগ্যতা বলতে বোঝায় একটি সিস্টেম কতটা ভালোভাবে বৃদ্ধি করতে পারে। সিস্টেমের যা করা উচিত তা করার ক্ষমতাকে এটি বৃদ্ধি করে। diff --git a/content/bn/security-chaos-engineering.md b/content/bn/security-chaos-engineering.md index 818858f73e..40f3769bf2 100644 --- a/content/bn/security-chaos-engineering.md +++ b/content/bn/security-chaos-engineering.md @@ -2,11 +2,9 @@ title: নিরাপত্তা বিশৃঙ্খলা ইঞ্জিনিয়ারিং (Security Chaos Engineering) status: Completed category: ধারণা -tags: ["security", "methodology", ""] +tags: ["নিরাপত্তা", "পদ্ধতি", ""] --- -## এটা কি - নিরাপত্তা বিশৃঙ্খলা ইঞ্জিনিয়ারিং অথবা SCE [বিশৃঙ্খলা ইঞ্জিনিয়ারিং](/bn/chaos-engineering/) এর উপর ভিত্তি করে একটি নিয়মানুবর্তিতা। কোলাহলপূর্ণ এবং দূষিত পরিস্থিতি সহ্য করার জন্য সিস্টেমের ক্ষমতার উপর আস্থা তৈরি করতে SCE একটি ডিসট্রিবিউটেড সিস্টেমে সক্রিয় নিরাপত্তা পরীক্ষা করে (proactive security experimentation)। নিরাপত্তা বিশৃঙ্খলা ইঞ্জিনিয়াররা এটি অর্জন করতে বৈজ্ঞানিক পদ্ধতি লুপ ব্যবহার করে, যার মধ্যে রয়েছে স্থির-স্থিতি (steady-state), হাইপোথিসিস, ক্রমাগত যাচাইকরণ, শিক্ষামূলক অভিজ্ঞতা (lesson learned) এবং প্রশমন (mitigation) বাস্তবায়ন। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে @@ -19,4 +17,4 @@ tags: ["security", "methodology", ""] এর লক্ষ্য "অজানার অজানা" উন্মোচন করা এবং সিস্টেমে আস্থা তৈরি করা, সাইবার স্থিতিস্থাপকতা বৃদ্ধি এবং পর্যবেক্ষণযোগ্যতা উন্নত করা। ইঞ্জিনিয়ারিং দলগুলি ধীরে ধীরে জটিল অবকাঠামো, প্ল্যাটফর্ম এবং ডিসট্রিবিউটেড সিস্টেমের মধ্যে নিরাপত্তা উদ্বেগের (security concerns) জন্য বোঝাপড়ার উন্নতি ঘটাবে। SCE সমগ্র পণ্যের সাইবার স্থিতিস্থাপকতা উন্নত করে, লুকানো নিরাপত্তা সমস্যাগুলি উন্মোচন করে, ক্লাসিক্যাল ব্লাইন্ড স্পটগুলিকে উন্মোচন করে, এবং গুরুত্বপূর্ণ প্রান্তের ক্ষেত্রে (critical edge cases) দলগুলিকে প্রস্তুত করে৷ -এই পদ্ধতি SREs, [DevOps](/bn/devops/) এবং [DevSecOps](/bn/devsecops/) ইঞ্জিনিয়ারদের সিস্টেমে আস্থা তৈরি করতে, সাইবার স্থিতিস্থাপকতা বাড়াতে এবং পর্যবেক্ষণযোগ্যতা উন্নত করতে সাহায্য করে। \ No newline at end of file +এই পদ্ধতি SREs, [DevOps](/bn/devops/) এবং [DevSecOps](/bn/devsecops/) ইঞ্জিনিয়ারদের সিস্টেমে আস্থা তৈরি করতে, সাইবার স্থিতিস্থাপকতা বাড়াতে এবং পর্যবেক্ষণযোগ্যতা উন্নত করতে সাহায্য করে। diff --git a/content/bn/self healing.md b/content/bn/self-healing.md similarity index 92% rename from content/bn/self healing.md rename to content/bn/self-healing.md index 90f1142271..0625dd08b0 100644 --- a/content/bn/self healing.md +++ b/content/bn/self-healing.md @@ -1,8 +1,8 @@ --- title: স্ব নিরাময়(Self Healing) status: Completed -category: সম্পত্তি -tags: ["infrastructure", "property"] +category: বৈশিষ্ট্য +tags: ["অবকাঠামো", "বৈশিষ্ট্য"] --- একটি স্ব-নিরাময় ব্যবস্থা কোনও মানুষের হস্তক্ষেপ ছাড়াই নির্দিষ্ট ধরণের ব্যর্থতা থেকে পুনরুদ্ধার করতে সক্ষম। diff --git a/content/bn/serverless.md b/content/bn/serverless.md index 3bf75fb628..ff9f3c6763 100644 --- a/content/bn/serverless.md +++ b/content/bn/serverless.md @@ -2,11 +2,9 @@ Title: সার্ভারহীন (Serverless) Status: Completed Category: প্রযুক্তি -tags: ["architecture", "", ""] +tags: ["স্থাপত্য", "", ""] --- -## এটা কি - সার্ভারলেস হল একটি ক্লাউড নেটিভ ডেভেলপমেন্ট মডেল যা ডেভেলপারদের সার্ভার পরিচালনা না করেই অ্যাপ্লিকেশন তৈরি এবং চালানোর অনুমতি দেয়। এখনও সার্ভারহীনে সার্ভার আছে, কিন্তু তারা অ্যাপ ডেভেলপমেন্ট থেকে [বিমূর্ত](/bn/abstraction/)(abstracted) দূরে। একজন ক্লাউড প্রদানকারী (cloud provider) সার্ভার পরিকাঠামোর প্রভিশনিং, রক্ষণাবেক্ষণ এবং [স্কেলিং](/bn/scalability/) এর রুটিন কাজ পরিচালনা করে। ডেভেলপাররা তাদের কোড কেবল স্থাপনের (deployment) জন্য [কন্টেইনার](/bn/container/) এ প্যাকেজ করতে পারে। একবার স্থাপন করা হয়ে গেলে, সার্ভারহীন অ্যাপগুলি চাহিদার (demand) প্রতি সাড়া দেয় এবং প্রয়োজন অনুসারে স্বয়ংক্রিয়ভাবে সার্ভারের ক্ষমতা বাড়ায় এবং কমায়। পাবলিক ক্লাউড প্রদানকারীদের সার্ভারহীন অফারগুলি সাধারণত একটি ইভেন্ট-চালিত (event-driven) এক্সিকিউশন মডেলের মাধ্যমে চাহিদা অনুযায়ী পরিমাপ করা হয়। ফলস্বরূপ, যখন একটি সার্ভারহীন ফাংশন নিষ্ক্রিয় বসে থাকে, তখন এটির জন্য কিছু খরচ হয় না। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে @@ -15,4 +13,4 @@ tags: ["architecture", "", ""] ## এটা কিভাবে সাহায্য করে -অন্যদিকে, সার্ভারহীন আর্কিটেকচারের ক্ষেত্রে, বিপরীতে, অ্যাপগুলি শুধুমাত্র প্রয়োজন অনুযায়ী চালু করা হয়। যখন একটি ইভেন্ট অ্যাপ কোড চালানোর জন্য ট্রিগার করে, তখন পাবলিক ক্লাউড প্রদানকারী ডাইনামিকভাবে সেই কোডের জন্য সম্পদ (resources) বরাদ্দ করে। কোডটি কার্যকর করা শেষ হলে ব্যবহারকারী অর্থ প্রদান বন্ধ করে দেয়। খরচ এবং দক্ষতাবৃদ্ধি সুবিধা ছাড়াও, সার্ভারলেস ডেভেলপারদের অ্যাপ স্কেলিং এবং সার্ভার প্রভিশনিংয়ের সাথে যুক্ত রুটিন এবং ছোট কাজ থেকে মুক্ত করে। সার্ভারহীন, রুটিন কাজ যেমন অপারেটিং সিস্টেম এবং ফাইল সিস্টেম পরিচালনা, নিরাপত্তা প্যাচ, লোড ব্যালেন্সিং, ক্যাপাসিটি ম্যানেজমেন্ট, স্কেলিং, লগিং এবং মনিটরিং সবই ক্লাউড সেবা প্রদানকারীর কাছে ছেড়ে দেয়। \ No newline at end of file +অন্যদিকে, সার্ভারহীন আর্কিটেকচারের ক্ষেত্রে, বিপরীতে, অ্যাপগুলি শুধুমাত্র প্রয়োজন অনুযায়ী চালু করা হয়। যখন একটি ইভেন্ট অ্যাপ কোড চালানোর জন্য ট্রিগার করে, তখন পাবলিক ক্লাউড প্রদানকারী ডাইনামিকভাবে সেই কোডের জন্য সম্পদ (resources) বরাদ্দ করে। কোডটি কার্যকর করা শেষ হলে ব্যবহারকারী অর্থ প্রদান বন্ধ করে দেয়। খরচ এবং দক্ষতাবৃদ্ধি সুবিধা ছাড়াও, সার্ভারলেস ডেভেলপারদের অ্যাপ স্কেলিং এবং সার্ভার প্রভিশনিংয়ের সাথে যুক্ত রুটিন এবং ছোট কাজ থেকে মুক্ত করে। সার্ভারহীন, রুটিন কাজ যেমন অপারেটিং সিস্টেম এবং ফাইল সিস্টেম পরিচালনা, নিরাপত্তা প্যাচ, লোড ব্যালেন্সিং, ক্যাপাসিটি ম্যানেজমেন্ট, স্কেলিং, লগিং এবং মনিটরিং সবই ক্লাউড সেবা প্রদানকারীর কাছে ছেড়ে দেয়। diff --git a/content/bn/service discovery.md b/content/bn/service-discovery.md similarity index 98% rename from content/bn/service discovery.md rename to content/bn/service-discovery.md index 8de75de1ec..a5cdfbd8e4 100644 --- a/content/bn/service discovery.md +++ b/content/bn/service-discovery.md @@ -2,12 +2,9 @@ title: সার্ভিস ডিসকভারি (Service Discovery) status: Completed category: ধারণা -tags: ["networking", "", ""] +tags: ["নেটওয়ার্কিং", "", ""] --- - -## এটা কি? - সার্ভিস ডিসকভারি হল পৃথক দৃষ্টান্ত খোঁজার প্রক্রিয়া যা একটি পরিষেবা তৈরি করে। একটি সার্ভিস ডিসকভারি সরঞ্জাম বিভিন্ন নোড বা শেষ পয়েন্টগুলির (endponint) হিসেব রাখে যা একটি পরিষেবা তৈরি করে। diff --git a/content/bn/service-mesh.md b/content/bn/service-mesh.md index 91809070cf..47bcf9c19a 100644 --- a/content/bn/service-mesh.md +++ b/content/bn/service-mesh.md @@ -2,6 +2,7 @@ title: সার্ভিস মেশ (Service Mesh) status: Completed category: প্রযুক্তি +tags: ["নেটওয়ার্কিং", "", ""] --- ## এটা কি diff --git a/content/bn/service-proxy.md b/content/bn/service-proxy.md index b2edfdd7fa..a70ce8b26c 100644 --- a/content/bn/service-proxy.md +++ b/content/bn/service-proxy.md @@ -2,10 +2,9 @@ title: সার্ভিস প্রক্সি (Service Proxy) status: Completed category: প্রযুক্তি +tags: ["নেটওয়ার্কিং", "", ""] --- -## এটা কি? - একটি সার্ভিস প্রক্সি একটি প্রদত্ত পরিষেবাতে ([service](/bn/service/)) বা সেখান থেকে ট্র্যাফিককে বাধা দেয়, এতে কিছু যুক্তি প্রয়োগ করে, তারপর সেই ট্র্যাফিকটিকে অন্য পরিষেবাতে অগ্রস্থ করে। এটি মূলত একটি "গো-বিটুইন (go-between)" হিসাবে কাজ করে যা নেটওয়ার্ক ট্র্যাফিক সম্পর্কে তথ্য সংগ্রহ করে এবং/অথবা এটিতে নিয়ম প্রয়োগ করে। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/service.md b/content/bn/service.md index e883a5ee09..4d445e5768 100644 --- a/content/bn/service.md +++ b/content/bn/service.md @@ -2,7 +2,7 @@ title: পরিষেবা (Service) status: Completed category: ধারণা -tags: ["application", "fundamental", ""] +tags: ["অ্যাপ্লিকেশন", "মৌলিক", ""] --- দয়া করে মনে রাখবেন যে আইটি (IT)-তে, পরিষেবার একাধিক অর্থ রয়েছে। diff --git a/content/bn/shift-left.md b/content/bn/shift-left.md index 160961b0c6..2036dfd635 100644 --- a/content/bn/shift-left.md +++ b/content/bn/shift-left.md @@ -2,11 +2,9 @@ title: শিফট লেফট (Shift Left) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - লেফট শিফটে লেফট একটি সফ্টওয়্যার ডেভেলপমেন্ট জীবনচক্রের প্রাথমিক পর্যায়গুলি বোঝায়, সফটওয়্যার জীবনচক্রকে এমন একটি লাইন হিসাবে বিবেচনা করো যেখানে পর্যায়গুলি বাম থেকে ডানে সম্পাদিত হয়। শিফট লেফট হ'ল সফ্টওয়্যার ডেভেলপমেন্ট জীবনচক্রের প্রথম দিকে পরীক্ষা, নিরাপত্তা বা অন্যান্য উন্নয়ন অনুশীলন বাস্তবায়নের অনুশীলন, শেষের দিকে না করে। diff --git a/content/bn/site-reliability-engineering.md b/content/bn/site-reliability-engineering.md index 0d4dff1708..48a117cf39 100644 --- a/content/bn/site-reliability-engineering.md +++ b/content/bn/site-reliability-engineering.md @@ -2,11 +2,9 @@ title: সাইট নির্ভরযোগ্যতা প্রকৌশল (Site Reliability Engineering) status: Completed category: ধারণা -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - সাইট রিলাইবিলিটি ইঞ্জিনিয়ারিং বা এসআরই এমন একটি শৃঙ্খলা যা অপারেশন এবং সফ্টওয়্যার ইঞ্জিনিয়ারিংকে একত্রিত করে। পরবর্তীটি বিশেষত অবকাঠামো এবং অপারেশন সমস্যাগুলিতে প্রয়োগ করা হয়। অর্থাৎ, পণ্য এর বৈশিষ্ট্য তৈরির পরিবর্তে, সাইট নির্ভরযোগ্যতা প্রকৌশলীরা অ্যাপ্লিকেশন চালানোর জন্য সিস্টেম তৈরি করে। diff --git a/content/bn/software-as-a-service.md b/content/bn/software-as-a-service.md index a9c4241615..249f93f213 100644 --- a/content/bn/software-as-a-service.md +++ b/content/bn/software-as-a-service.md @@ -2,11 +2,9 @@ Title: সফ্টওয়্যার এজ এ সার্ভিস(Software as a Service)(SaaS) Status: Deprecated Category: প্রযুক্তি -tags: ["fundamental", "platform", ""] +tags: ["মৌলিক", "প্ল্যাটফর্ম", ""] --- -## এটা কি - সফ্টওয়্যার এজ এ সার্ভিস (SaaS) ব্যবহারকারীদের ইন্টারনেটের মাধ্যমে ক্লাউড-ভিত্তিক পরিষেবাগুলির সাথে সংযোগ হতে এবং ব্যবহার করতে দেয়৷ সাধারণ উদাহরণ হল ইমেইল, ক্যালেন্ডারিং এবং অফিস টুল (যেমন Gmail, Amazon Web Services, GitHub, Slack)। সফ্টওয়্যার এজ এ সার্ভিস (SaaS) সম্পূর্ণ সফ্টওয়্যার সেবা প্রদান করে যা ব্যবহারকারী পে-এজ-ইউ-গো (Pay-as-you-go) অর্থাৎ যতটুকু সেবা গ্রহণ করা হবে ঠিক ততটুকুর অর্থ প্রদান এই ভিত্তিতে ব্যবহার করেন। সমস্ত অপারেশন এবং রক্ষণাবেক্ষণের কাজ এবং অ্যাপ্লিকেশন ডেটা পরিষেবা প্রদানকারী দ্বারা পরিচালিত হয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/stateful-apps.md b/content/bn/stateful-apps.md index 86447f8b59..17806ca4f4 100644 --- a/content/bn/stateful-apps.md +++ b/content/bn/stateful-apps.md @@ -1,21 +1,16 @@ --- title: স্টেটফুল অ্যাপস (Stateful Apps) status: Completed -category: ধারণা -tags: ["fundamental", "application", " "] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "অ্যাপ্লিকেশন", "বৈশিষ্ট্য"] --- -## এটা কি +যখন আমরা স্টেটফুল (এবং [স্টেটলেস](/bn/stateless-apps/)) অ্যাপগুলো সম্পর্কে বলি, +স্টেট বলতে মূলত এমন ডেটাকে বুঝাই যা কোন অ্যাপ সচল রাখার জন্য সংরক্ষণ করতে হয়। +উদাহরণস্বরূপ যেকোনো ধরনের অনলাইন শপ যা আপনার কার্টকে সংরক্ষন করে রাখে একটি স্টেটফুল অ্যাপ। -যখন আমরা স্টেটফুল (এবং স্টেটলেস) অ্যাপগুলি সম্পর্কে বলি, -স্টেট বলতে মূলত এমন ডেটাকে বুঝাই যা কোন অ্যাপ সচল রাখার জন্য সংরক্ষণ করতে হয়। উদাহরণস্বরূপ যেকোনো ধরনের অনলাইন শপ যা আপনার কার্টকে সংরক্ষন করে রাখে একটি স্টেটফুল অ্যাপ। +আজকাল আমাদের ব্যবহার করা অধিকাংশ অ্যাপ্লিকেশন কমপক্ষে আংশিকভাবে স্টেটফুল । যদিও ক্লাউড নেটিভ পরিবেশে, +স্টেটফুল অ্যাপস একটি চ্যালেঞ্জ। এর কারণ হলো [ক্লাউড নেটিভ অ্যাপগুলো](/bn/cloud-native-apps) খুব গতিশীল। +এগুলোকে উপরে এবং নীচে স্কেল করা যেতে পারে, রিস্টার্ট করা যেতে পারে , চারপাশে সরানো যেতে পারে কিন্তু তবুও তাদের স্টেট অ্যাক্সেস যোগ্য হওয়া দরকার। - -## এটা যেসব সমস্যাতে দৃষ্টিপাত করে - -একটি অ্যাপ্লিকেশন ব্যবহারের জন্য সাধারনত একাধিক অনুরোধের প্রয়োজন। যেমন অনলাইন ব্যাংকিং করতে, প্রথমে আপনার পাসওয়ার্ড দিয়ে আপনার প্রমাণীকরণ(authentication) করতে হবে(অনুরোধ # 1), তারপরে আপনি আপনার বন্ধুকে অর্থ স্থানান্তর করতে পারেন(অনুরোধ # 2), এবং অবশেষে, আপনি স্থানান্তরের বিবরণ দেখতে চাইবেন(অনুরোধ # 3)। সঠিকভাবে প্রক্রিয়াটি কাজ করতে, প্রতিটি পদক্ষেপের পূর্ববর্তী পদক্ষেপগুলি এবং ব্যাংকের প্রত্যেকের অ্যাকাউন্টের স্টেট মনে রাখতে হবে। আজকাল আমাদের ব্যবহার করা অধিকাংশ অ্যাপ্লিকেশন কমপক্ষে আংশিকভাবে স্টেটফুল, কারণ এগুলি ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন করার জন্য ব্যাবহারকারির পছন্দনীয় বিষয়গুলো এবং সেটিংস জমা করে রাখে। - - -## এটা কিভাবে সাহায্য করে - -স্টেটফুল অ্যাপ্লিকেশনের স্টেট সংরক্ষণ করার কয়েকটি উপায় রয়েছে। সবচেয়ে সহজ উপায়টি হল স্টেট মেমোরিতে রাখা এবং কোথাও সংরক্ষণ না করা। এই প্রক্রিয়ার প্রধান সমস্যা হল, অ্যাপ্লিকেশনটি পুনরায় চালু করলে সমস্ত স্টেট হারিয়ে যাবে। এটি প্রতিরোধ করতে, স্টেটটি স্থানীয়ভাবে(ডিস্কে) বা ডাটাবেস সিস্টেমে সংরক্ষণ করা হয়। +অতএব, স্টেটফুল অ্যাপগুলোর এমন কিছু স্টোরেজ প্রয়োজন যা ডাটাবেসের মতো যে কোনও জায়গা থেকে অ্যাক্সেসযোগ্য। diff --git a/content/bn/stateless-apps.md b/content/bn/stateless-apps.md index b0ebc0b3ae..3a7d070af7 100644 --- a/content/bn/stateless-apps.md +++ b/content/bn/stateless-apps.md @@ -1,18 +1,15 @@ --- title: স্টেটলেস অ্যাপস (Stateless Apps) -status: Feedback Appreciated -category: প্রযুক্তি -tags: ["fundamental", "application", ""] +status: Completed +category: বৈশিষ্ট্য +tags: ["মৌলিক", "অ্যাপ্লিকেশন", "বৈশিষ্ট্য"] --- -## এটা কি +স্টেটলেস অ্যাপ্লিকেশনগুলো অনুরোধগুলোকে এমনভাবে প্রক্রিয়া করে যেন প্রতিটি অনুরোধই প্রথম বার পাঠানো হয়েছে। +অ্যাপটি ব্যবহারকারীর আগের ইন্টারঅ্যাকশন বা ব্যবহারকারীর সেশন ডেটা "মনে রাখে না"। +পূর্ববর্তী ইন্টারঅ্যাকশন থেকে ডেটাকে স্টেট হিসাবে উল্লেখ করা হয় এবং যেহেতু সেই ডেটা কোথাও সংরক্ষণ করা হয় না, এই অ্যাপগুলো স্টেটলেস। +এখানে একটি উদাহরণ দেওয়া হলো: +আপনি যখন একটি সার্চ ইঞ্জিন ব্যবহার করেন, এবং সেই অনুসন্ধানটি বাধাগ্রস্ত হয় (যেমন, উইন্ডোটি বন্ধ হয়ে যায়), সেই অনুসন্ধান ফলাফলগুলো হারিয়ে যায় । +তখন আপনাকে সব শুরু করতে হবে। -একটি স্টেটলেস অ্যাপ্লিকেশান সার্ভারে কোনও ক্লায়েন্ট সেশন (স্টেট) ডেটা সংরক্ষণ করে না যেখানে অ্যাপ্লিকেশনটি থাকে৷ প্রতিটি সেশন সঞ্চালিত হয় যেন এটি প্রথমবার ছিল এবং প্রতিক্রিয়াগুলি পূর্ববর্তী সেশনের ডেটার উপর নির্ভর করে না এবং প্রতিটি স্বল্পমেয়াদী অনুরোধ প্রক্রিয়া করার জন্য মুদ্রণ পরিষেবা, CDN (কন্টেন্ট ডেলিভারি নেটওয়ার্ক) বা ওয়েব সার্ভারগুলি ব্যবহার করার কার্যকারিতা প্রদান করে৷ উদাহরণস্বরূপ, কেউ সার্চ ইঞ্জিনে একটি প্রশ্ন অনুসন্ধান করছে এবং এন্টার বাটনে টিপেছে। কোনো কারণে এই সার্চিং অপারেশন ব্যাহত বা বন্ধ হয়ে গেলে, আপনাকে পুনরায় সার্চ করতে হবে কারণ আপনার পূর্ববর্তী সেশনের ডেটা সংরক্ষণ করা হয় না। - -## এটা যেসব সমস্যাতে দৃষ্টিপাত করে - -স্টেটলেস অ্যাপ্লিকেশনগুলো স্থিতিস্থাপকতার (resiliency) সমস্যা মোকাবেলা করে, কারণ একটি [ক্লাস্টার](/bn/cluster/) জুড়ে বিভিন্ন পড স্বাধীনভাবে কাজ করতে পারে, যদিও একই সময়ে একাধিক অনুরোধ তাদের কাছে আসে। যদি কোন সমস্যা হয়, আপনি সহজেই অ্যাপ্লিকেশনটি পুনরায় চালু করতে পারেন এবং এটি অল্প বা কোন ডাউনটাইম ছাড়াই তার প্রাথমিক অবস্থায় ফিরে আসবে। যেমন, স্টেটলেস অ্যাপ্লিকেশনের সুবিধার মধ্যে রয়েছে স্থিতিস্থাপকতা (resiliency), নমনীয়তা (elasticity) এবং উচ্চ প্রাপ্যতা (high availability)। তবে, আমাদের বর্তমানে ব্যবহার করা বেশিরভাগ অ্যাপ্লিকেশন অন্তত আংশিকভাবে [stateful](/bn/stateful-apps/), যেহেতু তারা ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে ব্যবহারকারীর পছন্দ এবং সেটিংসের মতো জিনিস সংরক্ষণ করে। - -## এটা কিভাবে সাহায্য করে - -মোটকথা, একটি স্টেটলেস অ্যাপ্লিকেশনে আপনার ক্লাস্টারের জন্য দায়ী একমাত্র জিনিস হল কোড এবং অন্যান্য স্ট্যাটিক সামগ্রী, যা এটিতে হোস্ট করা হচ্ছে। এটাই স্টেটলেস অ্যাপস, পডটি মুছে ফেলার পরে কোনও ডেটাবেস পরিবর্তন করা হয়নি, কোনও লেখা নেই এবং কোনও ফাইল অবশিষ্ট নেই৷ স্টেটলেস [কন্টেইনার](/bn/container/) স্থাপন করা সহজ, এবং আপনাকে স্থায়ী স্টোরেজ (persistent storage) ভলিউমগুলিতে কন্টেইনার ডেটা সংরক্ষণের বিষয়ে চিন্তা করতে হবে না। আপনাকে ডেটা ব্যাক আপ করার বিষয়েও চিন্তা করতে হবে না। \ No newline at end of file +অন্যদিকে, যে অ্যাপ্লিকেশনগুলো অনুরোধগুলোকে প্রক্রিয়া করার সময় পূর্ববর্তী ইন্টারঅ্যাকশনগুলোকে বিবেচনা করে তাদের [স্টেটফুল অ্যাপস](/bn/stateful-apps/) বলা হয়। diff --git a/content/bn/style-guide/_index.md b/content/bn/style-guide/_index.md index 21a40034c2..24fc20c02c 100644 --- a/content/bn/style-guide/_index.md +++ b/content/bn/style-guide/_index.md @@ -9,14 +9,15 @@ menu: এই শৈলী নির্দেশিকা আপনাকে শব্দকোষের শ্রোতা, সংজ্ঞা কাঠামো, প্রয়োজনীয় বিশদ স্তর এবং কীভাবে একটি সামঞ্জস্যপূর্ণ শৈলী বজায় রাখতে হয় তা বুঝতে সাহায্য করবে। -ক্লাউড নেটিভ শব্দকোষ CNCF সংগ্রহস্থলের [ডিফল্ট স্টাইল গাইড](https://github.com/cncf/foundation/blob/master/style-guide.md) অনুসরণ করে। উপরন্তু, এটি নিম্নলিখিত নিয়ম অনুসরণ করে: +ক্লাউড নেটিভ শব্দকোষ CNCF সংগ্রহস্থলের [ডিফল্ট স্টাইল গাইড](https://github.com/cncf/foundation/blob/master/style-guide.md) অনুসরণ করে। +উপরন্তু, এটি নিম্নলিখিত নিয়ম অনুসরণ করে: 1. সহজ, সহজলভ্য ভাষা ব্যবহার করুন, প্রযুক্তিগত শব্দবাক্য এবং বাজওয়ার্ড এড়িয়ে চলুন 2. [কথ্যভাষা এড়িয়ে চলুন](https://en.wikipedia.org/wiki/Colloquialism) 3. [আক্ষরিক এবং কংক্রিট ভাষা ব্যবহার করুন](https://guidetogrammar.org/grammar/composition/abstract.htm) 4. [সংকোচন বাদ দিন](https://en.wikipedia.org/wiki/Contraction_(grammar)) 5. [প্যাসিভ ভয়েস অল্প ব্যবহার করুন](https://www.ef.com/ca/english-resources/english-grammar/passive-voice/) -6. [একটি ইতিবাচক আকারে বাক্যাংশের বিবৃতিগুলিকে লক্ষ্য করুন](https://examples.yourdictionary.com/positive-sentence-examples.html) +6. [একটি ইতিবাচক আকারে বাক্যাংশের বিবৃতিগুলোকে লক্ষ্য করুন](https://examples.yourdictionary.com/positive-sentence-examples.html) 7. [কোটেশনের বাইরে কোনো বিস্ময় চিহ্ন নেই](https://www.grammarly.com/blog/exclamation-mark/) 8. অতিরঞ্জিত করবেন না 9. পুনরাবৃত্তি এড়িয়ে চলুন @@ -24,7 +25,17 @@ menu: ## শ্রোতা -শব্দকোষটি প্রযুক্তিগত এবং অ-প্রযুক্তিগত দর্শকদের জন্য লেখা। অনুগ্রহ করে নিশ্চিত করুন যে সংজ্ঞাগুলি সহজ ভাষায় ব্যাখ্যা করা হয়েছে এবং প্রযুক্তিগত জ্ঞান গ্রহণ করবেন না। আরো যে সংজ্ঞা অধীনে নিচে রয়েছে । +শব্দকোষটি প্রযুক্তিগত *এবং* অ-প্রযুক্তিগত দর্শকদের জন্য লেখা। +অনুগ্রহ করে নিশ্চিত করুন যে সংজ্ঞাগুলো সহজ ভাষায় ব্যাখ্যা করা হয়েছে এবং প্রযুক্তিগত জ্ঞান গ্রহণ করবেন না। এই সম্পর্কে আরো নিচে [সংজ্ঞায়](#সংজ্ঞা) দেখুন । + +## ন্যূনতম কার্যকর সংজ্ঞা + +ক্লাউড নেটিভ শব্দগুলো যে কেউ বুঝতে পারে তার জন্য আমরা এটিকে সহজ করার লক্ষ্য রাখি। +যেমন, আমরা সরলতার উপর ফোকাস করি। +একটি *ন্যূনতম কার্যকর সংজ্ঞা* প্রদান করার সময় উদাহরণ সহ স্পষ্ট, সহজ ভাষা ব্যবহার করুন যাতে যে কেউ প্রযুক্তি ব্যবহার করে এ সম্পর্কে বুঝতে পারে । +আমরা কনটেক্স এবং উদাহরণগুলো সংরক্ষণ করতে চাই না ( সর্বোপরি, এই জিনিসগুলো পাঠককে ধারণাটি বুঝতে সাহায্য করে ) তবে এটি বোঝার জন্য যদি একটি টেকনিক্যাল ডিটেলস প্রয়োজন না হয় তবে আমরা এটি এড়িয়ে যাব৷ +আমাদের লক্ষ্য জিনিসগুলোকে অতিরিক্ত জটিল করা নয়। পাঠক মৌলিক ধারণাটি বুঝতে পারলে, অন্যান্য রিসোর্সগুলো তাদের আরও গভীরে যেতে করতে সহায়তা করবে। + সেই অংশটি এই শব্দকোষের আওতার বাইরে। ## সংজ্ঞা টেমপ্লেট @@ -37,9 +48,6 @@ status: category: --- - -## এটা কি - প্রযুক্তি বা ধারণার একটি দ্রুত সারাংশ। ## এটা যেসব সমস্যাতে ফোকাস করে @@ -63,15 +71,15 @@ title: সংজ্ঞা টেমপ্লেট ### Status -শিরোনাম লেবেলের পরে **status** লেবেল আসবে। স্থিতি লেবেল নির্দেশ করে যে সংজ্ঞাগুলি পুঙ্খানুপুঙ্খভাবে যাচাই করা হয়েছে বা আরও প্রচেষ্টার প্রয়োজন আছে কিনা। +Title লেবেলের পরে **status** লেবেল আসবে। স্থিতি লেবেল নির্দেশ করে যে সংজ্ঞাগুলি পুঙ্খানুপুঙ্খভাবে যাচাই করা হয়েছে বা আরও প্রচেষ্টার প্রয়োজন আছে কিনা। বৈধ মান হল: -- সম্পন্ন -- প্রতিক্রিয়া প্রশংসিত -- শুরু না +- Completed +- Feedback Appreciated +- Not Started -আপনি সর্বদা একটি সম্পূর্ণ সংজ্ঞার বিরুদ্ধে একটি issue খুলতে পারেন। একটি সংজ্ঞা প্রবাহিত হওয়ার সময়, এটির স্থিতি Feedback Appreciated এ পরিবর্তিত হবে। +আপনি সর্বদা একটি সম্পূর্ণ সংজ্ঞার বিরুদ্ধে একটি issue খুলতে পারেন। একটি সংজ্ঞা পরিবর্ধিত হওয়ার সময়, এটির স্টেটাস *Feedback Appreciated* এ পরিবর্তিত হবে। মনে রাখবেন যে আমাদের বৈধ স্টেটাস মান স্থানীয়করণ করা উচিত নয়। ```md --- @@ -79,54 +87,103 @@ title: সংজ্ঞা টেমপ্লেট status: Feedback Appreciated ``` -### Category +### Tags + +**Tag** লেবেল status লেবেল এর পরে আসে । +ট্যাগগুলো যাতে অর্থবহ হয় এবং ব্যবহারকারীর জন্য এইভাবে সহায়ক হয়, আমরা সেগুলোকে আক্ষরিক অর্থে ব্যবহার করব। +অনেকগুলো ট্যাগ প্রয়োগ করা শুধুমাত্র এর অর্থকে মিশ্রিত করবে ৷ +এর একটি ব্যতিক্রম হল `মৌলিক` ট্যাগ, যা নির্দেশ করে এই শব্দটি অন্যান্য ক্লাউড নেটিভ ধারণাগুলো বোঝার জন্য প্রয়োজন; বেশিরভাগ পদে সম্ভবত একটি ট্যাগ থাকবে। + +**দ্রষ্টব্য**: অনুগ্রহ করে শুধুমাত্র নতুন ট্যাগ প্রবর্তন করুন যদি রক্ষণাবেক্ষণকারীদের দ্বারা অনুমোদিত হয়। যখন আপনি একটি এন্ট্রিতে ট্যাগ যোগ করেন, নিশ্চিত করুন যে সেগুলো নীচে তালিকাভুক্ত হিসাবে ঠিক বানান করা হয়েছে (একবচন, কোনো টাইপিং সমস্যা নেই)। -**Category** লেবেলটি স্ট্যাটাস লেবেলের পরে আসবে। এর মান নিম্নলিখিত মানগুলির মধ্যে একটি হওয়া উচিত: +বর্তমান ট্যাগগুলো হলো : -- প্রযুক্তি -- সম্পত্তি -- ধারণা +- অ্যাপ্লিকেশন +- স্থাপত্য +- মৌলিক +- অবকাঠামো +- পদ্ধতি +- নেটওয়ার্কিং +- বৈশিষ্ট্য +- নিরাপত্তা ```md --- title: সংজ্ঞা টেমপ্লেট status: Feedback Appreciated -category: ধারণা +tags: ["ট্যাগ 1", "ট্যাগ 2", ""] --- ``` ### সংজ্ঞা -#### তিনটি উপশিরোনাম +#### দুইটি উপশিরোনাম -**প্রযুক্তি** এবং **ধারণা** বিভাগের সংজ্ঞায় তিনটি উপশিরোনাম রয়েছে: +**প্রযুক্তি** এবং **ধারণা** বিভাগের সংজ্ঞায় একটি দ্রুত সারাংশ এবং দুইটি উপশিরোনাম রয়েছে: -- **এটা কি**: আমরা যে বিষয়ে কথা বলছি তার একটি সংক্ষিপ্ত এবং স্পষ্ট ধারণা প্রদান করুন। -- **এটা যেসব সমস্যাতে ফোকাস করে**: সমস্যাটির উপর ফোকাস করুন, সমাধানের দিকে নয় (যা পরবর্তী বিভাগে আসে)। আসলে, সংজ্ঞায়িত শব্দটি উল্লেখ করা এড়িয়ে চলুন। সমস্যাটি আমাদের সেই জিনিসটির প্রয়োজন কিসের উপর তাতে আলোকপাত করে । -- **এটা কিভাবে সাহায্য কর** : এখন, মেয়াদে ফিরে আসুন। এটি কিভাবে উপরে বর্ণিত সমস্যার সমাধান করে? +- (দ্রুত সারাংশ) আমরা যে বিষয়ে কথা বলছি তার একটি সংক্ষিপ্ত এবং স্পষ্ট ধারণা প্রদান করুন। +- **এটা যেসব সমস্যাতে ফোকাস করে**: সমস্যাটির উপর ফোকাস করুন, সমাধানের দিকে নয় (যা পরবর্তী বিভাগে আসে)। + সংজ্ঞায়িত শব্দটি উল্লেখ করা এড়িয়ে চলুন। সমস্যাটি আমাদের সেই জিনিসটির প্রয়োজন কিসের উপর তাতে আলোকপাত করে । +- **এটা কিভাবে সাহায্য কর** : এখন, শব্দে ফিরে আসুন। এটি কিভাবে উপরে বর্ণিত সমস্যার সমাধান করে? মনে রাখবেন **বৈশিষ্ট্য**-এর আলাদা বিভাগের প্রয়োজন নেই। একটি সংজ্ঞা যথেষ্ট হবে। -#### জিনিসগুলি সহজ রাখুন +পর্যালোচনা সহজ করতে অনুগ্রহ করে **অর্থবোধক লাইন বিরতি** (প্রতি লাইনে একটি বাক্য) ব্যবহার করুন। + +#### গুণমান ই প্রধান + +মার্জড হলে, আপনার জমা দেওয়া হবে সেই শব্দের জন্য অফিসিয়াল CNCF সংজ্ঞা (যতক্ষণ না অন্য কেউ এটিকে উন্নত করে)। +CNCF-এর উচ্চ মান পূরণ করে এমন একটি শব্দ তৈরি করতে তাড়াহুড়ো করা যাবে না—গুণমানের জন্য সময় এবং প্রচেষ্টা লাগে। + +**আপনার গবেষণা করুন**: এমনকি যদি আপনি আত্মবিশ্বাসী হন যে আপনি শব্দটি জানেন, যাচাই করুন আপনি এটি ঠিক পেয়েছেন। +আমরা প্রায়শই সংস্থাগুলোতে একটি নির্দিষ্ট উপায়ে শব্দগুলো ব্যবহার করি যা সম্পূর্ণ চিত্রটি প্রতিফলিত নাও করতে পারে। +গবেষণা করার সময়, বিশেষ করে যখন আপনি শব্দটির সাথে 100% পরিচিত নন, একাধিক রিসোর্স ব্যবহার করুন। +অনেক সংজ্ঞা একতরফা, বিশেষ করে যদি একজন বিক্রেতা দ্বারা প্রদান করা হয়। +শব্দকোষে অবশ্যই বিক্রেতা-নিরপেক্ষ, বিশ্বব্যাপী স্বীকৃত সংজ্ঞা থাকতে হবে। + +**চুরি করবেন না**: একই নিয়ম শব্দকোষের ক্ষেত্রে অন্য যেকোনো গুরুতর প্রকাশনার ক্ষেত্রে প্রযোজ্য। +অন্য লোকেদের কাজ কপি এবং পেস্ট করবেন না যদি না আপনি এটিকে উদ্ধৃত করেন এবং তাদের সাথে অবদান রাখেন। +আপনি যদি একটি সংজ্ঞার একটি নির্দিষ্ট অংশ পছন্দ করেন, আপনার নিজের শব্দে এটি ব্যাখ্যা করুন। + +**রেফারেন্স অথরিটেটিভ রিসোর্স**: যখন সম্ভব, প্রজেক্ট ডক্সের মতো অথরিটেটিভ রিসোর্সগুলোর সাথে লিঙ্ক করুন। +মনে রাখবেন যে আমরা বিক্রেতাদের দ্বারা তৈরি কনটেন্টের সাথে লিঙ্ক করতে পারি না। + +#### জিনিসগুলো সহজ রাখুন -শব্দকোষের লক্ষ্য **জটিল ধারণাগুলিকে সহজ শব্দে ব্যাখ্যা করা** — এটি একটি আশ্চর্যজনকভাবে কঠিন কাজ যা সম্ভবত একাধিক সংশোধন করতে পারে। আপনার সংজ্ঞা খসড়া করার সময় সর্বদা দর্শকদের কথা মাথায় রাখুন। শিল্পের শর্তাবলী এবং বাজওয়ার্ডগুলি ব্যবহার করা এড়িয়ে চলুন - আপনি সম্ভবত তাদের কাছে ফিরে যেতে পারবেন এবং স্বয়ংক্রিয়ভাবে সংশোধন করতে হবে। +শব্দকোষের লক্ষ্য **জটিল ধারণাগুলোকে সহজ শব্দে ব্যাখ্যা করা** — এটি একটি আশ্চর্যজনকভাবে কঠিন কাজ যা সম্ভবত একাধিক সংশোধন করতে পারে। +আপনার সংজ্ঞা খসড়া করার সময় সর্বদা দর্শকদের কথা মাথায় রাখুন। +শিল্পের শর্তাবলী এবং বাজওয়ার্ডগুলো ব্যবহার করা এড়িয়ে চলুন - আপনি সম্ভবত তাদের কাছে ফিরে যেতে পারবেন এবং স্বয়ংক্রিয়ভাবে সংশোধন করতে হবে। উপযুক্ত হলে, **বাস্তব-জগতের উদাহরণ** ব্যবহার করুন যা পাঠকদের (বিশেষ করে অ-প্রযুক্তিগত) আরও ভালোভাবে বুঝতে সাহায্য করে কখন এবং কেন আপনি যে ধারণাটি ব্যাখ্যা করছেন তা প্রাসঙ্গিক। আপনার সংজ্ঞায় ব্যবহৃত হলে, সর্বদা **বিদ্যমান শব্দকোষের শর্তাবলীর সাথে লিঙ্ক করুন** (শুধুমাত্র প্রথম উল্লেখ হাইপারলিঙ্ক করা উচিত)। -**উদাহরণ**: [পরিষেবা মেশ সংজ্ঞা](/service-mesh/) এর “এটি কী” বিভাগটি একবার দেখুন। এটি মাইক্রোসার্ভিস, পরিষেবা, নির্ভরযোগ্যতা এবং পর্যবেক্ষণযোগ্যতার সংজ্ঞাগুলির সাথে লিঙ্ক করে। উপরন্তু, এটি একটি মাইক্রোসার্ভিসেস পরিবেশে নেটওয়ার্ক চ্যালেঞ্জের তুলনা করে একটি বাস্তব-বিশ্বের উদাহরণ ব্যবহার করে (এমন কিছু যা অ-প্রযুক্তিগত লোকেরা সম্পর্কিত হতে পারে না) ওয়াইফাই সমস্যার (যা কেউ ল্যাপটপ ব্যবহার করে বুঝতে পারে)সাথে । যেখানে সম্ভব, সেই সংযোগটি তৈরি করার চেষ্টা করুন। +**উদাহরণ**: [পরিষেবা মেশ সংজ্ঞা](/bn/service-mesh/) এর দ্রুত সারাংশ বিভাগটি একবার দেখুন। +এটি মাইক্রোসার্ভিস, পরিষেবা, নির্ভরযোগ্যতা এবং পর্যবেক্ষণযোগ্যতার সংজ্ঞাগুলোর সাথে লিঙ্ক করে। +উপরন্তু, এটি একটি মাইক্রোসার্ভিসেস পরিবেশে নেটওয়ার্ক চ্যালেঞ্জের তুলনা করে একটি বাস্তব-বিশ্বের উদাহরণ ব্যবহার করে (এমন কিছু যা অ-প্রযুক্তিগত লোকেরা সম্পর্কিত হতে পারে না) +ওয়াইফাই সমস্যার (যা কেউ ল্যাপটপ ব্যবহার করে বুঝতে পারে) সাথে । +যেখানে সম্ভব, সেই সংযোগটি তৈরি করার চেষ্টা করুন। #### একটি Google বা Word ডক দিয়ে শুরু করুন -আমরা একটি Google বা Word ডক দিয়ে শুরু করার পরামর্শ দিই, এটিকে কয়েক দিনের জন্য বসতে দিন এবং আবার দেখার জন্য। এটি আপনাকে বাক্যাংশ বা অভিব্যক্তিগুলি ধরতে দেয় যা একটি সহজ এবং আরও অ্যাক্সেসযোগ্য উপায়ে শব্দ করা যেতে পারে। এছাড়াও, PR জমা দেওয়ার আগে একটি বানান পরীক্ষা চালানো নিশ্চিত করুন। +আমরা একটি Google বা Word ডক দিয়ে শুরু করার পরামর্শ দিই, এটিকে কয়েক দিনের জন্য থাকতে দিন এবং বার বার দেখার জন্য। +এটি আপনাকে বাক্যাংশ বা অভিব্যক্তিগুলি ধরতে দেয় যা একটি সহজ এবং আরও অ্যাক্সেসযোগ্য উপায়ে শব্দ করা যেতে পারে। +এছাড়াও, PR জমা দেওয়ার আগে একটি বানান পরীক্ষা চালানো নিশ্চিত করুন। -একটি মেয়াদে কাজ করার সময় অন্য কেউ PR জমা না দেয় তা নিশ্চিত করতে, একটি সমস্যা দাবি করা (বা একটি তৈরি করুন) এবং এটি আপনাকে বরাদ্দ করা হয়েছে তা নিশ্চিত করুন। [কীভাবে অবদান রাখতে হয়](/bn/contribute/) ডক-এ আরও কিছু আছে যা দেখতে পারেন । +একটি শব্দে কাজ করার সময় অন্য কেউ PR জমা না দেয় তা নিশ্চিত করতে, একটি issue দাবি করা (বা একটি তৈরি করুন) এবং এটি আপনাকে বরাদ্দ করা হয়েছে তা নিশ্চিত করুন। +[কীভাবে অবদান রাখতে হয়](/bn/contribute/) ডক-এ আরও কিছু আছে যা দেখতে পারেন । -শুরু করার আগে, অনুগ্রহ করে কিছু প্রকাশিত শব্দকোষের পদ পড়ুন যাতে বিশদ এবং অসুবিধার মাত্রা এবং উদাহরণগুলি বোঝা যায়। +শুরু করার আগে, অনুগ্রহ করে কিছু প্রকাশিত শব্দকোষের পদ পড়ুন +যাতে ডিটেল এবং অসুবিধার মাত্রা এবং উদাহরণগুলো বোঝা যায়। ## পর্যালোচনা প্রক্রিয়া: কি আশা করা যায় -দয়া করে মনে রাখবেন যে আমরা বর্তমানে শুধুমাত্র তিনজন রক্ষণাবেক্ষণকারী তাদের অবসর সময়ে এটি করে। মাঝে মাঝে, আমরা দ্রুত শর্তাবলী পর্যালোচনা করতে সক্ষম হব; অন্যান্য অনুষ্ঠানে, এটি কিছুটা সময় নিতে পারে — আমরা আপনার ধৈর্যের প্রশংসা করি। আপনার যদি কোনো প্রশ্ন থাকে, তাহলে অনুগ্রহ করে #glossary Slack চ্যানেলে আমাদের সাথে যোগাযোগ করুন (কোথায় এবং কীভাবে এটি খুঁজে পাবেন, অনুগ্রহ করে আমাদের [কীভাবে অবদান রাখবেন](/bn/contribute/) ডকটি দেখুন । +দয়া করে মনে রাখবেন যে আমরা বর্তমানে শুধুমাত্র কয়েকজন রক্ষণাবেক্ষণকারী তাদের অবসর সময়ে এটি করে। +মাঝে মাঝে, আমরা দ্রুত শর্তাবলী পর্যালোচনা করতে সক্ষম হব; অন্যান্য অনুষ্ঠানে, এটি কিছুটা সময় নিতে পারে — আমরা আপনার ধৈর্যের আশা করি। +আপনার যদি কোনো প্রশ্ন থাকে, তাহলে অনুগ্রহ করে #glossary Slack চ্যানেলে আমাদের সাথে যোগাযোগ করুন +(কোথায় এবং কীভাবে এটি খুঁজে পাবেন, অনুগ্রহ করে আমাদের [কীভাবে অবদান রাখবেন](/bn/contribute/) ডকটি দেখুন । -আমাদের লক্ষ্য হল শব্দকোষ সর্বোত্তম সম্ভাব্য সম্পদ। একবার আপনি একটি PR জমা দিলে, আমরা এক বা একাধিক সংশোধনের জন্য জিজ্ঞাসা করতে পারি। হতাশ হবেন না — এটি অনেক PR -এর ক্ষেত্রে। সেই সব নিশ্চিত করবে যে আপনার অবদান একটি সত্যিকারের দরকারী সংজ্ঞা হয়ে উঠবে যা সারা বিশ্বের পাঠকদের দ্বারা পঠিত হবে। +আমাদের লক্ষ্য হলো শব্দকোষ সর্বোত্তম সম্ভাব্য রিসোর্স হোক । +একবার আপনি একটি PR জমা দিলে, আমরা এক বা একাধিক সংশোধনের জন্য জিজ্ঞাসা করতে পারি। +হতাশ হবেন না — এটি অনেক PR -এর ক্ষেত্রে। +সেই সব নিশ্চিত করবে যে আপনার অবদান একটি সত্যিকারের দরকারী সংজ্ঞা হয়ে উঠবে যা সারা বিশ্বের পাঠকদের দ্বারা পঠিত হবে। diff --git a/content/bn/tightly-coupled-architectures.md b/content/bn/tightly-coupled-architectures.md index 40cfcb33ba..3b77c4b6be 100644 --- a/content/bn/tightly-coupled-architectures.md +++ b/content/bn/tightly-coupled-architectures.md @@ -1,8 +1,8 @@ --- title: শক্তভাবে সংযোজিত স্থাপত্য (Tightly Coupled Architectures) status: Completed -category: সম্পত্তি -tags: ["fundamental", "architecture", "property"] +category: বৈশিষ্ট্য +tags: ["মৌলিক", "স্থাপত্য", "বৈশিষ্ট্য"] --- শক্তভাবে সংযোজিত স্থাপত্য হল সেই ধরনের একটি স্থাপত্য শৈলী যেখানে বেশ কয়েকটি অ্যাপ্লিকেশন উপাদান পরস্পর নির্ভরশীল diff --git a/content/bn/transport-layer-security.md b/content/bn/transport-layer-security.md index e67afff8a3..3aae39870a 100644 --- a/content/bn/transport-layer-security.md +++ b/content/bn/transport-layer-security.md @@ -1,12 +1,10 @@ --- title: ট্রান্সপোর্ট লেয়ার সিকিউরিটি (Transport Layer Security ) status: Completed -category: সম্পত্তি -tags: ["security", "networking", ""] +category: ধারণা +tags: ["নিরাপত্তা", "নেটওয়ার্কিং", ""] --- -## এটা কি - ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) হল একটি প্রোটোকল যা একটি নেটওয়ার্কের মাধ্যমে যোগাযোগের বর্ধিত নিরাপত্তা প্রদানের জন্য ডিজাইন করা হয়েছে। এটি ইন্টারনেটের মাধ্যমে পাঠানো ডেটার নিরাপদ ডেলিভারি নিশ্চিত করে, সম্ভাব্য পর্যবেক্ষণ এবং/অথবা ডেটার পরিবর্তন এড়ানো। diff --git a/content/bn/version-control.md b/content/bn/version-control.md index 7c4e690f49..65abee9f65 100644 --- a/content/bn/version-control.md +++ b/content/bn/version-control.md @@ -3,11 +3,9 @@ title: সংস্করণ নিয়ন্ত্রণ (Version control) status: Deprecated category: প্রযুক্তি draft: true -tags: ["methodology", "", ""] +tags: ["পদ্ধতি", "", ""] --- -## এটা কি - উত্স নিয়ন্ত্রণ (বা সংস্করণ নিয়ন্ত্রণ) হল একটি নথিতে পরিবর্তনগুলি ট্র্যাকিং এবং পরিচালনা করার অনুশীলন। এটি এমন একটি সিস্টেম যা সময়ের সাথে সাথে একটি ফাইল বা ফাইলের সেটে পরিবর্তন রেকর্ড করে যাতে আপনি পরে নির্দিষ্ট সংস্করণগুলি স্মরণ করতে পারেন। diff --git a/content/bn/vertical-scaling.md b/content/bn/vertical-scaling.md index 9e1ed6103b..ed1139bf4d 100644 --- a/content/bn/vertical-scaling.md +++ b/content/bn/vertical-scaling.md @@ -2,11 +2,9 @@ title: উল্লম্ব স্কেলিং (Vertical Scaling) status: Completed category: ধারণা -tags: ["infrastructure", "", ""] +tags: ["অবকাঠামো", "", ""] --- -## এটা কি - উল্লম্ব স্কেলিং, যা "উপর এবং নিচে স্কেলিং" নামেও পরিচিত, একটি কৌশল যেখানে কাজের চাপ বাড়ার সাথে সাথে পৃথক [নোড](/bn/nodes/) এ CPU এবং মেমরি যোগ করার মাধ্যমে একটি সিস্টেমের ক্ষমতা বৃদ্ধি করা হয়। ধরা যাক, আপনার কাছে 4GB RAM এর একটি কম্পিউটার আছে এবং এর ক্ষমতা 16GB RAM-এ বাড়াতে চান, diff --git a/content/bn/virtual-machine.md b/content/bn/virtual-machine.md index 7e51bcf201..ab6be99664 100644 --- a/content/bn/virtual-machine.md +++ b/content/bn/virtual-machine.md @@ -1,12 +1,10 @@ --- title: ভার্চুয়াল মেশিন (Virtual Machine) status: Completed -category: প্রযুক্তিবিদ্যা -tags: ["fundamental", "infrastructure", ""] +category: প্রযুক্তি +tags: ["মৌলিক", "অবকাঠামো", ""] --- -## এটা কি - ভার্চুয়াল মেশিন (Virtual Machine) হল একটি কম্পিউটার যার অপারেটিং সিস্টেম একটি নির্দিষ্ট হার্ডওয়্যারের সাথে আবদ্ধ নয়। একটি ফিজিক্যাল কম্পিউটারে, একাধিক ভার্চুয়াল কম্পিউটার বানাতে ভার্চুয়াল মেশিনগুলি ভার্চুয়ালাইজেশনের (Virtualization) উপর নির্ভরশীল। এই বিচ্ছেদটি সংস্থা এবং পরিকাঠামো প্রদানকারীদের অন্তর্নিহিত হার্ডওয়্যারকে প্রভাবিত না করে সহজেই ভার্চুয়াল মেশিন তৈরি এবং ধ্বংস করতে দেয়। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে diff --git a/content/bn/virtualization.md b/content/bn/virtualization.md index 523426e133..aef0c8b98a 100644 --- a/content/bn/virtualization.md +++ b/content/bn/virtualization.md @@ -2,30 +2,30 @@ title: ভার্চুয়ালাইজেশন (Virtualization) status: completed category: প্রযুক্তি -tags: ["fundamental", "infrastructure", "methodology"] +tags: ["মৌলিক", "অবকাঠামো", "পদ্ধতি"] --- -## এটা কি ভার্চুয়ালাইজেশন, ক্লাউড নেটিভ কম্পিউটিং প্রসঙ্গে, -একটি শারীরিক কম্পিউটার নেওয়ার প্রক্রিয়াকে বোঝায়, কখনও কখনও একটি সার্ভার বলা হয়, +একটি ফিজিক্যাল কম্পিউটার নেওয়ার প্রক্রিয়াকে বোঝায়, কখনও কখনও একটি সার্ভার বলা হয়, এবং এটি একাধিক বিচ্ছিন্ন অপারেটিং সিস্টেম চালানোর অনুমতি দেয়। সেই বিচ্ছিন্ন অপারেটিং সিস্টেম এবং তাদের ডেডিকেটেড কম্পিউট রিসোর্স (সিপিইউ, মেমরি এবং নেটওয়ার্ক) -ভার্চুয়াল মেশিন বা ভিএম হিসাবে উল্লেখ করা হয়। +ভার্চুয়াল মেশিন বা ভিএম (VM) হিসাবে উল্লেখ করা হয়। যখন আমরা একটি [ভার্চুয়াল মেশিন](/bn/virtual-machine/) সম্পর্কে কথা বলি, তখন আমরা একটি সফ্টওয়্যার-সংজ্ঞায়িত কম্পিউটারের কথা বলছি। -এমন কিছু যা দেখতে এবং একটি বাস্তব কম্পিউটারের মতো কাজ করে কিন্তু অন্যান্য ভার্চুয়াল মেশিনের সাথে হার্ডওয়্যার ভাগ করছে৷ +এমন কিছু দেখতে যা একটি বাস্তব কম্পিউটারের মতো কাজ করে, কিন্তু অন্যান্য ভার্চুয়াল মেশিনের সাথে হার্ডওয়্যার ভাগ করে৷ [ক্লাউড কম্পিউটিং](/bn/cloud-computing/) প্রাথমিকভাবে ভার্চুয়ালাইজেশন প্রযুক্তি দ্বারা চালিত। উদাহরণ হিসেবে, আপনি AWS থেকে একটি "কম্পিউটার" লিজ দিতে পারেন - সেই কম্পিউটারটি আসলে একটি VM। ## এটা যেসব সমস্যাতে দৃষ্টিপাত করে -ভার্চুয়ালাইজেশন শারীরিক হার্ডওয়্যার ব্যবহারের উন্নতি সহ বেশ কয়েকটি সমস্যার সমাধান করে -একই ফিজিক্যাল মেশিনে আরও অ্যাপ চালানোর অনুমতি দিয়ে -নিরাপত্তার জন্য একে অপরের থেকে বিচ্ছিন্ন থাকা অবস্থায়। +ভার্চুয়ালাইজেশন নিরাপত্তার জন্য একে অপরের থেকে বিচ্ছিন্ন থেকে একই অবস্থায় ফিজিক্যাল মেশিনে +আরও অ্যাপ চালানোর অনুমতি দেয় এবং +ফিজিক্যাল হার্ডওয়্যার ব্যবহারের উন্নতি সহ বেশ কয়েকটি সমস্যার সমাধান করে। -## এটা কিভাবে সাহায্য করে -ভার্চুয়াল মেশিনে চলমান অ্যাপগুলির কোন সচেতনতা নেই যে তারা একটি শারীরিক কম্পিউটার ভাগ করছে। -ভার্চুয়ালাইজেশন ডেটাসেন্টার ব্যবহারকারীদের মিনিটের মধ্যে একটি নতুন "কম্পিউটার" (ওরফে একটি ভিএম) স্পিন করতে দেয় -একটি ডেটাসেন্টারে একটি নতুন কম্পিউটার যোগ করার শারীরিক সীমাবদ্ধতার বিষয়ে চিন্তা না করে। +## এটা কিভাবে সাহায্য করে + +ভার্চুয়াল মেশিনে চলমান অ্যাপগুলির কোন সচেতনতা নেই, যে তারা একটি ফিজিক্যাল কম্পিউটার ভাগ করছে। +ভার্চুয়ালাইজেশন ডেটাসেন্টার ব্যবহারকারীদের একটি নতুন "কম্পিউটার" (ওরফে একটি VM) মিনিটের মধ্যে একটি ডেটাসেন্টারে +একটি নতুন কম্পিউটার যোগ করার ফিজিক্যাল সীমাবদ্ধতার বিষয়ে চিন্তা না করে স্পিন আপ করতে দেয়৷ ভিএমগুলি ব্যবহারকারীদের একটি নতুন ভার্চুয়াল কম্পিউটার পেতে সময় বাড়াতে সক্ষম করে। diff --git a/content/bn/zero-trust-architecture.md b/content/bn/zero-trust-architecture.md index 7599e4fc8d..764c0708ca 100644 --- a/content/bn/zero-trust-architecture.md +++ b/content/bn/zero-trust-architecture.md @@ -1,11 +1,10 @@ --- title: জিরো ট্রাস্ট আর্কিটেকচার (Zero Trust Architecture) status: Completed -category: নিরাপত্তা -tags: ["security", "", ""] +category: ধারণা +tags: ["নিরাপত্তা", "", ""] --- -## এটি কি জিরো ট্রাস্ট আর্কিটেকচার আইটি সিস্টেমের ডিজাইন এবং বাস্তবায়নের জন্য একটি নির্ধারিত পন্থা যেখানে 'ট্রাস্ট'(বিশ্বাস) সম্পূর্ণরূপে উপেক্ষা করা হয়। এই পন্থার মূল নীতি হল "বিশ্বাস নয়,সর্বদা যাচাই করা",ডিভাইস বা সিস্টেম,সিস্টেমের অন্যান্য অংশের সাথে যোগাযোগ করার সময় সর্বদা নিজেকে প্রথমে যাচাই করে। বর্তমানে অনেক নেটওয়ার্কে,কর্পোরেট নেটওয়ার্কের মধ্যে থাকা সিস্টেম এবং ডিভাইসগুলি অবাধে একটি অন্যটির সাথে যোগাযোগ করতে পারে কারণ সিস্টেম এবং ডিভাইসগুলি কর্পোরেট নেটওয়ার্ক পরিধির বিশ্বস্ত সীমার মধ্যে আবদ্ধ থাকে। অন্যদিকে জিরো ট্রাস্ট আর্কিটেকচার বিপরীত পদ্ধতি অবলম্বন করে যেখানে নেটওয়ার্ক পরিধির মধ্যেই সিস্টেমের অংশগুলি কোন যোগাযোগ স্থাপনের জন্য প্রথমে যাচাইকরণ পর্যায় অতিক্রম করে। diff --git a/i18n/bn.toml b/i18n/bn.toml index 225cc1fb3a..49e637d803 100644 --- a/i18n/bn.toml +++ b/i18n/bn.toml @@ -20,21 +20,21 @@ other = "ভিতরে" # Phrases for tags [ui_see_all_tags] -other = "See all tags" +other = "সব ট্যাগ দেখুন" [ui_tag] -other = "Tag" +other = "ট্যাগ" [ui_tags] -other = "Tags" +other = "ট্যাগ" [ui_search_by_tags] -other = "Browse by Tags" +other = "ট্যাগ দ্বারা ব্রাউজ করুন" [ui_tags_intro] -other = "We've categorized the glossary terms. Use the filters to browse terms by tag." +other = "আমরা শব্দকোষ পদগুলোকে শ্রেণীবদ্ধ করেছি । ট্যাগ দ্বারা পদগুলো ব্রাউজ করতে ফিল্টার ব্যবহার করুন ।" [ui_or_search_by_tags] -other = "...or browse by tag" +other = "...অথবা ট্যাগ দ্বারা ব্রাউজ করুন" [ui_select_all] -other = "Select All" +other = "সব গুলো নির্বাচিত করুন" [ui_deselect_all] -other = "Deselect All" +other = "সব গুলো অনির্বাচিত কর" # Footer text [footer_all_rights_reserved] From 636d14a85da52e1047fcacf78805b1e5adb07dd4 Mon Sep 17 00:00:00 2001 From: Noah Ispas Date: Mon, 26 Feb 2024 09:05:17 +0000 Subject: [PATCH 049/130] Update content/en/cloud-computing.md Signed-off-by: Noah Ispas --- content/en/cloud-computing.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index f2dde88082..fbe9b3f9b2 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,7 +5,10 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- -Cloud computing offers CPU power, storage, and network capabilities over the internet, enabling scalable and flexible access to resources across global data centers. It spans private clouds, dedicated to single organizations for security and control, and public clouds, open for widespread use, optimizing cost and scalability. +Cloud computing offers CPU power, storage, and network capabilities over the internet, +enabling scalable and flexible access to resources across global data centers. +It spans private clouds, dedicated to single organizations for security and control, +and public clouds, open for widespread use, optimizing cost and scalability. ## Problem it addresses From 77391a1c9a27d51a9594e1a7e0768520d54c0976 Mon Sep 17 00:00:00 2001 From: Noah Ispas Date: Mon, 26 Feb 2024 09:05:26 +0000 Subject: [PATCH 050/130] Update content/en/cloud-computing.md Signed-off-by: Noah Ispas --- content/en/cloud-computing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index fbe9b3f9b2..1c6b9c546a 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -12,7 +12,7 @@ and public clouds, open for widespread use, optimizing cost and scalability. ## Problem it addresses -Traditionally, organizations needing more computing capacity had to choose between costly investments in new server facilities or upgrades to existing infrastructure—a slow and resource-heavy process. +Traditionally, organizations needing more computing capacity had to choose between costly investments in new server facilities or upgrades to existing infrastructure, a slow and resource-heavy process. ## How it helps From e1419a71db0810d63a1b63e48056762a4f99b7bf Mon Sep 17 00:00:00 2001 From: Noah Ispas Date: Mon, 26 Feb 2024 09:05:34 +0000 Subject: [PATCH 051/130] Update content/en/cloud-computing.md Signed-off-by: Noah Ispas --- content/en/cloud-computing.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 1c6b9c546a..f92f709649 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -16,7 +16,8 @@ Traditionally, organizations needing more computing capacity had to choose betwe ## How it helps -Organizations can use cloud computing to rent computing resources on demand without the burden of managing physical infrastructure. This strategy has two main advantages: +Organizations can use cloud computing to rent computing resources on demand without the burden of managing physical infrastructure. +This strategy has two main advantages: - It removes the delays and expenses of establishing new infrastructure so organizations can concentrate on their core business. - Organizations can [scale](https://github.com/ronitblenz/glossary/blob/cloud_computing/content/en/scalability.md) their resources up or down based on demand, aligning infrastructure with business needs. Thus, cloud computing provides an efficient way for organizations to access necessary infrastructure flexibly and economically without excess commitment. From 298f9afe59d986720d43bd7a3280e09dc434554d Mon Sep 17 00:00:00 2001 From: Phil Huang Date: Mon, 26 Feb 2024 20:18:47 +0800 Subject: [PATCH 052/130] Replace @pichuang with @tico88612 as zh-tw branch approver Signed-off-by: Phil Huang --- CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index c53fd2db1e..c76477236b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -75,5 +75,5 @@ /i18n/zh-cn.toml @hanyuancheung @Jacob953 @Rocksnake @Submarinee # Approvers for Traditional Chinese contents -/content/zh-tw/ @pichuang @ydFu @hwchiu @johnlinp -/i18n/zh-tw.toml @pichuang @ydFu @hwchiu @johnlinp +/content/zh-tw/ @tico88612 @ydFu @hwchiu @johnlinp +/i18n/zh-tw.toml @tico88612 @ydFu @hwchiu @johnlinp From d3efe4f1dc83041f3cff44fa40afb02b278d7cdc Mon Sep 17 00:00:00 2001 From: Garima Negi Date: Tue, 27 Feb 2024 15:36:20 -0800 Subject: [PATCH 053/130] [EN] update Tightly Coupled Architecture (#2658) Signed-off-by: Garima Negi --- ...coupled-architectures.md => tightly-coupled-architecture.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename content/en/{tightly-coupled-architectures.md => tightly-coupled-architecture.md} (96%) diff --git a/content/en/tightly-coupled-architectures.md b/content/en/tightly-coupled-architecture.md similarity index 96% rename from content/en/tightly-coupled-architectures.md rename to content/en/tightly-coupled-architecture.md index d639b07a8a..22d9cbf7bf 100644 --- a/content/en/tightly-coupled-architectures.md +++ b/content/en/tightly-coupled-architecture.md @@ -1,5 +1,5 @@ --- -title: Tightly Coupled Architectures +title: Tightly Coupled Architecture status: Completed category: Property tags: ["fundamental", "architecture", "property"] From 739132a7ac2265774381569e33bfae49f8494fa4 Mon Sep 17 00:00:00 2001 From: Dmitry Shurupov Date: Mon, 11 Dec 2023 16:05:55 +0700 Subject: [PATCH 054/130] Reorder languages and update related docs Signed-off-by: Dmitry Shurupov --- LOCALIZATION.md | 23 ++++++---- config.toml | 120 ++++++++++++++++++++++++------------------------ 2 files changed, 74 insertions(+), 69 deletions(-) diff --git a/LOCALIZATION.md b/LOCALIZATION.md index 07917a2af4..d19816a145 100644 --- a/LOCALIZATION.md +++ b/LOCALIZATION.md @@ -57,26 +57,31 @@ Open a PR with the localization initiation following this example: https://githu To add a new language to the site, modify [config.toml](https://github.com/cncf/glossary/blob/main/config.toml#L54) (Note: localization teams should use their assigned development branch for this). -The `[languages]` block of `config.toml` is used to set the language. For instance, `[languages.en]` stands for English and `[languages.ko]` for Korean language configuration. Go to the `[languages]` block in `config.toml` and add a new block for your language-specific configuration. For instance, the Korean localization team added its `[languages.ko]` block after the `[languages.en]` block. +The `[languages]` block of `config.toml` is used to set the language. For instance, `[languages.en]` stands for English and `[languages.ko]` for Korean language configuration. Go to the `[languages]` block in `config.toml` and find a place for your new localization: + + - The English language always stays first. + - Other languages are sorted based on the alphabetized English translation of their names (see how currently existing localizations are ordered as an example). + - Each localization is written in its own language followed by the English translation in parentheses — e.g., `한국어 (Korean)`. + - The `weight` parameter in the config is used for sorting (`1` is for English, `2` is for the alphabetically first language, `3` is for the second one, and so on). + +For instance, you're adding a new block for the Korean localization. You calculated its weight as 8. Find the language block with `weight = 7` and add your new block afterwards: - Example of `New language block for /config.toml` ```diff [languages] - [languages.en] - title = "Cloud Native Glossary" - description = "The CNCF Cloud Native Glossary Project is intended to be used as a reference for common terms used when talking about cloud native applications." - languageName ="English" - # Weight used for sorting. - weight = 1 + ... + weight = 7 +[languages.ko] +title = "클라우드 네이티브(Cloud Native) 용어집" +description = "CNCF 클라우드 네이티브 용어집 프로젝트는 클라우드 네이티브 애플리케이션에 대한 대화를 나눌 때 공통의 용어를 참조하여 사용하도록 하는 목적을 가지고 있다." - +languageName ="한국어(Korean)" + +languageName = "한국어 (Korean)" +contentDir = "content/ko" - +weight = 2 + +weight = 8 ``` +Since the `weight` values should always be kept consistent, please **remember to increment the weights** of all the languages following your newly added localization. + #### 3-2. Adding a file for site strings `i18n/.toml` sets up language-specific site strings. diff --git a/config.toml b/config.toml index 9784b262cb..e37e0d679d 100644 --- a/config.toml +++ b/config.toml @@ -68,85 +68,85 @@ description = "The CNCF Cloud Native Glossary Project is intended to be used as #time_format_default = "02.01.2006" #time_format_blog = "02.01.2006" +[languages.bn] +contentDir = "content/bn" +languageName = "বাংলা (Bengali)" +title = "ক্লাউড নেটিভ শব্দকোষ" +weight = 2 +[languages.bn.params] +description = "CNCF ক্লাউড নেটিভ শব্দকোষ প্রকল্পটি ক্লাউড নেটিভ অ্যাপ্লিকেশন সম্পর্কে কথা বলার সময় ব্যবহৃত সাধারণ পদগুলির জন্য একটি রেফারেন্স হিসাবে ব্যবহার করার উদ্দেশ্যে।" + +[languages.fr] +contentDir = "content/fr" +languageName = "Français (French)" +title = "Glossaire Cloud Native" +weight = 3 +[languages.fr.params] +description = "Le projet de Glossaire CNCF Cloud Native a pour objectif de référencer les termes courants utilisés dans les différentes applications Cloud Natives." + +[languages.de] +contentDir = "content/de" +languageName = "Deutsch (German)" +title = "Cloud Native Glossar" +weight = 4 +[languages.de.params] +description = "Das CNCF Cloud Native Glossar soll als Referenz für gängige Begriffe dienen, die im Zusammenhang mit Cloud Native Anwendungen verwendet werden." + [languages.hi] contentDir = "content/hi" languageName = "हिन्दी (Hindi)" title = "क्लाउड नेटिव शब्दावली" -weight = 2 +weight = 5 [languages.hi.params] description = "CNCF क्लाउड नेटिव शब्दावली परियोजना का उद्देश्य क्लाउड नेटिव एप्लिकेशन के बारे में बात करते समय प्रयोग किए जाने वाले सामान्य शब्दों के संदर्भ के रूप में उपयोग किया जाना है।" -[languages.pt-br] -contentDir = "content/pt-br" -languageName = "Português" -title = "Glossário Cloud Native" -weight = 3 -[languages.pt-br.params] -description = "O Projeto CNCF Glossário Cloud Native se destina a ser usado como uma referência para termos comuns usados ao falar sobre aplicações nativas de nuvem." - [languages.it] contentDir = "content/it" -languageName = "Italiano" +languageName = "Italiano (Italian)" title = "Glossario Cloud Native" -weight = 4 +weight = 6 [languages.it.params] description = "Il progetto del Glossario CNCF Cloud Native è pensato per essere un riferimento per i termini comuni, usati nell'ambito delle applicazioni cloud native." +[languages.ja] +contentDir = "content/ja" +languageName = "日本語 (Japanese)" +title = "クラウドネイティブ用語集" +weight = 7 +[languages.ja.params] +description = "CNCF クラウドネイティブ用語集プロジェクトは、クラウドネイティブアプリケーションについて話すときに使われる一般的な用語のリファレンスとして使用することを目的としています。" + [languages.ko] contentDir = "content/ko" languageName = "한국어 (Korean)" title = "클라우드 네이티브(Cloud Native) 용어집" -weight = 5 +weight = 8 [languages.ko.params] description = "CNCF 클라우드 네이티브 용어집 프로젝트는 클라우드 네이티브 애플리케이션을 주제로 대화를 나눌 때 참조할 수 있는 공통의 용어 제공을 목표로 한다." -[languages.es] -contentDir = "content/es" -languageName = "Español (Spanish)" -title = "Cloud Native Glosario" -weight = 6 -[languages.es.params] -description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como una referencia para los terminos comunes usados cuando se habla acerca de las aplicaciones nativas para la nube." +[languages.pt-br] +contentDir = "content/pt-br" +languageName = "Português (Portuguese)" +title = "Glossário Cloud Native" +weight = 9 +[languages.pt-br.params] +description = "O Projeto CNCF Glossário Cloud Native se destina a ser usado como uma referência para termos comuns usados ao falar sobre aplicações nativas de nuvem." [languages.zh-cn] contentDir = "content/zh-cn" languageName = "简体中文 (Simplified Chinese)" title = "Cloud Native(云原生) Glossary" -weight = 7 +weight = 10 [languages.zh-cn.params] description = "CNCF 云原生 Glossary 项目旨在用作讨论云原生应用程序时常用术语的参考" -[languages.bn] -contentDir = "content/bn" -languageName = "বাংলা (Bengali)" -title = "ক্লাউড নেটিভ শব্দকোষ" -weight = 8 -[languages.bn.params] -description = "CNCF ক্লাউড নেটিভ শব্দকোষ প্রকল্পটি ক্লাউড নেটিভ অ্যাপ্লিকেশন সম্পর্কে কথা বলার সময় ব্যবহৃত সাধারণ পদগুলির জন্য একটি রেফারেন্স হিসাবে ব্যবহার করার উদ্দেশ্যে।" - -[languages.de] -contentDir = "content/de" -languageName = "Deutsch" -title = "Cloud Native Glossar" -weight = 9 -[languages.de.params] -description = "Das CNCF Cloud Native Glossar soll als Referenz für gängige Begriffe dienen, die im Zusammenhang mit Cloud Native Anwendungen verwendet werden." - -[languages.ur] -contentDir = "content/ur" -languageName = "اردو (Urdu)" -title = "کلاؤڈ کی مقامی لغت" -weight = 10 -[languages.ur.params] -description = "CNCF کلاؤڈ کی مقامی لغت کا مقصد کلاؤڈ مقامی ایپلی کیشنز کے بارے میں بات کرتے وقت استعمال ہونے والی عام اصطلاحات کے حوالے کے طور پر استعمال کرنا ہے۔" - -[languages.fr] -contentDir = "content/fr" -languageName = "Français (French)" -title = "Glossaire Cloud Native" +[languages.es] +contentDir = "content/es" +languageName = "Español (Spanish)" +title = "Cloud Native Glosario" weight = 11 -[languages.fr.params] -description = "Le projet de Glossaire CNCF Cloud Native a pour objectif de référencer les termes courants utilisés dans les différentes applications Cloud Natives." +[languages.es.params] +description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como una referencia para los terminos comunes usados cuando se habla acerca de las aplicaciones nativas para la nube." [languages.zh-tw] contentDir = "content/zh-tw" @@ -156,21 +156,21 @@ weight = 12 [languages.zh-tw.params] description = "CNCF 雲端原生 Glossary 專案旨在用作討論雲端原生應用程式時常用術語的參考" -[languages.ja] -contentDir = "content/ja" -languageName = "日本語 (Japanese)" -title = "クラウドネイティブ用語集" -weight = 13 -[languages.ja.params] -description = "CNCF クラウドネイティブ用語集プロジェクトは、クラウドネイティブアプリケーションについて話すときに使われる一般的な用語のリファレンスとして使用することを目的としています。" - [languages.tr] title = "Cloud Native Sözlüğü" -description = "CNCF Cloud Native Sözlüğü projesi, cloud native uygulamalardan bahsederken kullanılan yaygın terimler için bir referans olarak kullanılmak üzere tasarlanmıştır." languageName ="Türkçe (Turkish)" contentDir = "content/tr" -# Weight used for sorting. +weight = 13 +[languages.tr.params] +description = "CNCF Cloud Native Sözlüğü projesi, cloud native uygulamalardan bahsederken kullanılan yaygın terimler için bir referans olarak kullanılmak üzere tasarlanmıştır." + +[languages.ur] +contentDir = "content/ur" +languageName = "اردو (Urdu)" +title = "کلاؤڈ کی مقامی لغت" weight = 14 +[languages.ur.params] +description = "CNCF کلاؤڈ کی مقامی لغت کا مقصد کلاؤڈ مقامی ایپلی کیشنز کے بارے میں بات کرتے وقت استعمال ہونے والی عام اصطلاحات کے حوالے کے طور پر استعمال کرنا ہے۔" [markup] [markup.goldmark] From 769aea2450d0b6cd7c45b05d82a3a8c17b94f06b Mon Sep 17 00:00:00 2001 From: MItabashi Date: Thu, 29 Feb 2024 23:29:37 +0900 Subject: [PATCH 055/130] [ja] Localize eBPF for Japanese (#2935) Signed-off-by: Masahiro Itabashi --- content/ja/ebpf.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 content/ja/ebpf.md diff --git a/content/ja/ebpf.md b/content/ja/ebpf.md new file mode 100644 index 0000000000..15ee85a515 --- /dev/null +++ b/content/ja/ebpf.md @@ -0,0 +1,35 @@ +--- +title: eBPF +status: Completed +category: テクノロジー +tags: ["アーキテクチャ", "ネットワーキング", "セキュリティ"] +--- + +eBPF (extended Berkeley Packet Filter)は、Linuxカーネルのソースコードを修正したりカーネルモジュールを導入したりすることなく、サンドボックス化された小さなプログラムやスクリプトをLinuxシステムのカーネル空間で実行できる技術です。 + +Linuxシステムには2種類の空間があります。カーネル空間とユーザー空間です。 +カーネルはOSのコアにあたり、ハードウェアに無制限でアクセスできる唯一の部分です。 + +アプリケーションはユーザー空間で動作し、高位の権限が必要な場合にカーネルへ要求を送ります。 +ハードウェアへの直接アクセスなど、より柔軟性を必要とするアプリケーションについては、「Linuxカーネルモジュール」として知られるアプローチでカーネルを拡張することができます。 +このアプローチによりカーネルの標準機能は拡張され、アプリケーションは基礎となる要素へより深くアクセスできるようになります。 +しかしこのアプローチはセキュリティリスクももたらすため、eBPFが魅力的な代替となります。 + +## 解決すべき問題はなんですか +一般的に、アプリケーションはユーザー空間で動作し、アプリケーションがカーネルから(例えばハードウェアへのアクセスなどの)権限を要求するときは、いわゆる「システムコール」を介して要求します。 +多くの場合、このアプローチはうまく働きますが、低水準なシステムに対するより柔軟なアクセスを開発者が必要とする場合があります。 +可観測性、セキュリティやネットワーク機能はこういった場合の良い例です。 +この実現のため、Linuxカーネルモジュールを使ってカーネルのソースコードを修正することなくカーネルの基礎を拡張することができます。 +Linuxカーネルモジュールの使用には利点もありますが、セキュリティリスクももたらします。 +Linuxカーネルモジュールはカーネル空間の内部で動作するため、カーネルをクラッシュさせる可能性があり、カーネルがクラッシュするということは機器全体もクラッシュすることになります。 +加えて、カーネルモジュールは特権を持ち、システムリソースに直接アクセスします。 +もし適切に保護されていない場合、攻撃者は攻撃のためカーネルモジュールを悪用できてしまいます。 + +## どのように役に立つのでしょうか +eBPFはユーザー定義プログラムの実行環境として、Linuxカーネルモジュールよりも制御、制限された環境を提供します。 +eBPFプログラムはカーネル内のサンドボックス化された環境で動作することで、隔離を提供しリスクを低減します。 +もしeBPFプログラム中の脆弱性や欠陥が悪用されたとしても、一般的にその影響はサンドボックス化された環境に抑えられます。 +さらに、eBPFプログラムがカーネル内で動作を開始する前に、プログラムはいくつかの検証を通る必要があります。 +検証器は、範囲外メモリーアクセス、無限ループや承認されていないカーネル関数の使用といった潜在的な安全違反がないかeBPFプログラムを確認します。 +このようにして、プログラムが無限ループに入り、カーネルをクラッシュさせないことを確かにします。 +これらの安全制御によって、Linuxカーネル内でアプリケーションを動かすための選択肢としてeBPFはLinuxカーネルモジュールよりも安全なものになっています。 From dd7a7a9e30c1d7902ce9fa9e3207dee0f5716808 Mon Sep 17 00:00:00 2001 From: Sebastien Aucouturier Date: Fri, 1 Mar 2024 00:26:13 +0100 Subject: [PATCH 056/130] [EN] update term ingress (#2904) Signed-off-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Signed-off-by: Sebastien Aucouturier Signed-off-by: dependabot[bot] Co-authored-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- content/en/ingress.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/ingress.md b/content/en/ingress.md index a12ddda629..eaab61d4e5 100644 --- a/content/en/ingress.md +++ b/content/en/ingress.md @@ -15,14 +15,14 @@ The ingress controller is the web server technology that actually performs the r Cloud Native web applications consist of multiple services, and often, those [services](/service/) need to be accessible over the internet for users to visit using their browser. To make these services user accessible while using [Kubernetes](/kubernetes/) to run this application, we need to expose each application service to the outside world. The most straightforward way would be to use a Kubernetes Load Balancer Service. -Creating such a Kubernetes Load Balancer Service results in a new component on the underlying infrastructure. +But creating such a service results in a new component on the underlying infrastructure. This not only introduces new costs and management overhead, but each newly created Load Balancer has its own external IP address. This leads to a bad user experience, because as a user, we don’t want to browse different URLs to access an application. ## How it helps An Ingress resource allows you to configure how traffic is balanced and routed to an application’s services. -The ingress controller is a web server that allows for a single entry point through a URL (www.example-url.com) and does the actual routing and balancing based on different URL paths (www.example-url.com/path). +The ingress controller exposes a single entry point through a URL (www.example-url.com) and does the actual routing and balancing based on different URL paths (www.example-url.com/path). An Ingress controller is a component that runs within the cluster and interprets the rules defined in the Ingress resource. It is up to the cluster operators where the web app runs to choose a specific Ingress controller from a set of possible technologies like Nginx, Traefik, HAProxy, etc. So now, if an application consists of multiple services, the user can access it using a single URL. From 931f91f50096463c3f7467073ba27980b259aba8 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Sun, 3 Mar 2024 17:29:49 +0900 Subject: [PATCH 057/130] [ja] Localize Self Healing into Japanese (#2970) Signed-off-by: Junya Okabe --- content/ja/self-healing.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 content/ja/self-healing.md diff --git a/content/ja/self-healing.md b/content/ja/self-healing.md new file mode 100644 index 0000000000..0fce4281f6 --- /dev/null +++ b/content/ja/self-healing.md @@ -0,0 +1,10 @@ +--- +title: 自己修復 +status: Completed +category: プロパティ +tags: ["インフラストラクチャー", "プロパティ"] +--- + +自己修復システムは、人の手の介入なしに特定のタイプの障害から回復することができます。 +このシステムには「収束」あるいは「制御」するループがあり、システムの実際の状態を積極的に確認して、運用者が初めに望んだ状態と比較します。 +もし違いがある(例えば、望まれているよりも実行中のアプリケーションのインスタンスが少ない)場合、修正するための行動を行います(例えば、新しいインスタンスを起動します)。 From cdfdc7fc1f0f4604e54897f07a92794ff01b39d5 Mon Sep 17 00:00:00 2001 From: Sebastien Aucouturier Date: Fri, 8 Mar 2024 20:33:33 +0100 Subject: [PATCH 058/130] [EN] update term edge-computing (#2905) Signed-off-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Signed-off-by: Sebastien Aucouturier Signed-off-by: dependabot[bot] Co-authored-by: Asem Hamid <155321064+asem-hamid@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- content/en/edge-computing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/edge-computing.md b/content/en/edge-computing.md index a8c291df1e..a00bf0ebcb 100644 --- a/content/en/edge-computing.md +++ b/content/en/edge-computing.md @@ -4,7 +4,7 @@ status: Completed category: Technology --- -Edge computing is a [distributed system](/distributed-systems/) approach that shifts some storage and computing capacity from the primary data center to the data source. +Edge computing is a [distributed system](/distributed-systems/) approach that shifts some storage and computing capacity from the primary [data center](/data-center/) to the data source. The gathered data is computed locally (e.g., on a factory floor, in a store, or throughout a city) rather than sent to a centralized data center for processing and analysis. These local processing units or devices represent the system's edge, whereas the data center is its center. The output computed at the edge is then sent back to the primary data center for further processing. From a566e1203331467ad65b66d718351d235c5db433 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:43:03 +0900 Subject: [PATCH 059/130] [Update term] More interlinking for `containerisation` for Japanese (#2964) Signed-off-by: Junya Okabe --- content/ja/container-orchestration.md | 2 +- content/ja/containerization.md | 2 +- content/ja/continuous-delivery.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/ja/container-orchestration.md b/content/ja/container-orchestration.md index ee479c1f47..1f57583916 100644 --- a/content/ja/container-orchestration.md +++ b/content/ja/container-orchestration.md @@ -4,7 +4,7 @@ status: Completed category: コンセプト --- -[コンテナ](/ja/container/)オーケストレーションとは、流動的な環境において、コンテナ化されたアプリケーションのライフサイクルを管理し自動化することを指します。 +[コンテナ](/ja/container/)オーケストレーションとは、流動的な環境において、[コンテナ化](/ja/containerization)されたアプリケーションのライフサイクルを管理し自動化することを指します。 これはコンテナオーケストレータ(ほとんどの場合は[Kubernetes](/ja/kubernetes))を通じて実行され、デプロイメント、(自動)スケーリング、自動ヒーリング、モニタリングが可能になります。 オーケストレーションという言葉は比喩です。 オーケストレーションツールは、音楽指揮者のようにコンテナを指揮し、すべてのコンテナ(または音楽家)が適切に機能するようにします。 diff --git a/content/ja/containerization.md b/content/ja/containerization.md index 041cd24d5b..0433f35742 100644 --- a/content/ja/containerization.md +++ b/content/ja/containerization.md @@ -11,7 +11,7 @@ tags: ["アプリケーション", "", ""] ## 解決すべき問題は何ですか -コンテナが普及する前は、組織は仮想マシン(VM)に依存して、 +[コンテナ](/ja/container)が普及する前は、組織は仮想マシン(VM)に依存して、 単一の[ベアメタルマシン](/ja/bare-metal-machine/)上で複数のアプリケーションをオーケストレーションしていました。 VMはコンテナよりも非常に大きく、実行にはハイパーバイザーが必要です。 これらの大きなVMテンプレートのストレージ、バックアップ、転送により、VMテンプレートの作成もより遅くなります。 diff --git a/content/ja/continuous-delivery.md b/content/ja/continuous-delivery.md index bb57939168..f2599c8df6 100644 --- a/content/ja/continuous-delivery.md +++ b/content/ja/continuous-delivery.md @@ -10,7 +10,7 @@ tags: ["方法論", "アプリケーション", ""] (または継続的デプロイメントの場合、本番環境にデプロイされる)一連の実践を指します。 CDは、ソフトウェアがデプロイメント前に適切にテストされていることを保証する手順を重要視し、 必要と判断された場合に変更をロールバックする方法を提供します。 -継続的インテグレーション(CI)は継続的デリバリーに向けた最初のステップです +[継続的インテグレーション(CI)](/ja/continuous-integration/)は継続的デリバリーに向けた最初のステップです (つまり、テストやデプロイがされる前に、変更がうまく統合されなければなりません。) ## 解決すべき問題は何ですか From 38544915db4046993047f495e8b518bd3cf8efa1 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:53:21 +0900 Subject: [PATCH 060/130] [ja] Localize Edge Computing for Japanese (#2820) Signed-off-by: Junya Okabe Signed-off-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/edge-computing.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 content/ja/edge-computing.md diff --git a/content/ja/edge-computing.md b/content/ja/edge-computing.md new file mode 100644 index 0000000000..0474496b28 --- /dev/null +++ b/content/ja/edge-computing.md @@ -0,0 +1,28 @@ +--- +title: エッジコンピューティング +status: Completed +category: テクノロジー +--- + +エッジコンピューティングは、ストレージと計算能力の一部を主要なデータセンターからデータソースに移行する[分散システム](/ja/distributed-systems/)のアプローチです。 +収集されたデータは、中央のデータセンターで処理や分析されるのではなく、ローカルに(例えば工場内や店内、あるいは街の全域にわたって)計算されます。 +これらのローカル処理ユニットやデバイスがシステムのエッジを表し、データセンターがその中心です。 +エッジで計算された出力は、さらなる処理のために主要なデータセンターに送信されます。 +エッジコンピューティングの例には、リストバンド型ガジェットや交通量を分析するためのコンピューターが含まれます。 + +## 解決すべき問題はなんですか + +この10年間で、私たちはエッジデバイス(例えば携帯電話、スマートウォッチ、センサー)の増加を目の当たりにしてきました。 +場合によっては、リアルタイムデータ処理は単なる便利な機能ではなく、非常に重要です。 +自動運転を行う車を考えてみてください。 +車のセンサーが取得したデータが、適切な反応をするために車両へ送り返される前に、データセンターで処理される必要があると考えてみてください。 +このネットワークの遅延は致命的になり得ます。 +これは極端な例ですが、ほとんどのユーザーはすぐにフィードバックを提供できないスマートデバイスを使いたいとは思わないでしょう。 + +## どのように役に立つのでしょうか + +上述した通り、エッジデバイスが有用であるためには、ユーザーにほぼリアルタイムのフィードバックを提供する必要があります。 +そのために少なくとも一部の処理と分析をローカルで行います。 +これはデータセンターからデータが生成される場所、つまりエッジデバイスに一部のストレージと処理リソースを移動させることで達成されます。 +処理済みおよび未処理のデータはその後、さらなる処理とストレージのためにデータセンターに送信されます。 +要するに、効率と速度がエッジコンピューティングの主要な推進力です。 From 9b6812b323538f0f4ac29a4de0b4b6d63a311e0e Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:55:26 +0900 Subject: [PATCH 061/130] [ja] Localize Blue Green Deployment into Japanese (#2975) Signed-off-by: Junya Okabe --- content/ja/blue-green-deployment.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 content/ja/blue-green-deployment.md diff --git a/content/ja/blue-green-deployment.md b/content/ja/blue-green-deployment.md new file mode 100644 index 0000000000..6762a06c18 --- /dev/null +++ b/content/ja/blue-green-deployment.md @@ -0,0 +1,27 @@ +--- +title: ブルーグリーンデプロイメント +status: Completed +category: コンセプト +tags: ["方法論", "アプリケーション", ""] +--- + +ブルーグリーンデプロイメントは、最小限のダウンタイムで稼働中のコンピュータシステムを更新する戦略です。 +オペレーターは、"ブルー"と"グリーン"と呼ばれる2つの環境を維持します。 +一方は本番トラフィックを処理し(現在すべてのユーザーが使用しているバージョン)、もう一方が更新されます。 +アクティブではない(グリーン)環境のテストが終了すると、本番トラフィックは(しばしばロードバランサーを使用して)切り替えられます。 +ブルーグリーンデプロイメントは通常、多くのサービスを含む全環境を一度に切り替えることを意味します。 +紛らわしいことに、時々この用語はシステム内の個々の[サービス](/ja/service/)に関して使用されます。 +このあいまいさを避けるため、個々のコンポーネントを指す場合には"ゼロダウンタイムデプロイメント"という用語が好まれます。 + +## 解決すべき問題はなんですか + +ブルーグリーンデプロイメントは、後方互換性がないために"ロックステップ"で変更する必要があるソフトウェアを更新する際に最小限のダウンタイムを可能にします。 +例えば、ウェブサイトとデータベースから成るオンラインストアの更新を考えます。 +新しいバージョンのデータベースが古いバージョンのウェブサイトと互換性がなく、その逆も同様である場合、ブルーグリーンデプロイメントが適しています。 +このインスタンスでは、両方を同時に変更する必要があります。 +これが本番システムで行われた場合、顧客はダウンタイムに気付くでしょう。 + +## どのように役に立つのでしょうか + +ブルーグリーンデプロイメントは、最小限のダウンタイムで更新する必要がある、クラウドネイティブではないソフトウェアに適した戦略です。 +しかし、その使用は通常レガシーソフトウェアが再設計され、コンポーネントを個別に更新できるようにする必要があるという"臭い"を放ちます。 From 8f84e41a919b092fe37d0534e64306f3b3a69bd3 Mon Sep 17 00:00:00 2001 From: kujiraitakahiro Date: Mon, 18 Mar 2024 16:44:52 +0900 Subject: [PATCH 062/130] [ja] tralslate abstraction.md into japanese (#2727) Signed-off-by: kujiraitakahiro Co-authored-by: Kaito Ii Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/abstraction.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 content/ja/abstraction.md diff --git a/content/ja/abstraction.md b/content/ja/abstraction.md new file mode 100644 index 0000000000..a4c6dda837 --- /dev/null +++ b/content/ja/abstraction.md @@ -0,0 +1,17 @@ +--- +title: 抽象化 +status: Completed +category: プロパティ +tags: ["基礎", "", ""] +--- + +コンピューティングのコンテキストでは、抽象化とは[サービス](/ja/service/)の消費者(消費者はコンピュータープログラムまたは人間)から詳細を隠す表現であり、システムをより一般的にして理解しやすくします。 +良い例は、ラップトップのオペレーティングシステム(OS)です。 +コンピューターがどのように動作するかの詳細を、すべて抽象化します。 +CPUやメモリ、プログラムの扱い方について何も知る必要はなく、OSを操作するだけで細かい部分はOSが処理してくれます。 +これらすべての詳細は、OSの「カーテン」または抽象化の背後に隠されています。 + +通常、システムには複数の抽象化レイヤーがあります。 +これにより、開発が大幅に簡素化されます。 +プログラミングの際、開発者は特定の抽象化レイヤーと互換性のあるコンポーネントを構築するため、非常に異質な可能性があるすべての下層レイヤーの詳細について心配する必要はありません。 +抽象化レイヤーで動作する場合は、内部に何があるかに関係なく、システムでも動作します。 From 314e744ac43dc8ddfee7d25c07918e4a66ec89c2 Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Mon, 18 Mar 2024 19:40:00 +0700 Subject: [PATCH 063/130] Implement PageFind search Signed-off-by: Chris Abraham --- assets/js/search.js | 44 ++++++++++++++++++++++++++++ assets/scss/_search.scss | 11 +++++++ config.toml | 2 +- layouts/_default/content.html | 2 +- layouts/_default/search.html | 47 ++++++++++++++++++++++-------- layouts/partials/search-input.html | 31 -------------------- 6 files changed, 92 insertions(+), 45 deletions(-) create mode 100644 assets/js/search.js diff --git a/assets/js/search.js b/assets/js/search.js new file mode 100644 index 0000000000..47a71fa15a --- /dev/null +++ b/assets/js/search.js @@ -0,0 +1,44 @@ +/* +Copyright 2018 Google LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +(function($) { + + 'use strict'; + + var Search = { + init: function() { + $(document).ready(function() { + $(document).on('keypress', '.td-search-input', function(e) { + if (e.keyCode !== 13) { + return + } + + var query = $(this).val(); + var searchPage = "{{ "search/" | relLangURL }}?q=" + query; + console.log(searchPage); + document.location = searchPage; + + return false; + }); + + }); + }, + }; + + Search.init(); + + +}(jQuery)); diff --git a/assets/scss/_search.scss b/assets/scss/_search.scss index 11748925a9..50bb155ab8 100644 --- a/assets/scss/_search.scss +++ b/assets/scss/_search.scss @@ -100,3 +100,14 @@ } } + +.pagefind-ui__result-link { + color: $link-color !important; +} +.pagefind-ui__search-clear { + padding-left: 20px !important; + padding-right: 20px !important; +} +#search { + margin-top: 40px; +} diff --git a/config.toml b/config.toml index e37e0d679d..36c1b16c62 100644 --- a/config.toml +++ b/config.toml @@ -226,7 +226,7 @@ github_repo = "https://github.com/cncf/glossary" github_branch = "main" # Google Custom Search Engine ID. Remove or comment out to disable search. -gcs_engine_id = "eda0239a7d3fd0d90" +# gcs_engine_id = "eda0239a7d3fd0d90" # Enable Algolia DocSearch algolia_docsearch = false diff --git a/layouts/_default/content.html b/layouts/_default/content.html index 85cb48e4b6..c900d77e70 100644 --- a/layouts/_default/content.html +++ b/layouts/_default/content.html @@ -1,4 +1,4 @@ -
+

{{ .Title }}

{{ with .Params.description }}
{{ . | markdownify }}
{{ end }}
From 8175832dbfca7c62d3d925753c97d537e52b10a2 Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Tue, 26 Mar 2024 21:29:14 +0900 Subject: [PATCH 075/130] [ja] rename `tightly-coupled-architectures.md` to `tightly-coupled-architecture.md` (#3006) Signed-off-by: Junya Okabe --- content/ja/cloud-native-apps.md | 2 +- content/ja/devops.md | 2 +- content/ja/loosely-coupled-architecture.md | 2 +- content/ja/microservices-architecture.md | 2 +- ...coupled-architectures.md => tightly-coupled-architecture.md} | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename content/ja/{tightly-coupled-architectures.md => tightly-coupled-architecture.md} (100%) diff --git a/content/ja/cloud-native-apps.md b/content/ja/cloud-native-apps.md index 8aff40a688..51cdca28d6 100644 --- a/content/ja/cloud-native-apps.md +++ b/content/ja/cloud-native-apps.md @@ -9,7 +9,7 @@ tags: ["アプリケーション", "基礎", ""] ## 解決すべき問題はなんですか -従来、オンプレミス環境では、コンピューティングリソースをかなり特化した方法で提供していました。各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architectures/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャーの提供は手作業に大きく依存していました。その結果、開発者とそのアプリケーションは、特定のデータセンターに制約されることになりました。クラウド用に設計されていないアプリケーションは、クラウド環境の耐障害性やスケーリング機能を活用することができません。例えば、正しく起動するために手作業が必要なアプリケーションは、自動的にスケーリングすることができず、障害発生時に自動的に再起動することもできません。 +従来、オンプレミス環境では、コンピューティングリソースをかなり特化した方法で提供していました。各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architecture/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャーの提供は手作業に大きく依存していました。その結果、開発者とそのアプリケーションは、特定のデータセンターに制約されることになりました。クラウド用に設計されていないアプリケーションは、クラウド環境の耐障害性やスケーリング機能を活用することができません。例えば、正しく起動するために手作業が必要なアプリケーションは、自動的にスケーリングすることができず、障害発生時に自動的に再起動することもできません。 ## どのように役に立つのでしょうか diff --git a/content/ja/devops.md b/content/ja/devops.md index e497556f50..0ff4dcbdca 100644 --- a/content/ja/devops.md +++ b/content/ja/devops.md @@ -11,7 +11,7 @@ DevOpsは、(全体の機能ではなく)小さなコンポーネントに取り ## 解決すべき問題はなんですか -従来、[密結合な](/ja/tightly-coupled-architectures/)[モノリシックアプリ](/ja/monolithic-apps/)を持つ複雑な組織では、 +従来、[密結合な](/ja/tightly-coupled-architecture/)[モノリシックアプリ](/ja/monolithic-apps/)を持つ複雑な組織では、 通常、作業は複数のグループ間で断片化されていました。 これにより多くの引き渡しと長いリードタイムが発生しました。 コンポーネントやアップデートが準備できるたびに、それは次のチームのキューに置かれました。 diff --git a/content/ja/loosely-coupled-architecture.md b/content/ja/loosely-coupled-architecture.md index 8712a34dd1..7ee92bcd4a 100644 --- a/content/ja/loosely-coupled-architecture.md +++ b/content/ja/loosely-coupled-architecture.md @@ -6,7 +6,7 @@ tags: ["基礎", "アーキテクチャ", "プロパティ"] --- 疎結合アーキテクチャは、アプリケーションの構成要素それぞれが互いに独立して構築されるようなアーキテクチャです -(その逆は[密結合アーキテクチャ](/ja/tightly-coupled-architectures/)と呼ばれます)。 +(その逆は[密結合アーキテクチャ](/ja/tightly-coupled-architecture/)と呼ばれます)。 [マイクロサービス](/ja/microservice/)とよく呼ばれる個々の構成要素は、その他多くのサービスから利用できるような方法で、特定の機能を果たすよう構築されます。 疎結合アーキテクチャは密結合アーキテクチャより一般的に実装が遅くなりますが、特にアプリケーションがスケールする際に多くの利点があります。 diff --git a/content/ja/microservices-architecture.md b/content/ja/microservices-architecture.md index df6aee24fd..e4e938bd0f 100644 --- a/content/ja/microservices-architecture.md +++ b/content/ja/microservices-architecture.md @@ -13,7 +13,7 @@ tags: ["インフラストラクチャー", "基礎", ""] アプリケーションは、さまざまなパーツで構成され、それぞれが特定の能力を担当します。特定の機能に対する需要は、アプリケーションの他のパーツに対する需要と連動して必ず増減するわけではありません。Netflix の例に戻りましょう。例えば、大規模なマーケティングキャンペーンの後で、Netflix の契約者数が急増したが、その日の早い時間帯におけるストリーミングは概ね安定しているとします。 契約者数の急増は、平常時より多くのキャパシティを要求します。伝統的な手法(モノリシックアプローチ)の場合では、増加に対応するためにアプリ全体を[スケールアップ](/ja/scalability/)する必要がありました。これは非常に非効率的なリソースの使い方です。 -また、モノリシックアーキテクチャは、開発者が設計の落とし穴に陥りやすくするものです。すべてのコードが一か所にあるため、そのコードが[密結合](/ja/tightly-coupled-architectures/)になりやすく、関心の分離の原則を適用することが難しくなります。さらに、多くの場合、モノリスはデプロイする前にコードベース全体を理解する必要性を生じさせます。マイクロサービスアーキテクチャは、こうした課題への対応策です。 +また、モノリシックアーキテクチャは、開発者が設計の落とし穴に陥りやすくするものです。すべてのコードが一か所にあるため、そのコードが[密結合](/ja/tightly-coupled-architecture/)になりやすく、関心の分離の原則を適用することが難しくなります。さらに、多くの場合、モノリスはデプロイする前にコードベース全体を理解する必要性を生じさせます。マイクロサービスアーキテクチャは、こうした課題への対応策です。 ## どのように役に立つのでしょうか diff --git a/content/ja/tightly-coupled-architectures.md b/content/ja/tightly-coupled-architecture.md similarity index 100% rename from content/ja/tightly-coupled-architectures.md rename to content/ja/tightly-coupled-architecture.md From c2235f42f27a1da6765feedf12908c25affc20b3 Mon Sep 17 00:00:00 2001 From: Johannes Manner Date: Wed, 27 Mar 2024 00:32:12 +0100 Subject: [PATCH 076/130] [EN] update FaaS & Serverless (#2217) Signed-off-by: Johannes Manner Signed-off-by: Noah Ispas Signed-off-by: Nate W Co-authored-by: Jihoon Seo <46767780+jihoon-seo@users.noreply.github.com> Co-authored-by: Noah Ispas Co-authored-by: Rolfe Dlugy-Hegwer Co-authored-by: Nate W --- content/en/function-as-a-service.md | 37 ++++++++++++--------------- content/en/serverless.md | 39 ++++++++++++++--------------- wordlist.txt | 4 +++ 3 files changed, 39 insertions(+), 41 deletions(-) diff --git a/content/en/function-as-a-service.md b/content/en/function-as-a-service.md index 55cca7034a..1f998be337 100644 --- a/content/en/function-as-a-service.md +++ b/content/en/function-as-a-service.md @@ -5,30 +5,25 @@ category: Technology tags: ["infrastructure", "", ""] --- -Function as a Service (FaaS) is a type of [serverless](/serverless/) [cloud computing](/cloud-computing/) [service](/service/) -that allows executing code in response to events -without maintaining the complex infrastructure -typically associated with building and launching [microservices](/microservices/) applications. -With FaaS, users manage only functions and data while the cloud provider manages the application. -This allows developers to get the functions they need without paying for services when code isn’t running. + +Function as a Service (FaaS) is a cloud computing model that provides a platform for executing event-triggered functions, allowing for automatic scaling without manual intervention. +At its essence, FaaS enables the deployment of individual functions that are activated by specific events, operate on a short-term basis, and then shut down, ensuring resources are not wasted. +This model supports an [autoscaling](/auto-scaling/) feature, enabling a function instance to be initiated per request and terminated post-execution, emphasizing its stateless nature. +Consequently, FaaS platforms can implement a true pay-as-you-go billing approach, eliminating costs when functions are dormant, distinguishing it from other models like [Platform as a Service (PaaS)](/platform-as-a-service/), which require continuous resource availability. ## Problem it addresses -In a traditional on-premises scenario, a business manages and maintains its own data center. -The business must invest in servers, storage, software, and other technologies -and potentially hire an IT staff or contractors to purchase, manage, and upgrade all the equipment and licenses. -The data center has to be built to meet peak demand, even when workloads decline and those resources stand idle. -Conversely, if the business grows quickly, the IT department might struggle to keep up. -Under a standard [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-service/) cloud computing model, -users pre-purchase capacity units, meaning you pay a public cloud provider for always-on server components to run your apps. -It’s the user’s responsibility to scale up server capacity during times of high demand -and scale down when that capacity is no longer needed. -The cloud infrastructure necessary to run an app is active even when the app isn’t being used. +Traditionally, businesses have relied on maintaining on-premises data centers, necessitating substantial investment in hardware, software, and personnel. +This setup demands resources to be scaled to peak demand, resulting in underutilized assets during downtime. +Moreover, rapid business growth can overwhelm IT capabilities, leading to operational inefficiencies. +In contrast, [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-service/) models, while offering cloud-based solutions, still place the onus of scaling resources on the user, requiring payment for continuous server availability irrespective of actual usage. ## How it helps -FaaS gives developers an [abstraction](/abstraction/) for running web applications in response to events without managing servers. -For example, uploading a file could trigger custom code that transcodes the file into various formats. -FaaS infrastructure will auto-scale the code for heavy use, -and the developer does not have to spend any time or resources building the code for [scalability](/scalability/). -Billing is based on computation time alone, which means businesses do not have to pay when the functions are not in use. +FaaS gives developers an [abstraction](/abstraction/) for running web applications in response to events, eliminating the need to manage server infrastructure. +For example, an action such as uploading a file could trigger custom code that transcodes the file into various formats. +The FaaS infrastructure automatically adjusts resources to match demand, freeing developers from the complexities of coding for [scalability](/scalability/). +Charges apply solely for the duration of computation, ensuring no costs accrue when functions are inactive. + +For more information, refer to the [Serverless](/serverless/) glossary entry. +Although "serverless" and "FaaS" are often used as interchangeable terms, they embody distinct concepts. \ No newline at end of file diff --git a/content/en/serverless.md b/content/en/serverless.md index c3fd0841db..17a824a49c 100644 --- a/content/en/serverless.md +++ b/content/en/serverless.md @@ -5,29 +5,28 @@ Category: Technology tags: ["architecture", "", ""] --- -Serverless is a cloud native development model that allows developers to -build and run applications without having to manage servers. -While servers do still exist within the serverless paradigm, they are [abstracted](/abstraction/) away from the application development process. -A cloud provider handles the routine work of provisioning, maintaining, and [scaling](/scalability/) the server infrastructure. -Developers can conveniently package their code into [containers](/container/) for deployment. -Once deployed, serverless apps respond to demand and automatically scale up and down as needed. -Serverless offerings from public cloud providers are usually metered on-demand through an event-driven execution model. -Consequently, when a serverless function is in an idle state, there are no associated costs. + +Serverless Computing [abstracts](/abstraction/) servers away from the user. +Operational management falls to the service provider, including handling physical machines and VM provisioning. +Service providers can be public cloud entities or internal IT departments serving their development teams. +These providers offer user interfaces such as SDKs, CLIs, or OCI-compliant runtimes, focusing on code and deployment tasks. +Charges are based on a pay-per-use model. +[Scaling](/scalability/) and resource provisioning for computing, storage, or networking are automatically adjusted based on application demand without user intervention. +A serverless platform provider consolidates resources to serve multiple users on a single physical machine, ensuring isolation through virtualization, especially with [VMs](/virtual-machine/). + +Serverless is a comprehensive term encompassing services with these attributes, extending from [Platform-as-a-Service (PaaS)](/platform-as-a-service/) to [Software-as-a-Service (SaaS)](/software-as-a-service/). ## Problem it addresses -Under a standard [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-service/) [cloud computing](/cloud-computing/) model, -users pre-purchase units of capacity, meaning you pay a public cloud provider for always-on server components to run your apps. -It’s the user’s responsibility to scale up server capacity during times of high demand and -to scale down when that capacity is no longer needed. -The cloud infrastructure required to operate an application remains active even when the application is not in use. +In traditional [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-service/) [cloud computing](/cloud-computing/) models, users commit to a predefined capacity, resulting in charges for continuous server availability regardless of actual use. +Responsibility for adjusting server capacity to meet fluctuating demands falls on the user, maintaining active infrastructure even during idle periods. ## How it helps -Contrasting with traditional approaches, the serverless architecture launches applications only when they are needed. -When an event triggers app code to run, the public cloud provider dynamically allocates resources for that code. -The user stops paying when the code finishes executing. -In addition to the cost and efficiency benefits, -serverless frees developers from routine and menial tasks associated with app scaling and server provisioning. -With serverless, routine tasks such as managing the operating system and file system, security patches, -load balancing, capacity management, scaling, logging, and monitoring are all offloaded to a cloud services provider. +Serverless architecture introduces a more efficient approach, activating services solely upon demand. +This model ensures dynamic resource allocation by a cloud provider, eliminating costs for unused services. +Beyond financial and operational efficiencies, serverless technology relieves developers of the burdens of scaling applications and managing server infrastructure. +Tasks such as operating system maintenance, security updates, load balancing, capacity planning, and monitoring are delegated to the cloud provider, streamlining the development process. + +Refer to the [Function-as-a-Service (FaaS)](/function-as-a-service/) glossary entry for more information. +Although "serverless" and "FaaS" are often used as interchangeable terms, they embody distinct concepts. diff --git a/wordlist.txt b/wordlist.txt index 30e9d32a3c..adbfb6dfd7 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -233,3 +233,7 @@ TCP TCP/IP UDP HTTP/3 +CLI +CLIs +SDK +SDKs \ No newline at end of file From 693b72b1b49449570de53822cec27af98e73afa7 Mon Sep 17 00:00:00 2001 From: Jihoon Seo <46767780+jihoon-seo@users.noreply.github.com> Date: Wed, 27 Mar 2024 08:40:03 +0900 Subject: [PATCH 077/130] [en] Update links to 'microservices' (#3009) Signed-off-by: Jihoon Seo Signed-off-by: Nate W Co-authored-by: Nate W --- content/en/application-programming-interface.md | 2 +- content/en/chaos-engineering.md | 2 +- content/en/distributed-apps.md | 2 +- content/en/firewall.md | 2 +- content/en/function-as-a-service.md | 1 - content/en/load-balancer.md | 2 +- content/en/loosely-coupled-architecture.md | 2 +- content/en/monolithic-apps.md | 2 +- content/en/mutual-transport-layer-security.md | 2 +- content/en/platform-as-a-service.md | 2 +- content/en/service-mesh.md | 2 +- content/en/service.md | 2 +- content/en/tightly-coupled-architecture.md | 2 +- 13 files changed, 12 insertions(+), 13 deletions(-) diff --git a/content/en/application-programming-interface.md b/content/en/application-programming-interface.md index ccb2c70396..137e68ffb1 100644 --- a/content/en/application-programming-interface.md +++ b/content/en/application-programming-interface.md @@ -21,4 +21,4 @@ Without a shared framework, it is challenging for applications to [scale](/scala APIs allow computer programs or applications to interact and share information in a defined and understandable manner. They are the building blocks for modern applications and they provide developers with a way to integrate applications together. -Whenever you hear about [microservices](/microservices/) working together, you can infer that they interact via an API. +Whenever you hear about [microservices](/microservices-architecture/) working together, you can infer that they interact via an API. diff --git a/content/en/chaos-engineering.md b/content/en/chaos-engineering.md index 99bc528637..f44589853a 100644 --- a/content/en/chaos-engineering.md +++ b/content/en/chaos-engineering.md @@ -15,7 +15,7 @@ techniques to increase product resiliency and [reliability](/reliability/). A system's ability to tolerate failures while ensuring adequate service quality is typically a software development requirement. There are several aspects involved that could lead to outages of an application, -like infrastructure, platform or other moving parts of a ([microservice](/microservices/)-based) application. +like infrastructure, platform or other moving parts of a ([microservice](/microservices-architecture/)-based) application. High-frequency deployment of new features to the production environment can result in a high probability of downtime and a critical incident — with considerable consequences to the business. diff --git a/content/en/distributed-apps.md b/content/en/distributed-apps.md index ccf00e69bf..5933765e93 100644 --- a/content/en/distributed-apps.md +++ b/content/en/distributed-apps.md @@ -6,7 +6,7 @@ tags: ["architecture", "", ""] --- A distributed application is an application where the functionality is broken down into multiple smaller independent parts. -Distributed applications are usually composed of individual [microservices](/microservices/) +Distributed applications are usually composed of individual [microservices](/microservices-architecture/) that handle different concerns within the broader application. In a cloud native environment, the individual components typically run as [containers](/container/) on a [cluster](/cluster/). diff --git a/content/en/firewall.md b/content/en/firewall.md index 1fb551763d..f89f39b02c 100644 --- a/content/en/firewall.md +++ b/content/en/firewall.md @@ -13,7 +13,7 @@ Firewalls can be hardware, software, or a combination of the two. By default, a network will allow anyone to enter and depart as long as they follow the network's routing rules. Because of this default behavior, securing a network is challenging. -For example, in a [microservices](/microservices/)-based banking app, the services communicate with one another +For example, in a [microservices](/microservices-architecture/)-based banking app, the services communicate with one another by transmitting highly sensitive financial data through their network. A malicious actor may infiltrate the network, intercept communication, and do damage if there was no firewall in place. diff --git a/content/en/function-as-a-service.md b/content/en/function-as-a-service.md index 1f998be337..61550110b8 100644 --- a/content/en/function-as-a-service.md +++ b/content/en/function-as-a-service.md @@ -5,7 +5,6 @@ category: Technology tags: ["infrastructure", "", ""] --- - Function as a Service (FaaS) is a cloud computing model that provides a platform for executing event-triggered functions, allowing for automatic scaling without manual intervention. At its essence, FaaS enables the deployment of individual functions that are activated by specific events, operate on a short-term basis, and then shut down, ensuring resources are not wasted. This model supports an [autoscaling](/auto-scaling/) feature, enabling a function instance to be initiated per request and terminated post-execution, emphasizing its stateless nature. diff --git a/content/en/load-balancer.md b/content/en/load-balancer.md index 861dd4033d..89a8ca6b23 100644 --- a/content/en/load-balancer.md +++ b/content/en/load-balancer.md @@ -6,7 +6,7 @@ tags: ["infrastructure", "networking", ""] --- A load balancer is a tool that efficiently distributes incoming requests among multiple instances of an application. -Take a [microservice](/microservices/) architecture for example, where each service can be [scaled horizontally](/horizontal-scaling/). +Take a [microservice](/microservices-architecture/) architecture for example, where each service can be [scaled horizontally](/horizontal-scaling/). A load balancer sits in front of a scaled microservice and ensures that no one instance gets the bulk of the requests. Load balancers can be software or hardware-based. diff --git a/content/en/loosely-coupled-architecture.md b/content/en/loosely-coupled-architecture.md index 8244d14332..87cada947b 100644 --- a/content/en/loosely-coupled-architecture.md +++ b/content/en/loosely-coupled-architecture.md @@ -8,7 +8,7 @@ tags: ["fundamental", "architecture", "property"] Loosely coupled architecture is an architectural style where the individual components of an application are built independently from one another (the opposite paradigm of [tightly coupled architectures](/tightly-coupled-architectures/)). -Each component, sometimes referred to as a [microservice](/microservices/), is built to perform a specific function +Each component, sometimes referred to as a [microservice](/microservices-architecture/), is built to perform a specific function in a way that can be used by any number of other services. This pattern is generally slower to implement than tightly coupled architecture but has a number of benefits, particularly as applications scale. diff --git a/content/en/monolithic-apps.md b/content/en/monolithic-apps.md index c0bc6de7c7..db8b617754 100644 --- a/content/en/monolithic-apps.md +++ b/content/en/monolithic-apps.md @@ -13,7 +13,7 @@ the likelihood of conflicting changes and the need for interpersonal communicati ## Problem it Addresses -Devolving an application into [microservices](/microservices/) increases its operational overhead +Devolving an application into [microservices](/microservices-architecture/) increases its operational overhead — there are more things to test, deploy, and keep running. Early in a product’s lifecycle, it may be advantageous to defer this complexity and build a monolithic application until the product is determined successful. diff --git a/content/en/mutual-transport-layer-security.md b/content/en/mutual-transport-layer-security.md index 9e50ae05bf..3f6cb98a7b 100644 --- a/content/en/mutual-transport-layer-security.md +++ b/content/en/mutual-transport-layer-security.md @@ -11,7 +11,7 @@ instead of validating the identity of just one connection, both sides are valida ## Problem it addresses -[Microservices](/microservices/) communicate over a network and, +[Microservices](/microservices-architecture/) communicate over a network and, just like your wifi network, communication in transit over that network can be hacked. mTLS ensures that no unauthorized party can listen in on or impersonate legitimate requests. diff --git a/content/en/platform-as-a-service.md b/content/en/platform-as-a-service.md index 47bbd94501..df16098a7c 100644 --- a/content/en/platform-as-a-service.md +++ b/content/en/platform-as-a-service.md @@ -11,7 +11,7 @@ Heroku, Cloud Foundry, App Engine are examples of PaaS offerings. ## Problem it addresses -To take advantage of cloud native patterns like [microservices](/microservices/) or [distributed applications](/distributed-apps/), +To take advantage of cloud native patterns like [microservices](/microservices-architecture/) or [distributed applications](/distributed-apps/), operations teams and developers need to be able to offload a significant amount of operations and maintenance work. These include tasks like provisioning infrastructure, handling [service discovery](/service-discovery/) and load balancing, and [scaling](/scalability/) applications. diff --git a/content/en/service-mesh.md b/content/en/service-mesh.md index 31309f07ce..edc67cac2a 100644 --- a/content/en/service-mesh.md +++ b/content/en/service-mesh.md @@ -5,7 +5,7 @@ category: technology tags: ["networking", "", ""] --- -In a [microservices](/microservices/) world, apps are broken down into multiple smaller [services](/service/) that communicate over a network. +In a [microservices](/microservices-architecture/) world, apps are broken down into multiple smaller [services](/service/) that communicate over a network. Just like your wifi network, computer networks are intrinsically unreliable, hackable, and often slow. Service meshes address this new set of challenges by managing traffic (i.e., communication) between services and adding [reliability](/reliability/), [observability](/observability/), and security features uniformly across all services. diff --git a/content/en/service.md b/content/en/service.md index 0aff4c4721..d0edc8e2f2 100644 --- a/content/en/service.md +++ b/content/en/service.md @@ -9,4 +9,4 @@ Please note that in IT, service has multiple meanings. In this definition, we'll focus on the more traditional one: service as in microservice. How or even if services differ from microservices is nuanced and different people may have different opinions. For a high-level definition, we'll treat them as the same. -Please refer to the [microservices](/microservices/) definition. +Please refer to the [microservices](/microservices-architecture/) definition. diff --git a/content/en/tightly-coupled-architecture.md b/content/en/tightly-coupled-architecture.md index 22d9cbf7bf..f96691fac6 100644 --- a/content/en/tightly-coupled-architecture.md +++ b/content/en/tightly-coupled-architecture.md @@ -14,7 +14,7 @@ They also tend to require coordinated rollouts of components which can become a drag on developer productivity. Tightly coupled application architectures are a fairly traditional way of building applications. -While not necessarily consistent with all the best practices of [microservice](/microservices/) development +While not necessarily consistent with all the best practices of [microservice](/microservices-architecture/) development they can be useful in specific circumstances. They tend to be faster and simpler to implement and much like [monolithic applications](/monolithic-apps/) they can speed up the initial development cycle. From d43bf585f8550a1c436f2ef44d265f79557971c5 Mon Sep 17 00:00:00 2001 From: Ali Ok Date: Thu, 28 Mar 2024 10:33:36 +0300 Subject: [PATCH 078/130] Replace a Turkish approver Signed-off-by: Ali Ok --- .github/settings.yml | 4 ++-- CODEOWNERS | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 299c096ab3..816edc45e3 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -220,7 +220,7 @@ collaborators: - username: aliok permission: push - - username: halil-bugol + - username: symys permission: push - username: rwxdash @@ -524,7 +524,7 @@ branches: # tr approvers users: - aliok - - halil-bugol + - symys - rwxdash - eminalemdar teams: [] diff --git a/CODEOWNERS b/CODEOWNERS index c76477236b..78489645ea 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -63,8 +63,8 @@ /i18n/ru.toml @shurup @kirkonru @tym83 # Approvers for Turkish contents -/content/tr/ @aliok @halil-bugol @rwxdash @eminalemdar -/i18n/tr.toml @aliok @halil-bugol @rwxdash @eminalemdar +/content/tr/ @aliok @symys @rwxdash @eminalemdar +/i18n/tr.toml @aliok @symys @rwxdash @eminalemdar # Approvers for Urdu contents /content/ur/ @Saim-Safdar @waleed318 From 3de77169697f3b764ea7aadaacea4db94a071ca6 Mon Sep 17 00:00:00 2001 From: Ilya Lobkov Date: Thu, 28 Mar 2024 17:05:22 +0100 Subject: [PATCH 079/130] [ru] Localize ebpf.md Signed-off-by: Ilya Lobkov --- content/ru/ebpf.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 content/ru/ebpf.md diff --git a/content/ru/ebpf.md b/content/ru/ebpf.md new file mode 100644 index 0000000000..8821fd477f --- /dev/null +++ b/content/ru/ebpf.md @@ -0,0 +1,45 @@ +--- +title: eBPF +status: Completed +category: Technology +tags: ["architecture", "networking", "security"] +--- + +eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) это технология, +которая позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс +без необходимости изменять код ядра или загружать модули ядра. + +ОС Линукс имеет два пространства: пространство ядра (kernel space) и пользовательское (user space). +Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению. + +Приложения находятся в пользовательском пространстве. +Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру. +Для приложений, требующих большей свободы действий, например, для прямого доступа к аппаратному обеспечению, +ядро может быть расширено за счёт моделей ядра Линукс. +Такой подход расширяет стандартные функции ядра, давая приложениям доступ к низкоуровневым компонентам. +Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой. + +## Какую проблему решает + +Как правило, приложения работают в пользовательском пространстве, +и если возникает необходимость в привилегированном доступе (например, доступ к аппаратному обеспечению), +приложение отправляет запрос к ядру также известный как "системный вызов". +В большинстве случает такой подход прекрасно работает. +Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе. +Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью. +Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра. +Но несмотря на преимущества, такой подход влечет за собой риски безопасности. +Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы. +Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для хакеров. + +## Как именно решает проблему + +По сравнению с модулями ядра, eBPF предоставляет более контролируемую и ограниченную среду для исполнения пользовательских программ. +eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски. +Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей". +Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации. +Верификатор проверяет eBPF программу на наличие потенциально небезопасного кода, +такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра. +Верификация гарантирует что eBPF программа не войдет в бесконечный цикл и не приведет к сбою ядра. +Эти меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре, по сравнению с модулями ядра Линукс. + From f40707f6a93c239e9fe371cd17660cb556a683c4 Mon Sep 17 00:00:00 2001 From: Ilya Lobkov Date: Thu, 28 Mar 2024 17:26:33 +0100 Subject: [PATCH 080/130] Update content/ru/ebpf.md Co-authored-by: Kirill Batalin Signed-off-by: Ilya Lobkov --- content/ru/ebpf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ru/ebpf.md b/content/ru/ebpf.md index 8821fd477f..1424324f6c 100644 --- a/content/ru/ebpf.md +++ b/content/ru/ebpf.md @@ -30,7 +30,7 @@ eBPF (англ. extended Berkley Packet Filter — расширенный фил Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра. Но несмотря на преимущества, такой подход влечет за собой риски безопасности. Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы. -Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для хакеров. +Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для злоумышленников. ## Как именно решает проблему From b316cebfe8662ecd643d526c6d9bba0fe4203385 Mon Sep 17 00:00:00 2001 From: t-katsumura <83070078+t-katsumura@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:03:14 +0900 Subject: [PATCH 081/130] [ja] Localize Shift Left into Japanese (#3017) Signed-off-by: t-katsumura --- content/ja/shift-left.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 content/ja/shift-left.md diff --git a/content/ja/shift-left.md b/content/ja/shift-left.md new file mode 100644 index 0000000000..99dc2a3695 --- /dev/null +++ b/content/ja/shift-left.md @@ -0,0 +1,29 @@ +--- +title: シフトレフト +status: Completed +category: コンセプト +tags: ["方法論", "", ""] +--- + +シフトレフトの「レフト」はソフトウェア開発ライフサイクルのより初期のステージを指します。 +ライフサイクルをステージが左から右へと実行される線と考えます。 +シフトレフトは、テストやセキュリティなどの開発プラクティスをソフトウェア開発ライフサイクルの終盤ではなく、早い段階で実施することです。 + +もともとはテストプロセスを早い段階で行うことを指していましたが、現在ではセキュリティやデプロイなど、ソフトウェア開発や[DevOps](/ja/devops/)の他の側面にも適用されることがあります。 + +## 解決すべき問題はなんですか + +セキュリティ問題や、バグ、ソフトウェアの欠陥は開発サイクルの後期やデプロイ後に発見された場合、とりわけソフトウェアが既に本番環境へデプロイされていた場合、修正はより難しく高コストになる可能性があります。 + +## どのように役に立つのでしょうか + +ソフトウェア開発におけるシフトレフトの考え方を適用することで、チームは開発ライフサイクル全体を通してテストやセキュリティを実装することができます。 +テストとセキュリティに対する責任はソフトウェアエンジニアから品質保証、運用まで開発チーム全体にわたって共有さるものであるため、誰もがアプリケーションの安定性とセキュリティを担保する役割を果たします。 + +加えて、シフトレフトは継続的な改善を可能とし、ウォーターフォール開発よりも[アジャイル](/ja/agile-software-development/)開発により実践されます。 +チームは小さな改善を繰り返し行い、より早い段階で問題を特定することができます。 +このアプローチにより、エンジニアは設計とアーキテクチャフェーズにおいて、セキュリティと安全な開発プラクティスを適用することが可能になります。 +開発サイクル全体を通してテストを行うことは、ソフトウェアのリリース前に必要となるテスト時間を短縮します。 + +多数のソフトウェアツールやSaaSソリューションは、これらのプラクティスを左にシフトすることを支援します。 +ただし、シフトレフトはチーム内のプロセスの改善や文化の改革を通しても実践することができます。 From e6cca6a2e64b5f99a7277ad661201cc6025fd08d Mon Sep 17 00:00:00 2001 From: Guille Vigil Date: Fri, 29 Mar 2024 22:14:33 +0100 Subject: [PATCH 082/130] Update devops.md Signed-off-by: Guille Vigil --- content/en/devops.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/devops.md b/content/en/devops.md index 271e0147fb..d1169cefd4 100644 --- a/content/en/devops.md +++ b/content/en/devops.md @@ -11,7 +11,7 @@ DevOps calls for groups of engineers that work on small components (versus an en ## Problem it addresses -Traditionally, in complex organizations with [tightly-coupled](/tightly-coupled-architectures/) [monolithic apps](/monolithic-apps/), +Traditionally, in complex organizations with [tightly-coupled](/tightly-coupled-architecture/) [monolithic apps](/monolithic-apps/), work was generally fragmented between multiple groups. This led to numerous handoffs and long lead times. Each time a component or update was ready, it was placed in a queue for the next team. From 75dafc807038d68de4efdf248dbd6150983c5d9b Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:13:15 +0300 Subject: [PATCH 083/130] Localize abstraction.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Edit quotation marks Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update abstraction.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/abstraction.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 content/ru/abstraction.md diff --git a/content/ru/abstraction.md b/content/ru/abstraction.md new file mode 100644 index 0000000000..f1a9a32d0e --- /dev/null +++ b/content/ru/abstraction.md @@ -0,0 +1,23 @@ +--- +title: Абстракция +status: Completed +category: Property +tags: ["fundamental", "", ""] +--- + +В контексте вычислительной техники абстракция — это представление, +которое скрывает специфику реализации от потребителя [сервисов](/service/) +(потребителем является компьютерная программа или человек), +делая систему более простой и понятной. +Хороший пример — операционная система (ОС) компьютера. +Она абстрагирует все тонкости работы компьютера. +Пользователю не нужно ничего знать о процессоре, памяти и работе с программами: +он просто управляет операционной системой, а та разбирается со всеми нюансами. +Все они скрыты за «занавесом» ОС или абстракцией. + +Системы, как правило, имеют несколько уровней абстракции. +Это значительно упрощает разработку. +При программировании разработчики создают компоненты, совместимые с определенным уровнем абстракции, +и не заботятся о том, как та или иная функциональность реализована на нижележащих уровнях. +Достаточно того, что эти компоненты работают с определенным уровнем абстракции. +А то, что у него скрыто «под капотом», не имеет значения. From 61f69944860da171186931ab2f897bc3b462ac5c Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:20:20 +0300 Subject: [PATCH 084/130] [ru] Localize agile-software-development.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update agile-software-development.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/agile-software-development.md | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 content/ru/agile-software-development.md diff --git a/content/ru/agile-software-development.md b/content/ru/agile-software-development.md new file mode 100644 index 0000000000..e15f9bcc62 --- /dev/null +++ b/content/ru/agile-software-development.md @@ -0,0 +1,26 @@ +--- +title: Гибкий подход к разработке программного обеспечения (Agile) +status: Completed +category: concept +tags: ["methodology", "", ""] +--- + +Набор практик, в которых особое внимание уделяется итеративным циклам разработки и самоорганизующимся командам. +В отличие от каскадной (waterfall) модели, в которой ценность проявляется только в самом конце проекта, +agile-разработка ПО ориентирована на непрерывное и инкрементное получение ценности +и эволюционное совершенствование самого процесса. + +## Какую проблему решает + +Определить, понять и донести требования до всех заинтересованных сторон в программном проекте очень сложно, если вообще возможно. +Тем не менее, заказчики хотят, чтобы их программные проекты выполнялись в срок, с хорошим качеством, в рамках бюджета и с соблюдением требований. +Благодаря своей цикличности, agile-разработка ПО позволяет непрерывно адаптировать требования +и быстрее приспосабливаться к любым другим обстоятельствам (в отличие от каскадных стратегий). + +## Как именно решает проблему + +Agile-разработка программного обеспечения содержит все фазы традиционных (каскадных) стратегий, +такие как проработка требований, планирование, реализация, анализ, тестирование и поставка. +Самое большое отличие заключается в том, что весь период работы над программным проектом разбивается на итерации, каждая из которых содержит все эти этапы. +По окончании каждой итерации заказчик анализирует созданную ценность и корректирует требования для достижения конечной цели. +Кроме того, команда разработчиков проводит ретроспективный анализ того, какие действия необходимо предпринять для улучшения самого процесса. From 705cca69f4e042439ec203c7b52983d07fcbfa36 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:28:54 +0300 Subject: [PATCH 085/130] [ru] Localize api-gateway.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update api-gateway.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/api-gateway.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 content/ru/api-gateway.md diff --git a/content/ru/api-gateway.md b/content/ru/api-gateway.md new file mode 100644 index 0000000000..cb8d6a4791 --- /dev/null +++ b/content/ru/api-gateway.md @@ -0,0 +1,29 @@ +--- +title: Шлюз API +status: Completed +category: technology +tags: ["networking", "", ""] +--- + +Шлюз [API](/application-programming-interface/) объединяет уникальные API-интерфейсы различных приложений, делая их доступными в одном месте. +Он позволяет перенести ключевые функции, такие как аутентификация, авторизация +и лимитирование количества запросов между приложениями, +в централизованно управляемое место. +Шлюз API выступает единым интерфейсом для (часто внешних) пользователей API. + +## Какую проблему решает + +Делая API доступными для внешних потребителей, логично позаботиться и о единой точке входа — +она облегчит управление и позволит контролировать, кто и когда подключается к API. +Кроме того, шлюз API позволяет расширять имеющуюся функциональность, +единообразно обрабатывая весь проходящий трафик (благодаря этому, не нужно вносить изменения в код приложения). + +## Как именно решает проблему + +Создавая единую точку доступа к различным API в приложении, +API-шлюзы облегчают организациям применение бизнес-логики или политик безопасности, собирая их в одном месте. +Теперь приложения-потребители могут обращаться на единый адрес со всеми своими запросами. +Шлюз API упрощает решение задач эксплуатации — например, в области безопасности и [наблюдаемости](/observability/), — +предоставляя единую точку доступа для запросов ко всем веб-сервисам в системе. +Поскольку все запросы проходят через API-шлюз, его удобно использовать для добавления таких функций, +как сбор метрик, ограничение частоты запросов и авторизация. From b6a3e01f75398d589277ddb06ea917862773740e Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:34:38 +0300 Subject: [PATCH 086/130] [ru] Localize application-programming-interface.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update application-programming-interface.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- .../ru/application-programming-interface.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 content/ru/application-programming-interface.md diff --git a/content/ru/application-programming-interface.md b/content/ru/application-programming-interface.md new file mode 100644 index 0000000000..9245108507 --- /dev/null +++ b/content/ru/application-programming-interface.md @@ -0,0 +1,24 @@ +--- +title: Программный интерфейс приложения (API) +status: Completed +category: technology +tags: ["architecture", "fundamental", ""] +--- + +API определяет способ взаимодействия компьютерных программ друг с другом. +Подобно тому, как люди взаимодействуют с веб-сайтом через веб-страницу, API позволяет компьютерным программам взаимодействовать друг с другом. +Но в отличие от общения людей друг с другом, API налагают ограничения на то, какие запросы к ним посылать можно, а какие нельзя. +Ограничение на взаимодействие позволяет создать устойчивую и функциональную связь между программами. + +## Какую проблему решает + +С ростом сложности приложений небольшие изменения в коде могут кардинально повлиять на другие их функциональные возможности. +Для того чтобы приложения могли одновременно расти и оставаться стабильными, необходимо использовать модульный подход к их функциональности. +API как раз выступают в качестве основы для взаимодействия между приложениями. +Без такой единой и общей базы приложениям было бы сложно [масштабироваться](/scalability/) и интегрироваться. + +## Как именно решает проблему + +API позволяют компьютерным программам или приложениям взаимодействовать и обмениваться информацией в четко определенной и понятной форме. +Они выступают строительными блоками для современных программ и предоставляют разработчикам возможность интегрировать приложения друг с другом. +Слышали о совместной работе [микросервисов](/microservices/)? В большинстве случаев они взаимодействуют именно через API. From 54ebed9684310828260ad956ac1b73d20a565558 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:40:37 +0300 Subject: [PATCH 087/130] [ru] Localize auto-scaling.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Minor rephrase Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update auto-scaling.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/auto-scaling.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 content/ru/auto-scaling.md diff --git a/content/ru/auto-scaling.md b/content/ru/auto-scaling.md new file mode 100644 index 0000000000..b18aa652e5 --- /dev/null +++ b/content/ru/auto-scaling.md @@ -0,0 +1,31 @@ +--- +title: Автомасштабирование +status: Completed +category: property +tags: ["infrastructure", "", ""] +--- + +Автомасштабирование — это способность системы автоматически [масштабироваться](/scalability/), как правило, в контексте вычислительных ресурсов. +При автомасштабировании ресурсы по мере необходимости автоматически добавляются — в соответствии с меняющимися потребностями пользователей. +Автомасштабирование может производиться на основе различных метрик, таких как память или время выполнения процесса. +Автомасштабирование обычно ассоциируется с облачными managed-сервисами, поскольку те предлагают больше опций и реализаций этой функции, +чем традиционные «физические» (on-premise) виды инфраструктуры. + +Ранее инфраструктура и приложения проектировались с учетом пиковой загрузки системы. +Такой подход означал, что значительное количество ресурсов недоиспользуется, +а сама система не может гибко реагировать на изменение количества пользователей и их потребностей. +Такая неэластичность приводила к росту затрат и потерям от перебоев в работе во время большого наплыва пользователей, +когда ресурсов системы просто не хватало на всех. + +Используя облачные технологии, [виртуализацию](/virtualization/) и [контейнеризацию](/ru/containerization/) приложений и их зависимостей, +организации могут создавать приложения, которые масштабируются в соответствии с потребностями пользователей. +Они могут отслеживать загруженность приложений и автоматически масштабировать их, обеспечивая оптимальный пользовательский опыт. +Хорошим примером являются сервисы потокового видео вроде Netflix — в пятницу вечером все они сталкиваются +со значительным увеличением зрительской аудитории и, как следствие, ростом нагрузки на серверы. +Автомасштабирование позволяет динамически добавлять дополнительные ресурсы: например, увеличивать количество серверов, +транслирующих видео, и возвращать ресурсы в исходное состояние после нормализации потребления. + +## Связанные термины + +* [Горизонтальное масштабирование](/horizontal-scaling/) +* [Вертикальное масштабирование](/vertical-scaling/) From 715db77c868e59aff6f0332bf95e7f8f8fc224c0 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:54:50 +0300 Subject: [PATCH 088/130] [ru] Localize bare-metal-machine.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update bare-metal-machine.md Adjusment by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/bare-metal-machine.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 content/ru/bare-metal-machine.md diff --git a/content/ru/bare-metal-machine.md b/content/ru/bare-metal-machine.md new file mode 100644 index 0000000000..c43feac436 --- /dev/null +++ b/content/ru/bare-metal-machine.md @@ -0,0 +1,32 @@ +--- +title: Bare metal-компьютер +status: Completed +category: technology +tags: ["infrastructure", "", ""] +--- + +Под компьютером типа bare metal («голое железо») понимается физический компьютер, а точнее — сервер, +на котором установлена одна и только одна операционная система. +Это различие важно, поскольку многие, если не большинство, серверов являются [виртуальными машинами](/virtual-machine/). +Физический сервер — это, как правило, достаточно серьезный компьютер с мощным аппаратным обеспечением. +Установка операционной системы и запуск приложений непосредственно на физическом оборудовании, +без [виртуализации](/virtualization/), называется работой на «голом железе». + +## Какую проблему решает + +В вычислительной технике изначально применялся подход, в котором на один компьютер устанавливалась только одна операционная система. +В этом случае все ресурсы физического компьютера были доступны операционной системе напрямую +и отсутствовала искусственная задержка при передаче инструкций ОС к аппаратному обеспечению, связанная со слоем виртуализации. + +## Как именно решает проблему + +Обеспечивая единственной операционной системе доступ ко всем ресурсам компьютера, +вы в теории гарантируете, что ее производительность будет максимальной. +«Голое железо» отлично подходит для рабочих нагрузок, которым требуется быстрый доступ к аппаратным ресурсам. + +В контексте [нативных облачных приложений](/ru/cloud-native-apps/) +производительность обычно рассматривается с точки зрения [масштабирования](/scalability/) до большого числа одновременных событий (процессов, операций). +Помогает в этом [горизонтальное масштабирование](/horizontal-scaling/) (добавление новых машин в пул ресурсов). +Однако для некоторых рабочих нагрузок может потребоваться [вертикальное масштабирование](/vertical-scaling/) (увеличение мощности существующей физической машины) и/или чрезвычайно быстрый отклик физического аппаратного обеспечения. В этом случае лучше использовать «голое железо». +Кроме того, подход на основе «голого железа» позволяет подстраивать аппаратное обеспечение +(а в некоторых случаях и его драйверы) под конкретные задачи. From cd798e3f36cca9f19c120e9473c63077afae4880 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:05:14 +0300 Subject: [PATCH 089/130] [ru] Localize blue-green-deployment.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update blue-green-deployment.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/blue-green-deployment.md | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 content/ru/blue-green-deployment.md diff --git a/content/ru/blue-green-deployment.md b/content/ru/blue-green-deployment.md new file mode 100644 index 0000000000..9af797a6c0 --- /dev/null +++ b/content/ru/blue-green-deployment.md @@ -0,0 +1,31 @@ +--- +title: Сине-зеленое развертывание +status: Completed +category: concept +tags: ["methodology", "application", ""] +--- + +Сине-зеленое развертывание — стратегия обновления работающих компьютерных систем с минимальным временем простоя. +Оператор использует два окружения: «синее» и «зеленое». +Одно из них обслуживает production-трафик (в нем работает текущая версия, с которой взаимодействуют пользователи), а другое в это время обновляется. +После успешного завершения тестирования «зеленого» окружения (с новой версией) +production-трафик переключается на него (часто с помощью балансировщика нагрузки). +Отметим, что в этой стратегии окружения обычно переключаются сразу со всеми [сервисами](/service/). +Однако иногда этот термин используется по отношению к отдельным сервисам в системе. +Чтобы избежать подобной двусмысленности, для отдельных компонентов предпочтительно +использовать термин «развертывание с нулевым временем простоя» _(zero-downtime deployment)_. + +## Какую проблему решает + +Сине-зеленые развертывания позволяют свести к минимуму время простоя при обновлении программного обеспечения, +разные версии которого несовместимы (т. е. когда приходится обновлять сразу все компоненты). +Например, сине-зеленое развертывание отлично подойдет для интернет-магазина, состоящего из сайта и базы данных. +Предположим, что базу даных необходимо обновить, однако ее новая версия несовместима со старой версией сайта, и наоборот. +В этом случае необходимо сразу обновить и сайт, и базу данных. +Если это делать на живой production-системе, клиенты заметят перебои в работе. + +## Как именно решает проблему + +Сине-зеленое развертывание — подходящая стратегия для ненативного облачного ПО, которое необходимо обновлять с минимальным временем простоя. +Необходимость в этой стратегии обычно намекает на то, что программное обеспечение нуждается в перепроектировании, +в результате которого его компоненты можно было бы обновлять по отдельности. From 4b46d1bbc057ef624222f94b8a7808ff4411e674 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:20:01 +0300 Subject: [PATCH 090/130] [ru] Localize canary-deployment.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update canary-deployment.md Adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/canary-deployment.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 content/ru/canary-deployment.md diff --git a/content/ru/canary-deployment.md b/content/ru/canary-deployment.md new file mode 100644 index 0000000000..2ca8513794 --- /dev/null +++ b/content/ru/canary-deployment.md @@ -0,0 +1,31 @@ +--- +title: Канареечное развертывание +status: Completed +category: concept +tags: ["methodology", "application", ""] +--- + +Стратегия канареечных развертываний _(canary deployments)_ начинается с двух окружений: +одно из них уже обслуживает пользователей, другое — содержит обновленный код (но пока без трафика). +Трафик постепенно переключается с исходной, старой версии приложения на новую. +Начинают обычно с минимального процента (например, с 1%) и постепенно увеличивают долю трафика, +которая поступает в новую версию, пока та не достигнет 100%. +Такая стратегия позволяет протестировать новую версию ПО в production, получить обратную связь, +диагностировать ошибки и при необходимости быстро откатиться к старой стабильной версии. + +Сам термин происходит от старой практики, когда канарейки помогали выявлять опасные газы в шахтах. +Если в шахте были вредные газы, не имеющие запаха, птица погибала, и шахтеры понимали, что необходимо срочно эвакуироваться. +То же самое справедливо и для канареечных развертываний: если окажется, что с новым кодом что-то не так, +можно сразу откатиться на старую версию. + +## Какую проблему решает + +Какой бы тщательной ни была стратегия тестирования, в процессе эксплуатации всегда обнаруживаются те или иные ошибки. +Переключение сразу всего трафика с одной версии приложения на другую может привести к масштабным сбоям. + +## Как именно решает проблему + +Канареечные развертывания позволяют увидеть, как новое программное обеспечение поведет себя в реальных условиях, +прежде чем направлять на него весь трафик. +Такая стратегия помогает минимизировать время простоя и быстро откатиться назад в случае возникновения проблем с новым развертыванием. +Также она позволяет проводить более глубокое тестирование production-приложений, не оказывая существенного влияния на пользовательский опыт. From 4d5b3298f7d9d99f95e406a7c0de432a3ce93364 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:24:07 +0300 Subject: [PATCH 091/130] [ru] Localize chaos-engineering.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update chaos-engineering.md Adjusments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/chaos-engineering.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ru/chaos-engineering.md diff --git a/content/ru/chaos-engineering.md b/content/ru/chaos-engineering.md new file mode 100644 index 0000000000..d7764df6c5 --- /dev/null +++ b/content/ru/chaos-engineering.md @@ -0,0 +1,30 @@ +--- +title: Хаос-инженерия +status: Completed +category: concept +tags: ["methodology", "", ""] +--- + +Хаос-инженерия (_chaos engineering_, CE) — подход, при котором над [распределенной](/distributed-systems/) production-системой проводятся различные эксперименты, +цель которых — убедиться, что она способна противостоять турбулентным и неожиданным ситуациям. + +## Какую проблему решает + +Практики [SRE](/site-reliability-engineering/) и [DevOps](/ru/devops/) концентрируются на +методах повышения отказоустойчивости и надежности систем. +Способность системы выдерживать сбои, обеспечивая при этом надлежащее качество обслуживания, +как правило, является одним из требований при разработке программного обеспечения. +Перебои в работе (основанного на [микросервисах](/microservices/)) приложения могут быть связаны с различными аспектами: +инфраструктурой, платформой и другими компонентами, которые могут изменяться. +Частое развертывание новых функций в production-окружении повышает вероятность критического инцидента +и простоя со значительными негативными последствиями для бизнеса. + +## Как именно решает проблему + +Хаос-инженерия помогает удовлетворить требования к живучести систем. +Она используется для проверки устойчивости инфраструктуры, платформ и приложений к сбоям. +В рамках хаос-экспериментов в систему вводятся случайные «поломки», чтобы проверить, способны ли приложение, +инфраструктура или платформа самовосстанавливаться, и убедиться, что сбой не оказывает значимое негативное влияние на потребителей. +Хаос-эксперименты направлены на выявление «слепых зон» (например, в мониторинге или при автомасштабировании) +и на улучшение коммуникаций между командами во время критических инцидентов. +Такой подход позволяет повысить отказоустойчивость сложных систем (в том числе production-уровня) и уверенность команд в них. From b3fe9857bf8e5ab52f613fae37d3059b2121f5e4 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:25:56 +0300 Subject: [PATCH 092/130] [ru] Localize client-server-architecture.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update client-server-architecture.md Adjusments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/client-server-architecture.md | 35 ++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 content/ru/client-server-architecture.md diff --git a/content/ru/client-server-architecture.md b/content/ru/client-server-architecture.md new file mode 100644 index 0000000000..ab1534edc8 --- /dev/null +++ b/content/ru/client-server-architecture.md @@ -0,0 +1,35 @@ +--- +title: Архитектура клиент-сервер +status: Completed +category: concept +tags: ["architecture", "fundamental", ""] +--- + +В клиент-серверной архитектуре логика (или код), составляющая приложение, распределяется между двумя или более компонентами: +клиентом, запрашивающим выполнение некой работы +(например, веб-приложение Gmail, работающее в браузере), +и одним или несколькими серверами, удовлетворяющими этот запрос +(например, сервис отправки почты, работающий на компьютерах Google в облаке). +В этом примере исходящие письма отправляются клиентом (веб-приложением, работающим в браузере) +на сервер (компьютеры Gmail, которые пересылают их получателям). + +Этот подход отличается от автономных приложений (например, десктопных), которые выполняют всю работу в одном месте. +Например, текстовый процессор Microsoft Word может быть установлен на персональный компьютер и работать только на нем. + +## Какую проблему решает + +Архитектура клиент-сервер решает серьезную проблему, с которой сталкиваются автономные приложения: регулярное обновление. +Чтобы обновить автономное приложение, пользователям необходимо загрузить и установить последнюю версию. +А теперь представьте, что для просмотра каталога товаров Amazon вам необходимо сначала загрузить его себе на компьютер! + +## Как именно решает проблему + +Когда логика приложения реализована на удаленном сервере или в сервисе, операторы могут обновлять ее, +не меняя логику на стороне клиента. +Поэтому обновления можно производить гораздо чаще. +Хранение данных на сервере позволяет различным клиентам видеть одни и те же данные и совместно их использовать. +Рассмотрим разницу между онлайновым текстовым процессором и традиционным офлайновым, который работает на локальном компьютере. +В первом случае ваши файлы находятся на стороне сервера и +могут быть доступны другим пользователям, которые просто скачивают их с сервера. +Во втором случае (когда Интернет не был доступен повсеместно) файлы приходилось копировать +на съемные носители (дискеты!) и передавать каждому пользователю по отдельности. From e959a5c59d252b5d834437a064829f0bae7d0742 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:34:03 +0300 Subject: [PATCH 093/130] [ru] Localize cloud-computing.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update cloud-computing.md Adjusments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/cloud-computing.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 content/ru/cloud-computing.md diff --git a/content/ru/cloud-computing.md b/content/ru/cloud-computing.md new file mode 100644 index 0000000000..90dd18a945 --- /dev/null +++ b/content/ru/cloud-computing.md @@ -0,0 +1,22 @@ +--- +title: Облачные вычисления +status: Completed +category: concept +tags: ["infrastructure", "fundamental", ""] +--- + +Облачные вычисления _(cloud computing)_ — собирательное название систем, которые предоставляют вычислительные ресурсы (процессорные, сетевые и дисковые) по запросу через сеть Интернет. В результате пользователи получают доступ к вычислительным мощностям, которые физически расположены в совершенно другом, удаленном месте. +Обычно облака подразделяются на приватные и публичные в зависимости от того, предназначена ли облачная инфраструктура для одной организации или используется множеством открытых публичных сервисов совместно. + +## Какую проблему решает + +Классически существовало два способа, которыми организации могли увеличить свои вычислительные мощности. +Они могли либо приобретать, поддерживать и проектировать (новые) объекты для размещения своих физических серверов и сетей, либо расширять существующие. +Облачные вычисления решают эту проблему, позволяя организациям привлекать сторонние ресурсы для удовлетворения своих вычислительных потребностей. + +## Как именно решает проблему + +Облачные провайдеры позволяют организациям арендовать вычислительные ресурсы по требованию и платить непосредственно за их использование. У такого подхода есть два ключевых преимущества. +Во-первых, организации могут сконцентрироваться на разработке своего продукта или услуги, не дожидаясь доступности новой инфраструктуры. Им больше не нужно тратить время и деньги на проектирование и строительство инфраструктурных объектов. +Во-вторых, они могут просто [масштабировать](/scalability/) ресурсы по мере необходимости. +Облачные вычисления позволяют использовать ровно столько ресурсов, сколько необходимо. From 1ddb3242b4930b675248eeb3abea9382676e5929 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:38:39 +0300 Subject: [PATCH 094/130] [ru] Localize cloud-native-security.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update content/ru/cloud-native-security.md Co-authored-by: Dmitry Shurupov Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update cloud-native-security.md Adjusments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/cloud-native-security.md | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 content/ru/cloud-native-security.md diff --git a/content/ru/cloud-native-security.md b/content/ru/cloud-native-security.md new file mode 100644 index 0000000000..e6561b0b47 --- /dev/null +++ b/content/ru/cloud-native-security.md @@ -0,0 +1,32 @@ +--- +title: Нативная облачная безопасность +status: Completed +category: concept +tags: ["security", "", ""] +--- + +Нативная облачная безопасность — подход, при котором безопасность встраивается в [нативные облачные приложения](/ru/cloud-native-apps/). +В его рамках безопасность становится частью всего жизненного цикла приложения: от разработки до production. +Нативная облачная безопасность сред направлена на обеспечение тех же стандартов, что и традиционные модели безопасности, +но при этом адаптирована к особенностям облачных окружений, +а именно: быстрым изменениям кода и крайне быстро изменяющейся инфраструктуре. +Нативная облачная безопасность тесно связана с практикой, известной как [DevSecOps](/ru/devsecops/). + +## Какую проблему решает + +Традиционные модели безопасности строились с учетом ряда допущений, которые больше не актуальны. +Нативные облачные приложения часто меняются, используют большое количество инструментов и библиотек с открытым исходным кодом, +работают в инфраструктуре, контролируемой вендором, и подвержены быстрым изменениям инфраструктуры. +Ревизии кода, длительные циклы обеспечения качества, сканирование уязвимостей на хостах +и проверки безопасности в самый последний момент не соответствуют потребностям нативных облачных приложений. + +## Как именно решает проблему + +Нативная облачная безопасность — новый подход к защите приложений, +предполагающий переход от традиционных моделей безопасности к таким, +в которых процессы обеспечения безопасности включены в каждый этап релизного цикла. +Ручные аудиты и проверки в значительной степени заменяются автоматизированным сканированием. +Пайплайны быстрого релиза кода интегрированы с инструментами, которые сканируют код на наличие уязвимостей до его компиляции. +Библиотеки с открытым исходным кодом берутся из надежных источников и отслеживаются на предмет наличия уязвимостей. +Вместо того чтобы замедлять изменения, модель нативной облачной безопасности способствует им, +постоянно обновляя уязвимые компоненты или следя за тем, чтобы инфраструктура регулярно обновлялась. From 621ecd11e5e1aa606a14bbadd466ec7099fd2ce2 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:43:17 +0300 Subject: [PATCH 095/130] [ru] Localize cluster.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update cluster.md A few adjustments by Timur Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/cluster.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 content/ru/cluster.md diff --git a/content/ru/cluster.md b/content/ru/cluster.md new file mode 100644 index 0000000000..877424546b --- /dev/null +++ b/content/ru/cluster.md @@ -0,0 +1,26 @@ +--- +title: Кластер +status: Completed +category: Concept +tags: ["infrastructure", "fundamental", ""] +--- + +Кластер — группа компьютеров или приложений, которые объединены общей целью и работают совместно. +В контексте нативных облачных вычислений этот термин чаще всего применяется к [Kubernetes](/ru/kubernetes/). +Кластер Kubernetes — это набор сервисов (или рабочих нагрузок), каждый из которых выполняется в собственном контейнере (и обычно на разных машинах). +Совокупность всех этих [контейнеризованных](/ru/containerization/) сервисов, соединенных по сети, представляет собой кластер. + +## Какую проблему решает + +Программное обеспечение, работающее на одном компьютере, представляет собой единую точку отказа: +если этот компьютер сломается или кто-то случайно отключит его питание, +критически важная для бизнеса система может быть выведена из строя. +Именно поэтому современное программное обеспечение, как правило, строится в виде [распределенных приложений](/distributed-apps/), объединенных в кластеры. + +## Как именно решает проблему + +Распределенные приложения, объединенные в кластеры, работают на множестве вычислительных машин, что позволяет избежать появления единой точки отказа. +Однако создавать распределенные системы непросто. +На самом деле этим вопросам посвящена отдельная дисциплина в области компьютерных наук. +Потребность в глобальных системах и годы проб и ошибок привели к созданию нового типа технологического стека — [нативных облачных технологий](/ru/cloud-native-tech/). +Эти новые технологии выступают строительными блоками, которые облегчают эксплуатацию и упрощают создание распределенных систем. From e30f6be931f965cf8f2152f7f29f2d6b5fe2a9b7 Mon Sep 17 00:00:00 2001 From: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:48:40 +0300 Subject: [PATCH 096/130] [ru] Localize container-image.md Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update section headers Signed-off-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Update container-image.md A few fixes with some important words and terms Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/container-image.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 content/ru/container-image.md diff --git a/content/ru/container-image.md b/content/ru/container-image.md new file mode 100644 index 0000000000..4142003242 --- /dev/null +++ b/content/ru/container-image.md @@ -0,0 +1,27 @@ +--- +title: Образ контейнера +status: Feedback Appreciated +category: concept +tags: ["", "", ""] +--- + +Образ контейнера — это неизменяемый статический файл, содержащий зависимости, необходимые для создания [контейнера](/ru/container/). +Эти зависимости могут включать один исполняемый бинарный файл, +системные библиотеки, системные инструменты, переменные окружения и другие необходимые настройки и компоненты платформы. +Образы контейнеров создаются в ходе [контейнеризации](/ru/containerization/) приложения и обычно хранятся в реестрах контейнеров (container registry), +откуда их можно скачать и запустить в виде изолированного процесса с помощью интерфейса исполнения для контейнеров (Container Runtime Interface, CRI). +Фреймворк, с помощью которого создается образ контейнера, должен соответствовать стандарту, определенному Open Container Initiative (OCI). + +## Какую проблему решает + +Традиционно серверы настраиваются под конкретное окружение, и затем на них развертываются приложения. +Любое несоответствие конфигурации окружений — большая проблема, которая часто приводит к простоям или неудачным развертываниям. +Окружение приложения должно быть повторяемым и строго определенным, +в противном случае возрастает вероятность возникновения ошибок, связанных с окружением. +Если окружение настроено с ошибками или не должным образом, [горизонтальное](/horizontal-scaling/) и [вертикальное](/vertical-scaling/) масштабирование приложений становится проблематичным. + +## Как именно решает проблему + +Образы контейнеров содержат приложение со всеми его runtime-зависимостями, например, с сервером приложения. +Это позволяет добиться повторяемости и воспроизводимости в любых окружениях, включая компьютер разработчика. +Образы контейнеров могут использоваться для запуска необходимого количества контейнеров, что облегчает [масштабирование](/scalability/). From bed98724989f95252aab3b5a3fe2ec6abea647fb Mon Sep 17 00:00:00 2001 From: Ilya Lobkov Date: Sun, 31 Mar 2024 22:24:01 +0200 Subject: [PATCH 097/130] Apply suggestions from code review Co-authored-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: Ilya Lobkov --- content/ru/ebpf.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/content/ru/ebpf.md b/content/ru/ebpf.md index 1424324f6c..345fd42f37 100644 --- a/content/ru/ebpf.md +++ b/content/ru/ebpf.md @@ -5,32 +5,32 @@ category: Technology tags: ["architecture", "networking", "security"] --- -eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) это технология, -которая позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс +Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) +позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс без необходимости изменять код ядра или загружать модули ядра. -ОС Линукс имеет два пространства: пространство ядра (kernel space) и пользовательское (user space). +В ОС Линукс есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space). Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению. -Приложения находятся в пользовательском пространстве. +Приложения находятся в пространстве пользователя. Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру. -Для приложений, требующих большей свободы действий, например, для прямого доступа к аппаратному обеспечению, -ядро может быть расширено за счёт моделей ядра Линукс. -Такой подход расширяет стандартные функции ядра, давая приложениям доступ к низкоуровневым компонентам. +Для приложений, требующих большей свободы действий, например, прямого доступа к аппаратному обеспечению, +ядро может быть расширено за счёт модулей ядра Линукс. +Такой подход расширяет стандартные функции ядра, открывая приложениям доступ к низкоуровневым компонентам. Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой. ## Какую проблему решает -Как правило, приложения работают в пользовательском пространстве, -и если возникает необходимость в привилегированном доступе (например, доступ к аппаратному обеспечению), -приложение отправляет запрос к ядру также известный как "системный вызов". +Как правило, приложения работают в пространстве пользователя. +Если возникает необходимость в привилегированном доступе (например, к аппаратному обеспечению), +приложение отправляет запрос к ядру, также известный как «системный вызов». В большинстве случает такой подход прекрасно работает. Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе. Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью. Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра. -Но несмотря на преимущества, такой подход влечет за собой риски безопасности. -Код модулей ядра работает в пространстве ядра, а это значит, что сбой модуля неминуемо приводит к сбою всего ядра и как следствие — сбою всей аппаратной системы. -Вдобавок, модули ядра имеют повышенные привилегии и прямой доступ к системным ресурсам. Без должной безопасности, они могут стать источником уязвимостей для злоумышленников. +Увы, у этого подхода есть не только плюсы, но и минусы (в первую очередь связанные с безопасностью). +Модули ядра работают в пространстве ядра. Это означает, что сбой модуля неминуемо приводит к сбою ядра и, как следствие, падению всей системы. +Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Без должной защиты этим могут воспользоваться злоумышленники. ## Как именно решает проблему @@ -38,8 +38,8 @@ eBPF (англ. extended Berkley Packet Filter — расширенный фил eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски. Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей". Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации. -Верификатор проверяет eBPF программу на наличие потенциально небезопасного кода, +Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода, такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра. -Верификация гарантирует что eBPF программа не войдет в бесконечный цикл и не приведет к сбою ядра. -Эти меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре, по сравнению с модулями ядра Линукс. +Верификация гарантирует, что eBPF-программа не войдет в бесконечный цикл и не приведет к сбою ядра. +Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Линукс. From fafac928043c17b4045f75ef3ac8c68caf39cd5e Mon Sep 17 00:00:00 2001 From: Ilya Lobkov Date: Sun, 31 Mar 2024 22:24:42 +0200 Subject: [PATCH 098/130] Update content/ru/ebpf.md Co-authored-by: Kirill Kononovich <41591254+kirkonru@users.noreply.github.com> Signed-off-by: Ilya Lobkov --- content/ru/ebpf.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/ru/ebpf.md b/content/ru/ebpf.md index 345fd42f37..bc4690f0d0 100644 --- a/content/ru/ebpf.md +++ b/content/ru/ebpf.md @@ -34,9 +34,9 @@ tags: ["architecture", "networking", "security"] ## Как именно решает проблему -По сравнению с модулями ядра, eBPF предоставляет более контролируемую и ограниченную среду для исполнения пользовательских программ. -eBPF программа запускается в "песочнице" внутри ядра, обеспечивая тем самым изоляцию и снижая риски. -Если в eBPF программе обнаружится уязвимость или недочет, то их воздействие будет ограничено "песочницей". +По сравнению с модулями ядра, eBPF позволяет запускать пользовательские программы в более контролируемой и ограниченной среде. +eBPF-программа работает в «песочнице» внутри ядра. Тем самым обеспечивается необходимая изоляция и снижаются риски. +Если в eBPF-программе обнаружится уязвимость или недочет, то их воздействие будет ограничено «песочницей». Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации. Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода, такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра. From 8b804e8ae53e24fec18a7feb34c2c2cd70478999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodolfo=20Mart=C3=ADnez=20Vega?= Date: Mon, 1 Apr 2024 22:38:07 -0600 Subject: [PATCH 099/130] Update "Cloud Native Landscape's observability section" link (#3024) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current link to the CNCF Landscape observability section is not working anymore. This PR updates the link to a valid one. Signed-off-by: Rodolfo Martínez Vega --- content/en/observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/observability.md b/content/en/observability.md index c7baf913ba..013f26c883 100644 --- a/content/en/observability.md +++ b/content/en/observability.md @@ -9,7 +9,7 @@ Observability is a system property that defines the degree to which the system c It allows users to understand a system's state from these external outputs and take (corrective) action. Computer systems are measured by observing low-level signals such as CPU time, memory, disk space, and higher-level and business signals, including API response times, errors, transactions per second, etc. -These observable systems are **observed** (or monitored) through specialized tools, so-called observability tools. A list of these tools can be viewed in the [Cloud Native Landscape's observability section](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category). +These observable systems are **observed** (or monitored) through specialized tools, so-called observability tools. A list of these tools can be viewed in the [Cloud Native Landscape's observability section](https://landscape.cncf.io/?group=projects-and-products&view-mode=card#observability-and-analysis--observability). Observable systems yield meaningful, actionable data to their operators, allowing them to achieve favorable outcomes (faster incident response, increased developer productivity) and less toil and downtime. From d16f2febc3f92c9f0141d90e928359200e4a74bf Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Tue, 2 Apr 2024 19:49:03 +0900 Subject: [PATCH 100/130] [ja] Localize Multitenancy into Japanese (#3021) Signed-off-by: Junya Okabe Signed-off-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/multitenancy.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 content/ja/multitenancy.md diff --git a/content/ja/multitenancy.md b/content/ja/multitenancy.md new file mode 100644 index 0000000000..f65ced6090 --- /dev/null +++ b/content/ja/multitenancy.md @@ -0,0 +1,34 @@ +--- +title: マルチテナンシー +status: Completed +category: プロパティ +tags: ["アーキテクチャ", "プロパティ", ""] +--- + +マルチテナンシーとは、複数のテナントにサービスを提供する単一のソフトウェアインストールを指します。 +テナントとは、自身のデータセットでソフトウェアを利用するユーザー、アプリケーション、あるいはそれらのグループのことです。 +これらのテナントは(所有者による明示的な指示がある場合を除いて)データを共有せず、互いの存在を意識することもありません。 + +テナントは、1人の独立したユーザーで1つのログインIDを持つほど小さくなり得ます。 +例えば、個人の生産性を高めるソフトウェアを考えてみてください。 +あるいは、何千ものログインIDを持つ企業全体ほど大きくもなり得ます。 +これらは、それぞれが独自の権限を持ちつつも多方面で相互に関連しています。 +マルチテナントソフトウェアの例には、Google Mail、Google Docs、Microsoft Office 365、Salesforce CRM、Dropboxなどがあり、完全または部分的にマルチテナントソフトウェアとして分類されます。 + +## 解決すべき問題はなんですか + +マルチテナンシーがなければ、各テナントに専用のソフトウェアインストールが必要になります。 +これはリソース利用とメンテナンスの労力を増加させ、最終的にはソフトウェアコストを増加させます。 + +## どのように役に立つのでしょうか + +マルチテナントソフトウェアは、各テナントに分離された環境(作業データ、設定、認証情報リストなど)を提供し、同時に複数のテナントにサービスを提供します。 +テナントの観点から見れば、各々が専用のソフトウェアインストールを持っているように見えますが、実際にはすべてが1つを共有しています。 +これはソフトウェアをサーバー上で実行し、テナントがインターフェイスおよび/あるいは[API](/ja/application-programming-interface/)を通じてネットワーク経由で接続できるようにすることで実現されます([クライアントサーバーアーキテクチャ](/ja/client-server-architecture/)も参照)。 +マルチテナントソフトウェアを使用すると、テナントはお互いに影響を与えることなく定義された制御された方法でのみ、1つのインストールのリソースを共有することができます。 +ソフトウェア提供者側の結果としてのリソース節約は、テナントに渡されユーザーにとってのソフトウェアコストを大幅に削減することができます(改めてウェブベースのEメールやドキュメントエディターを考えてみてください)。 + +## 関連する用語はありますか + +マルチテナンシーはSaaSと同義ではありません。 +しかし、SaaSがマルチテナントであることは非常に一般的であり、その主要な利点の1つとしてマルチテナンシーを特徴づけることがあります。 From 2221859437e6cb9b41fe7198b416307057cd96ac Mon Sep 17 00:00:00 2001 From: t-katsumura <83070078+t-katsumura@users.noreply.github.com> Date: Wed, 3 Apr 2024 18:58:07 +0900 Subject: [PATCH 101/130] [ja] Localize Service Discovery into Japanese (#3022) Signed-off-by: t-katsumura Signed-off-by: t-katsumura <83070078+t-katsumura@users.noreply.github.com> Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/service-discovery.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 content/ja/service-discovery.md diff --git a/content/ja/service-discovery.md b/content/ja/service-discovery.md new file mode 100644 index 0000000000..9ba47c96e5 --- /dev/null +++ b/content/ja/service-discovery.md @@ -0,0 +1,21 @@ +--- +title: サービスディスカバリー +status: Completed +category: コンセプト +tags: ["ネットワーキング", "", ""] +--- + +サービスディスカバリーはサービスを構成する個々のインスタンスを見つけるプロセスです。 +サービスディスカバリーツールは、サービスを構成するさまざまなノードやエンドポイントを追跡します。 + +## 解決すべき問題はなんですか + +クラウドネイティブアーキテクチャは、動的かつ流動的で常に変化しています。 +[コンテナ化](/ja/containerization/)されたアプリケーションは、その寿命の中で複数回起動と停止をする可能性があります。 +起動や停止が起きるたびに新しいアドレスを持つことになり、それを見つけたい任意のアプリケーションは、新しい位置情報を提供するツールを必要とします。 + +## どのように役に立つのでしょうか + +サービスディスカバリーは、ネットワーク内のアプリケーションを追跡し、必要な時にお互いを見つけられるようにします。 +そして、個々のサービスを識別し見つけるための共通の場所を提供します。 +サービスディスカバリーエンジンはデータベースのようなツールで、どのようなサービスが存在し、それらをどのように配置するかについての情報を保存します。 From 12caa410a7835caa2dec5e8e65eb47aad00c0842 Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Wed, 3 Apr 2024 18:59:15 +0900 Subject: [PATCH 102/130] [ja] Fix observability and portability (#3025) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/api-gateway.md | 2 +- content/ja/cloud-native-apps.md | 2 +- content/ja/ebpf.md | 2 +- content/ja/observability.md | 8 ++++---- content/ja/portability.md | 4 ++-- content/ja/service-mesh.md | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/ja/api-gateway.md b/content/ja/api-gateway.md index 8efe5d6abd..b7ba89a154 100644 --- a/content/ja/api-gateway.md +++ b/content/ja/api-gateway.md @@ -24,6 +24,6 @@ APIゲートウェイを使用するとアプリのコードを変更するこ 組織の横断的なビジネスロジックやセキュリティロジックを一箇所に集中して適用するのを容易にします。 また、アプリケーションの利用者がすべてのニーズに対して単一のアドレスを通じてアクセスできるようにもします。 APIゲートウェイは、システム内のすべてのウェブサービスへのリクエストに対して単一のアクセスポイントを提供することで、 -セキュリティや[可観測性](/ja/observability/)などの運用上の懸念を簡素化することができます。 +セキュリティや[オブザーバビリティ](/ja/observability/)などの運用上の懸念を簡素化することができます。 すべてのリクエストがAPIゲートウェイを通過するため、 メトリクス収集、レート制限、認証などの機能を追加するための単一の場所となります。 diff --git a/content/ja/cloud-native-apps.md b/content/ja/cloud-native-apps.md index 51cdca28d6..df5256db5f 100644 --- a/content/ja/cloud-native-apps.md +++ b/content/ja/cloud-native-apps.md @@ -13,4 +13,4 @@ tags: ["アプリケーション", "基礎", ""] ## どのように役に立つのでしょうか -クラウドネイティブアプリケーションへの万能な道はありませんが、いくつかの共通点はあります。クラウドネイティブアプリケーションは弾力性があり、管理しやすく、それに付随する一連のクラウドサービスによって支援されます。さまざまなクラウドサービスによって、高度な[可観測性](/ja/observability/)が有効になり、ユーザーは問題が深刻化する前に発見して対処することができます。堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で、インパクトの大きい変更を頻繁にかつ予想通りに行うことができます。 +クラウドネイティブアプリケーションへの万能な道はありませんが、いくつかの共通点はあります。クラウドネイティブアプリケーションは弾力性があり、管理しやすく、それに付随する一連のクラウドサービスによって支援されます。さまざまなクラウドサービスによって、高度な[オブザーバビリティ](/ja/observability/)が有効になり、ユーザーは問題が深刻化する前に発見して対処することができます。堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で、インパクトの大きい変更を頻繁にかつ予想通りに行うことができます。 diff --git a/content/ja/ebpf.md b/content/ja/ebpf.md index 15ee85a515..1b8747de22 100644 --- a/content/ja/ebpf.md +++ b/content/ja/ebpf.md @@ -18,7 +18,7 @@ Linuxシステムには2種類の空間があります。カーネル空間と ## 解決すべき問題はなんですか 一般的に、アプリケーションはユーザー空間で動作し、アプリケーションがカーネルから(例えばハードウェアへのアクセスなどの)権限を要求するときは、いわゆる「システムコール」を介して要求します。 多くの場合、このアプローチはうまく働きますが、低水準なシステムに対するより柔軟なアクセスを開発者が必要とする場合があります。 -可観測性、セキュリティやネットワーク機能はこういった場合の良い例です。 +オブザーバビリティ、セキュリティやネットワーク機能はこういった場合の良い例です。 この実現のため、Linuxカーネルモジュールを使ってカーネルのソースコードを修正することなくカーネルの基礎を拡張することができます。 Linuxカーネルモジュールの使用には利点もありますが、セキュリティリスクももたらします。 Linuxカーネルモジュールはカーネル空間の内部で動作するため、カーネルをクラッシュさせる可能性があり、カーネルがクラッシュするということは機器全体もクラッシュすることになります。 diff --git a/content/ja/observability.md b/content/ja/observability.md index 45691feaaf..7feabe940e 100644 --- a/content/ja/observability.md +++ b/content/ja/observability.md @@ -1,15 +1,15 @@ --- -title: 可観測性 +title: オブザーバビリティ(可観測性) status: Completed category: コンセプト tags: ["プロパティ", "", ""] --- -可観測性とは、システムが実用的な洞察をどの程度出力できるかを決める性質のことを指します。 -可観測性により、ユーザーはシステム外部への出力を元にそのシステムの状態を理解し、(是正)措置を取ることが可能になります。 +オブザーバビリティとは、システムが実用的な洞察をどの程度出力できるかを決める性質のことを指します。 +オブザーバビリティにより、ユーザーはシステム外部への出力を元にそのシステムの状態を理解し、(是正)措置を取ることが可能になります。 コンピューターシステムは、CPU時間・メモリ・ディスク容量といった低水準のシグナルや、APIの応答時間・エラー数・秒間トランザクション数などを含む高水準でビジネスに直結するシグナルを観測することで評価されます。 -可観測なシステムは、いわゆる可観測性ツールと言われる専門のツールで**観測**(もしくは監視)されます。可観測性ツールの一覧は[クラウドネイティブ ランドスケープの可観測性セクション](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category)で見られます。 +可観測なシステムは、いわゆるオブザーバビリティツールと言われる専門のツールで**観測**(もしくは監視)されます。オブザーバビリティツールの一覧は[クラウドネイティブ ランドスケープのオブザーバビリティセクション](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category)で見られます。 可観測なシステムは、有意義かつ実用的なデータを運用者に提供し、運用者が(インシデントへのより素早い対応や開発者の生産性向上といった)好ましい結果を出すことを可能にします。システムのダウンタイムとともに、手間のかかる手作業での仕事も少なくなります。 diff --git a/content/ja/portability.md b/content/ja/portability.md index 60d8f0eb62..4136bd9895 100644 --- a/content/ja/portability.md +++ b/content/ja/portability.md @@ -1,11 +1,11 @@ --- -title: 可搬性 +title: ポータビリティ(可搬性) status: Completed category: プロパティ tags: ["基礎", "プロパティ", ""] --- -ソフトウェアの特性である可搬性は、再利用性の一つの形態です。 +ソフトウェアの特性であるポータビリティは、再利用性の一つの形態です。 クラウドプロバイダー、オペレーティングシステムやベンダーなどの特定の運用環境へのロックインを避けるのに役立ちます。 伝統的に、ソフトウェアは特定の環境(例えばAWSやLinux)向けに構築されがちです。 diff --git a/content/ja/service-mesh.md b/content/ja/service-mesh.md index cd8c26398a..0a7c1057f6 100644 --- a/content/ja/service-mesh.md +++ b/content/ja/service-mesh.md @@ -8,7 +8,7 @@ tags: ["ネットワーキング", "", ""] [マイクロサービス](/ja/microservices-architecture/)の世界では、アプリケーションは複数の小さな[サービス](/ja/service/)に分割され、それらがネットワークを介して通信します。 あなたのWi-Fiネットワークのように、コンピューターネットワークは本質的には信頼性が低く、ハッキングされやすく、しばしば遅いものです。 サービスメッシュは、サービス間のトラフィック(すなわち通信)を管理することによって、この新しい課題に対処します。 -サービスメッシュは、すべてのサービスにわたって[信頼性](/ja/reliability/)、[可観測性](/ja/observability/)、およびセキュリティ機能を均一に追加します。 +サービスメッシュは、すべてのサービスにわたって[信頼性](/ja/reliability/)、[オブザーバビリティ](/ja/observability/)、およびセキュリティ機能を均一に追加します。 ## 解決すべき問題はなんですか @@ -22,5 +22,5 @@ tags: ["ネットワーキング", "", ""] ## どのように役に立つのでしょうか サービスメッシュは、コードの変更を必要とせずに、クラスタ全体のすべてのサービスに対して、 -信頼性、可観測性、およびセキュリティ機能を均一に追加します。 +信頼性、オブザーバビリティ、およびセキュリティ機能を均一に追加します。 サービスメッシュが登場する前は、その機能をすべての個々のサービスに組み込む必要があり、バグや技術的負債の潜在的な原因となっていました。 From 7cf2fe9047de1119df4782eef65545390b2d5d25 Mon Sep 17 00:00:00 2001 From: Dmitry Shurupov Date: Thu, 4 Apr 2024 12:21:02 +0700 Subject: [PATCH 103/130] Add Russian to config.toml Signed-off-by: Dmitry Shurupov --- config.toml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/config.toml b/config.toml index 408c411fab..d43244d07c 100644 --- a/config.toml +++ b/config.toml @@ -132,11 +132,19 @@ weight = 9 [languages.pt-br.params] description = "O Projeto CNCF Glossário Cloud Native se destina a ser usado como uma referência para termos comuns usados ao falar sobre aplicações nativas de nuvem." +[languages.ru] +contentDir = "content/ru" +languageName = "Русский (Russian)" +title = "Глоссарий Cloud Native" +weight = 10 +[languages.ru.params] +description = "Глоссарий Cloud Native — справочник по общим терминам, имеющим отношение к нативным облачным приложениям и технологиям. Разрабатывается фондом CNCF." + [languages.zh-cn] contentDir = "content/zh-cn" languageName = "简体中文 (Simplified Chinese)" title = "Cloud Native(云原生) Glossary" -weight = 10 +weight = 11 [languages.zh-cn.params] description = "CNCF 云原生 Glossary 项目旨在用作讨论云原生应用程序时常用术语的参考" @@ -144,7 +152,7 @@ description = "CNCF 云原生 Glossary 项目旨在用作讨论云原生应用 contentDir = "content/es" languageName = "Español (Spanish)" title = "Cloud Native Glosario" -weight = 11 +weight = 12 [languages.es.params] description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como una referencia para los terminos comunes usados cuando se habla acerca de las aplicaciones nativas para la nube." @@ -152,7 +160,7 @@ description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como contentDir = "content/zh-tw" languageName = "繁體中文 (Traditional Chinese)" title = "Cloud Native(雲端原生) Glossary" -weight = 12 +weight = 13 [languages.zh-tw.params] description = "CNCF 雲端原生 Glossary 專案旨在用作討論雲端原生應用程式時常用術語的參考" @@ -160,7 +168,7 @@ description = "CNCF 雲端原生 Glossary 專案旨在用作討論雲端原生 title = "Cloud Native Sözlüğü" languageName ="Türkçe (Turkish)" contentDir = "content/tr" -weight = 13 +weight = 14 [languages.tr.params] description = "CNCF Cloud Native Sözlüğü projesi, cloud native uygulamalardan bahsederken kullanılan yaygın terimler için bir referans olarak kullanılmak üzere tasarlanmıştır." @@ -168,10 +176,9 @@ description = "CNCF Cloud Native Sözlüğü projesi, cloud native uygulamalarda contentDir = "content/ur" languageName = "اردو (Urdu)" title = "کلاؤڈ کی مقامی لغت" -weight = 14 +weight = 15 [languages.ur.params] description = "CNCF کلاؤڈ کی مقامی لغت کا مقصد کلاؤڈ مقامی ایپلی کیشنز کے بارے میں بات کرتے وقت استعمال ہونے والی عام اصطلاحات کے حوالے کے طور پر استعمال کرنا ہے۔" ->>>>>>> main [markup] [markup.goldmark] From 3c80e03195e73726986f3d865764f543f8100355 Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Thu, 4 Apr 2024 16:11:53 +0900 Subject: [PATCH 104/130] [ja] Fix o11y link url (#3030) Signed-off-by: Kazunori Otani --- content/ja/observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ja/observability.md b/content/ja/observability.md index 7feabe940e..114bb8c56f 100644 --- a/content/ja/observability.md +++ b/content/ja/observability.md @@ -9,7 +9,7 @@ tags: ["プロパティ", "", ""] オブザーバビリティにより、ユーザーはシステム外部への出力を元にそのシステムの状態を理解し、(是正)措置を取ることが可能になります。 コンピューターシステムは、CPU時間・メモリ・ディスク容量といった低水準のシグナルや、APIの応答時間・エラー数・秒間トランザクション数などを含む高水準でビジネスに直結するシグナルを観測することで評価されます。 -可観測なシステムは、いわゆるオブザーバビリティツールと言われる専門のツールで**観測**(もしくは監視)されます。オブザーバビリティツールの一覧は[クラウドネイティブ ランドスケープのオブザーバビリティセクション](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category)で見られます。 +可観測なシステムは、いわゆるオブザーバビリティツールと言われる専門のツールで**観測**(もしくは監視)されます。オブザーバビリティツールの一覧は[クラウドネイティブ ランドスケープのオブザーバビリティセクション](https://landscape.cncf.io/?group=projects-and-products&view-mode=card#observability-and-analysis--observability)で見られます。 可観測なシステムは、有意義かつ実用的なデータを運用者に提供し、運用者が(インシデントへのより素早い対応や開発者の生産性向上といった)好ましい結果を出すことを可能にします。システムのダウンタイムとともに、手間のかかる手作業での仕事も少なくなります。 From fcbe86666c667a69b30cedd7ac32999e47464e95 Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Fri, 5 Apr 2024 19:37:24 +0900 Subject: [PATCH 105/130] Localize devsecops into Japanese (#3032) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/devsecops.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 content/ja/devsecops.md diff --git a/content/ja/devsecops.md b/content/ja/devsecops.md new file mode 100644 index 0000000000..9e7b259e54 --- /dev/null +++ b/content/ja/devsecops.md @@ -0,0 +1,23 @@ +--- +title: DevSecOps +status: Completed +category: コンセプト +tags: ["方法論", "セキュリティ", ""] +--- + +DevSecOpsという用語は、開発、運用、およびセキュリティの責任の文化的統合を指します。 +これは、開発と運用のワークフローを最小限に乱すことなく、セキュリティの優先順位を含むように[DevOps](/ja/devops/)アプローチを拡張します。 +DevOpsと同様に、DevSecOpsは採用された技術によって推進される文化的変革であり、独自の適用方法があります。 + +## 解決すべき問題はなんですか + +DevOpsの実践には、[継続的インテグレーション](/ja/continuous-integration/)、[継続的デリバリー](/ja/continuous-delivery/)、および[継続的デプロイメント](/ja/continuous-deployment/)が含まれ、アプリケーションの開発とリリースサイクルを加速します。 +残念ながら、自動化されたリリースプロセスが組織のすべてのステークホルダーを適切に表現できない場合には、既存の問題を悪化させる可能性があります。 +セキュリティのニーズを考慮せずに構築された新しいソフトウェアを迅速にリリースするプロセスは、組織のセキュリティ態勢を低下させる可能性があります。 + +## どのように役に立つのでしょうか + +DevSecOpsは、チームのサイロを壊し、安全な自動化されたワークフローの作成を促進することに焦点を当てています。 +セキュリティアプリケーションを選択する際、組織は開発者を支援する自動化されたCI/CDワークフローとポリシーの施行を活用する必要があります。 +障害物になることではなく、セキュリティポリシーを施行しつつ、ユーザーにプロジェクトを前進させる方法に関する正確な情報を提供することが目標です。 +適切に実装された場合、組織はより良いチームコミュニケーションを得て、セキュリティ事故と関連コストを減らすことができます。 From 62ec08769a5140664905e422a554dd67d27aa73a Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Mon, 8 Apr 2024 11:10:44 +0900 Subject: [PATCH 106/130] [ja] Localize Event Streaming into Japanese (#3033) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/event-streaming.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ja/event-streaming.md diff --git a/content/ja/event-streaming.md b/content/ja/event-streaming.md new file mode 100644 index 0000000000..32fb7334ee --- /dev/null +++ b/content/ja/event-streaming.md @@ -0,0 +1,30 @@ +--- +title: イベントストリーミング +status: Completed +category: コンセプト +tags: ["方法論", "ネットワーキング", ""] +--- + +イベントストリーミングは、ソフトウェアが一つのアプリケーションから別のアプリケーションにイベントデータを送信し、何をしているかを継続的に通信するアプローチです。 +あるサービスが行うすべてのことを他のすべてのサービスにブロードキャストする様子を想像してください。 +サービスによって行われる各活動はイベントと呼ばれ、これがイベントストリーミングの由来です。 +たとえば、NASDAQは毎秒、株価と商品価格の更新を受け取ります。 +特定の株式セットを監視するアプリケーションを動かすとしたら、その情報をほぼリアルタイムで受け取りたいでしょう。 +Yahoo! Financeは、NASDAQから引っ張ってきたデータを引用し、その情報(またはイベント)を購読するアプリケーションに送信(またはストリーム)する[API](/ja/application-programming-interface/)を提供しています。 +送信されるデータおよびそのデータ(株価)の変化がイベントであり、それらをアプリケーションに配信するプロセスがイベントストリーミングです。 + +## 解決すべき問題はなんですか + +従来、Yahoo! Financeは単一のTCPリクエストを使用していました。 +これは、イベントごとに接続を確立する必要があるため、非常に非効率的です。 +データがよりリアルタイム性を帯びるにつれて、そのような解決策をスケーリングすることは非効率的になります。 +接続を一度開いてイベントが流れるようにすることは、リアルタイム収集として理想的です。 +生成されるデータの量は指数関数的に増加しており、それに伴いデータの状態は絶えず変動しています。 +開発者とユーザーは、そのデータをほぼリアルタイムで見ることができる必要があります。 + +## どのように役に立つのでしょうか + +イベントストリーミングにより、データの変更をソースから受信者に通信できます。 +情報を要求するためにサービスが待つ代わりに、サービスはそのすべてのイベント(または活動)を継続的にストリームします。 +情報がどうなるかについては関心を持ちません。 +必要なことを行い、それをブロードキャストするだけで、他のどのサービスとも完全に独立しています。 From 6e32fcafa5b091d123105c79839df4f31d77551d Mon Sep 17 00:00:00 2001 From: shinjichan <37719943+shinjichan@users.noreply.github.com> Date: Mon, 8 Apr 2024 11:14:23 +0900 Subject: [PATCH 107/130] [ja] Localize Datacenter into Japanese (#3034) Signed-off-by: shinji Signed-off-by: shinjichan <37719943+shinjichan@users.noreply.github.com> Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/data-center.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 content/ja/data-center.md diff --git a/content/ja/data-center.md b/content/ja/data-center.md new file mode 100644 index 0000000000..2c471e456a --- /dev/null +++ b/content/ja/data-center.md @@ -0,0 +1,25 @@ +--- +title: データセンター +status: Completed +category: テクノロジー +tags: ["インフラストラクチャー", "基礎", ""] +--- + +データセンターはコンピューター(その多くはサーバー)を収容するために設計された特別な建物または施設です。 +これらのデータセンターが[クラウドコンピューティング](/ja/cloud-computing/)に重点を置いている場合、高速なインターネット回線に接続される傾向があります。 +データセンターが入っている建物には、停電時に電力を供給する発電機や、発熱するコンピューターを冷却する強力な空調機など、停電が発生した場合でもサービスを維持できる設備が備えられています。 + +## 解決すべき問題は何ですか + +1990年代後半にデータセンターが普及するまでは、主に特定の業務プロセスを実行するための専用のコンピューターであり、または個人が作業を行うためにコンピューターが使用されていました。 +ただし、コンピューターのリソース(ハードディスク、メモリ、CPU)は限られているため、その上で実行されるアプリケーションには厳しい制約があり、実行できるアプリケーションの種類が制限されます。 +データセンターが普及する前は、アプリケーションの規模が実行されているコンピューターの容量によって制限されていました。 +しかし、GmailやNetflixのような大規模なアプリケーション(携帯電話やコンピューターのユーザーインターフェースではなくサーバーサイドアプリ)について考えてみると、1 台のコンピューターが提供できる能力よりも多くのコンピューティング能力が必要になります。 +そこでデータセンターが登場します。 + +## どのように役に立つのでしょうか + +ユーザーはさまざまなサーバーに接続することで、「スーパーコンピューター」のように機能する[分散システム](/ja/distributed-systems/)を構築できます。 +複数のマシンの能力を統合しているため、より大規模なサーバーサイドアプリや業務プロセスを実行したり、より強力な計算タスクを処理したりできるようになりました。 +私たちが日常的に使用するほとんどのアプリケーションがデータセンターで実行されています。 +[パブリッククラウド](/ja/cloud-computing/)はクライアントにコンピューターリソースを貸し出すデータセンターです。ここ数年、企業所有のデータセンターからパブリッククラウドへ移行している事例が多数あります。 From be0cb7408094e187a28565e6ae45d76eaf6aa79f Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Mon, 8 Apr 2024 20:50:18 +0900 Subject: [PATCH 108/130] [ja] Localize Infrastructure as a Service (IaaS) into Japanese (#2968) Signed-off-by: Junya Okabe Signed-off-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/infrastructure-as-a-service.md | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 content/ja/infrastructure-as-a-service.md diff --git a/content/ja/infrastructure-as-a-service.md b/content/ja/infrastructure-as-a-service.md new file mode 100644 index 0000000000..faab078017 --- /dev/null +++ b/content/ja/infrastructure-as-a-service.md @@ -0,0 +1,25 @@ +--- +title: Infrastructure as a Service (IaaS) +status: Completed +category: テクノロジー +tags: ["インフラストラクチャー", "", ""] +--- + +Infrastructure as a service (IaaS)は、[クラウドコンピューティング](/ja/cloud-computing/)のサービスモデルの一つであり、[物理的](/ja/bare-metal-machine/)または[仮想化](/ja/virtualization/)されたコンピューティングリソース、ストレージ、ネットワークリソースをオンデマンドで提供し、従量課金モデルに基づいて利用できます。 +クラウドプロバイダーはハードウェアとソフトウェアを所有、運用し、これらをパブリック、プライベート、またはハイブリッドクラウドの形態で消費者に提供します。 + +## 解決すべき問題はなんですか + +従来のオンプレミス環境では、組織はコンピューティングリソースの有効活用にしばしば苦労していました。 +データセンターは、1%の時間しか必要とされない、潜在的なピーク需要に対応するために構築されなければなりません。 +需要が低い時期には、これらのコンピューティングリソースはアイドル状態になります。 +また、予想を超えるワークロードが発生した場合、処理するためのコンピューティングリソースが不足します。 +このようなスケーラビリティの欠如は、コストの増加とリソースの非効率的な使用につながります。 + +## どのように役に立つのでしょうか + +IaaSを利用することで、組織はアプリケーション用のコンピューティングリソースやデータセンターのスペースを購入し、維持する必要がなくなります。 +オンデマンドインフラを使用することで、必要に応じてコンピューティングリソースをレンタルし、[CAPEX](https://ja.wikipedia.org/wiki/資本的支出)と呼ばれる大規模な資本支出を延期しながら、スケールアップあるいはスケールダウンする柔軟性を得ることができます。 + +IaaSは、新しいアプリケーションを実験したり試したりする際の初期コストを削減し、インフラストラクチャーを迅速に展開する施設を提供します。 +クラウドプロバイダーは、開発者が実験し革新するために役立つ、開発あるいはテスト環境にとって優れた選択肢です。 From 1c9756bcddd31cda44f8cd9f5ea08d87b819c768 Mon Sep 17 00:00:00 2001 From: Dmitry Shurupov Date: Tue, 9 Apr 2024 11:59:56 +0700 Subject: [PATCH 109/130] Update _index.md before merging dev-ru Signed-off-by: Dmitry Shurupov --- content/ru/_index.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/content/ru/_index.md b/content/ru/_index.md index 1c50d6f1b1..ff626548f7 100644 --- a/content/ru/_index.md +++ b/content/ru/_index.md @@ -36,7 +36,8 @@ status: Completed Полный список участников проекта можно найти на [отдельной странице](https://github.com/cncf/glossary/graphs/contributors) на GitHub. Хранителями глоссария являются: -- [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/); +- [Seokho Son](https://www.linkedin.com/in/seokho-son/); +- [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/); - [Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/); - [Nate W.](https://www.linkedin.com/in/nate-double-u/); - [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). @@ -46,6 +47,13 @@ status: Completed являются Почетными Хранителями, и мы глубоко признательны за их неоценимый вклад в развитие проекта на протяжении многих лет. +Русскоязычная локализация глоссария Cloud Native была инициирована +усилиями команды Russian Localization Team, изначальный состав которой +сформировали [Кирилл Кононович](https://github.com/kirkonru), +[Тимур Тукаев](https://github.com/tym83) и [Дмитрий Шурупов](https://www.linkedin.com/in/shurupov/). +Со временем свой вклад в локализацию внесли и другие контрибьюторы, +которым мы очень благодарны и всегда рады в канале [#glossary-localization-russian](https://cloud-native.slack.com/archives/C05G46RMQTX). + ## Лицензия Весь код публикуется на условиях лицензии Apache 2.0. From 85a715f8e445b6621bde2bf1acfb6520487d5d4d Mon Sep 17 00:00:00 2001 From: Timur Tukaev <90071493+tym83@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:57:18 +0500 Subject: [PATCH 110/130] Update ebpf.md Some editor's stuff:) Signed-off-by: Timur Tukaev <90071493+tym83@users.noreply.github.com> --- content/ru/ebpf.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/content/ru/ebpf.md b/content/ru/ebpf.md index bc4690f0d0..5c9e696631 100644 --- a/content/ru/ebpf.md +++ b/content/ru/ebpf.md @@ -6,40 +6,39 @@ tags: ["architecture", "networking", "security"] --- Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) -позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Линукс +позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Linux без необходимости изменять код ядра или загружать модули ядра. -В ОС Линукс есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space). +В ОС Linux есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space). Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению. Приложения находятся в пространстве пользователя. Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру. Для приложений, требующих большей свободы действий, например, прямого доступа к аппаратному обеспечению, -ядро может быть расширено за счёт модулей ядра Линукс. -Такой подход расширяет стандартные функции ядра, открывая приложениям доступ к низкоуровневым компонентам. -Однако расширение ядра за счет модулей влечет за собой риски безопасности, делая eBPF привлекательной альтернативой. +ядро может быть расширено за счёт модулей ядра Linux. +Такой подход расширяет функциональность ядра, доступную по умолчанию, открывая приложениям доступ к более низкоуровневым компонентам. +Однако расширение ядра с помощью модулей влечет за собой риски и потенциально снижает безопасность, что делает eBPF привлекательной альтернативой. ## Какую проблему решает Как правило, приложения работают в пространстве пользователя. Если возникает необходимость в привилегированном доступе (например, к аппаратному обеспечению), -приложение отправляет запрос к ядру, также известный как «системный вызов». +приложение отправляет запрос к ядру. такой запрос называется «системный вызов». В большинстве случает такой подход прекрасно работает. Однако бывают ситуации, когда разработчики нуждаются в более низкоуровневом доступе к системе. Такие ситуации, как правило, связаны с наблюдаемостью (observability), безопасностью и работой с сетью. -Использование модулей ядра Линукс позволяет решить вышеупомянутую проблему без изменения исходного кода ядра. -Увы, у этого подхода есть не только плюсы, но и минусы (в первую очередь связанные с безопасностью). +Использование модулей ядра Linux позволяет решить вышеупомянутую проблему без изменения исходного кода ядра. +К сожалению, у этого подхода есть не только плюсы, но и минусы (в первую очередь, связанные с безопасностью). Модули ядра работают в пространстве ядра. Это означает, что сбой модуля неминуемо приводит к сбою ядра и, как следствие, падению всей системы. -Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Без должной защиты этим могут воспользоваться злоумышленники. +Кроме того, модули ядра наделены повышенными привилегиями и имеют прямой доступ к системным ресурсам. Если не обеспечить должную защиту, этими свойствами модулей могут воспользоваться злоумышленники. ## Как именно решает проблему -По сравнению с модулями ядра, eBPF позволяет запускать пользовательские программы в более контролируемой и ограниченной среде. +В отличие от модулей ядра, eBPF позволяет запускать пользовательские программы в более контролируемой и ограниченной среде. eBPF-программа работает в «песочнице» внутри ядра. Тем самым обеспечивается необходимая изоляция и снижаются риски. -Если в eBPF-программе обнаружится уязвимость или недочет, то их воздействие будет ограничено «песочницей». +Даже если в eBPF-программе обнаружится уязвимость или какой-то изъян, их воздействие ограничится «песочницей». Более того, прежде чем программа сможет запуститься внутри ядра, она должна пройти процесс верификации. -Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода, -такого как доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра. +Верификатор проверяет eBPF-программу на наличие потенциально небезопасного кода: например, доступ к памяти за пределами выделенного буфера, бесконечные циклы и неавторизованный доступ к функциям ядра. Верификация гарантирует, что eBPF-программа не войдет в бесконечный цикл и не приведет к сбою ядра. -Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Линукс. +Такие меры безопасности делают eBPF более надежным вариантом запуска приложений в ядре по сравнению с модулями ядра Linux. From fbeb0c4d8779a366b32ce3ca4788a0fbc292d7f7 Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Thu, 11 Apr 2024 02:10:57 +0900 Subject: [PATCH 111/130] [ja] Localize Security Chaos Engineering into Japanese (#3035) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/security-chaos-engineering.md | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 content/ja/security-chaos-engineering.md diff --git a/content/ja/security-chaos-engineering.md b/content/ja/security-chaos-engineering.md new file mode 100644 index 0000000000..06b2f4edbc --- /dev/null +++ b/content/ja/security-chaos-engineering.md @@ -0,0 +1,26 @@ +--- +title: セキュリティカオスエンジニアリング +status: Completed +category: コンセプト +tags: ["セキュリティ", "方法論", ""] +--- + +セキュリティカオスエンジニアリング(SCE)は、[カオスエンジニアリング](/ja/chaos-engineering/)に基づく規律です。 +SCEは、分散システムに対して積極的なセキュリティ実験を行い、乱雑や悪意のある条件に耐えるシステムの能力に信頼を築くために行われます。 +セキュリティカオスエンジニアは、定常状態、仮説、継続的検証、学習した教訓、および緩和の実施を含む科学的方法のループを使用してこれを達成します。 + +## 解決すべき問題はなんですか + +[サイト信頼性エンジニア](/ja/site-reliability-engineering/)(SRE)とサイバーセキュリティエンジニアの主な優先事項は、できるだけ早くサービスを復旧させ、ゼロダウンタイムを目指してビジネスへの影響を最小限に抑えることです。 +SREおよびサイバーセキュリティエンジニアは、障害発生前および障害発生後のインシデント状況の両方に対処します。 +ほとんどのセキュリティ問題は、迅速に発見および修正が難しく、アプリケーションやシステムの機能に影響を与えます。 +さらに、セキュリティインシデントは、開発フェーズ中に発見するのが通常難しいものです。 + +## どのように役に立つのでしょうか + +セキュリティカオスエンジニアリングは、[オブザーバビリティ](/ja/observability/)とサイバーレジリエンスの実践を中心に構築されています。 +これは「未知の未知」を明らかにし、システムに自信を持ち、サイバーレジリエンスを向上させ、オブザーバビリティを改善することを目指しています。 + +エンジニアリングチームは、複雑なインフラストラクチャ、プラットフォーム、および分散システム内のセキュリティ問題に関する理解を徐々に向上させます。 +SCEは、製品全体のサイバーレジリエンスを改善し、隠されたセキュリティ問題を明らかにし、典型的な盲点を露呈し、チームを重要なエッジケースに備えさせます。 +このアプローチは、SRE、[DevOps](/ja/devops/)、および[DevSecOps](/ja/devsecops/)エンジニアが、システムに自信を持ち、サイバーレジリエンスを向上させ、オブザーバビリティを改善するのに役立ちます。 From 02a3554b2dd4523ea4ab195cfb3031fe40438c2f Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Thu, 11 Apr 2024 02:11:50 +0900 Subject: [PATCH 112/130] [ja] fix SRE to Japanese (#3039) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/site-reliability-engineering.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/ja/site-reliability-engineering.md b/content/ja/site-reliability-engineering.md index 897d6f8edb..7e5f11a583 100644 --- a/content/ja/site-reliability-engineering.md +++ b/content/ja/site-reliability-engineering.md @@ -1,13 +1,13 @@ --- -title: Site Reliability Engineering +title: サイト信頼性エンジニアリング(SRE) status: Completed category: コンセプト tags: ["方法論", "", ""] --- -SRE(Site Reliability Engineering)は、オペレーションとソフトウェアエンジニアリングを組み合わせた分野です。 +サイト信頼性エンジニアリング(SRE: Site Reliability Engineering)は、オペレーションとソフトウェアエンジニアリングを組み合わせた分野です。 後者では、特にインフラストラクチャーとオペレーションの問題に応用されます。 -つまり製品機能を構築する代わりに、SREエンジニアは、アプリケーションを実行するためのシステムを構築します。 +つまり製品機能を構築する代わりに、サイト信頼性エンジニアは、アプリケーションを実行するためのシステムを構築します。 [DevOps](/ja/devops/)との類似点がありますが、DevOpsがコードを本番環境に導入することに焦点を当てているのに対し、 SREは本番環境で実行中のコードが適切に機能することを保証します。 @@ -22,6 +22,6 @@ SREは本番環境で実行中のコードが適切に機能することを保 SREのアプローチは、基盤となるシステムを継続的に改善することで、ソフトウェア開発プロセスのコスト、時間、労力を最小限に抑えます。 システムは、インフラストラクチャーとアプリケーションコンポーネントを継続的に測定し監視します。 -何か問題が発生した場合、システムはSREエンジニアにいつ、どこで、どのように修正するかを指摘します。 +何か問題が発生した場合、システムはサイト信頼性エンジニアにいつ、どこで、どのように修正するかを指摘します。 このアプローチを用いて運用タスクを自動化することで、 高度に[スケーラブル](/ja/scalability/)で信頼性の高いソフトウェアシステムを作成するのに役立ちます。 From c2c5fb66977f610d2107de33fa0093ba0602077a Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Thu, 11 Apr 2024 21:19:07 +0900 Subject: [PATCH 113/130] [ja] Revise `content/ja/*.md` (#3040) Signed-off-by: Junya Okabe --- content/ja/agile-software-development.md | 3 +-- content/ja/api-gateway.md | 21 ++++++------------ content/ja/bare-metal-machine.md | 15 +++++++++---- content/ja/client-server-architecture.md | 3 +-- content/ja/cloud-computing.md | 12 ++++++++--- content/ja/cloud-native-apps.md | 16 +++++++++++--- content/ja/cloud-native-security.md | 14 +++++++++--- content/ja/cloud-native-tech.md | 11 +++++++--- content/ja/container-orchestration.md | 3 +-- content/ja/container.md | 6 ++---- content/ja/containerization.md | 9 +++----- content/ja/continuous-delivery.md | 16 +++++--------- content/ja/continuous-deployment.md | 15 +++++-------- content/ja/continuous-integration.md | 9 +++----- content/ja/devops.md | 11 +++------- content/ja/ebpf.md | 2 ++ content/ja/function-as-a-service.md | 13 ++++------- content/ja/horizontal-scaling.md | 4 ++-- content/ja/ingress.md | 22 ++++++------------- content/ja/kubernetes.md | 4 +++- content/ja/loosely-coupled-architecture.md | 3 +-- content/ja/microservices-architecture.md | 25 ++++++++++++++++------ content/ja/monolithic-apps.md | 4 ++-- content/ja/observability.md | 6 ++++-- content/ja/pod.md | 13 +++++------ content/ja/role-based-access-control.md | 10 +++------ content/ja/scalability.md | 7 ++++-- content/ja/service-mesh.md | 6 ++---- content/ja/site-reliability-engineering.md | 9 +++----- content/ja/tightly-coupled-architecture.md | 6 ++---- content/ja/vertical-scaling.md | 13 +++++++---- content/ja/virtual-machine.md | 12 ++++++++--- content/ja/virtualization.md | 4 +--- content/ja/zero-trust-architecture.md | 12 ++++------- 34 files changed, 170 insertions(+), 169 deletions(-) diff --git a/content/ja/agile-software-development.md b/content/ja/agile-software-development.md index 98adba0bf2..56d48da7a4 100644 --- a/content/ja/agile-software-development.md +++ b/content/ja/agile-software-development.md @@ -6,8 +6,7 @@ tags: ["方法論", "", ""] --- アジャイルソフトウェア開発は、繰り返しの開発サイクルと自己組織化チームを重視する一連の実践です。 -プロジェクトの最後にのみ価値が生み出されるウォーターフォール型のプロジェクトとは対照的に、 -アジャイルソフトウェア開発は、継続的かつ段階的な価値の提供とプロセス自体の進化的な改善に焦点を当てています。 +プロジェクトの最後にのみ価値が生み出されるウォーターフォール型のプロジェクトとは対照的に、アジャイルソフトウェア開発は、継続的かつ段階的な価値の提供とプロセス自体の進化的な改善に焦点を当てています。 ## 解決すべき問題はなんですか diff --git a/content/ja/api-gateway.md b/content/ja/api-gateway.md index b7ba89a154..f13ab4dcc1 100644 --- a/content/ja/api-gateway.md +++ b/content/ja/api-gateway.md @@ -5,25 +5,18 @@ category: テクノロジー tags: ["ネットワーキング", "", ""] --- -[API](/ja/application-programming-interface/)ゲートウェイは、いくつかのアプリケーションAPIを集約し、 -それらを一か所で利用可能にするツールです。 -これにより認証や認可、 -またはアプリケーション間のリクエスト数を制限するなどの重要な機能を中央管理された場所に集約することができます。 +[API](/ja/application-programming-interface/)ゲートウェイは、いくつかのアプリケーションAPIを集約し、それらを一か所で利用可能にするツールです。 +これにより認証や認可、またはアプリケーション間のリクエスト数を制限するなどの重要な機能を中央管理された場所に集約することができます。 APIゲートウェイは、(しばしば外部の)APIの利用者に対する共通のインターフェースとして機能します。 ## 解決すべき問題はなんですか -外部の利用者にAPIを提供する場合、 -すべてのアクセスを管理・制御するための一つのエントリーポイントが必要になります。 -さらに、それらのやり取りに機能を適用する必要がある場合、 -APIゲートウェイを使用するとアプリのコードを変更することなく、すべてのトラフィックに対して一様にそれを適用することができます。 +外部の利用者にAPIを提供する場合、すべてのアクセスを管理・制御するための一つのエントリーポイントが必要になります。 +さらに、それらのやり取りに機能を適用する必要がある場合、APIゲートウェイを使用するとアプリのコードを変更することなく、すべてのトラフィックに対して一様にそれを適用することができます。 ## どのように役に立つのでしょうか -アプリケーション内のさまざまなAPIに対して単一のアクセスポイントを提供するAPIゲートウェイは、 -組織の横断的なビジネスロジックやセキュリティロジックを一箇所に集中して適用するのを容易にします。 +アプリケーション内のさまざまなAPIに対して単一のアクセスポイントを提供するAPIゲートウェイは、組織の横断的なビジネスロジックやセキュリティロジックを一箇所に集中して適用するのを容易にします。 また、アプリケーションの利用者がすべてのニーズに対して単一のアドレスを通じてアクセスできるようにもします。 -APIゲートウェイは、システム内のすべてのウェブサービスへのリクエストに対して単一のアクセスポイントを提供することで、 -セキュリティや[オブザーバビリティ](/ja/observability/)などの運用上の懸念を簡素化することができます。 -すべてのリクエストがAPIゲートウェイを通過するため、 -メトリクス収集、レート制限、認証などの機能を追加するための単一の場所となります。 +APIゲートウェイは、システム内のすべてのウェブサービスへのリクエストに対して単一のアクセスポイントを提供することで、セキュリティや[オブザーバビリティ](/ja/observability/)などの運用上の懸念を簡素化することができます。 +すべてのリクエストがAPIゲートウェイを通過するため、メトリクス収集、レート制限、認証などの機能を追加するための単一の場所となります。 diff --git a/content/ja/bare-metal-machine.md b/content/ja/bare-metal-machine.md index bfe14ff754..d6aebc039b 100644 --- a/content/ja/bare-metal-machine.md +++ b/content/ja/bare-metal-machine.md @@ -5,14 +5,21 @@ category: テクノロジー tags: ["インフラストラクチャー", "", ""] --- -ベアメタルとは物理コンピューターを意味し、具体的にはサーバーのことでありオペレーティングシステムが1つしかないものです。最近のコンピューティングでは、サーバーの多くが[仮想マシン](/ja/virtual-machine/)であるため、この区別は重要です。物理サーバーは、一般的に強力なハードウェアを内蔵したかなり大型のコンピューターです。[仮想化](/ja/virtualization/)せずに、物理ハードウェア上にオペレーティングシステムをインストールし直接アプリケーションを実行することを"ベアメタル"上で実行すると呼ばれます。 +ベアメタルとは物理コンピューターを意味し、具体的にはサーバーのことでありオペレーティングシステムが1つしかないものです。 +最近のコンピューティングでは、サーバーの多くが[仮想マシン](/ja/virtual-machine/)であるため、この区別は重要です。 +物理サーバーは、一般的に強力なハードウェアを内蔵したかなり大型のコンピューターです。 +[仮想化](/ja/virtualization/)せずに、物理ハードウェア上にオペレーティングシステムをインストールし直接アプリケーションを実行することを"ベアメタル"上で実行すると呼ばれます。 ## 解決すべき問題はなんですか -1つのオペレーティングシステムと1台の物理コンピューターの組み合わせはコンピューティングの原型です。物理コンピューターのすべてのリソースがオペレーティングシステムで直接利用可能であり、仮想化レイヤーが存在しないため、オペレーティングシステムの命令をハードウェアに変換する際に人工的な遅延が発生しません。 +1つのオペレーティングシステムと1台の物理コンピューターの組み合わせはコンピューティングの原型です。 +物理コンピューターのすべてのリソースがオペレーティングシステムで直接利用可能であり、仮想化レイヤーが存在しないため、オペレーティングシステムの命令をハードウェアに変換する際に人工的な遅延が発生しません。 ## どのように役に立つのでしょうか -コンピューターのすべての計算リソースを単一のオペレーティングシステムに割り当てることで、オペレーティングシステムに最高のパフォーマンスを提供できる可能性があります。ハードウェアリソースに極めて高速にアクセスしなければならないワークロードを実行する必要がある場合、ベアメタルが適切なソリューションかもしれません。 +コンピューターのすべての計算リソースを単一のオペレーティングシステムに割り当てることで、オペレーティングシステムに最高のパフォーマンスを提供できる可能性があります。 +ハードウェアリソースに極めて高速にアクセスしなければならないワークロードを実行する必要がある場合、ベアメタルが適切なソリューションかもしれません。 -[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)のコンテキストでは、私たちは一般的にパフォーマンスを、[水平スケーリング](/ja/horizontal-scaling/)(リソースプールにマシンを追加する)で処理できる多数の並行イベントへの[スケーリング](/ja/scalability/)という観点から考えます。しかし、ワークロードによっては[垂直スケーリング](/ja/vertical-scaling/)(既存の物理マシンにさらにパワーを追加する)が必要な場合や、極めて高速な物理ハードウェアのレスポンスが必要になる場合はベアメタルが適しています。また、ベアメタルにおいては、タスクを達成するために、物理ハードウェアや場合によってはハードウェアドライバをチューニングすることもできます。 +[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)のコンテキストでは、私たちは一般的にパフォーマンスを、[水平スケーリング](/ja/horizontal-scaling/)(リソースプールにマシンを追加する)で処理できる多数の並行イベントへの[スケーリング](/ja/scalability/)という観点から考えます。 +しかし、ワークロードによっては[垂直スケーリング](/ja/vertical-scaling/)(既存の物理マシンにさらにパワーを追加する)が必要な場合や、極めて高速な物理ハードウェアのレスポンスが必要になる場合はベアメタルが適しています。 +また、ベアメタルにおいては、タスクを達成するために、物理ハードウェアや場合によってはハードウェアドライバをチューニングすることもできます。 diff --git a/content/ja/client-server-architecture.md b/content/ja/client-server-architecture.md index bab2dc42f7..c2b24877e3 100644 --- a/content/ja/client-server-architecture.md +++ b/content/ja/client-server-architecture.md @@ -20,8 +20,7 @@ Amazonの商品カタログ全体を、ブラウジングする前に自分の ## どのように役に立つのでしょうか -リモートサーバーやサービスでアプリケーションロジックを実装することにより、 -オペレーターはクライアント側のロジックを変更することなく、それを更新できます。 +リモートサーバーやサービスでアプリケーションロジックを実装することにより、オペレーターはクライアント側のロジックを変更することなく、それを更新できます。 これによって更新をより頻繁に行うことができます。 データをサーバー上に保存することで、多くのクライアントが同じデータを見て共有することができます。 オンラインのワードプロセッサーを使用することと、従来のオフラインのワードプロセッサーを使用することの違いを考えてみてください。 diff --git a/content/ja/cloud-computing.md b/content/ja/cloud-computing.md index 1681b4dc0a..cfee7dbd0f 100644 --- a/content/ja/cloud-computing.md +++ b/content/ja/cloud-computing.md @@ -5,12 +5,18 @@ category: コンセプト tags: ["インフラストラクチャー", "基礎", ""] --- -クラウドコンピューティングは、CPU、ネットワーク、ディスクなどの計算資源をインターネット上でオンデマンドで提供し、ユーザーは物理的に離れた場所にある計算能力にアクセスし、使用することができるようにします。一般に、クラウド基盤が組織専用のものか、オープンな公共サービスのために共有されているかによって、プライベートクラウドとパブリッククラウドに区別されます。 +クラウドコンピューティングは、CPU、ネットワーク、ディスクなどの計算資源をインターネット上でオンデマンドで提供し、ユーザーは物理的に離れた場所にある計算能力にアクセスし、使用することができるようにします。 +一般に、クラウド基盤が組織専用のものか、オープンな公共サービスのために共有されているかによって、プライベートクラウドとパブリッククラウドに区別されます。 ## 解決すべき問題はなんですか -組織は従来、コンピューティングパワーを拡大しようとする際、主に2つの課題に直面していました。物理的なサーバーとネットワークをホストするための(新しい)設備を取得、サポート、設計するか、既存の設備を拡張、維持するかです。クラウドコンピューティングは、企業がコンピューティングニーズの一部をアウトソースできるようにすることで、この課題を解決しています。 +組織は従来、コンピューティングパワーを拡大しようとする際、主に2つの課題に直面していました。 +物理的なサーバーとネットワークをホストするための(新しい)設備を取得、サポート、設計するか、既存の設備を拡張、維持するかです。 +クラウドコンピューティングは、企業がコンピューティングニーズの一部をアウトソースできるようにすることで、この課題を解決しています。 ## どのように役に立つのでしょうか -クラウドプロバイダーは、企業がオンデマンドでコンピューティングリソースを借り、使用量に応じて料金を支払うことを可能にし、2つの重要な利点をもたらします。第一に、企業は新しい物理的なインフラストラクチャーを待つことなく、計画し、リソースを費やすことなく、製品やサービスに集中することができます。そして2つ目は、必要に応じてオンデマンドで[拡張](/ja/scalability/)できることです。クラウドコンピューティングでは、必要な分だけインフラを導入することができます。 +クラウドプロバイダーは、企業がオンデマンドでコンピューティングリソースを借り、使用量に応じて料金を支払うことを可能にし、2つの重要な利点をもたらします。 +第一に、企業は新しい物理的なインフラストラクチャーを待つことなく、計画し、リソースを費やすことなく、製品やサービスに集中することができます。 +そして2つ目は、必要に応じてオンデマンドで[拡張](/ja/scalability/)できることです。 +クラウドコンピューティングでは、必要な分だけインフラを導入することができます。 diff --git a/content/ja/cloud-native-apps.md b/content/ja/cloud-native-apps.md index df5256db5f..1df6af034a 100644 --- a/content/ja/cloud-native-apps.md +++ b/content/ja/cloud-native-apps.md @@ -5,12 +5,22 @@ category: コンセプト tags: ["アプリケーション", "基礎", ""] --- -クラウドネイティブアプリケーションは、[クラウドコンピューティング](/ja/cloud-computing/)の技術革新を活用するため特別に設計されています。これらのアプリケーションは、それぞれのクラウドアーキテクチャと容易に統合でき、クラウドのリソースと[スケーリング](/ja/scalability/)機能を活用できます。また、クラウドコンピューティングによるインフラストラクチャーの技術革新を活用するアプリケーションのことも指します。今日のクラウドネイティブアプリケーションには、クラウドプロバイダーのデータセンターで実行されるアプリケーションと、オンプレミスのクラウドネイティブプラットフォームで実行されるアプリケーションがあります。 +クラウドネイティブアプリケーションは、[クラウドコンピューティング](/ja/cloud-computing/)の技術革新を活用するため特別に設計されています。 +これらのアプリケーションは、それぞれのクラウドアーキテクチャと容易に統合でき、クラウドのリソースと[スケーリング](/ja/scalability/)機能を活用できます。 +また、クラウドコンピューティングによるインフラストラクチャーの技術革新を活用するアプリケーションのことも指します。 +今日のクラウドネイティブアプリケーションには、クラウドプロバイダーのデータセンターで実行されるアプリケーションと、オンプレミスのクラウドネイティブプラットフォームで実行されるアプリケーションがあります。 ## 解決すべき問題はなんですか -従来、オンプレミス環境では、コンピューティングリソースをかなり特化した方法で提供していました。各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architecture/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャーの提供は手作業に大きく依存していました。その結果、開発者とそのアプリケーションは、特定のデータセンターに制約されることになりました。クラウド用に設計されていないアプリケーションは、クラウド環境の耐障害性やスケーリング機能を活用することができません。例えば、正しく起動するために手作業が必要なアプリケーションは、自動的にスケーリングすることができず、障害発生時に自動的に再起動することもできません。 +従来、オンプレミス環境では、コンピューティングリソースをかなり特化した方法で提供していました。 +各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architecture/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャーの提供は手作業に大きく依存していました。 +その結果、開発者とそのアプリケーションは、特定のデータセンターに制約されることになりました。 +クラウド用に設計されていないアプリケーションは、クラウド環境の耐障害性やスケーリング機能を活用することができません。 +例えば、正しく起動するために手作業が必要なアプリケーションは、自動的にスケーリングすることができず、障害発生時に自動的に再起動することもできません。 ## どのように役に立つのでしょうか -クラウドネイティブアプリケーションへの万能な道はありませんが、いくつかの共通点はあります。クラウドネイティブアプリケーションは弾力性があり、管理しやすく、それに付随する一連のクラウドサービスによって支援されます。さまざまなクラウドサービスによって、高度な[オブザーバビリティ](/ja/observability/)が有効になり、ユーザーは問題が深刻化する前に発見して対処することができます。堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で、インパクトの大きい変更を頻繁にかつ予想通りに行うことができます。 +クラウドネイティブアプリケーションへの万能な道はありませんが、いくつかの共通点はあります。 +クラウドネイティブアプリケーションは弾力性があり、管理しやすく、それに付随する一連のクラウドサービスによって支援されます。 +さまざまなクラウドサービスによって、高度な[オブザーバビリティ](/ja/observability/)が有効になり、ユーザーは問題が深刻化する前に発見して対処することができます。 +堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で、インパクトの大きい変更を頻繁にかつ予想通りに行うことができます。 diff --git a/content/ja/cloud-native-security.md b/content/ja/cloud-native-security.md index ab3eaa3a02..ae505c5654 100644 --- a/content/ja/cloud-native-security.md +++ b/content/ja/cloud-native-security.md @@ -5,15 +5,23 @@ category: コンセプト tags: ["セキュリティ", "", ""] --- -クラウドネイティブセキュリティは、セキュリティを[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)に組み込むアプローチです。開発から本番に至るまで、アプリケーションのライフサイクル全体にセキュリティが組み込まれていることを保証します。クラウドネイティブセキュリティは、従来のセキュリティモデルと同じ基準を保証しつつ、クラウドネイティブ環境の特性、すなわち迅速なコード変更や非常に短命な[^1]インフラストラクチャーに適応することを目指します。クラウドネイティブセキュリティは、[DevSecOps](/ja/devsecops/)と呼ばれるプラクティスと非常に関係があります。 +クラウドネイティブセキュリティは、セキュリティを[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)に組み込むアプローチです。 +開発から本番に至るまで、アプリケーションのライフサイクル全体にセキュリティが組み込まれていることを保証します。 +クラウドネイティブセキュリティは、従来のセキュリティモデルと同じ基準を保証しつつ、クラウドネイティブ環境の特性、すなわち迅速なコード変更や非常に短命な[^1]インフラストラクチャーに適応することを目指します。 +クラウドネイティブセキュリティは、[DevSecOps](/ja/devsecops/)と呼ばれるプラクティスと非常に関係があります。 [^1]: 訳注:必要に応じてリソースを動的に拡張したり縮小したりするといった性質を持つ ## 解決すべき問題はなんですか -従来のセキュリティモデルは、もはや有効でない多くの前提のもとに構築されていました。クラウドネイティブアプリケーションは頻繁に変わり、多数のオープンソースツールやライブラリを使用し、多くの場合ベンダーが管理するインフラストラクチャーで実行され、急速なインフラストラクチャーの変更に影響を受けることがあります。コードレビューや長い品質保証サイクル、ホストベースの脆弱性スキャン、直前のセキュリティレビューは、クラウドネイティブアプリケーションに対応することはできません。 +従来のセキュリティモデルは、もはや有効でない多くの前提のもとに構築されていました。 +クラウドネイティブアプリケーションは頻繁に変わり、多数のオープンソースツールやライブラリを使用し、多くの場合ベンダーが管理するインフラストラクチャーで実行され、急速なインフラストラクチャーの変更に影響を受けることがあります。 +コードレビューや長い品質保証サイクル、ホストベースの脆弱性スキャン、直前のセキュリティレビューは、クラウドネイティブアプリケーションに対応することはできません。 ## どのように役に立つのでしょうか -クラウドネイティブセキュリティは、従来のセキュリティモデルから、リリースサイクルのすべての段階でセキュリティが関与するモデルへと移行することにより、アプリケーションを保護する新しい方法を導入します。手作業による監査と監視は、大部分が自動スキャンに取って代わられます。迅速なコードリリースパイプラインは、コンパイル前にコードの脆弱性をスキャンするツールと統合されます。オープンソースライブラリは、信頼できるソースから取得され脆弱性がないか監視されています。 +クラウドネイティブセキュリティは、従来のセキュリティモデルから、リリースサイクルのすべての段階でセキュリティが関与するモデルへと移行することにより、アプリケーションを保護する新しい方法を導入します。 +手作業による監査と監視は、大部分が自動スキャンに取って代わられます。 +迅速なコードリリースパイプラインは、コンパイル前にコードの脆弱性をスキャンするツールと統合されます。 +オープンソースライブラリは、信頼できるソースから取得され脆弱性がないか監視されています。 クラウドネイティブセキュリティモデルは、緩やかな変化ではなく、脆弱性のあるコンポーネントを頻繁に更新したり、インフラストラクチャーを定期的に交換したりすることを受け入れます。 diff --git a/content/ja/cloud-native-tech.md b/content/ja/cloud-native-tech.md index 51117e1d53..0c58094b56 100644 --- a/content/ja/cloud-native-tech.md +++ b/content/ja/cloud-native-tech.md @@ -5,14 +5,19 @@ category: コンセプト tags: ["基礎", "", ""] --- -クラウドネイティブテクノロジーは、クラウドネイティブスタックとも呼ばれ、[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)を構築するために使用される技術です。これらの技術により、組織がスケーラブルなアプリケーションを、パブリックやプライベート、ハイブリッドクラウドのようなモダンでダイナミックな環境で、[クラウドコンピューティング](/ja/cloud-computing/)の利点を最大限に活用しながら、構築や実行することができます。コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャーなど、クラウドコンピューティングの機能を活用するために1から設計されたアプローチです。 +クラウドネイティブテクノロジーは、クラウドネイティブスタックとも呼ばれ、[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)を構築するために使用される技術です。 +これらの技術により、組織がスケーラブルなアプリケーションを、パブリックやプライベート、ハイブリッドクラウドのようなモダンでダイナミックな環境で、[クラウドコンピューティング](/ja/cloud-computing/)の利点を最大限に活用しながら、構築や実行することができます。 +コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャーなど、クラウドコンピューティングの機能を活用するために1から設計されたアプローチです。 ## 解決すべき問題はなんですか クラウドネイティブスタックには多くの異なる技術カテゴリーがあり、様々な課題に対応しています。 [CNCFクラウドネイティブランドスケープ](https://landscape.cncf.io/)を見ると、いかに多くの異なる領域に触れているかわかると思います。 -しかし高いレベルでは、主に従来のIT運用モデルのマイナス面に取り組んでいます。含まれる課題としては、拡張性がありフォールトトレラントな自己修復型アプリケーションの実現が困難であること、リソースの活用が非効率であることなどが挙げられます。 +しかし高いレベルでは、主に従来のIT運用モデルのマイナス面に取り組んでいます。 +含まれる課題としては、拡張性がありフォールトトレラントな自己修復型アプリケーションの実現が困難であること、リソースの活用が非効率であることなどが挙げられます。 ## どのように役に立つのでしょうか -それぞれの技術は特定の問題に対応していますが、全体として、クラウドネイティブテクノロジーは弾力性があり管理可能で観測可能な疎結合のシステムを実現します。堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で影響力の大きい変更を頻繁にかつ予測通りに行うことができます。クラウドネイティブシステムの望ましい特性は、クラウドネイティブスタックで実現することが容易になりました。 +それぞれの技術は特定の問題に対応していますが、全体として、クラウドネイティブテクノロジーは弾力性があり管理可能で観測可能な疎結合のシステムを実現します。 +堅牢な自動化と組み合わせることで、エンジニアは最小限の労力で影響力の大きい変更を頻繁にかつ予測通りに行うことができます。 +クラウドネイティブシステムの望ましい特性は、クラウドネイティブスタックで実現することが容易になりました。 diff --git a/content/ja/container-orchestration.md b/content/ja/container-orchestration.md index 1f57583916..3877b36eba 100644 --- a/content/ja/container-orchestration.md +++ b/content/ja/container-orchestration.md @@ -11,8 +11,7 @@ category: コンセプト ## 解決すべき問題は何ですか -スケールに応じて[マイクロサービス](/ja/microservices-architecture)、セキュリティ、ネットワーク通信や一般的な[分散システム](/ja/distributed-systems)を管理することは、 -手動で行うには難しく、場合によっては不可能です。 +スケールに応じて[マイクロサービス](/ja/microservices-architecture)、セキュリティ、ネットワーク通信や一般的な[分散システム](/ja/distributed-systems)を管理することは、手動で行うには難しく、場合によっては不可能です。 コンテナオーケストレーションにより、これらすべての管理タスクを自動化することができます。 ## どのように役に立つのでしょうか diff --git a/content/ja/container.md b/content/ja/container.md index 3944bd392e..23dbe0a35e 100644 --- a/content/ja/container.md +++ b/content/ja/container.md @@ -7,8 +7,7 @@ tags: ["アプリケーション", "基礎", ""] コンテナは、コンピューターのオペレーティングシステムがリソースと機能面での制限を管理する、実行中のプロセスです。 コンテナプロセスで利用可能なファイルは、コンテナイメージとしてパッケージ化されています。 -コンテナは一つのマシン上で同時に実行されますが、 -通常オペレーティングシステムは別々のコンテナプロセスが互いに干渉するのを防ぎます。 +コンテナは一つのマシン上で同時に実行されますが、通常オペレーティングシステムは別々のコンテナプロセスが互いに干渉するのを防ぎます。 ## 解決すべき問題は何ですか @@ -19,8 +18,7 @@ tags: ["アプリケーション", "基礎", ""] ## どのように役に立つのでしょうか -コンテナはオペレーティングシステムとそのマシンリソースを共有し、 -オペレーティングシステムのリソースオーバーヘッドを分散させ、物理マシンを効率的に使用します。 +コンテナはオペレーティングシステムとそのマシンリソースを共有し、オペレーティングシステムのリソースオーバーヘッドを分散させ、物理マシンを効率的に使用します。 これは通常コンテナが互いに干渉することが制限されているため、実現できます。 これにより、同じ物理マシン上で多くのアプリケーションを実行することができます。 diff --git a/content/ja/containerization.md b/content/ja/containerization.md index 0433f35742..b5523f9862 100644 --- a/content/ja/containerization.md +++ b/content/ja/containerization.md @@ -11,8 +11,7 @@ tags: ["アプリケーション", "", ""] ## 解決すべき問題は何ですか -[コンテナ](/ja/container)が普及する前は、組織は仮想マシン(VM)に依存して、 -単一の[ベアメタルマシン](/ja/bare-metal-machine/)上で複数のアプリケーションをオーケストレーションしていました。 +[コンテナ](/ja/container)が普及する前は、組織は仮想マシン(VM)に依存して、単一の[ベアメタルマシン](/ja/bare-metal-machine/)上で複数のアプリケーションをオーケストレーションしていました。 VMはコンテナよりも非常に大きく、実行にはハイパーバイザーが必要です。 これらの大きなVMテンプレートのストレージ、バックアップ、転送により、VMテンプレートの作成もより遅くなります。 さらに、VMは[不変性](/ja/immutable-infrastructure/)の原則に反する構成ドリフトに悩まされることがあります。 @@ -22,8 +21,6 @@ VMはコンテナよりも非常に大きく、実行にはハイパーバイザ コンテナイメージは(従来のVMとは異なり)軽量です。 またコンテナ化のプロセスには依存関係のリストが記載されたファイルが必要です。 このファイルはバージョン管理が可能で、ビルドプロセスを自動化できます。 -これにより組織は他の優先事項に集中でき、 -自動化されたプロセスがビルドを担当します。 +これにより組織は他の優先事項に集中でき、自動化されたプロセスがビルドを担当します。 コンテナイメージは、その厳密な内容と設定に関連付けられた一意の識別子によって保存されます。 -コンテナがスケジュールされ再スケジュールされると、 -常に初期状態にリセットされるため、構成ドリフトが解消されます。 +コンテナがスケジュールされ再スケジュールされると、常に初期状態にリセットされるため、構成ドリフトが解消されます。 diff --git a/content/ja/continuous-delivery.md b/content/ja/continuous-delivery.md index f2599c8df6..00739d034b 100644 --- a/content/ja/continuous-delivery.md +++ b/content/ja/continuous-delivery.md @@ -5,26 +5,20 @@ category: コンセプト tags: ["方法論", "アプリケーション", ""] --- -継続的デリバリー(しばしばCDと略される)は、 -コードの変更が自動的に受け入れ環境にデプロイされる -(または継続的デプロイメントの場合、本番環境にデプロイされる)一連の実践を指します。 -CDは、ソフトウェアがデプロイメント前に適切にテストされていることを保証する手順を重要視し、 -必要と判断された場合に変更をロールバックする方法を提供します。 -[継続的インテグレーション(CI)](/ja/continuous-integration/)は継続的デリバリーに向けた最初のステップです -(つまり、テストやデプロイがされる前に、変更がうまく統合されなければなりません。) +継続的デリバリー(しばしばCDと略される)は、コードの変更が自動的に受け入れ環境にデプロイされる(または継続的デプロイメントの場合、本番環境にデプロイされる)一連の実践を指します。 +CDは、ソフトウェアがデプロイメント前に適切にテストされていることを保証する手順を重要視し、必要と判断された場合に変更をロールバックする方法を提供します。 +[継続的インテグレーション(CI)](/ja/continuous-integration/)は継続的デリバリーに向けた最初のステップです(つまり、テストやデプロイがされる前に、変更がうまく統合されなければなりません。) ## 解決すべき問題は何ですか 大規模な環境では、[信頼性](/ja/reliability/)の高いアップデートのデプロイが問題となります。 理想的には、エンドユーザーにより良い価値を提供するために、頻繁にデプロイを行いたいところです。 しかし、それを手動で行うと変更ごとに高いトランザクションコストが発生します。 -歴史的に、これらのコストを避けるために、組織は頻繁にリリースを行わず、 -一度に多くの変更をデプロイしてきましたが、これにより何かが間違ってしまうリスクが高まります。 +歴史的に、これらのコストを避けるために、組織は頻繁にリリースを行わず、一度に多くの変更をデプロイしてきましたが、これにより何かが間違ってしまうリスクが高まります。 ## どのように役に立つのでしょうか -CD戦略は、完全に自動化された本番環境へのパスを作成し、 -[カナリア](/ja/canary-deployment/)や[ブルーグリーン](/ja/blue-green-deployment/)リリースなどの様々なデプロイメント戦略を使用してソフトウェアをテストしデプロイします。 +CD戦略は、完全に自動化された本番環境へのパスを作成し、[カナリア](/ja/canary-deployment/)や[ブルーグリーン](/ja/blue-green-deployment/)リリースなどの様々なデプロイメント戦略を使用してソフトウェアをテストしデプロイします。 これにより、開発者は頻繁にコードをデプロイすることができ、新しいリビジョンがテストされていることを安心して受け入れることができます。 ## 関連する用語はありますか diff --git a/content/ja/continuous-deployment.md b/content/ja/continuous-deployment.md index 59847ba78a..4f80dc48ea 100644 --- a/content/ja/continuous-deployment.md +++ b/content/ja/continuous-deployment.md @@ -5,24 +5,19 @@ category: コンセプト tags: ["アプリケーション", "方法論", ""] --- -継続的デプロイメント(しばしばCDと略される)は、 -完成したソフトウェアを直接本番環境にデプロイするという点で[継続的デリバリー](/ja/continuous-delivery/)より一歩進んでいます。 +継続的デプロイメント(しばしばCDと略される)は、完成したソフトウェアを直接本番環境にデプロイするという点で[継続的デリバリー](/ja/continuous-delivery/)より一歩進んでいます。 継続的デプロイメント(CD)は[継続的インテグレーション](/ja/continuous-integration/)(CI)と密接に関連しており、しばしばCI/CDと呼ばれます。 -CIプロセスは特定のアプリケーションへの変更が有効であるかどうかをテストし、 -CDプロセスはコードの変更を自動的に組織のテスト環境や本番環境にデプロイします。 +CIプロセスは特定のアプリケーションへの変更が有効であるかどうかをテストし、CDプロセスはコードの変更を自動的に組織のテスト環境や本番環境にデプロイします。 ## 解決すべき問題はなんですか 新しいソフトウェアバージョンのリリースは、労力がかかりエラーが発生しやすいプロセスです。 -また本番環境でのインシデントを避け、エンジニアが通常の業務時間外に対応する時間を減らすため、 -組織が頻繁に行わないことも多いです -伝統的なソフトウェアデプロイメントモデルでは、 -ソフトウェアのリリースプロセスが組織の安定性と機能の速度の両方に関するニーズを満たせず、組織を悪循環に陥らせます。 +また本番環境でのインシデントを避け、エンジニアが通常の業務時間外に対応する時間を減らすため、組織が頻繁に行わないことも多いです。 +伝統的なソフトウェアデプロイメントモデルでは、ソフトウェアのリリースプロセスが組織の安定性と機能の速度の両方に関するニーズを満たせず、組織を悪循環に陥らせます。 ## どのように役に立つのでしょうか -リリースサイクルを自動化し、組織が頻繁に本番環境へのリリースを強制することにより、 -CDは運用チームに対して、CIが開発チームにもたらした効果を実現します。 +リリースサイクルを自動化し、組織が頻繁に本番環境へのリリースを強制することにより、CDは運用チームに対して、CIが開発チームにもたらした効果を実現します。 具体的には、運用チームが本番へのデプロイメントの際に煩雑でエラーが発生しやすい部分を自動化するように促し、全体的なリスクを減少させます。 また組織が本番環境の変更を受け入れ、適応する能力を向上させ、より高い安定性につながります。 diff --git a/content/ja/continuous-integration.md b/content/ja/continuous-integration.md index c4c048d74a..82e0bdf563 100644 --- a/content/ja/continuous-integration.md +++ b/content/ja/continuous-integration.md @@ -7,16 +7,13 @@ tags: ["アプリケーション", "方法論", ""] 継続的インテグレーション(CI)とは、コードの変更を可能な限り定期的に統合することを指します。 CIは[継続的デリバリー](/ja/continuous-delivery/)(CD)の前提条件です。 -伝統的に、CIのプロセスはバージョンコントロールシステム(GitやMercurial、あるいはSubversion)にコードの変更がコミットされることで開始し、 -CDシステムで利用できるようになったテスト済みの成果物で終了します。 +伝統的に、CIのプロセスはバージョンコントロールシステム(GitやMercurial、あるいはSubversion)にコードの変更がコミットされることで開始し、CDシステムで利用できるようになったテスト済みの成果物で終了します。 ## 解決すべき問題はなんですか ソフトウェアシステムはしばしば大規模で複雑であり、多くの開発者が維持や更新をしています。 -システムの異なる部分で並行して作業を行う開発者たちは、 -意図せずに互いの作業を壊すような矛盾した変更を加えることがあります。 -さらに、同じプロジェクトに複数の開発者が取り組む場合、 -テストやコード品質の計測といった日常的なタスクは、各開発者によって繰り返される必要があり、時間の無駄になります。 +システムの異なる部分で並行して作業を行う開発者たちは、意図せずに互いの作業を壊すような矛盾した変更を加えることがあります。 +さらに、同じプロジェクトに複数の開発者が取り組む場合、テストやコード品質の計測といった日常的なタスクは、各開発者によって繰り返される必要があり、時間の無駄になります。 ## どのように役に立つのでしょうか diff --git a/content/ja/devops.md b/content/ja/devops.md index 0ff4dcbdca..fb9c6d9ccc 100644 --- a/content/ja/devops.md +++ b/content/ja/devops.md @@ -11,21 +11,16 @@ DevOpsは、(全体の機能ではなく)小さなコンポーネントに取り ## 解決すべき問題はなんですか -従来、[密結合な](/ja/tightly-coupled-architecture/)[モノリシックアプリ](/ja/monolithic-apps/)を持つ複雑な組織では、 -通常、作業は複数のグループ間で断片化されていました。 +従来、[密結合な](/ja/tightly-coupled-architecture/)[モノリシックアプリ](/ja/monolithic-apps/)を持つ複雑な組織では、通常、作業は複数のグループ間で断片化されていました。 これにより多くの引き渡しと長いリードタイムが発生しました。 コンポーネントやアップデートが準備できるたびに、それは次のチームのキューに置かれました。 個々の担当者はプロジェクトの一部分のみを扱うため、このアプローチは所有権の欠如につながりました。 彼らの目標は、作業を次のグループに渡すことであり、顧客に適切な機能を提供することではありませんでした。 これは明らかな優先順位のずれです。 -コードが最終的に本番環境に入る頃には、多くの開発者を経由し、多くのキューで待機していたため、 -コードが動作しない場合の問題の原因を追跡するのが難しくなりました。 +コードが最終的に本番環境に入る頃には、多くの開発者を経由し、多くのキューで待機していたため、コードが動作しない場合の問題の原因を追跡するのが難しくなりました。 DevOpsはこのアプローチを根本から覆します。 ## どのように役に立つのでしょうか -アプリケーションの全ライフサイクルを一つのチームが担当することで、 -引き渡しを最小限に抑え、本番環境へデプロイする際のリスクを減少させ、 -チームが本番環境でのコードのパフォーマンスにも責任を持つことでコード品質が向上し、 -より多くの自律性と所有権により従業員の満足度も高まります。 +アプリケーションの全ライフサイクルを一つのチームが担当することで、引き渡しを最小限に抑え、本番環境へデプロイする際のリスクを減少させ、チームが本番環境でのコードのパフォーマンスにも責任を持つことでコード品質が向上し、より多くの自律性と所有権により従業員の満足度も高まります。 diff --git a/content/ja/ebpf.md b/content/ja/ebpf.md index 1b8747de22..402b3fef11 100644 --- a/content/ja/ebpf.md +++ b/content/ja/ebpf.md @@ -16,6 +16,7 @@ Linuxシステムには2種類の空間があります。カーネル空間と しかしこのアプローチはセキュリティリスクももたらすため、eBPFが魅力的な代替となります。 ## 解決すべき問題はなんですか + 一般的に、アプリケーションはユーザー空間で動作し、アプリケーションがカーネルから(例えばハードウェアへのアクセスなどの)権限を要求するときは、いわゆる「システムコール」を介して要求します。 多くの場合、このアプローチはうまく働きますが、低水準なシステムに対するより柔軟なアクセスを開発者が必要とする場合があります。 オブザーバビリティ、セキュリティやネットワーク機能はこういった場合の良い例です。 @@ -26,6 +27,7 @@ Linuxカーネルモジュールはカーネル空間の内部で動作するた もし適切に保護されていない場合、攻撃者は攻撃のためカーネルモジュールを悪用できてしまいます。 ## どのように役に立つのでしょうか + eBPFはユーザー定義プログラムの実行環境として、Linuxカーネルモジュールよりも制御、制限された環境を提供します。 eBPFプログラムはカーネル内のサンドボックス化された環境で動作することで、隔離を提供しリスクを低減します。 もしeBPFプログラム中の脆弱性や欠陥が悪用されたとしても、一般的にその影響はサンドボックス化された環境に抑えられます。 diff --git a/content/ja/function-as-a-service.md b/content/ja/function-as-a-service.md index 57f2b664b7..35e63752e8 100644 --- a/content/ja/function-as-a-service.md +++ b/content/ja/function-as-a-service.md @@ -5,11 +5,8 @@ category: テクノロジー tags: ["インフラストラクチャー", "", ""] --- -Function as a Service (FaaS)は、 -[サーバーレス](/ja/serverless/)、[クラウドコンピューティング](/ja/cloud-computing/)、[サービス](/ja/service/)の一種であり、 -イベントによってコードを実行することを可能にします。 -これは通常、[マイクロサービス](/ja/microservices-architecture/)アプリケーションの構築や立ち上げに関連する、 -複雑なインフラストラクチャーのメンテナンスを必要としません。 +Function as a Service (FaaS)は、[サーバーレス](/ja/serverless/)、[クラウドコンピューティング](/ja/cloud-computing/)、[サービス](/ja/service/)の一種であり、イベントによってコードを実行することを可能にします。 +これは通常、[マイクロサービス](/ja/microservices-architecture/)アプリケーションの構築や立ち上げに関連する、複雑なインフラストラクチャーのメンテナンスを必要としません。 FaaSを使用すると、ユーザーは関数とデータのみを管理し、クラウドプロバイダーがアプリケーションを管理します。 これにより、開発者はコードが実行されていないときにサービスの費用を支払うことなく、必要な機能を得ることができます。 @@ -19,8 +16,7 @@ FaaSを使用すると、ユーザーは関数とデータのみを管理し、 企業はサーバー、ストレージ、ソフトウェア、その他の技術に投資し、ITスタッフや請負業者を雇ってすべての機器やライセンスの購入、管理、更新を行う必要があります。 データセンターは、作業負荷が減少しリソースがアイドリング状態の時期があるにも関わらず、ピーク需要に対応できるように建設されなければなりません。 逆にビジネスが急速に成長する場合、IT部門は追いつくのに苦労するかもしれません。 -標準的な[Infrastructure-as-a-Service (IaaS)](/ja/infrastructure-as-a-service/)クラウドコンピューティングモデルでは、 -ユーザーは事前に容量ユニットを購入します。 +標準的な[Infrastructure-as-a-Service (IaaS)](/ja/infrastructure-as-a-service/)クラウドコンピューティングモデルでは、ユーザーは事前に容量ユニットを購入します。 つまりアプリを実行するために、サーバーコンポーネントを常時起動させ、それに対する支払いをパブリッククラウドプロバイダーに行います。 需要が高まる時にサーバー容量を増やし、その容量が不要になった時に減らすのはユーザーの責任です。 アプリが使用されていないときでも、そのアプリを実行するためのクラウドインフラは稼働しています。 @@ -29,6 +25,5 @@ FaaSを使用すると、ユーザーは関数とデータのみを管理し、 FaaSはサーバーを管理することなく、イベントに応じてウェブアプリケーションを実行するための[抽象化](/ja/abstraction/)を開発者に提供します。 例えば、ファイルのアップロードがそのファイルを様々な形式にトランスコードするカスタムコードのトリガーとなるかもしれません。 -FaaSのインフラストラクチャーは、頻繁に使用するコードを自動的にスケールアップし、 -開発者は[スケーラビリティ](/ja/scalability/)のためのコード構築に時間やリソースを費やす必要がありません。 +FaaSのインフラストラクチャーは、頻繁に使用するコードを自動的にスケールアップし、開発者は[スケーラビリティ](/ja/scalability/)のためのコード構築に時間やリソースを費やす必要がありません。 課金は計算時間のみに基づいているため、機能が使用されていない時には企業は支払いをする必要がありません。 diff --git a/content/ja/horizontal-scaling.md b/content/ja/horizontal-scaling.md index 5ae37a225a..6bb21dc333 100644 --- a/content/ja/horizontal-scaling.md +++ b/content/ja/horizontal-scaling.md @@ -5,7 +5,8 @@ category: コンセプト tags: ["インフラストラクチャー", "", ""] --- -水平スケーリングは、より多くのノードを追加することでシステムの処理能力を向上させる手法です。個別の[ノード](/ja/nodes/)により多くの計算リソースを追加する手法とは異なります(後者は[垂直スケーリング](/ja/vertical-scaling/)として知られています)。 +水平スケーリングは、より多くのノードを追加することでシステムの処理能力を向上させる手法です。 +個別の[ノード](/ja/nodes/)により多くの計算リソースを追加する手法とは異なります(後者は[垂直スケーリング](/ja/vertical-scaling/)として知られています)。 たとえば、RAM容量4GBのシステムを持っていて、そのRAMを16GBに増やしたい場合、水平スケーリングはRAM 16GBのシステムに切り替えるのではなく、RAM 4GBのマシン4台で対応します。 このアプローチは、新しいインスタンスまたは[ノード](/ja/nodes)を追加することで、負荷をより効果的に分散し、アプリケーションのパフォーマンスを向上させます。 @@ -15,7 +16,6 @@ tags: ["インフラストラクチャー", "", ""] アプリケーションに対する需要がそのアプリケーションインスタンスの現在の処理能力を超えた場合、システムに処理能力を[スケール](/ja/scalability/)する(処理能力を向上させる)方法が必要になります。 - システムにノードを追加する(水平スケーリング)か、既存のノードにより多くの計算リソースを追加する(垂直スケーリング)かのいずれかが可能です。 ## どのように役に立つのでしょうか diff --git a/content/ja/ingress.md b/content/ja/ingress.md index 76bcf38280..9bb3bc9fd2 100644 --- a/content/ja/ingress.md +++ b/content/ja/ingress.md @@ -7,17 +7,13 @@ tags: ["基礎"] Ingressは、クラスター内で動作するコンテナあるいはコンテナ群への外部からのインターネットトラフィックを管理するためのルールセットです。 これにはIngressリソースとIngressコントローラーという二つの要素があります。 -Ingressリソースは、他のマニフェストファイルと共に存在する設定ファイルで、 -管理者が外部からのトラフィックのルーティングを設定することを可能にします。 +Ingressリソースは、他のマニフェストファイルと共に存在する設定ファイルで、管理者が外部からのトラフィックのルーティングを設定することを可能にします。 Ingressコントローラーは、実際にIngressリソースの設定に従ってトラフィックをルーティングするウェブサーバー技術です。 ## 解決すべき問題は何ですか -クラウドネイティブのウェブアプリケーションは複数のサービスで構成されており、しばしば、 -それらの[サービス](/ja/service/)は、ブラウザを使用してユーザーがインターネット経由でアクセスする必要があります。 -これらのサービスをユーザーがアクセスできるようにしながら、 -このアプリケーションを実行するために[Kubernetes](/ja/kubernetes/)を使用する場合、 -各アプリケーションサービスを全世界に向けて公開する必要があります。 +クラウドネイティブのウェブアプリケーションは複数のサービスで構成されており、しばしば、それらの[サービス](/ja/service/)は、ブラウザを使用してユーザーがインターネット経由でアクセスする必要があります。 +これらのサービスをユーザーがアクセスできるようにしながら、このアプリケーションを実行するために[Kubernetes](/ja/kubernetes/)を使用する場合、各アプリケーションサービスを全世界に向けて公開する必要があります。 最も簡単な方法は、KubernetesのLoad Balancer Serviceを使用することです。 しかし、このようなサービスを作成すると、基盤となるインフラストラクチャー上に新たなコンポーネントが生まれます。 これは新しいコストと管理のオーバーヘッドを導入するだけでなく、新しく作成された各ロードバランサーには独自の外部IPアドレスがあります。 @@ -27,13 +23,9 @@ Ingressコントローラーは、実際にIngressリソースの設定に従っ ## どのように役に立つのでしょうか Ingressリソースを使用すると、アプリケーションのサービスへのトラフィックのバランスとルーティング方法を設定できます。 -Ingressコントローラーは、URLを通じて単一のエントリポイント(例: www.example-url.com)を公開し、 -異なるURLパス(例: www.example-url.com/path)に基づいて実際のルーティングとバランシングを行います。 +Ingressコントローラーは、URLを通じて単一のエントリポイント(例: www.example-url.com)を公開し、異なるURLパス(例: www.example-url.com/path)に基づいて実際のルーティングとバランシングを行います。 Ingressコントローラーは、クラスター内で動作するコンポーネントであり、Ingressリソースで定義されたルールを解釈します。 -ウェブアプリが動作するクラスターの運用者が、 -Nginx、Traefik、HAProxyなどの使用可能な技術セットから特定のIngressコントローラーを選択することができます。 +ウェブアプリが動作するクラスターの運用者が、Nginx、Traefik、HAProxyなどの使用可能な技術セットから特定のIngressコントローラーを選択することができます。 それにより、アプリケーションが複数のサービスで構成されている場合、ユーザーは単一のURLを使用してアクセスできます。 -これは、インフラストラクチャーレベルで数多くの個別のロードバランサーが不要になり、 -各サービスのファイアウォールとロードバランサーのルールの設定が容易になります。 -トラフィックのルーティングと設定の取り扱いを一元化することで、Ingressはスケーラビリティの効率化を提供し、 -リソース利用を最適化し、コストを削減し、クラスター内で実行されるアプリケーションの全体的な管理のしやすさを向上させます。 +これは、インフラストラクチャーレベルで数多くの個別のロードバランサーが不要になり、各サービスのファイアウォールとロードバランサーのルールの設定が容易になります。 +トラフィックのルーティングと設定の取り扱いを一元化することで、Ingressはスケーラビリティの効率化を提供し、リソース利用を最適化し、コストを削減し、クラスター内で実行されるアプリケーションの全体的な管理のしやすさを向上させます。 diff --git a/content/ja/kubernetes.md b/content/ja/kubernetes.md index 429f523c31..859ecc94c0 100644 --- a/content/ja/kubernetes.md +++ b/content/ja/kubernetes.md @@ -23,7 +23,9 @@ Kubernetesは[API](/ja/application-programming-interface/)を介して拡張可 従来の[Infrastracture as Code](/ja/infrastructure-as-code/)ツールと同様にKubernetesは自動化を支援しますが、コンテナを用いて動作するという利点があります。 コンテナは[仮想マシン](/ja/virtual-machine/)や物理マシンよりも設定のずれに対する耐性があります。 -さらにKubernetesは宣言的に動作します。つまり、オペレータがマシンに何かを行う方法を指示するのではなく、インフラストラクチャーがどのようにあるべきかを記述します。これは通常、マニフェストファイル(例えばYAML)として記述されます。 +さらにKubernetesは宣言的に動作します。 +つまり、オペレータがマシンに何かを行う方法を指示するのではなく、インフラストラクチャーがどのようにあるべきかを記述します。 +これは通常、マニフェストファイル(例えばYAML)として記述されます。 その後、Kubernetesが実行方法の詳細を管理します。 これにより、KubernetesはInfrastracture as Codeと非常に互換性が高くなっています。 diff --git a/content/ja/loosely-coupled-architecture.md b/content/ja/loosely-coupled-architecture.md index 7ee92bcd4a..2642b02352 100644 --- a/content/ja/loosely-coupled-architecture.md +++ b/content/ja/loosely-coupled-architecture.md @@ -5,8 +5,7 @@ category: プロパティ tags: ["基礎", "アーキテクチャ", "プロパティ"] --- -疎結合アーキテクチャは、アプリケーションの構成要素それぞれが互いに独立して構築されるようなアーキテクチャです -(その逆は[密結合アーキテクチャ](/ja/tightly-coupled-architecture/)と呼ばれます)。 +疎結合アーキテクチャは、アプリケーションの構成要素それぞれが互いに独立して構築されるようなアーキテクチャです(その逆は[密結合アーキテクチャ](/ja/tightly-coupled-architecture/)と呼ばれます)。 [マイクロサービス](/ja/microservice/)とよく呼ばれる個々の構成要素は、その他多くのサービスから利用できるような方法で、特定の機能を果たすよう構築されます。 疎結合アーキテクチャは密結合アーキテクチャより一般的に実装が遅くなりますが、特にアプリケーションがスケールする際に多くの利点があります。 diff --git a/content/ja/microservices-architecture.md b/content/ja/microservices-architecture.md index e4e938bd0f..3c9d6996c0 100644 --- a/content/ja/microservices-architecture.md +++ b/content/ja/microservices-architecture.md @@ -4,18 +4,31 @@ status: Completed tags: ["インフラストラクチャー", "基礎", ""] --- -マイクロサービスアーキテクチャは、アプリケーションを個々の独立した(マイクロ)[サービス](/ja/service/)に分割するアーキテクチャ手法で、各サービスは特定の機能に焦点を当てています。これらのサービスは密接に連携して動作し、エンドユーザーには単一のエンティティとして見えます。例として、Netflix を考えてみます。そのインターフェイスは、ビデオへのアクセス、検索、プレビューが可能です。これらの機能は、ブラウザでの認証、検索、プレビューの実行など、それぞれ一つの機能を扱う小さなサービスによって実現されている可能性が高いです。 +マイクロサービスアーキテクチャは、アプリケーションを個々の独立した(マイクロ)[サービス](/ja/service/)に分割するアーキテクチャ手法で、各サービスは特定の機能に焦点を当てています。 +これらのサービスは密接に連携して動作し、エンドユーザーには単一のエンティティとして見えます。 +例として、Netflix を考えてみます。そのインターフェイスは、ビデオへのアクセス、検索、プレビューが可能です。 +これらの機能は、ブラウザでの認証、検索、プレビューの実行など、それぞれ一つの機能を扱う小さなサービスによって実現されている可能性が高いです。 このアーキテクチャ手法により、[モノリシックアプリケーション](/ja/monolithic-apps/)(以下に詳細あり)のようにすべてが密接に結合している場合よりも、開発者は新機能を迅速に導入したり機能を更新したりすることができます。 ## 解決すべき問題はなんですか -アプリケーションは、さまざまなパーツで構成され、それぞれが特定の能力を担当します。特定の機能に対する需要は、アプリケーションの他のパーツに対する需要と連動して必ず増減するわけではありません。Netflix の例に戻りましょう。例えば、大規模なマーケティングキャンペーンの後で、Netflix の契約者数が急増したが、その日の早い時間帯におけるストリーミングは概ね安定しているとします。 -契約者数の急増は、平常時より多くのキャパシティを要求します。伝統的な手法(モノリシックアプローチ)の場合では、増加に対応するためにアプリ全体を[スケールアップ](/ja/scalability/)する必要がありました。これは非常に非効率的なリソースの使い方です。 +アプリケーションは、さまざまなパーツで構成され、それぞれが特定の能力を担当します。 +特定の機能に対する需要は、アプリケーションの他のパーツに対する需要と連動して必ず増減するわけではありません。 +Netflix の例に戻りましょう。 +例えば、大規模なマーケティングキャンペーンの後で、Netflix の契約者数が急増したが、その日の早い時間帯におけるストリーミングは概ね安定しているとします。 +契約者数の急増は、平常時より多くのキャパシティを要求します。 +伝統的な手法(モノリシックアプローチ)の場合では、増加に対応するためにアプリ全体を[スケールアップ](/ja/scalability/)する必要がありました。 +これは非常に非効率的なリソースの使い方です。 -また、モノリシックアーキテクチャは、開発者が設計の落とし穴に陥りやすくするものです。すべてのコードが一か所にあるため、そのコードが[密結合](/ja/tightly-coupled-architecture/)になりやすく、関心の分離の原則を適用することが難しくなります。さらに、多くの場合、モノリスはデプロイする前にコードベース全体を理解する必要性を生じさせます。マイクロサービスアーキテクチャは、こうした課題への対応策です。 +また、モノリシックアーキテクチャは、開発者が設計の落とし穴に陥りやすくするものです。 +すべてのコードが一か所にあるため、そのコードが[密結合](/ja/tightly-coupled-architecture/)になりやすく、関心の分離の原則を適用することが難しくなります。 +さらに、多くの場合、モノリスはデプロイする前にコードベース全体を理解する必要性を生じさせます。 +マイクロサービスアーキテクチャは、こうした課題への対応策です。 ## どのように役に立つのでしょうか -機能を異なるマイクロサービスに分離することにより、それらを独立してデプロイ、アップデート、スケールすることが容易になります。また、意図せずアプリケーションの他のパーツに悪影響を与えることなく、大きなアプリケーションの一部に対して複数のチームが同時に作業することを可能にします。 -マイクロサービスアーキテクチャは多くの問題を解決しますが、デプロイして追跡する必要があるものが桁違いに増えるため、運用上のオーバーヘッドも発生させます。多くの[クラウドネイティブテクノロジー](/ja/cloud-native-tech/)は、マイクロサービスのデプロイと管理を容易にすることを目指しています。 +機能を異なるマイクロサービスに分離することにより、それらを独立してデプロイ、アップデート、スケールすることが容易になります。 +また、意図せずアプリケーションの他のパーツに悪影響を与えることなく、大きなアプリケーションの一部に対して複数のチームが同時に作業することを可能にします。 +マイクロサービスアーキテクチャは多くの問題を解決しますが、デプロイして追跡する必要があるものが桁違いに増えるため、運用上のオーバーヘッドも発生させます。 +多くの[クラウドネイティブテクノロジー](/ja/cloud-native-tech/)は、マイクロサービスのデプロイと管理を容易にすることを目指しています。 diff --git a/content/ja/monolithic-apps.md b/content/ja/monolithic-apps.md index b670a7287c..eed64ed8a0 100644 --- a/content/ja/monolithic-apps.md +++ b/content/ja/monolithic-apps.md @@ -6,7 +6,7 @@ tags: ["アーキテクチャ", "基礎"] --- モノリシックアプリケーションは単独で配置できるプログラムにすべての機能を格納しており、アプリケーションを開発する時に最も簡単かつ手軽な出発点とされています。 -しかし、アプリケーションが複雑になると、モノリスのメンテナンスが難しくなることがあります。 +しかし、アプリケーションが複雑になると、モノリスのメンテナンスが難しくなることがあります。 また、同じコードベースで作業する開発者が増えるため、変更が競合したり、開発者の間で直接コミュニケーションを取る必要性が高まります。 ## 解決すべき問題はなんですか @@ -19,4 +19,4 @@ tags: ["アーキテクチャ", "基礎"] 適切に設計されたモノリスはアプリケーションを起動して実行する最も簡単な方法であるため、簡潔さを維持できます。 モノリシックアプリーケーションがビジネス的に価値があると証明されれば、アプリケーションを分割し、マイクロサービス化させる事も可能です。 価値が証明される前に技術的努力を費やし、マイクロサービス基盤でアプリケーションを開発することは早計である可能性があります。 -アプリケーションが価値を生まなければ、その努力も無駄になるためです。 \ No newline at end of file +アプリケーションが価値を生まなければ、その努力も無駄になるためです。 diff --git a/content/ja/observability.md b/content/ja/observability.md index 114bb8c56f..284191f6ad 100644 --- a/content/ja/observability.md +++ b/content/ja/observability.md @@ -9,8 +9,10 @@ tags: ["プロパティ", "", ""] オブザーバビリティにより、ユーザーはシステム外部への出力を元にそのシステムの状態を理解し、(是正)措置を取ることが可能になります。 コンピューターシステムは、CPU時間・メモリ・ディスク容量といった低水準のシグナルや、APIの応答時間・エラー数・秒間トランザクション数などを含む高水準でビジネスに直結するシグナルを観測することで評価されます。 -可観測なシステムは、いわゆるオブザーバビリティツールと言われる専門のツールで**観測**(もしくは監視)されます。オブザーバビリティツールの一覧は[クラウドネイティブ ランドスケープのオブザーバビリティセクション](https://landscape.cncf.io/?group=projects-and-products&view-mode=card#observability-and-analysis--observability)で見られます。 +可観測なシステムは、いわゆるオブザーバビリティツールと言われる専門のツールで**観測**(もしくは監視)されます。 +オブザーバビリティツールの一覧は[クラウドネイティブ ランドスケープのオブザーバビリティセクション](https://landscape.cncf.io/?group=projects-and-products&view-mode=card#observability-and-analysis--observability)で見られます。 -可観測なシステムは、有意義かつ実用的なデータを運用者に提供し、運用者が(インシデントへのより素早い対応や開発者の生産性向上といった)好ましい結果を出すことを可能にします。システムのダウンタイムとともに、手間のかかる手作業での仕事も少なくなります。 +可観測なシステムは、有意義かつ実用的なデータを運用者に提供し、運用者が(インシデントへのより素早い対応や開発者の生産性向上といった)好ましい結果を出すことを可能にします。 +システムのダウンタイムとともに、手間のかかる手作業での仕事も少なくなります。 結果として、システムの運用コストと開発コストは、そのシステムがどれだけ可観測なのかに大きく影響を受けるでしょう。 diff --git a/content/ja/pod.md b/content/ja/pod.md index 28102d6e15..bb282c64f7 100644 --- a/content/ja/pod.md +++ b/content/ja/pod.md @@ -12,8 +12,7 @@ Kubernetesは、より大規模なDeploymentの一部としてPodを管理し、 ## 解決すべき問題はなんですか -コンテナは一般的に、特定のワークロードを実行し制御する独立した単位として機能しますが、 -コンテナが密接に相互作用し、適切に連携して制御される必要がある場合もあります。 +コンテナは一般的に、特定のワークロードを実行し制御する独立した単位として機能しますが、コンテナが密接に相互作用し、適切に連携して制御される必要がある場合もあります。 これらの密接に関連するコンテナがそれぞれ個別に管理される場合、冗長な管理作業が発生します。 たとえば、オペレーターは関連するコンテナの配置を繰り返し判断し、それらが一緒に保たれるようにしなければなりません。 @@ -21,11 +20,9 @@ Kubernetesは、より大規模なDeploymentの一部としてPodを管理し、 ## どのように役に立つのでしょうか -Podは密接に関連するコンテナを単一のユニットにまとめることで、 -コンテナ操作を大幅に簡素化します。 +Podは密接に関連するコンテナを単一のユニットにまとめることで、コンテナ操作を大幅に簡素化します。 たとえば、補助的なコンテナは、追加機能を提供したり、グローバルな設定を行うために主コンテナと一緒に使用されることがよくあります。 -これには、基本設定を主コンテナに注入して適用するコンテナ、 -_sidecar_(コンテナ)であり、主コンテナのためのネットワークトラフィックルーティングを処理する([サービスメッシュ](/ja/service-mesh/)を参照)、 -あるいは各コンテナと連動してログを収集するコンテナなどが含まれます。 +これには、基本設定を主コンテナに注入して適用するコンテナ、 _sidecar_ (コンテナ)であり、主コンテナのためのネットワークトラフィックルーティングを処理する([サービスメッシュ](/ja/service-mesh/)を参照)、あるいは各コンテナと連動してログを収集するコンテナなどが含まれます。 -メモリとCPUの割り当ては、Podレベルで定義することも、コンテナごとに定義することもできます。Podレベルで定義すると、内部のコンテナがリソースを柔軟に共有できます。 +メモリとCPUの割り当ては、Podレベルで定義することも、コンテナごとに定義することもできます。 +Podレベルで定義すると、内部のコンテナがリソースを柔軟に共有できます。 diff --git a/content/ja/role-based-access-control.md b/content/ja/role-based-access-control.md index 914c94f30e..4c5131b023 100644 --- a/content/ja/role-based-access-control.md +++ b/content/ja/role-based-access-control.md @@ -6,17 +6,13 @@ tags: ["セキュリティ", "", ""] --- ロールベースアクセス制御(RBAC)は、チームあるいはより大きな組織内での個々のロールに基づいてシステムやネットワーク、リソースへのアクセスを管理するセキュリティ方法です。 -RBACは、管理者に特定の職務を持つすべてのユーザーに必要なアクセスレベルを割り当て、 -事前に定義された一連の権限を持つ役割をそれらのユーザーに割り当てる権限を与えます。 +RBACは、管理者に特定の職務を持つすべてのユーザーに必要なアクセスレベルを割り当て、事前に定義された一連の権限を持つ役割をそれらのユーザーに割り当てる権限を与えます。 組織はRBACを利用して、従業員ごとの役割と責任に合わせた、さまざまなレベルのアクセスを提供します。 ## 解決すべき問題はなんですか -RBACは、特にアプリケーションとチームメンバーの数が増えるにつれて、 -チームメンバーやアプリケーションがアクセスできるリソース、 -および彼らが実行できる操作を制御するという課題に対処します。 -管理者は、各ユーザーがアクセスする必要があるリソースに対して正しい権限を持っていることを確認する必要がありますが、 -これは構造化されたアクセス制御メカニズムがなければ煩雑で間違いが生じやすい作業になります。 +RBACは、特にアプリケーションとチームメンバーの数が増えるにつれて、チームメンバーやアプリケーションがアクセスできるリソース、および彼らが実行できる操作を制御するという課題に対処します。 +管理者は、各ユーザーがアクセスする必要があるリソースに対して正しい権限を持っていることを確認する必要がありますが、これは構造化されたアクセス制御メカニズムがなければ煩雑で間違いが生じやすい作業になります。 ## どのように役に立つのでしょうか diff --git a/content/ja/scalability.md b/content/ja/scalability.md index 655d120645..af919c5aaf 100644 --- a/content/ja/scalability.md +++ b/content/ja/scalability.md @@ -9,10 +9,13 @@ tags: ["基礎","プロパティ" , ""] この特性により、システムが行うべき任意の処理に対して、その処理能力を増強することが可能となります。 -例として、[Kubernetes](/ja/kubernetes/)[クラスタ](/ja/cluster/)は、[コンテナ化](/ja/containerization/)されたアプリの数を増減することでスケールしますが、そのスケーラビリティはいくつかの要素に依存します。[ノード](/ja/nodes/)の数、各ノードが処理できる[コンテナ](/ja/container/)の数、コントロールプレーンがサポート可能なレコードとオペレーションの規模と関係しています。 +例として、[Kubernetes](/ja/kubernetes/)[クラスタ](/ja/cluster/)は、[コンテナ化](/ja/containerization/)されたアプリの数を増減することでスケールしますが、そのスケーラビリティはいくつかの要素に依存します。 +[ノード](/ja/nodes/)の数、各ノードが処理できる[コンテナ](/ja/container/)の数、コントロールプレーンがサポート可能なレコードとオペレーションの規模と関係しています。 スケーラブルなシステムは、キャパシティの追加を容易に行えます。 -私たちはスケーリングアプローチを2種類に分類します。[水平スケーリング](/ja/horizontal-scaling/)では、増加した負荷を処理するためにより多くのノードを追加します。一方で、[垂直スケーリング](/ja/vertical-scaling/)では、個々のノードがより多くのトランザクションを実行するために性能向上します(例えば、個別のマシンにより多くのメモリやCPUを追加すること)。 +私たちはスケーリングアプローチを2種類に分類します。 +[水平スケーリング](/ja/horizontal-scaling/)では、増加した負荷を処理するためにより多くのノードを追加します。 +一方で、[垂直スケーリング](/ja/vertical-scaling/)では、個々のノードがより多くのトランザクションを実行するために性能向上します(例えば、個別のマシンにより多くのメモリやCPUを追加すること)。 スケーラブルなシステムは、容易に変更することができ、ユーザーのニーズに応えることができます。 diff --git a/content/ja/service-mesh.md b/content/ja/service-mesh.md index 0a7c1057f6..3bfb41fd4a 100644 --- a/content/ja/service-mesh.md +++ b/content/ja/service-mesh.md @@ -12,8 +12,7 @@ tags: ["ネットワーキング", "", ""] ## 解決すべき問題はなんですか -マイクロサービスアーキテクチャに移行したことで、エンジニアは数百、 -場合によっては数千ものサービスを扱うようになり、それらすべてが相互に通信を必要としています。 +マイクロサービスアーキテクチャに移行したことで、エンジニアは数百、場合によっては数千ものサービスを扱うようになり、それらすべてが相互に通信を必要としています。 つまり、ネットワーク上で大量のトラフィックが行き交っています。 その上、個々のアプリケーションは、必須の要件をサポートするために通信を暗号化する必要があるかもしれません。 あるいは運用チームに共通のメトリクスを提供する必要があるかもしれませんし、問題の診断に役立つ、トラフィックに関する詳細な洞察を提供する必要があるかもしれません。 @@ -21,6 +20,5 @@ tags: ["ネットワーキング", "", ""] ## どのように役に立つのでしょうか -サービスメッシュは、コードの変更を必要とせずに、クラスタ全体のすべてのサービスに対して、 -信頼性、オブザーバビリティ、およびセキュリティ機能を均一に追加します。 +サービスメッシュは、コードの変更を必要とせずに、クラスタ全体のすべてのサービスに対して、信頼性、オブザーバビリティ、およびセキュリティ機能を均一に追加します。 サービスメッシュが登場する前は、その機能をすべての個々のサービスに組み込む必要があり、バグや技術的負債の潜在的な原因となっていました。 diff --git a/content/ja/site-reliability-engineering.md b/content/ja/site-reliability-engineering.md index 7e5f11a583..1ce33acdfc 100644 --- a/content/ja/site-reliability-engineering.md +++ b/content/ja/site-reliability-engineering.md @@ -8,13 +8,11 @@ tags: ["方法論", "", ""] サイト信頼性エンジニアリング(SRE: Site Reliability Engineering)は、オペレーションとソフトウェアエンジニアリングを組み合わせた分野です。 後者では、特にインフラストラクチャーとオペレーションの問題に応用されます。 つまり製品機能を構築する代わりに、サイト信頼性エンジニアは、アプリケーションを実行するためのシステムを構築します。 -[DevOps](/ja/devops/)との類似点がありますが、DevOpsがコードを本番環境に導入することに焦点を当てているのに対し、 -SREは本番環境で実行中のコードが適切に機能することを保証します。 +[DevOps](/ja/devops/)との類似点がありますが、DevOpsがコードを本番環境に導入することに焦点を当てているのに対し、SREは本番環境で実行中のコードが適切に機能することを保証します。 ## 解決すべき問題はなんですか -アプリケーションを[高い信頼性](/ja/reliability/)で実行するためには、 -パフォーマンスモニタリング、アラート、デバッグ、トラブルシューティングなど、複数の機能が必要です。 +アプリケーションを[高い信頼性](/ja/reliability/)で実行するためには、パフォーマンスモニタリング、アラート、デバッグ、トラブルシューティングなど、複数の機能が必要です。 これらがなければ、システムオペレーターは問題に対応するだけで、積極的にそれらを回避しようとすることはできません。 — ダウンタイムは時間の問題となるだけです。 @@ -23,5 +21,4 @@ SREは本番環境で実行中のコードが適切に機能することを保 SREのアプローチは、基盤となるシステムを継続的に改善することで、ソフトウェア開発プロセスのコスト、時間、労力を最小限に抑えます。 システムは、インフラストラクチャーとアプリケーションコンポーネントを継続的に測定し監視します。 何か問題が発生した場合、システムはサイト信頼性エンジニアにいつ、どこで、どのように修正するかを指摘します。 -このアプローチを用いて運用タスクを自動化することで、 -高度に[スケーラブル](/ja/scalability/)で信頼性の高いソフトウェアシステムを作成するのに役立ちます。 +このアプローチを用いて運用タスクを自動化することで、高度に[スケーラブル](/ja/scalability/)で信頼性の高いソフトウェアシステムを作成するのに役立ちます。 diff --git a/content/ja/tightly-coupled-architecture.md b/content/ja/tightly-coupled-architecture.md index 69e15388c3..4e6d1301d6 100644 --- a/content/ja/tightly-coupled-architecture.md +++ b/content/ja/tightly-coupled-architecture.md @@ -12,7 +12,5 @@ tags: ["基礎", "アーキテクチャ", "プロパティ"] また、しばしば構成要素を協調してロールアウトする必要が生じるため、開発者の生産性に対する足かせとなる可能性があります。 密結合なアプリケーションアーキテクチャはかなり古典的なアプリケーション構築方法です。 -[マイクロサービス](/ja/microservices/)開発のベストプラクティス全てには必ずしも整合しませんが、 -密結合アーキテクチャは特定の場合に有用です。 -密結合アーキテクチャでの開発は、実装がより簡潔で早くなる傾向があり、 -[モノリシックアプリケーション](/ja/monolithic-apps/)とよく似て初期開発サイクルを加速させる可能性があります。 +[マイクロサービス](/ja/microservices/)開発のベストプラクティス全てには必ずしも整合しませんが、密結合アーキテクチャは特定の場合に有用です。 +密結合アーキテクチャでの開発は、実装がより簡潔で早くなる傾向があり、[モノリシックアプリケーション](/ja/monolithic-apps/)とよく似て初期開発サイクルを加速させる可能性があります。 diff --git a/content/ja/vertical-scaling.md b/content/ja/vertical-scaling.md index cdaa5b0ddd..2319eb2753 100644 --- a/content/ja/vertical-scaling.md +++ b/content/ja/vertical-scaling.md @@ -6,18 +6,23 @@ tags: ["インフラストラクチャー", "", ""] --- 垂直スケーリング(「スケールアップおよびスケールダウン」とも呼ばれる)は、個別の[ノード](/ja/nodes/)にCPUとメモリを追加することでシステムの処理能力を強化する方法です。 -例えば、4GB RAMのコンピュータを持っていて、その容量を16GB RAMに増やしたい場合、垂直スケーリングすることは、16GB RAMシステムに切り替えることを意味します。(別のスケーリングアプローチについては、[水平スケーリング](/ja/horizontal-scaling/)を参照してください。) +例えば、4GB RAMのコンピュータを持っていて、その容量を16GB RAMに増やしたい場合、垂直スケーリングすることは、16GB RAMシステムに切り替えることを意味します。 +(別のスケーリングアプローチについては、[水平スケーリング](/ja/horizontal-scaling/)を参照してください。) ## 解決すべき問題はなんですか -アプリケーションへの需要が現在のアプリケーションインスタンスの処理能力を超えると、システムに処理能力を強化する方法が必要です。既存のノードにさらなる計算リソースを追加する(垂直スケーリング)か、システムにより多くのノードを追加する(水平スケーリング)ことができます。[スケーラビリティ](/ja/scalability/)は、競争力、効率、評判、品質に貢献します。 +アプリケーションへの需要が現在のアプリケーションインスタンスの処理能力を超えると、システムに処理能力を強化する方法が必要です。 +既存のノードにさらなる計算リソースを追加する(垂直スケーリング)か、システムにより多くのノードを追加する(水平スケーリング)ことができます。 +[スケーラビリティ](/ja/scalability/)は、競争力、効率、評判、品質に貢献します。 ## どのように役に立つのでしょうか 垂直スケーリングは、アプリケーションのコードを変更せずにサーバーの処理能力を変更することができます。 -一方で、水平スケーリングの場合、アプリケーションがスケールするために複製可能でなければなりません。コードの変更が必要になる可能性もあります。 +一方で、水平スケーリングの場合、アプリケーションがスケールするために複製可能でなければなりません。 +コードの変更が必要になる可能性もあります。 垂直スケーリングは、計算リソースを追加することで既存のアプリケーションの処理能力を強化し、アプリケーションがより多くのリクエストを処理し、より多くの作業を同時に行うことを可能にします。 ## 関連する用語はありますか + * [水平スケーリング](/ja/horizontal-scaling/) -* [オートスケーリング](/ja/auto-scaling/) \ No newline at end of file +* [オートスケーリング](/ja/auto-scaling/) diff --git a/content/ja/virtual-machine.md b/content/ja/virtual-machine.md index 134c8cd9f9..29a4d46b35 100644 --- a/content/ja/virtual-machine.md +++ b/content/ja/virtual-machine.md @@ -5,14 +5,20 @@ category: テクノロジー tags: ["基礎", "インフラストラクチャー", ""] --- -仮想マシン(VM)とは、特定のハードウェアに縛られないコンピューターとそのオペレーティングシステムのことです。VMは、1台の物理コンピューターを複数の仮想コンピューターに分割する[仮想化](/ja/virtualization/)に依存しています。この分割は、組織やインフラプロバイダーに、下層のハードウェアに影響を与えることなく、VMを簡単に作成、破棄することを可能にします。 +仮想マシン(VM)とは、特定のハードウェアに縛られないコンピューターとそのオペレーティングシステムのことです。 +VMは、1台の物理コンピューターを複数の仮想コンピューターに分割する[仮想化](/ja/virtualization/)に依存しています。 +この分割は、組織やインフラプロバイダーに、下層のハードウェアに影響を与えることなく、VMを簡単に作成、破棄することを可能にします。 ## 解決すべき問題はなんですか -仮想マシンは仮想化を利用しています。[ベアメタル](/ja/bare-metal-machine/)マシンは単一のオペレーティングシステムに縛られているので、マシンのリソースをどれだけ使えるかはある程度制限されます。また、オペレーティングシステムも単一の物理マシンに縛られているので、その可用性はハードウェアに直結します。物理マシンがメンテナンスやハードウェア故障によりオフラインになると、オペレーティングシステムもオフラインになります。 +仮想マシンは仮想化を利用しています。[ベアメタル](/ja/bare-metal-machine/)マシンは単一のオペレーティングシステムに縛られているので、マシンのリソースをどれだけ使えるかはある程度制限されます。また、オペレーティングシステムも単一の物理マシンに縛られているので、その可用性はハードウェアに直結します。 +物理マシンがメンテナンスやハードウェア故障によりオフラインになると、オペレーティングシステムもオフラインになります。 ## どのように役に立つのでしょうか オペレーティングシステムと物理マシンとの直接的な関係を取り除くことで、プロビジョニングの時間やハードウェア利用率、弾力性といったベアメタルマシンが抱えるいくつかの問題を解決することができます。 -新しいハードウェアの購入やインストール、あるいはそれをサポートするための設定が必要ないため、新しいコンピューターのプロビジョニングの時間が劇的に短縮されます。VMは、1台の物理マシン上に複数の仮想マシンを配置することで、既存の物理ハードウェアリソースをより有効に活用できます。特定の物理マシンに縛られないため、VMは物理マシンよりも耐障害性に優れています。物理マシンがオフラインになる必要がある場合、その上で稼働しているVMを、ほとんどない、あるいは全く停止時間なしで別のマシンに移動させることができます。 +新しいハードウェアの購入やインストール、あるいはそれをサポートするための設定が必要ないため、新しいコンピューターのプロビジョニングの時間が劇的に短縮されます。 +VMは、1台の物理マシン上に複数の仮想マシンを配置することで、既存の物理ハードウェアリソースをより有効に活用できます。 +特定の物理マシンに縛られないため、VMは物理マシンよりも耐障害性に優れています。 +物理マシンがオフラインになる必要がある場合、その上で稼働しているVMを、ほとんどない、あるいは全く停止時間なしで別のマシンに移動させることができます。 diff --git a/content/ja/virtualization.md b/content/ja/virtualization.md index e4a6af4c1a..2f8435102c 100644 --- a/content/ja/virtualization.md +++ b/content/ja/virtualization.md @@ -13,12 +13,10 @@ tags: ["基礎", "インフラストラクチャー", "方法論"] [クラウドコンピューティング](/ja/cloud-computing/)は主に仮想化技術の恩恵を受け提供されています。 例えば、AWSで作成し使用できる「コンピューター」は実際のところはVMです。 - ## 解決すべき問題はなんですか 仮想化によって、我々は多くの課題に対処することができます。 -例えば、仮想化によって同じ物理的なハードウェア上により多くのアプリケーションを互いに隔離しつつ動かすことができるので、 -セキュリティを保ったまま物理マシンの使用率を改善することができます。 +例えば、仮想化によって同じ物理的なハードウェア上により多くのアプリケーションを互いに隔離しつつ動かすことができるので、セキュリティを保ったまま物理マシンの使用率を改善することができます。 ## どのように役に立つのでしょうか diff --git a/content/ja/zero-trust-architecture.md b/content/ja/zero-trust-architecture.md index 03eaebbda5..f8cc5db2d7 100644 --- a/content/ja/zero-trust-architecture.md +++ b/content/ja/zero-trust-architecture.md @@ -6,19 +6,15 @@ tags: ["セキュリティ", "", ""] --- ゼロトラストアーキテクチャは、ITシステムの設計と実装において信頼を完全に取り除くアプローチを推奨します。 -その核心の原則は「決して信頼せず、常に検証する」であり、 -デバイスやシステムは、システムの他のコンポーネントと通信する際に常に事前に自分自身を検証します。 +その核心の原則は「決して信頼せず、常に検証する」であり、デバイスやシステムは、システムの他のコンポーネントと通信する際に常に事前に自分自身を検証します。 今日の多くのネットワークは、企業ネットワークの信頼された境界内にあるため、システムやデバイスは互いに自由に通信することができます。 -ゼロトラストアーキテクチャは、ネットワークの境界内にあっても、 -システム内のコンポーネントは通信する前に検証しなければならないという正反対のアプローチを取ります。 +ゼロトラストアーキテクチャは、ネットワークの境界内にあっても、システム内のコンポーネントは通信する前に検証しなければならないという正反対のアプローチを取ります。 ## 解決すべき問題はなんですか -伝統的な信頼ベースのアプローチでは、企業ネットワークの境界内に存在するシステムやデバイスに対して、 -信頼があるため問題がないという前提があります。 +伝統的な信頼ベースのアプローチでは、企業ネットワークの境界内に存在するシステムやデバイスに対して、信頼があるため問題がないという前提があります。 しかし、ゼロトラストアーキテクチャは、その信頼が脆弱性になると認識しています。 -攻撃者が信頼されたデバイスへのアクセスを獲得した場合、 -そのデバイスに与えられている信頼のレベルとアクセスに依存してシステムは攻撃に対して脆弱になります。 +攻撃者が信頼されたデバイスへのアクセスを獲得した場合、そのデバイスに与えられている信頼のレベルとアクセスに依存してシステムは攻撃に対して脆弱になります。 なぜなら、攻撃者は信頼されたネットワークの境界内におり、システム内を横断的に移動することができるからです。 ゼロトラストアーキテクチャでは、信頼が取り除かれるため攻撃者はシステム内をさらに横断する前に検証を強いられ、結果としてアタックサーフェスが縮小します。 From e8aa8c59e07935c67d70451ea42b80f509f7b7ff Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:50:49 +0900 Subject: [PATCH 114/130] [ja] Correct the notation of the word "infrastructure" (#3045) Signed-off-by: Junya Okabe --- content/ja/auto-scaling.md | 4 ++-- content/ja/bare-metal-machine.md | 2 +- content/ja/chaos-engineering.md | 6 +++--- content/ja/cloud-computing.md | 4 ++-- content/ja/cloud-native-apps.md | 4 ++-- content/ja/cloud-native-security.md | 6 +++--- content/ja/cloud-native-tech.md | 2 +- content/ja/cluster.md | 2 +- content/ja/data-center.md | 2 +- content/ja/function-as-a-service.md | 6 +++--- content/ja/horizontal-scaling.md | 2 +- content/ja/immutable-infrastructure.md | 12 ++++++------ content/ja/infrastructure-as-a-service.md | 4 ++-- content/ja/infrastructure-as-code.md | 8 ++++---- content/ja/ingress.md | 4 ++-- content/ja/kubernetes.md | 12 ++++++------ content/ja/microservices-architecture.md | 2 +- content/ja/nodes.md | 2 +- content/ja/pod.md | 2 +- content/ja/policy-as-code.md | 4 ++-- content/ja/reliability.md | 2 +- content/ja/self-healing.md | 2 +- content/ja/site-reliability-engineering.md | 4 ++-- content/ja/vertical-scaling.md | 2 +- content/ja/virtual-machine.md | 2 +- content/ja/virtualization.md | 2 +- 26 files changed, 52 insertions(+), 52 deletions(-) diff --git a/content/ja/auto-scaling.md b/content/ja/auto-scaling.md index d3371ffe38..c8b8ffa080 100644 --- a/content/ja/auto-scaling.md +++ b/content/ja/auto-scaling.md @@ -2,7 +2,7 @@ title: オートスケーリング status: Completed category: プロパティ -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- オートスケーリングとは、システムが自動的に[スケール](/ja/scalability/)する能力のことで、通常はコンピューティングリソースにおいて行われます。 @@ -11,7 +11,7 @@ tags: ["インフラストラクチャー", "", ""] マネージドクラウドサービスには通常、オートスケーリング機能が関連しています。 これは、ほとんどのオンプレミス環境へのデプロイよりも多くのオプションと実装が利用可能であるためです。 -以前はインフラストラクチャーとアプリケーションが、システムのピーク使用量を考慮して設計されていました。 +以前はインフラストラクチャとアプリケーションが、システムのピーク使用量を考慮して設計されていました。 このアーキテクチャにより、多くのリソースが未使用であり、消費者需要の変化に対して非弾力的でした。 非弾力性は、ビジネスへの高コストと、過剰な需要によって発生する障害の営業損失を意味します。 diff --git a/content/ja/bare-metal-machine.md b/content/ja/bare-metal-machine.md index d6aebc039b..acd3eb5049 100644 --- a/content/ja/bare-metal-machine.md +++ b/content/ja/bare-metal-machine.md @@ -2,7 +2,7 @@ title: ベアメタルマシン status: Completed category: テクノロジー -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- ベアメタルとは物理コンピューターを意味し、具体的にはサーバーのことでありオペレーティングシステムが1つしかないものです。 diff --git a/content/ja/chaos-engineering.md b/content/ja/chaos-engineering.md index 5b7cca2143..d0f841efa9 100644 --- a/content/ja/chaos-engineering.md +++ b/content/ja/chaos-engineering.md @@ -12,13 +12,13 @@ tags: ["方法論", "", ""] [SRE](/ja/site-reliability-engineering/)や[DevOps](/ja/devops/)の実践は、プロダクトの回復力と[信頼性](/ja/reliability/)を高める技術に焦点を当てています。 システムが障害を許容しつつ適切なサービス品質を保証する能力は、通常のソフトウェア開発の要件です。 -インフラストラクチャー、プラットフォーム、あるいは([マイクロサービス](/ja/microservices-architecture)ベースの)アプリケーションの他の動作部分のように、アプリケーションの停止につながる可能性のある複数の側面が関与しています。 +インフラストラクチャ、プラットフォーム、あるいは([マイクロサービス](/ja/microservices-architecture)ベースの)アプリケーションの他の動作部分のように、アプリケーションの停止につながる可能性のある複数の側面が関与しています。 本番環境に新機能を高頻度でデプロイすることは、高い確率でダウンタイムと重大なインシデントをもたらし、ビジネスに重大な影響を及ぼす可能性があります。 ## どのように役に立つのでしょうか カオスエンジニアリングは、回復力の要件を満たすための技術です。 -インフラストラクチャー、プラットフォーム、そしてアプリケーションの障害に対する回復力を達成するために使用されます。 -カオスエンジニアは、アプリケーション、インフラストラクチャー、あるいはプラットフォームが自己修復でき障害が顧客に目立った影響を与えないことを検証するために、プロアクティブにランダムな障害を注入するカオス実験を行います。 +インフラストラクチャ、プラットフォーム、そしてアプリケーションの障害に対する回復力を達成するために使用されます。 +カオスエンジニアは、アプリケーション、インフラストラクチャ、あるいはプラットフォームが自己修復でき障害が顧客に目立った影響を与えないことを検証するために、プロアクティブにランダムな障害を注入するカオス実験を行います。 カオス実験の目的は、盲点(例えば、モニタリングや自動スケーリング技術)を発見し、重大なインシデントの最中にチーム間のコミュニケーションを改善することです。 このアプローチは、特に本番環境において、複雑なシステムにおける回復力とチームの自信を高めるのに役立ちます。 diff --git a/content/ja/cloud-computing.md b/content/ja/cloud-computing.md index cfee7dbd0f..fc3fee0cd2 100644 --- a/content/ja/cloud-computing.md +++ b/content/ja/cloud-computing.md @@ -2,7 +2,7 @@ title: クラウドコンピューティング status: Completed category: コンセプト -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- クラウドコンピューティングは、CPU、ネットワーク、ディスクなどの計算資源をインターネット上でオンデマンドで提供し、ユーザーは物理的に離れた場所にある計算能力にアクセスし、使用することができるようにします。 @@ -17,6 +17,6 @@ tags: ["インフラストラクチャー", "基礎", ""] ## どのように役に立つのでしょうか クラウドプロバイダーは、企業がオンデマンドでコンピューティングリソースを借り、使用量に応じて料金を支払うことを可能にし、2つの重要な利点をもたらします。 -第一に、企業は新しい物理的なインフラストラクチャーを待つことなく、計画し、リソースを費やすことなく、製品やサービスに集中することができます。 +第一に、企業は新しい物理的なインフラストラクチャを待つことなく、計画し、リソースを費やすことなく、製品やサービスに集中することができます。 そして2つ目は、必要に応じてオンデマンドで[拡張](/ja/scalability/)できることです。 クラウドコンピューティングでは、必要な分だけインフラを導入することができます。 diff --git a/content/ja/cloud-native-apps.md b/content/ja/cloud-native-apps.md index 1df6af034a..828f4faecc 100644 --- a/content/ja/cloud-native-apps.md +++ b/content/ja/cloud-native-apps.md @@ -7,13 +7,13 @@ tags: ["アプリケーション", "基礎", ""] クラウドネイティブアプリケーションは、[クラウドコンピューティング](/ja/cloud-computing/)の技術革新を活用するため特別に設計されています。 これらのアプリケーションは、それぞれのクラウドアーキテクチャと容易に統合でき、クラウドのリソースと[スケーリング](/ja/scalability/)機能を活用できます。 -また、クラウドコンピューティングによるインフラストラクチャーの技術革新を活用するアプリケーションのことも指します。 +また、クラウドコンピューティングによるインフラストラクチャの技術革新を活用するアプリケーションのことも指します。 今日のクラウドネイティブアプリケーションには、クラウドプロバイダーのデータセンターで実行されるアプリケーションと、オンプレミスのクラウドネイティブプラットフォームで実行されるアプリケーションがあります。 ## 解決すべき問題はなんですか 従来、オンプレミス環境では、コンピューティングリソースをかなり特化した方法で提供していました。 -各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architecture/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャーの提供は手作業に大きく依存していました。 +各データセンターは、アプリケーションを特定の環境に[密結合](/ja/tightly-coupled-architecture/)するサービスを持っており、多くの場合、[仮想マシン](/ja/virtual-machine/)やサービスのようなインフラストラクチャの提供は手作業に大きく依存していました。 その結果、開発者とそのアプリケーションは、特定のデータセンターに制約されることになりました。 クラウド用に設計されていないアプリケーションは、クラウド環境の耐障害性やスケーリング機能を活用することができません。 例えば、正しく起動するために手作業が必要なアプリケーションは、自動的にスケーリングすることができず、障害発生時に自動的に再起動することもできません。 diff --git a/content/ja/cloud-native-security.md b/content/ja/cloud-native-security.md index ae505c5654..5b29362444 100644 --- a/content/ja/cloud-native-security.md +++ b/content/ja/cloud-native-security.md @@ -7,7 +7,7 @@ tags: ["セキュリティ", "", ""] クラウドネイティブセキュリティは、セキュリティを[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)に組み込むアプローチです。 開発から本番に至るまで、アプリケーションのライフサイクル全体にセキュリティが組み込まれていることを保証します。 -クラウドネイティブセキュリティは、従来のセキュリティモデルと同じ基準を保証しつつ、クラウドネイティブ環境の特性、すなわち迅速なコード変更や非常に短命な[^1]インフラストラクチャーに適応することを目指します。 +クラウドネイティブセキュリティは、従来のセキュリティモデルと同じ基準を保証しつつ、クラウドネイティブ環境の特性、すなわち迅速なコード変更や非常に短命な[^1]インフラストラクチャに適応することを目指します。 クラウドネイティブセキュリティは、[DevSecOps](/ja/devsecops/)と呼ばれるプラクティスと非常に関係があります。 [^1]: 訳注:必要に応じてリソースを動的に拡張したり縮小したりするといった性質を持つ @@ -15,7 +15,7 @@ tags: ["セキュリティ", "", ""] ## 解決すべき問題はなんですか 従来のセキュリティモデルは、もはや有効でない多くの前提のもとに構築されていました。 -クラウドネイティブアプリケーションは頻繁に変わり、多数のオープンソースツールやライブラリを使用し、多くの場合ベンダーが管理するインフラストラクチャーで実行され、急速なインフラストラクチャーの変更に影響を受けることがあります。 +クラウドネイティブアプリケーションは頻繁に変わり、多数のオープンソースツールやライブラリを使用し、多くの場合ベンダーが管理するインフラストラクチャで実行され、急速なインフラストラクチャの変更に影響を受けることがあります。 コードレビューや長い品質保証サイクル、ホストベースの脆弱性スキャン、直前のセキュリティレビューは、クラウドネイティブアプリケーションに対応することはできません。 ## どのように役に立つのでしょうか @@ -24,4 +24,4 @@ tags: ["セキュリティ", "", ""] 手作業による監査と監視は、大部分が自動スキャンに取って代わられます。 迅速なコードリリースパイプラインは、コンパイル前にコードの脆弱性をスキャンするツールと統合されます。 オープンソースライブラリは、信頼できるソースから取得され脆弱性がないか監視されています。 -クラウドネイティブセキュリティモデルは、緩やかな変化ではなく、脆弱性のあるコンポーネントを頻繁に更新したり、インフラストラクチャーを定期的に交換したりすることを受け入れます。 +クラウドネイティブセキュリティモデルは、緩やかな変化ではなく、脆弱性のあるコンポーネントを頻繁に更新したり、インフラストラクチャを定期的に交換したりすることを受け入れます。 diff --git a/content/ja/cloud-native-tech.md b/content/ja/cloud-native-tech.md index 0c58094b56..7218bb5064 100644 --- a/content/ja/cloud-native-tech.md +++ b/content/ja/cloud-native-tech.md @@ -7,7 +7,7 @@ tags: ["基礎", "", ""] クラウドネイティブテクノロジーは、クラウドネイティブスタックとも呼ばれ、[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)を構築するために使用される技術です。 これらの技術により、組織がスケーラブルなアプリケーションを、パブリックやプライベート、ハイブリッドクラウドのようなモダンでダイナミックな環境で、[クラウドコンピューティング](/ja/cloud-computing/)の利点を最大限に活用しながら、構築や実行することができます。 -コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャーなど、クラウドコンピューティングの機能を活用するために1から設計されたアプローチです。 +コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャなど、クラウドコンピューティングの機能を活用するために1から設計されたアプローチです。 ## 解決すべき問題はなんですか diff --git a/content/ja/cluster.md b/content/ja/cluster.md index c29169cc34..4d3e73051f 100644 --- a/content/ja/cluster.md +++ b/content/ja/cluster.md @@ -2,7 +2,7 @@ title: クラスター status: Completed category: コンセプト -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- クラスターは、共通の目的に向けて連携して働くコンピューターやアプリケーションのグループです。 diff --git a/content/ja/data-center.md b/content/ja/data-center.md index 2c471e456a..70c83ad330 100644 --- a/content/ja/data-center.md +++ b/content/ja/data-center.md @@ -2,7 +2,7 @@ title: データセンター status: Completed category: テクノロジー -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- データセンターはコンピューター(その多くはサーバー)を収容するために設計された特別な建物または施設です。 diff --git a/content/ja/function-as-a-service.md b/content/ja/function-as-a-service.md index 35e63752e8..5d0445e655 100644 --- a/content/ja/function-as-a-service.md +++ b/content/ja/function-as-a-service.md @@ -2,11 +2,11 @@ title: Function as a Service (FaaS) status: Completed category: テクノロジー -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- Function as a Service (FaaS)は、[サーバーレス](/ja/serverless/)、[クラウドコンピューティング](/ja/cloud-computing/)、[サービス](/ja/service/)の一種であり、イベントによってコードを実行することを可能にします。 -これは通常、[マイクロサービス](/ja/microservices-architecture/)アプリケーションの構築や立ち上げに関連する、複雑なインフラストラクチャーのメンテナンスを必要としません。 +これは通常、[マイクロサービス](/ja/microservices-architecture/)アプリケーションの構築や立ち上げに関連する、複雑なインフラストラクチャのメンテナンスを必要としません。 FaaSを使用すると、ユーザーは関数とデータのみを管理し、クラウドプロバイダーがアプリケーションを管理します。 これにより、開発者はコードが実行されていないときにサービスの費用を支払うことなく、必要な機能を得ることができます。 @@ -25,5 +25,5 @@ FaaSを使用すると、ユーザーは関数とデータのみを管理し、 FaaSはサーバーを管理することなく、イベントに応じてウェブアプリケーションを実行するための[抽象化](/ja/abstraction/)を開発者に提供します。 例えば、ファイルのアップロードがそのファイルを様々な形式にトランスコードするカスタムコードのトリガーとなるかもしれません。 -FaaSのインフラストラクチャーは、頻繁に使用するコードを自動的にスケールアップし、開発者は[スケーラビリティ](/ja/scalability/)のためのコード構築に時間やリソースを費やす必要がありません。 +FaaSのインフラストラクチャは、頻繁に使用するコードを自動的にスケールアップし、開発者は[スケーラビリティ](/ja/scalability/)のためのコード構築に時間やリソースを費やす必要がありません。 課金は計算時間のみに基づいているため、機能が使用されていない時には企業は支払いをする必要がありません。 diff --git a/content/ja/horizontal-scaling.md b/content/ja/horizontal-scaling.md index 6bb21dc333..fb301cdd84 100644 --- a/content/ja/horizontal-scaling.md +++ b/content/ja/horizontal-scaling.md @@ -2,7 +2,7 @@ title: 水平スケーリング status: Completed category: コンセプト -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- 水平スケーリングは、より多くのノードを追加することでシステムの処理能力を向上させる手法です。 diff --git a/content/ja/immutable-infrastructure.md b/content/ja/immutable-infrastructure.md index c6347009b2..95d329c03b 100644 --- a/content/ja/immutable-infrastructure.md +++ b/content/ja/immutable-infrastructure.md @@ -1,18 +1,18 @@ --- -title: イミュータブルインフラストラクチャー +title: イミュータブルインフラストラクチャ status: Completed category: プロパティ -tags: ["インフラストラクチャー", "プロパティ", ""] +tags: ["インフラストラクチャ", "プロパティ", ""] --- -イミュータブルインフラストラクチャーとは、一度デプロイされると変更することができないコンピューターインフラストラクチャー([仮想マシン](/ja/virtual-machine/)や[コンテナ](/ja/container/)、ネットワーク機器)を指します。 +イミュータブルインフラストラクチャとは、一度デプロイされると変更することができないコンピューターインフラストラクチャ([仮想マシン](/ja/virtual-machine/)や[コンテナ](/ja/container/)、ネットワーク機器)を指します。 これは許可されていない変更を自動的に上書きするプロセスや、最初から変更を許可しないシステムによって強制されます。 -コンテナはイミュータブルインフラストラクチャーの良い例です。 +コンテナはイミュータブルインフラストラクチャの良い例です。 なぜならコンテナに永続的な変更を加えるには、新しいバージョンのコンテナを作成するか、イメージから既存のコンテナを再度作成するしかないからです。 -許可されていない変更の防止や特定により、イミュータブルインフラストラクチャーはセキュリティリスクの特定と軽減を容易にします。 +許可されていない変更の防止や特定により、イミュータブルインフラストラクチャはセキュリティリスクの特定と軽減を容易にします。 このようなシステムの運用ははるかに簡単になります。 なぜなら、管理者がそれについての前提を立てやすくなるためです。 結局のところ、誰も間違いを犯していないことや、伝え忘れた変更を行っていないことが分かっています。 -イミュータブルインフラストラクチャーは[Infrastructure as Code](/ja/infrastructure-as-code/)と密接に関連しており、インフラストラクチャーを作成するために必要なすべての自動化がバージョン管理(たとえばGit)されています。 +イミュータブルインフラストラクチャは[Infrastructure as Code](/ja/infrastructure-as-code/)と密接に関連しており、インフラストラクチャを作成するために必要なすべての自動化がバージョン管理(たとえばGit)されています。 この不変性とバージョン管理の組み合わせにより、システムへのすべての許可された変更に対して、耐久性のある監査ログが存在します。 diff --git a/content/ja/infrastructure-as-a-service.md b/content/ja/infrastructure-as-a-service.md index faab078017..390aaf3c33 100644 --- a/content/ja/infrastructure-as-a-service.md +++ b/content/ja/infrastructure-as-a-service.md @@ -2,7 +2,7 @@ title: Infrastructure as a Service (IaaS) status: Completed category: テクノロジー -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- Infrastructure as a service (IaaS)は、[クラウドコンピューティング](/ja/cloud-computing/)のサービスモデルの一つであり、[物理的](/ja/bare-metal-machine/)または[仮想化](/ja/virtualization/)されたコンピューティングリソース、ストレージ、ネットワークリソースをオンデマンドで提供し、従量課金モデルに基づいて利用できます。 @@ -21,5 +21,5 @@ Infrastructure as a service (IaaS)は、[クラウドコンピューティング IaaSを利用することで、組織はアプリケーション用のコンピューティングリソースやデータセンターのスペースを購入し、維持する必要がなくなります。 オンデマンドインフラを使用することで、必要に応じてコンピューティングリソースをレンタルし、[CAPEX](https://ja.wikipedia.org/wiki/資本的支出)と呼ばれる大規模な資本支出を延期しながら、スケールアップあるいはスケールダウンする柔軟性を得ることができます。 -IaaSは、新しいアプリケーションを実験したり試したりする際の初期コストを削減し、インフラストラクチャーを迅速に展開する施設を提供します。 +IaaSは、新しいアプリケーションを実験したり試したりする際の初期コストを削減し、インフラストラクチャを迅速に展開する施設を提供します。 クラウドプロバイダーは、開発者が実験し革新するために役立つ、開発あるいはテスト環境にとって優れた選択肢です。 diff --git a/content/ja/infrastructure-as-code.md b/content/ja/infrastructure-as-code.md index 20cf537402..29e9df4f2d 100644 --- a/content/ja/infrastructure-as-code.md +++ b/content/ja/infrastructure-as-code.md @@ -2,18 +2,18 @@ title: Infrastructure as Code (IaC) status: Completed category: コンセプト -tags: ["インフラストラクチャー", "方法論", ""] +tags: ["インフラストラクチャ", "方法論", ""] --- -Infrastructure as Codeは、インフラストラクチャーの定義を一つあるいは複数のファイルで保存する実践を指します。 +Infrastructure as Codeは、インフラストラクチャの定義を一つあるいは複数のファイルで保存する実践を指します。 これは、通常はシェルスクリプトや他の設定ツールを用いたInfrastructure as a Serviceを手動でプロビジョニングする従来のモデルに代わるものです。 ## 解決すべき問題はなんですか -クラウドネイティブな方法でアプリケーションを構築するには、インフラストラクチャーを使い捨てできるようにし、かつ再現可能にする必要があります。 +クラウドネイティブな方法でアプリケーションを構築するには、インフラストラクチャを使い捨てできるようにし、かつ再現可能にする必要があります。 また自動化された繰り返し可能な方法で、人の手が介入することなくオンデマンドに[スケール](/ja/scalability/)する必要があります。 手動でのプロビジョニングは、[クラウドネイティブアプリケーション](/ja/cloud-native-apps/)の応答性とスケーラビリティを満たすことができません。 -手動でのインフラストラクチャーの変更は再現不可能で、すぐにスケールの限界に達し、設定ミスのエラーを引き起こします。 +手動でのインフラストラクチャの変更は再現不可能で、すぐにスケールの限界に達し、設定ミスのエラーを引き起こします。 ## どのように役に立つのでしょうか diff --git a/content/ja/ingress.md b/content/ja/ingress.md index 9bb3bc9fd2..f2e5e2582b 100644 --- a/content/ja/ingress.md +++ b/content/ja/ingress.md @@ -15,7 +15,7 @@ Ingressコントローラーは、実際にIngressリソースの設定に従っ クラウドネイティブのウェブアプリケーションは複数のサービスで構成されており、しばしば、それらの[サービス](/ja/service/)は、ブラウザを使用してユーザーがインターネット経由でアクセスする必要があります。 これらのサービスをユーザーがアクセスできるようにしながら、このアプリケーションを実行するために[Kubernetes](/ja/kubernetes/)を使用する場合、各アプリケーションサービスを全世界に向けて公開する必要があります。 最も簡単な方法は、KubernetesのLoad Balancer Serviceを使用することです。 -しかし、このようなサービスを作成すると、基盤となるインフラストラクチャー上に新たなコンポーネントが生まれます。 +しかし、このようなサービスを作成すると、基盤となるインフラストラクチャ上に新たなコンポーネントが生まれます。 これは新しいコストと管理のオーバーヘッドを導入するだけでなく、新しく作成された各ロードバランサーには独自の外部IPアドレスがあります。 これは悪いユーザーエクスペリエンスにつながります。 なぜならユーザーは、アプリケーションにアクセスするために異なるURLをブラウズしたくないからです。 @@ -27,5 +27,5 @@ Ingressコントローラーは、URLを通じて単一のエントリポイン Ingressコントローラーは、クラスター内で動作するコンポーネントであり、Ingressリソースで定義されたルールを解釈します。 ウェブアプリが動作するクラスターの運用者が、Nginx、Traefik、HAProxyなどの使用可能な技術セットから特定のIngressコントローラーを選択することができます。 それにより、アプリケーションが複数のサービスで構成されている場合、ユーザーは単一のURLを使用してアクセスできます。 -これは、インフラストラクチャーレベルで数多くの個別のロードバランサーが不要になり、各サービスのファイアウォールとロードバランサーのルールの設定が容易になります。 +これは、インフラストラクチャレベルで数多くの個別のロードバランサーが不要になり、各サービスのファイアウォールとロードバランサーのルールの設定が容易になります。 トラフィックのルーティングと設定の取り扱いを一元化することで、Ingressはスケーラビリティの効率化を提供し、リソース利用を最適化し、コストを削減し、クラスター内で実行されるアプリケーションの全体的な管理のしやすさを向上させます。 diff --git a/content/ja/kubernetes.md b/content/ja/kubernetes.md index 859ecc94c0..5d86d43844 100644 --- a/content/ja/kubernetes.md +++ b/content/ja/kubernetes.md @@ -2,20 +2,20 @@ title: Kubernetes status: Completed category: テクノロジー -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- Kubernetesは、しばしばK8sと略される、オープンソースのコンテナオーケストレーターです。 -Kubernetesは、モダンなインフラストラクチャー上でコンテナ化されたアプリケーションのライフサイクルを自動化し、[分散システム](/ja/distributed-systems/)全体でアプリケーションを管理するデータセンターのオペレーティングシステムとして機能します。 +Kubernetesは、モダンなインフラストラクチャ上でコンテナ化されたアプリケーションのライフサイクルを自動化し、[分散システム](/ja/distributed-systems/)全体でアプリケーションを管理するデータセンターのオペレーティングシステムとして機能します。 -Kubernetesは、[クラスター](/ja/cluster/)内の[ノード](/ja/nodes/)にまたがって[コンテナ](/ja/container/)をスケジュールし、ロードバランサーや永続ストレージなど、いくつかのインフラストラクチャーリソースを束ねてコンテナ化されたアプリケーションを実行します。 +Kubernetesは、[クラスター](/ja/cluster/)内の[ノード](/ja/nodes/)にまたがって[コンテナ](/ja/container/)をスケジュールし、ロードバランサーや永続ストレージなど、いくつかのインフラストラクチャリソースを束ねてコンテナ化されたアプリケーションを実行します。 Kubernetesは自動化と拡張性を実現し、ユーザーが宣言的に(以下参照)かつ再現可能な方法でアプリケーションをデプロイできるようにします。 Kubernetesは[API](/ja/application-programming-interface/)を介して拡張可能であり、経験豊富なKubernetesの専門家が自分たちのニーズに応じて拡張することができます。 ## 解決すべき問題はなんですか -インフラストラクチャーの自動化と宣言的な設定の管理は長い間重要な概念でしたが、[クラウドコンピューティング](/ja/cloud-computing/)が人気になるにつれて、その重要性がさらに増していきました。 +インフラストラクチャの自動化と宣言的な設定の管理は長い間重要な概念でしたが、[クラウドコンピューティング](/ja/cloud-computing/)が人気になるにつれて、その重要性がさらに増していきました。 計算機リソースへの需要が増加し、組織がより少ないエンジニアでより多くの運用機能を提供する必要が生じる中、その需要に応えるためには新しい技術や作業方法が求められています。 ## どのように役に立つのでしょうか @@ -24,7 +24,7 @@ Kubernetesは[API](/ja/application-programming-interface/)を介して拡張可 コンテナは[仮想マシン](/ja/virtual-machine/)や物理マシンよりも設定のずれに対する耐性があります。 さらにKubernetesは宣言的に動作します。 -つまり、オペレータがマシンに何かを行う方法を指示するのではなく、インフラストラクチャーがどのようにあるべきかを記述します。 +つまり、オペレータがマシンに何かを行う方法を指示するのではなく、インフラストラクチャがどのようにあるべきかを記述します。 これは通常、マニフェストファイル(例えばYAML)として記述されます。 その後、Kubernetesが実行方法の詳細を管理します。 これにより、KubernetesはInfrastracture as Codeと非常に互換性が高くなっています。 @@ -32,4 +32,4 @@ Kubernetesは[API](/ja/application-programming-interface/)を介して拡張可 またKubernetesは[セルフヒーリング](/ja/self-healing/)を行います。 セルフヒーリングによって、クラスターの実際の状態は、常にオペレータの望む状態と一致します。 Kubernetesがマニフェストファイルで記述された内容と異なる点を検出した場合、Kubernetesコントローラーがそれを修正します。 -Kubernetesが使用するインフラストラクチャーは絶えず変化しているかもしれませんが、Kubernetesは常に自動的に変化に適応し、望ましい状態と一致するように保証します。 +Kubernetesが使用するインフラストラクチャは絶えず変化しているかもしれませんが、Kubernetesは常に自動的に変化に適応し、望ましい状態と一致するように保証します。 diff --git a/content/ja/microservices-architecture.md b/content/ja/microservices-architecture.md index 3c9d6996c0..5d36331ab9 100644 --- a/content/ja/microservices-architecture.md +++ b/content/ja/microservices-architecture.md @@ -1,7 +1,7 @@ --- title: マイクロサービスアーキテクチャ status: Completed -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- マイクロサービスアーキテクチャは、アプリケーションを個々の独立した(マイクロ)[サービス](/ja/service/)に分割するアーキテクチャ手法で、各サービスは特定の機能に焦点を当てています。 diff --git a/content/ja/nodes.md b/content/ja/nodes.md index 14bf72b188..0db4e3e783 100644 --- a/content/ja/nodes.md +++ b/content/ja/nodes.md @@ -2,7 +2,7 @@ title: ノード status: Completed category: コンセプト -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- ノードとは、他のコンピューター、つまり他のノードと協力して共通のタスクを達成するコンピューターのことです。 diff --git a/content/ja/pod.md b/content/ja/pod.md index bb282c64f7..cd59eb2447 100644 --- a/content/ja/pod.md +++ b/content/ja/pod.md @@ -2,7 +2,7 @@ title: Pod status: Completed category: コンセプト -tags: ["インフラストラクチャー", "基礎", ""] +tags: ["インフラストラクチャ", "基礎", ""] --- [Kubernetes](/ja/kubernetes/)環境の中では、Podは最も基本的なデプロイ可能ユニットとして機能します。 diff --git a/content/ja/policy-as-code.md b/content/ja/policy-as-code.md index 8978141380..9a5155db20 100644 --- a/content/ja/policy-as-code.md +++ b/content/ja/policy-as-code.md @@ -10,9 +10,9 @@ Policy as Codeは、ポリシー定義を機械的に読み取り可能かつ処 ## 解決すべき問題はなんですか -アプリケーションやインフラストラクチャーの構築には、しばしば組織が定義した多数のポリシーにより制約が課されます。 +アプリケーションやインフラストラクチャの構築には、しばしば組織が定義した多数のポリシーにより制約が課されます。 たとえば、シークレット情報をソースコードへの埋め込むことを禁止するセキュリティポリシーや、スーパーユーザー権限でコンテナの実行を禁止するポリシー、あるいは特定の地理的位置以外にデータを保存することを禁止するポリシーなどがあります。 -開発者やレビュアーにとって、アプリケーションやインフラストラクチャーが文書化されたポリシーに従っているかを手動で確認することは非常に労力がかかり、エラーも発生しやすいです。 +開発者やレビュアーにとって、アプリケーションやインフラストラクチャが文書化されたポリシーに従っているかを手動で確認することは非常に労力がかかり、エラーも発生しやすいです。 手動のプロセスでは、クラウドネイティブアプリケーションの応答性やスケールの要件を満たせません。 ## どのように役に立つのでしょうか diff --git a/content/ja/reliability.md b/content/ja/reliability.md index fb2febb94a..9c415eeee8 100644 --- a/content/ja/reliability.md +++ b/content/ja/reliability.md @@ -6,6 +6,6 @@ tags: ["基礎", "プロパティ", ""] --- クラウドネイティブの観点から見ると、信頼性とはシステムが障害にどれだけうまく対応するかを指します。 -インフラストラクチャーが変化し、個々のコンポーネントが故障しても動作し続ける[分散システム](/ja/distributed-systems/)があれば、それは信頼性があります。 +インフラストラクチャが変化し、個々のコンポーネントが故障しても動作し続ける[分散システム](/ja/distributed-systems/)があれば、それは信頼性があります。 一方で、容易に故障し、運用者が手動で介入して動作を維持する必要がある場合、それは信頼性がないです。 [クラウドネイティブアプリケーション](/ja/cloud-native-apps/)の目標は、本質的に信頼性の高いシステムを構築することです。 diff --git a/content/ja/self-healing.md b/content/ja/self-healing.md index 0fce4281f6..33caf6a44e 100644 --- a/content/ja/self-healing.md +++ b/content/ja/self-healing.md @@ -2,7 +2,7 @@ title: 自己修復 status: Completed category: プロパティ -tags: ["インフラストラクチャー", "プロパティ"] +tags: ["インフラストラクチャ", "プロパティ"] --- 自己修復システムは、人の手の介入なしに特定のタイプの障害から回復することができます。 diff --git a/content/ja/site-reliability-engineering.md b/content/ja/site-reliability-engineering.md index 1ce33acdfc..4ef5b48248 100644 --- a/content/ja/site-reliability-engineering.md +++ b/content/ja/site-reliability-engineering.md @@ -6,7 +6,7 @@ tags: ["方法論", "", ""] --- サイト信頼性エンジニアリング(SRE: Site Reliability Engineering)は、オペレーションとソフトウェアエンジニアリングを組み合わせた分野です。 -後者では、特にインフラストラクチャーとオペレーションの問題に応用されます。 +後者では、特にインフラストラクチャとオペレーションの問題に応用されます。 つまり製品機能を構築する代わりに、サイト信頼性エンジニアは、アプリケーションを実行するためのシステムを構築します。 [DevOps](/ja/devops/)との類似点がありますが、DevOpsがコードを本番環境に導入することに焦点を当てているのに対し、SREは本番環境で実行中のコードが適切に機能することを保証します。 @@ -19,6 +19,6 @@ tags: ["方法論", "", ""] ## どのように役に立つのでしょうか SREのアプローチは、基盤となるシステムを継続的に改善することで、ソフトウェア開発プロセスのコスト、時間、労力を最小限に抑えます。 -システムは、インフラストラクチャーとアプリケーションコンポーネントを継続的に測定し監視します。 +システムは、インフラストラクチャとアプリケーションコンポーネントを継続的に測定し監視します。 何か問題が発生した場合、システムはサイト信頼性エンジニアにいつ、どこで、どのように修正するかを指摘します。 このアプローチを用いて運用タスクを自動化することで、高度に[スケーラブル](/ja/scalability/)で信頼性の高いソフトウェアシステムを作成するのに役立ちます。 diff --git a/content/ja/vertical-scaling.md b/content/ja/vertical-scaling.md index 2319eb2753..1694470e51 100644 --- a/content/ja/vertical-scaling.md +++ b/content/ja/vertical-scaling.md @@ -2,7 +2,7 @@ title: 垂直スケーリング status: Completed category: コンセプト -tags: ["インフラストラクチャー", "", ""] +tags: ["インフラストラクチャ", "", ""] --- 垂直スケーリング(「スケールアップおよびスケールダウン」とも呼ばれる)は、個別の[ノード](/ja/nodes/)にCPUとメモリを追加することでシステムの処理能力を強化する方法です。 diff --git a/content/ja/virtual-machine.md b/content/ja/virtual-machine.md index 29a4d46b35..776ac92c76 100644 --- a/content/ja/virtual-machine.md +++ b/content/ja/virtual-machine.md @@ -2,7 +2,7 @@ title: 仮想マシン status: Completed category: テクノロジー -tags: ["基礎", "インフラストラクチャー", ""] +tags: ["基礎", "インフラストラクチャ", ""] --- 仮想マシン(VM)とは、特定のハードウェアに縛られないコンピューターとそのオペレーティングシステムのことです。 diff --git a/content/ja/virtualization.md b/content/ja/virtualization.md index 2f8435102c..782838fa04 100644 --- a/content/ja/virtualization.md +++ b/content/ja/virtualization.md @@ -2,7 +2,7 @@ title: 仮想化 status: completed category: テクノロジー -tags: ["基礎", "インフラストラクチャー", "方法論"] +tags: ["基礎", "インフラストラクチャ", "方法論"] --- クラウドネイティブコンピューティングにおける仮想化とは、 From cb630353b9ce46df15aff27efdc3139fdb9ad4c2 Mon Sep 17 00:00:00 2001 From: MItabashi Date: Fri, 12 Apr 2024 22:34:07 +0900 Subject: [PATCH 115/130] [ja] Fix spelling inconsistencies of the term computer (#3049) Signed-off-by: Masahiro Itabashi --- content/ja/blue-green-deployment.md | 2 +- content/ja/client-server-architecture.md | 2 +- content/ja/distributed-apps.md | 4 ++-- content/ja/idempotence.md | 2 +- content/ja/vertical-scaling.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/ja/blue-green-deployment.md b/content/ja/blue-green-deployment.md index 6762a06c18..1f2a3b3142 100644 --- a/content/ja/blue-green-deployment.md +++ b/content/ja/blue-green-deployment.md @@ -5,7 +5,7 @@ category: コンセプト tags: ["方法論", "アプリケーション", ""] --- -ブルーグリーンデプロイメントは、最小限のダウンタイムで稼働中のコンピュータシステムを更新する戦略です。 +ブルーグリーンデプロイメントは、最小限のダウンタイムで稼働中のコンピューターシステムを更新する戦略です。 オペレーターは、"ブルー"と"グリーン"と呼ばれる2つの環境を維持します。 一方は本番トラフィックを処理し(現在すべてのユーザーが使用しているバージョン)、もう一方が更新されます。 アクティブではない(グリーン)環境のテストが終了すると、本番トラフィックは(しばしばロードバランサーを使用して)切り替えられます。 diff --git a/content/ja/client-server-architecture.md b/content/ja/client-server-architecture.md index c2b24877e3..673af6b4df 100644 --- a/content/ja/client-server-architecture.md +++ b/content/ja/client-server-architecture.md @@ -16,7 +16,7 @@ tags: ["アーキテクチャ", "基礎", ""] クライアントサーバーアーキテクチャは、自己完結型のアプリケーションが抱える、定期的な更新という大きな課題を解決します。 自己完結型アプリでは、更新のたびにユーザーは最新バージョンをダウンロードしてインストールする必要があります。 -Amazonの商品カタログ全体を、ブラウジングする前に自分のコンピュータにダウンロードすることを想像してみてください! +Amazonの商品カタログ全体を、ブラウジングする前に自分のコンピューターにダウンロードすることを想像してみてください! ## どのように役に立つのでしょうか diff --git a/content/ja/distributed-apps.md b/content/ja/distributed-apps.md index 5fab30e604..5205b2199b 100644 --- a/content/ja/distributed-apps.md +++ b/content/ja/distributed-apps.md @@ -11,8 +11,8 @@ tags: ["アーキテクチャ", "", ""] ## 解決すべき問題はなんですか -単一のコンピュータ上で動作している単一のアプリケーションは単一障害点となります。 -もしそのコンピュータが故障した場合、そのアプリケーションは利用できなくなります。 +単一のコンピューター上で動作している単一のアプリケーションは単一障害点となります。 +もしそのコンピューターが故障した場合、そのアプリケーションは利用できなくなります。 分散アプリケーションは、しばしば[モノリシックアプリケーション](/ja/monolithic-apps/)と比較されます。 モノリシックアプリケーションは、様々なコンポーネントが独立してスケールできないために、スケールが難しい場合があります。 さらに、それらは成長するにつれて開発者の速度の妨げになることもあります。 diff --git a/content/ja/idempotence.md b/content/ja/idempotence.md index 5702efafc9..6c93011170 100644 --- a/content/ja/idempotence.md +++ b/content/ja/idempotence.md @@ -5,5 +5,5 @@ category: プロパティ tags: ["プロパティ", "", ""] --- -数学やコンピュータサイエンスにおいて、冪等性とは、何度実行しても常に同じ結果になる操作を指します。 +数学やコンピューターサイエンスにおいて、冪等性とは、何度実行しても常に同じ結果になる操作を指します。 パラメーターが同じであれば、冪等な操作を複数回実行しても、追加の効果はありません。 diff --git a/content/ja/vertical-scaling.md b/content/ja/vertical-scaling.md index 1694470e51..ef02d070cc 100644 --- a/content/ja/vertical-scaling.md +++ b/content/ja/vertical-scaling.md @@ -6,7 +6,7 @@ tags: ["インフラストラクチャ", "", ""] --- 垂直スケーリング(「スケールアップおよびスケールダウン」とも呼ばれる)は、個別の[ノード](/ja/nodes/)にCPUとメモリを追加することでシステムの処理能力を強化する方法です。 -例えば、4GB RAMのコンピュータを持っていて、その容量を16GB RAMに増やしたい場合、垂直スケーリングすることは、16GB RAMシステムに切り替えることを意味します。 +例えば、4GB RAMのコンピューターを持っていて、その容量を16GB RAMに増やしたい場合、垂直スケーリングすることは、16GB RAMシステムに切り替えることを意味します。 (別のスケーリングアプローチについては、[水平スケーリング](/ja/horizontal-scaling/)を参照してください。) ## 解決すべき問題はなんですか From e310257109532015c46bcbdd4bfa1f669420458a Mon Sep 17 00:00:00 2001 From: t-katsumura <83070078+t-katsumura@users.noreply.github.com> Date: Tue, 16 Apr 2024 20:03:29 +0900 Subject: [PATCH 116/130] [ja] Localize Distributed System into Japanese (#3043) Signed-off-by: t-katsumura Signed-off-by: t-katsumura <83070078+t-katsumura@users.noreply.github.com> Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/distributed-systems.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ja/distributed-systems.md diff --git a/content/ja/distributed-systems.md b/content/ja/distributed-systems.md new file mode 100644 index 0000000000..77fc176b62 --- /dev/null +++ b/content/ja/distributed-systems.md @@ -0,0 +1,30 @@ +--- +title: 分散システム +status: Completed +category: コンセプト +tags: ["アーキテクチャ", "", ""] +--- + +分散システムは、ネットワーク上で接続された自立型のコンピューティング要素の集合であり、ユーザーから見ると1つの統一されたシステムとして見えます。 +一般的には[ノード](/ja/nodes/)と言われるこれらの要素は、ハードウェアデバイス(例: コンピューターや携帯電話)やソフトウェアのプロセスです。 +ノードは共通の目標を達成するためにプログラムされており、連携するためにネットワーク上でメッセージを交換します。 + +## 解決すべき問題はなんですか + +現代の多くのアプリケーションは、運用するのにスーパーコンピューターが必要になるほど大規模です。 +GmailやNetflixを考えてみて下さい。 +単一のコンピューターでは、アプリケーション全体を提供するのに十分な性能がありません。 +複数のコンピューターを接続することで、計算能力はほとんど無制限になります。 +分散コンピューティングなしでは、今日、我々が頼りにしている多くのアプリケーションは実現できないでしょう。 + +従来、システムは垂直に[スケール](/ja/scalability/)するものでした。 +これは、個々のマシンにCPUやメモリを追加するときのことを指します。 +垂直スケーリングには時間がかかり、ダウンタイムを必要とし、また、すぐに限界に達します。 + +## どのように役に立つのでしょうか + +分散システムは[水平スケーリング](/ja/horizontal-scaling/)(例えば、必要に応じてシステムにノードを追加すること)を可能にします。 +これは自動化できるため、システムは急激なワークロードやリソース消費の増加に対応できるようになります。 + +分散システムでないシステムは、1台のマシンが故障するとシステム全体が故障するというリスクにさらされます。 +分散システムは、いくつかのマシンがダウンしたとしても、システム全体としては同じ結果を返し続けるように設計することができます。 From 400a724003cf1e16eaf92694dece677b0a5d8020 Mon Sep 17 00:00:00 2001 From: Kazunori Otani Date: Tue, 16 Apr 2024 20:54:22 +0900 Subject: [PATCH 117/130] [ja] Localize Serverless Into Japanese (#3042) Signed-off-by: Kazunori Otani Signed-off-by: Kazunori Otani Co-authored-by: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> --- content/ja/serverless.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/ja/serverless.md diff --git a/content/ja/serverless.md b/content/ja/serverless.md new file mode 100644 index 0000000000..8f708a7309 --- /dev/null +++ b/content/ja/serverless.md @@ -0,0 +1,30 @@ +--- +Title: サーバーレス +Status: Completed +Category: テクノロジー +tags: ["アーキテクチャ", "", ""] +--- + +サーバーレスは、開発者がサーバーの管理を気にすることなくアプリケーションの構築と実行を可能にするクラウドネイティブの開発モデルです。 +サーバーレスパラダイム内にサーバーは存在しますが、アプリケーション開発プロセスから[抽象化](/ja/abstraction/)されています。 +クラウドプロバイダーがサーバーインフラのプロビジョニング、維持、および[スケーリング](/ja/scalability/)の日常的な作業を処理します。 +開発者は、デプロイのためにコードを[コンテナ](/ja/container/)に便利にパッケージできます。 +一度デプロイされると、サーバーレスアプリは需要に応じて自動的にスケールアップおよびダウンします。 +パブリッククラウドプロバイダーからのサーバーレスの提供は通常、イベント駆動型の実行モデルによってオンデマンドで課金されます。 +その結果、サーバーレス機能がアイドル状態にあるとき、関連するコストは発生しません。 + +## 解決すべき問題はなんですか + +標準的な[Infrastructure as a Service (IaaS)](/ja/infrastructure-as-a-service/)の[クラウドコンピューティング](/ja/cloud-computing/)モデルでは、 +ユーザーはキャパシティの単位を事前に購入します。 +つまり、アプリを実行するために常時稼働するサーバーコンポーネントの料金をパブリッククラウドプロバイダーに支払うことになります。 +高需要時にサーバーのキャパシティをスケールアップしたり、キャパシティが必要なくなったときにスケールダウンしたりするのは、ユーザーの責任です。 +アプリケーションが使用されていないときであっても、アプリケーションを運用するために必要なクラウドインフラストラクチャーはアクティブなままです。 + +## どのように役に立つのでしょうか + +従来のアプローチとは対照的に、サーバーレスアーキテクチャは必要なときにのみアプリケーションを起動します。 +イベントがアプリコードの実行をトリガーすると、パブリッククラウドプロバイダーは、そのコードのためのリソースを動的に割り当てます。 +コードの実行が終了すると、ユーザーは支払いを停止します。 +コストと効率の利点に加えて、サーバーレスは開発者をアプリのスケーリングとサーバーのプロビジョニングに関連する日常的で単調なタスクから解放します。 +サーバーレスを使用すると、オペレーティングシステムとファイルシステムの管理、セキュリティパッチ、ロードバランシング、キャパシティ管理、スケーリング、ログ、監視などの日常的なタスクは、すべてクラウドサービスプロバイダーに委ねられます。 From 3816ac042c5654a6668d6801275c5d025237c194 Mon Sep 17 00:00:00 2001 From: Rafael Natali <40840504+rafaelmnatali@users.noreply.github.com> Date: Fri, 10 May 2024 02:48:04 +0100 Subject: [PATCH 118/130] add pt-br/chaos-engineering (#3081) Signed-off-by: Rafael Natali --- content/pt-br/chaos-engineering.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 content/pt-br/chaos-engineering.md diff --git a/content/pt-br/chaos-engineering.md b/content/pt-br/chaos-engineering.md new file mode 100644 index 0000000000..fb40e38e04 --- /dev/null +++ b/content/pt-br/chaos-engineering.md @@ -0,0 +1,16 @@ +--- +title: Engenharia do Caos +status: Completed +category: conceito +tags: ["metodologia"] +--- + +A Engenharia do Caos, ou CE, é a disciplina de experimentar em um [sistema distribuído](/pt-br/distributed-systems/) em produção para construir confiança na capacidade do sistema de resistir a condições turbulentas e inesperadas. + +## Problema relacionado + +As práticas de [SRE](/pt-br/site-reliability-engineering/) e [DevOps](/pt-br/devops/)focam em técnicas para aumentar a resiliência e [confiabilidade](/pt-br/reliability/) do produto. A capacidade de um sistema de tolerar falhas enquanto garante qualidade de serviço adequada é tipicamente um requisito de desenvolvimento de software. Existem vários aspectos envolvidos que podem levar a falhas de um aplicativo, como infraestrutura, plataforma ou outras partes móveis de um aplicativo baseado em [microserviços](/pt-br/microservices/). A implantação frequente de novos recursos no ambiente de produção pode aumentar a probabilidade de tempo de inatividade e um incidente crítico — com consequências consideráveis para o negócio. + +## Como ajuda + +A engenharia do caos é uma técnica para atender aos requisitos de resiliência. É usada para alcançar resiliência contra falhas de infraestrutura, plataforma e aplicativo. Engenheiros de caos usam experimentos de caos para injetar proativamente falhas aleatórias e verificar se um aplicativo, infraestrutura ou plataforma pode se recuperar automaticamente e se a falha não pode afetar perceptivelmente os clientes. Os experimentos de caos visam descobrir pontos cegos (por exemplo, técnicas de monitoramento ou de escalonamento automático) e melhorar a comunicação entre equipes durante incidentes críticos. Essa abordagem ajuda a aumentar a resiliência e a confiança da equipe em sistemas complexos, especialmente em produção. From ac0d758ff7c09394df34a7cc78d7d8eebbda73d0 Mon Sep 17 00:00:00 2001 From: "ibrahim.kedir" <93158833+ibrahimkedir10@users.noreply.github.com> Date: Wed, 22 May 2024 01:26:05 -0400 Subject: [PATCH 119/130] [en] Fix broken link in 'Cloud Native Apps' (#3156) Signed-off-by: ibrahim.kedir <93158833+ibrahimkedir10@users.noreply.github.com> --- content/en/cloud-native-apps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/cloud-native-apps.md b/content/en/cloud-native-apps.md index 513bb17102..d57bcdcc9d 100644 --- a/content/en/cloud-native-apps.md +++ b/content/en/cloud-native-apps.md @@ -14,7 +14,7 @@ Cloud native applications today include apps that run in a cloud provider’s da ## Problem it addresses Traditionally, on-premise environments provided compute resources in a fairly bespoke way. -Each datacenter had services that [tightly coupled](/tightly-coupled-architectures/) applications to specific environments, +Each datacenter had services that [tightly coupled](/tightly-coupled-architecture/) applications to specific environments, often relying heavily on manual provisioning for infrastructure, like [virtual machines](/virtual-machine/) and services. This, in turn, constrained developers and their applications to that specific datacenter. Applications that weren't designed for the cloud couldn't take advantage of a cloud environment’s resiliency and scaling capabilities. From 2f3895756d69cc3f5aff66eac11d6fb0d48ee91a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 07:22:07 +0900 Subject: [PATCH 120/130] Bump rojopolis/spellcheck-github-actions from 0.36.0 to 0.37.0 (#3174) Signed-off-by: dependabot[bot] --- .github/workflows/es-spellcheck.yml | 2 +- .github/workflows/spellcheck.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/es-spellcheck.yml b/.github/workflows/es-spellcheck.yml index 230e7fd5ae..74d1b6cc23 100644 --- a/.github/workflows/es-spellcheck.yml +++ b/.github/workflows/es-spellcheck.yml @@ -29,6 +29,6 @@ jobs: set -o errexit diff content/es/.wordlist.txt <(LC_ALL= sort -f content/es/.wordlist.txt) - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.36.0 + uses: rojopolis/spellcheck-github-actions@0.37.0 with: config_path: content/es/.spellcheck.yml diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 9b43ed3f89..f66af5bc5d 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -25,4 +25,4 @@ jobs: - uses: actions/checkout@v4 - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.36.0 + uses: rojopolis/spellcheck-github-actions@0.37.0 From 541307c6c7a39bb47683d70d586436f8c1b37a13 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Mon, 10 Jun 2024 19:16:40 -0400 Subject: [PATCH 121/130] [CI & docs] Set up link checker + GH action + fix `en` links (#3188) Signed-off-by: Patrice Chalin --- .github/workflows/check-links.yml | 18 + .gitignore | 10 +- .htmltest.yml | 8 + .nvmrc | 1 + Makefile | 33 +- README.md | 24 +- content/en/container-orchestration.md | 16 +- content/en/loosely-coupled-architecture.md | 20 +- content/en/microservices-architecture.md | 32 +- content/en/stateful-apps.md | 10 +- package-lock.json | 32537 ------------------- package.json | 52 +- 12 files changed, 144 insertions(+), 32617 deletions(-) create mode 100644 .github/workflows/check-links.yml create mode 100644 .htmltest.yml create mode 100644 .nvmrc delete mode 100644 package-lock.json diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml new file mode 100644 index 0000000000..4a116080d1 --- /dev/null +++ b/.github/workflows/check-links.yml @@ -0,0 +1,18 @@ +name: Links + +on: + pull_request: + +jobs: + build-and-check-links: + name: CHECK LINKS + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: package.json + - run: npm install --omit=optional + - run: npm run check:links diff --git a/.gitignore b/.gitignore index 360dcc9d3b..665996ea17 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ -public/ -resources/ -node_modules/ -.hugo_build.lock .DS_Store +.hugo_build.lock +/public +/resources +node_modules/ +package-lock.json pagefind +tmp/ # Local Netlify folder .netlify diff --git a/.htmltest.yml b/.htmltest.yml new file mode 100644 index 0000000000..fd3e2c10fc --- /dev/null +++ b/.htmltest.yml @@ -0,0 +1,8 @@ +# cSpell:ignore pagefind regexs +DirectoryPath: public +# IgnoreDirectoryMissingTrailingSlash: true # FIXME +IgnoreInternalEmptyHash: true # FIXME +IgnoreDirs: + - ^(bn|de|es|fr|hi|it|ja|ko|pt.*?|ru|tr|ur|zh.*?)/ +IgnoreURLs: # list of regexs of paths or URLs to be ignored + - ^/pagefind diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..b009dfb9d9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/Makefile b/Makefile index f4cb3e0240..85ae00b701 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,27 @@ +HTMLTEST_DIR=tmp +HTMLTEST?=htmltest # Specify as make arg if different +HTMLTEST_ARGS?=--skip-external + +# Use $(HTMLTEST) in PATH, if available; otherwise, we'll get a copy +ifeq (, $(shell which $(HTMLTEST))) +override HTMLTEST=$(HTMLTEST_DIR)/bin/htmltest +ifeq (, $(shell which $(HTMLTEST))) +GET_LINK_CHECKER_IF_NEEDED=get-link-checker +endif +endif + +check-links: $(GET_LINK_CHECKER_IF_NEEDED) + $(HTMLTEST) $(HTMLTEST_ARGS) + +clean: + rm -rf $(HTMLTEST_DIR) public/* resources + +get-link-checker: + rm -Rf $(HTMLTEST_DIR)/bin + curl https://htmltest.wjdp.uk | bash -s -- -b $(HTMLTEST_DIR)/bin + serve: - hugo server \ + npx hugo server \ --disableFastRender \ --buildDrafts \ --buildFuture \ @@ -13,16 +35,15 @@ serve: --gc production-build: - git submodule update --init --recursive - hugo \ - --minify + npm run get:submodule + npx hugo --minify npx -y pagefind --site public preview-build: git submodule update --init --recursive - hugo \ + npx hugo \ --baseURL $(DEPLOY_PRIME_URL) \ --buildDrafts \ --buildFuture \ --minify - npx -y pagefind --site public \ No newline at end of file + npx -y pagefind --site public diff --git a/README.md b/README.md index 9be4799b17..c5fbfd84bc 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,19 @@ If you'd like to help with the glossary we'd love to have your contributions! Pl ## Acknowledgements The Cloud Native Glossary was initiated by the CNCF Marketing Committee -(Business Value Subcommittee) and includes contributions from -[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), -[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), -[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), -[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), -[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), -[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), -and many more contributors. +(Business Value Subcommittee) and includes contributions from +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), +and many more contributors. For a complete contributor list, please refer to [this GitHub page](https://github.com/cncf/glossary/graphs/contributors). -The Glossary is maintained by +The Glossary is maintained by [Seokho Son](https://www.linkedin.com/in/seokho-son/), -[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), [Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), [Nate W.](https://www.linkedin.com/in/nate-double-u/), and [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). @@ -43,10 +43,8 @@ All code contributions are under the Apache 2.0 license. Documentation is distri To improve the Cloud Native Glossary site itself, install a local copy with these instructions. Note you must have [npm](https://www.npmjs.com/) and [Hugo](https://gohugo.io/) installed. -``` +```sh git clone https://github.com/cncf/glossary.git -cd glossary -git submodule update --init --recursive npm install ``` diff --git a/content/en/container-orchestration.md b/content/en/container-orchestration.md index 5cc57322ff..124d2dce82 100644 --- a/content/en/container-orchestration.md +++ b/content/en/container-orchestration.md @@ -4,19 +4,19 @@ status: Completed category: Concept --- -[Container](/container/) orchestration refers to managing and automating the lifecycle of [containerized](/containerization/) applications in dynamic environments. -It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes)), which enables deployments, (auto)scaling, auto-healing, and monitoring. +[Container](/container/) orchestration refers to managing and automating the lifecycle of [containerized](/containerization/) applications in dynamic environments. +It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes/)), which enables deployments, (auto)scaling, auto-healing, and monitoring. Orchestration is a metaphor: -The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should. +The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should. -## Problem it addresses +## Problem it addresses -Managing [microservices](/microservices), security, and network communication at scale — and [distributed systems](/distributed-systems) in general — is hard, if not impossible, to manage manually. -Container orchestration allows users to automate all these management tasks. +Managing [microservices](/microservices-architecture/), security, and network communication at scale — and [distributed systems](/distributed-systems/) in general — is hard, if not impossible, to manage manually. +Container orchestration allows users to automate all these management tasks. ## How it helps -Container orchestration tools allow users to determine a system's state. +Container orchestration tools allow users to determine a system's state. First, they declare how it should look like (e.g., x containers, y pods, etc.). -The orchestration tool will then automatically monitor the infrastructure and correct it if its state deviates from the declared one (e.g., spin up a new container if one crashes). +The orchestration tool will then automatically monitor the infrastructure and correct it if its state deviates from the declared one (e.g., spin up a new container if one crashes). This automation simplifies many of the engineering teams' otherwise highly manual and complex operational tasks, including provisioning, deployment, scaling (up and down), networking, load balancing, and other activities. diff --git a/content/en/loosely-coupled-architecture.md b/content/en/loosely-coupled-architecture.md index 87cada947b..0bccb3a1d9 100644 --- a/content/en/loosely-coupled-architecture.md +++ b/content/en/loosely-coupled-architecture.md @@ -5,15 +5,15 @@ category: Property tags: ["fundamental", "architecture", "property"] --- -Loosely coupled architecture is an architectural style -where the individual components of an application are built independently from one another -(the opposite paradigm of [tightly coupled architectures](/tightly-coupled-architectures/)). -Each component, sometimes referred to as a [microservice](/microservices-architecture/), is built to perform a specific function -in a way that can be used by any number of other services. -This pattern is generally slower to implement than tightly coupled architecture +Loosely coupled architecture is an architectural style +where the individual components of an application are built independently from one another +(the opposite paradigm of [tightly coupled architectures](/tightly-coupled-architecture/)). +Each component, sometimes referred to as a [microservice](/microservices-architecture/), is built to perform a specific function +in a way that can be used by any number of other services. +This pattern is generally slower to implement than tightly coupled architecture but has a number of benefits, particularly as applications scale. -Loosely coupled applications allow teams to develop features, deploy, and scale independently, -which allows organizations to iterate quickly on individual components. -Application development is faster and teams can be structured around their competency, -focusing on their specific application. +Loosely coupled applications allow teams to develop features, deploy, and scale independently, +which allows organizations to iterate quickly on individual components. +Application development is faster and teams can be structured around their competency, +focusing on their specific application. diff --git a/content/en/microservices-architecture.md b/content/en/microservices-architecture.md index 9badc03ad0..81c11b5117 100644 --- a/content/en/microservices-architecture.md +++ b/content/en/microservices-architecture.md @@ -5,31 +5,31 @@ tags: ["architecture", "fundamental", ""] --- A microservices architecture is an architectural approach that breaks applications into individual independent (micro)[services](/service/), with each service focused on a specific functionality. -These services work together closely, appearing to the end user as a single entity. -Take Netflix as an example. -Its interface allows you to access, search, and preview videos. +These services work together closely, appearing to the end user as a single entity. +Take Netflix as an example. +Its interface allows you to access, search, and preview videos. These capabilities are likely powered by smaller services that each handle one functionality, e.g., authentication, search, and running previews in your browser. This architectural approach allows developers to push out new features or update functionality much faster than if they were all tightly coupled, such as in a [monolithic application](/monolithic-apps/) (more to that below). ## Problem it addresses -Applications are made up of different parts, each responsible for a specific capability. -Demand for a particular functionality will not necessarily increase or decrease with demand for other app parts. -Going back to our Netflix example. -Let's say that after a big marketing campaign, Netflix experiences a big spike in signups, but streaming has remained more or less stable in the early hours of the day. -The surge in signups demands more signup capacity. -Traditionally (monolithic approach), the entire app would have to be [scaled](/scalability/) to accommodate the increase — a very inefficient use of resources. +Applications are made up of different parts, each responsible for a specific capability. +Demand for a particular functionality will not necessarily increase or decrease with demand for other app parts. +Going back to our Netflix example. +Let's say that after a big marketing campaign, Netflix experiences a big spike in signups, but streaming has remained more or less stable in the early hours of the day. +The surge in signups demands more signup capacity. +Traditionally (monolithic approach), the entire app would have to be [scaled](/scalability/) to accommodate the increase — a very inefficient use of resources. -Monolithic architectures also make it easy for developers to succumb to design pitfalls. -Because all the code is in one place, it is easier to make that code [tightly coupled](/tightly-coupled-architectures/) and harder to enforce the principle of separation of concerns. -Monoliths also often require developers to understand the entire codebase before deploying any changes. -Microservices architecture is a response to these challenges. +Monolithic architectures also make it easy for developers to succumb to design pitfalls. +Because all the code is in one place, it is easier to make that code [tightly coupled](/tightly-coupled-architecture/) and harder to enforce the principle of separation of concerns. +Monoliths also often require developers to understand the entire codebase before deploying any changes. +Microservices architecture is a response to these challenges. ## How it helps -Separating functionality into different microservices makes them easier to deploy, update, and scale independently. -It also allows different teams to work simultaneously on a small part of a bigger application without inadvertently negatively impacting the rest of the app. -While a microservices architecture solves many problems, it also creates operational overhead — the things you need to deploy and keep track of increase by order of magnitude. +Separating functionality into different microservices makes them easier to deploy, update, and scale independently. +It also allows different teams to work simultaneously on a small part of a bigger application without inadvertently negatively impacting the rest of the app. +While a microservices architecture solves many problems, it also creates operational overhead — the things you need to deploy and keep track of increase by order of magnitude. Many [cloud-native technologies](/cloud-native-tech/) aim to make microservices easier to deploy and manage. diff --git a/content/en/stateful-apps.md b/content/en/stateful-apps.md index a59499c64e..4412df8f9e 100644 --- a/content/en/stateful-apps.md +++ b/content/en/stateful-apps.md @@ -5,12 +5,12 @@ category: Property tags: ["fundamental", "application", "property"] --- -When we speak of stateful (and [stateless](/stateless-apps/)) apps, -state refers to any data the app needs to store to function as designed. -Any kind of online shop that remembers your cart is a stateful app for example. +When we speak of stateful (and [stateless](/stateless-apps/)) apps, +state refers to any data the app needs to store to function as designed. +Any kind of online shop that remembers your cart is a stateful app for example. -Today, most applications we use are at least partly stateful. In cloud native environments though, -stateful apps are a challenge. This is because [cloud native apps](/cloud-native-apps) are very dynamic. +Today, most applications we use are at least partly stateful. In cloud native environments though, +stateful apps are a challenge. This is because [cloud native apps](/cloud-native-apps/) are very dynamic. They can be scaled up and down, restarted, and moved around but still need to be able to access their state. Therefore, stateful apps needs some kind of storage that is accessible from anywhere, like databases. diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 861bc9ba03..0000000000 --- a/package-lock.json +++ /dev/null @@ -1,32537 +0,0 @@ -{ - "name": "tech-doc-hugo", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "tech-doc-hugo", - "version": "0.0.1", - "license": "ISC", - "dependencies": { - "lunr-languages": "^1.9.0" - }, - "devDependencies": { - "autoprefixer": "^9.8.6", - "hugo-extended": "^0.115.2", - "netlify-cli": "^15.9.0", - "postcss-cli": "^7.1.2" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/browserslist/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001282", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", - "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/careful-downloader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/careful-downloader/-/careful-downloader-3.0.0.tgz", - "integrity": "sha512-5KMIPa0Yoj+2tY6OK9ewdwcPebp+4XS0dMYvvF9/8fkFEfvnEpWmHWYs9JNcZ7RZUvY/v6oPzLpmmTzSIbroSA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "decompress": "^4.2.1", - "fs-extra": "^11.1.1", - "got": "^12.6.0", - "is-path-inside": "^4.0.0", - "tempy": "^3.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/careful-downloader/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", - "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "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": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/hugo-extended": { - "version": "0.115.2", - "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.115.2.tgz", - "integrity": "sha512-PCLH9TwexpYTVsrAI8AFV0PJLC4vHsncxTRcwvTYl7atLSWEIySBvO7z5ivx2vAvwzrgnCOVgLllIgJISsYnpg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "careful-downloader": "^3.0.0", - "log-symbols": "^5.1.0", - "read-pkg-up": "^9.1.0" - }, - "bin": { - "hugo": "lib/cli.js", - "hugo-extended": "lib/cli.js" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/hugo-extended/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/hugo-extended/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lunr-languages": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", - "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/netlify-cli": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-15.9.0.tgz", - "integrity": "sha512-AqeT+3vb8dWErhVBtso7VjxGdszwaWH9AGnwn8tvyknjxN+qNtlXGb5PxcfI1COaL2BlSphMMGjt/jl7C1NBkQ==", - "dev": true, - "hasInstallScript": true, - "hasShrinkwrap": true, - "dependencies": { - "@bugsnag/js": "7.20.2", - "@fastify/static": "6.10.2", - "@netlify/build": "29.16.1", - "@netlify/build-info": "7.4.1", - "@netlify/config": "20.6.0", - "@netlify/edge-bundler": "8.16.4", - "@netlify/framework-info": "9.8.10", - "@netlify/local-functions-proxy": "1.1.1", - "@netlify/serverless-functions-api": "1.5.1", - "@netlify/zip-it-and-ship-it": "9.13.0", - "@octokit/rest": "19.0.13", - "@skn0tt/lambda-local": "2.0.3", - "ansi-escapes": "6.2.0", - "ansi-styles": "6.2.1", - "ansi-to-html": "0.7.2", - "ascii-table": "0.0.9", - "backoff": "2.5.0", - "better-opn": "3.0.2", - "boxen": "7.1.1", - "chalk": "5.2.0", - "chokidar": "3.5.3", - "ci-info": "3.8.0", - "clean-deep": "3.4.0", - "commander": "10.0.1", - "comment-json": "4.2.3", - "concordance": "5.0.4", - "configstore": "6.0.0", - "content-type": "1.0.5", - "cookie": "0.5.0", - "copy-template-dir": "1.4.0", - "cron-parser": "4.8.1", - "debug": "4.3.4", - "decache": "4.6.2", - "dot-prop": "7.2.0", - "dotenv": "16.0.3", - "env-paths": "3.0.0", - "envinfo": "7.8.1", - "etag": "1.8.1", - "execa": "5.1.1", - "express": "4.18.2", - "express-logging": "1.1.1", - "extract-zip": "2.0.1", - "fastest-levenshtein": "1.0.16", - "fastify": "4.17.0", - "find-up": "6.3.0", - "flush-write-stream": "2.0.0", - "folder-walker": "3.2.0", - "from2-array": "0.0.4", - "fuzzy": "0.1.3", - "get-port": "5.1.1", - "gh-release-fetch": "4.0.3", - "git-repo-info": "2.1.1", - "gitconfiglocal": "2.1.0", - "hasbin": "1.2.3", - "hasha": "5.2.2", - "http-proxy": "1.18.1", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "5.0.1", - "inquirer": "6.5.2", - "inquirer-autocomplete-prompt": "1.4.0", - "is-docker": "3.0.0", - "is-stream": "3.0.0", - "is-wsl": "2.2.0", - "isexe": "2.0.0", - "jsonwebtoken": "9.0.1", - "jwt-decode": "3.1.2", - "listr": "0.14.3", - "locate-path": "7.2.0", - "lodash": "4.17.21", - "log-symbols": "5.1.0", - "log-update": "5.0.1", - "minimist": "1.2.8", - "multiparty": "4.2.3", - "netlify": "13.1.10", - "netlify-headers-parser": "7.1.2", - "netlify-redirect-parser": "14.1.3", - "netlify-redirector": "0.4.0", - "node-fetch": "2.6.12", - "node-version-alias": "3.4.1", - "ora": "6.3.1", - "p-filter": "3.0.0", - "p-map": "5.5.0", - "p-wait-for": "5.0.2", - "parallel-transform": "1.2.0", - "parse-github-url": "1.0.2", - "parse-gitignore": "2.0.0", - "path-key": "4.0.0", - "prettyjson": "1.2.5", - "pump": "3.0.0", - "raw-body": "2.5.2", - "read-pkg-up": "9.1.0", - "semver": "7.5.4", - "source-map-support": "0.5.21", - "strip-ansi-control-characters": "2.0.0", - "tabtab": "3.0.2", - "tempy": "3.0.0", - "terminal-link": "3.0.0", - "through2-filter": "3.0.0", - "through2-map": "3.0.0", - "to-readable-stream": "3.0.0", - "toml": "3.0.0", - "ulid": "2.3.0", - "unixify": "1.0.0", - "update-notifier": "6.0.2", - "uuid": "9.0.0", - "wait-port": "1.0.4", - "winston": "3.8.2", - "write-file-atomic": "5.0.1" - }, - "bin": { - "netlify": "bin/run.mjs", - "ntl": "bin/run.mjs" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/netlify-cli/node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/netlify-cli/node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/netlify-cli/node_modules/@babel/highlight/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/netlify-cli/node_modules/@babel/highlight/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/netlify-cli/node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@bugsnag/browser": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", - "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", - "dev": true, - "dependencies": { - "@bugsnag/core": "^7.19.0" - } - }, - "node_modules/netlify-cli/node_modules/@bugsnag/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", - "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", - "dev": true, - "dependencies": { - "@bugsnag/cuid": "^3.0.0", - "@bugsnag/safe-json-stringify": "^6.0.0", - "error-stack-parser": "^2.0.3", - "iserror": "0.0.2", - "stack-generator": "^2.0.3" - } - }, - "node_modules/netlify-cli/node_modules/@bugsnag/cuid": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", - "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@bugsnag/js": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", - "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", - "dev": true, - "dependencies": { - "@bugsnag/browser": "^7.20.2", - "@bugsnag/node": "^7.19.0" - } - }, - "node_modules/netlify-cli/node_modules/@bugsnag/node": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", - "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", - "dev": true, - "dependencies": { - "@bugsnag/core": "^7.19.0", - "byline": "^5.0.0", - "error-stack-parser": "^2.0.2", - "iserror": "^0.0.2", - "pump": "^3.0.0", - "stack-generator": "^2.0.3" - } - }, - "node_modules/netlify-cli/node_modules/@bugsnag/safe-json-stringify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", - "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==", - "dev": true - }, - "node_modules/netlify-cli/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, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/netlify-cli/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", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@dependents/detective-less": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.0.0.tgz", - "integrity": "sha512-0udn+HKjGUzTX4Z+0vXdEJVsO28gxy5QxWjeChK4ZH+bwdvIXLuztiGZk8wLyAG1+LNZ5haVHKr5j1XfJnAkyQ==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/accept-negotiator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", - "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", - "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", - "dev": true, - "dependencies": { - "ajv": "^8.11.0", - "ajv-formats": "^2.1.1", - "fast-uri": "^2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@fastify/deepmerge": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", - "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@fastify/error": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", - "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@fastify/fast-json-stringify-compiler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", - "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", - "dev": true, - "dependencies": { - "fast-json-stringify": "^5.7.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/send": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.0.1.tgz", - "integrity": "sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==", - "dev": true, - "dependencies": { - "@lukeed/ms": "^2.0.1", - "escape-html": "~1.0.3", - "fast-decode-uri-component": "^1.0.1", - "http-errors": "2.0.0", - "mime": "^3.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.10.2.tgz", - "integrity": "sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ==", - "dev": true, - "dependencies": { - "@fastify/accept-negotiator": "^1.0.0", - "@fastify/send": "^2.0.0", - "content-disposition": "^0.5.3", - "fastify-plugin": "^4.0.0", - "glob": "^8.0.1", - "p-limit": "^3.1.0", - "readable-stream": "^4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/netlify-cli/node_modules/@grpc/grpc-js": { - "version": "1.8.17", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.17.tgz", - "integrity": "sha512-DGuSbtMFbaRsyffMf+VEkVu8HkSXEUfO3UyGJNtqxW9ABdtTIA+2UXAJpwbJS+xfQxuwqLUeELmL6FuZkOqPxw==", - "dev": true, - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/netlify-cli/node_modules/@grpc/proto-loader": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.7.tgz", - "integrity": "sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==", - "dev": true, - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/@honeycombio/opentelemetry-node": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.4.0.tgz", - "integrity": "sha512-6PFX8FGW7uA7vQ3mxNIoN36rH9Zx5kXh4kKP9zu28nynyWyy9JE3l8PNJYd9FS2L/d88ZUpQAiQ1pROaANd5MA==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "^1.7.3", - "@opentelemetry/api": "^1.4.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "^0.36.1", - "@opentelemetry/exporter-metrics-otlp-proto": "^0.36.1", - "@opentelemetry/exporter-trace-otlp-grpc": "^0.36.1", - "@opentelemetry/exporter-trace-otlp-proto": "^0.36.1", - "@opentelemetry/resources": "^1.10.1", - "@opentelemetry/sdk-metrics": "^1.10.1", - "@opentelemetry/sdk-node": "^0.36.1", - "@opentelemetry/sdk-trace-base": "^1.10.1", - "axios": "^1.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/@humanwhocodes/momoa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", - "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", - "dev": true, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/netlify-cli/node_modules/@import-maps/resolve": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/netlify-cli/node_modules/@lukeed/ms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", - "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/binary-info": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", - "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@netlify/build": { - "version": "29.16.1", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.16.1.tgz", - "integrity": "sha512-1D3l0NiCVEFF5aU2prVMP8MQr2Bu+UuyYe69Z7k/7GjFIx4Q1sLgewTf4p+al3LhSLT5fs52cbIec9pT9HSjyQ==", - "dev": true, - "dependencies": { - "@bugsnag/js": "^7.0.0", - "@honeycombio/opentelemetry-node": "^0.4.0", - "@netlify/cache-utils": "^5.1.5", - "@netlify/config": "^20.6.0", - "@netlify/edge-bundler": "8.16.4", - "@netlify/framework-info": "^9.8.10", - "@netlify/functions-utils": "^5.2.18", - "@netlify/git-utils": "^5.1.1", - "@netlify/plugins-list": "^6.68.0", - "@netlify/run-utils": "^5.1.1", - "@netlify/zip-it-and-ship-it": "9.13.0", - "@opentelemetry/api": "^1.4.1", - "@sindresorhus/slugify": "^2.0.0", - "ansi-escapes": "^6.0.0", - "chalk": "^5.0.0", - "clean-stack": "^4.0.0", - "execa": "^6.0.0", - "fdir": "^6.0.1", - "figures": "^5.0.0", - "filter-obj": "^5.0.0", - "got": "^12.0.0", - "hot-shots": "10.0.0", - "indent-string": "^5.0.0", - "is-plain-obj": "^4.0.0", - "js-yaml": "^4.0.0", - "keep-func-props": "^4.0.0", - "locate-path": "^7.0.0", - "log-process-errors": "^8.0.0", - "map-obj": "^5.0.0", - "memoize-one": "^6.0.0", - "os-name": "^5.0.0", - "p-event": "^5.0.0", - "p-every": "^2.0.0", - "p-filter": "^3.0.0", - "p-locate": "^6.0.0", - "p-reduce": "^3.0.0", - "path-exists": "^5.0.0", - "path-type": "^5.0.0", - "pkg-dir": "^7.0.0", - "pretty-ms": "^8.0.0", - "ps-list": "^8.0.0", - "read-pkg-up": "^9.0.0", - "readdirp": "^3.4.0", - "resolve": "^2.0.0-next.1", - "rfdc": "^1.3.0", - "safe-json-stringify": "^1.2.0", - "semver": "^7.3.8", - "string-width": "^5.0.0", - "strip-ansi": "^7.0.0", - "supports-color": "^9.0.0", - "terminal-link": "^3.0.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.0", - "uuid": "^9.0.0", - "yargs": "^17.6.0" - }, - "bin": { - "netlify-build": "bin.js" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.4.1.tgz", - "integrity": "sha512-JucExQCHJCk8smscd+fzU2z0MM7vyw4XJJWREq9Im5i8nPy56mjG0oeODk7DB7pQK6X9wyUViwVRPF8ftwuq9Q==", - "dev": true, - "dependencies": { - "@bugsnag/js": "^7.20.0", - "@netlify/framework-info": "^9.8.10", - "dot-prop": "^7.2.0", - "find-up": "^6.3.0", - "minimatch": "^9.0.0", - "read-pkg": "^7.1.0", - "semver": "^7.3.8", - "toml": "^3.0.0", - "yaml": "^2.1.3", - "yargs": "^17.6.0" - }, - "bin": { - "build-info": "bin.js" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/parse-ms": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", - "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/pretty-ms": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", - "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", - "dev": true, - "dependencies": { - "parse-ms": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/cache-utils": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-5.1.5.tgz", - "integrity": "sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg==", - "dev": true, - "dependencies": { - "cpy": "^9.0.0", - "get-stream": "^6.0.0", - "globby": "^13.0.0", - "junk": "^4.0.0", - "locate-path": "^7.0.0", - "move-file": "^3.0.0", - "path-exists": "^5.0.0", - "readdirp": "^3.4.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-20.6.0.tgz", - "integrity": "sha512-YPWvkq7hYgYLVsbEPbGq7aZQh59D2h5NeIwgRZxabsheIMriyxpDZVVajK1+z1U0Z2DsJxn+XSOJSNSSKUIk4w==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "cron-parser": "^4.1.0", - "deepmerge": "^4.2.2", - "dot-prop": "^7.0.0", - "execa": "^6.0.0", - "fast-safe-stringify": "^2.0.7", - "figures": "^5.0.0", - "filter-obj": "^5.0.0", - "find-up": "^6.0.0", - "indent-string": "^5.0.0", - "is-plain-obj": "^4.0.0", - "js-yaml": "^4.0.0", - "map-obj": "^5.0.0", - "netlify": "^13.1.10", - "netlify-headers-parser": "^7.1.2", - "netlify-redirect-parser": "^14.1.3", - "node-fetch": "^3.3.1", - "omit.js": "^2.0.2", - "p-locate": "^6.0.0", - "path-type": "^5.0.0", - "toml": "^3.0.0", - "tomlify-j0.4": "^3.0.0", - "validate-npm-package-name": "^4.0.0", - "yargs": "^17.6.0" - }, - "bin": { - "netlify-config": "bin.js" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler": { - "version": "8.16.4", - "resolved": "https://registry.npmjs.org/@netlify/edge-bundler/-/edge-bundler-8.16.4.tgz", - "integrity": "sha512-5sYymRzZLzdSp1AtCcuEdjeQ/QcJ6LORERU5Nr48MY5Y9GKEHC7uIeQFwLT/YMgnDRd4FqPv+g8RBSu3HP9Czg==", - "dev": true, - "dependencies": { - "@import-maps/resolve": "^1.0.1", - "ajv": "^8.11.2", - "ajv-errors": "^3.0.0", - "better-ajv-errors": "^1.2.0", - "common-path-prefix": "^3.0.0", - "env-paths": "^3.0.0", - "execa": "^6.0.0", - "find-up": "^6.3.0", - "get-port": "^6.1.2", - "glob-to-regexp": "^0.4.1", - "is-path-inside": "^4.0.0", - "jsonc-parser": "^3.2.0", - "node-fetch": "^3.1.1", - "node-stream-zip": "^1.15.0", - "p-retry": "^5.1.1", - "p-wait-for": "^4.1.0", - "path-key": "^4.0.0", - "regexp-tree": "^0.1.24", - "semver": "^7.3.8", - "tmp-promise": "^3.0.3", - "uuid": "^9.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "peerDependencies": { - "ajv": "^8.0.1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/get-port": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-wait-for": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", - "dev": true, - "dependencies": { - "p-timeout": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz", - "integrity": "sha512-C3xpwdT2xw6SnSb+hLQoxjtikAKiz6BjQjzlIaysHDpGbmIcmUHZ/X+dyLtCqAvf15WNK5GSBZYOlpgcOE0WZA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@netlify/esbuild-android-64": "0.14.39", - "@netlify/esbuild-android-arm64": "0.14.39", - "@netlify/esbuild-darwin-64": "0.14.39", - "@netlify/esbuild-darwin-arm64": "0.14.39", - "@netlify/esbuild-freebsd-64": "0.14.39", - "@netlify/esbuild-freebsd-arm64": "0.14.39", - "@netlify/esbuild-linux-32": "0.14.39", - "@netlify/esbuild-linux-64": "0.14.39", - "@netlify/esbuild-linux-arm": "0.14.39", - "@netlify/esbuild-linux-arm64": "0.14.39", - "@netlify/esbuild-linux-mips64le": "0.14.39", - "@netlify/esbuild-linux-ppc64le": "0.14.39", - "@netlify/esbuild-linux-riscv64": "0.14.39", - "@netlify/esbuild-linux-s390x": "0.14.39", - "@netlify/esbuild-netbsd-64": "0.14.39", - "@netlify/esbuild-openbsd-64": "0.14.39", - "@netlify/esbuild-sunos-64": "0.14.39", - "@netlify/esbuild-windows-32": "0.14.39", - "@netlify/esbuild-windows-64": "0.14.39", - "@netlify/esbuild-windows-arm64": "0.14.39" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-android-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", - "integrity": "sha512-azq+lsvjRsKLap8ubIwSJXGyknUACqYu5h98Fvyoh40Qk4QXIVKl16JIJ4s+B7jy2k9qblEc5c4nxdDA3aGbVA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-android-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", - "integrity": "sha512-WhIP7ePq4qMC1sxoaeB9SsJqSW6uzW7XDj/IuWl1l9r94nwxywU1sYdVLaF2mZr15njviazYjVr8x1d+ipwL3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-darwin-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", - "integrity": "sha512-eF4GvLYiDxtcyjFT55+h+8c8A2HltjeMezCqkt3AQSgOdu1nhlvwbBhIdg2dyM6gKEaEm5hBtTbicEDSwsLodA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-darwin-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", - "integrity": "sha512-b7rtnX/VtYwNbUCxs3eulrCWJ+u2YvqDcXiIV1ka+od+N0fTx+4RrVkVp1lha9L0wEJYK9J7UWZOMLMyd1ynRg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-freebsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", - "integrity": "sha512-XtusxDJt2hUKUdggbTFolMx0kJL2zEa4STI7YwpB+ukEWoW5rODZjiLZbqqYLcjDH8k4YwHaMxs103L8eButEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-freebsd-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", - "integrity": "sha512-A9XZKai+k6kfndCtN6Dh2usT28V0+OGxzFdZsANONPQiEUTrGZCgwcHWiVlVn7SeAwPR1tKZreTnvrfj8cj7hA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-32": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", - "integrity": "sha512-ZQnqk/82YRvINY+aF+LlGfRZ19c5mH0jaxsO046GpIOPx6PcXHG8JJ2lg+vLJVe4zFPohxzabcYpwFuT4cg/GA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", - "integrity": "sha512-IQtswVw7GAKNX/3yV390wSfSXvMWy0d5cw8csAffwBk9gupftY2lzepK4Cn6uD/aqLt3Iku33FbHop/2nPGfQA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-arm": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", - "integrity": "sha512-QdOzQniOed0Bz1cTC9TMMwvtAqKayYv66H4edJlbvElC81yJZF/c9XhmYWJ6P5g4nkChZubQ5RcQwTLmrFGexg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", - "integrity": "sha512-4Jie4QV6pWWuGN7TAshNMGbdTA9+VbRkv3rPIxhgK5gBfmsAV1yRKsumE4Y77J0AZNRiOriyoec4zc1qkmI3zg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-mips64le": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", - "integrity": "sha512-Htozxr95tw4tSd86YNbCLs1eoYQzNu/cHpzFIkuJoztZueUhl8XpRvBdob7n3kEjW1gitLWAIn8XUwSt+aJ1Tg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-ppc64le": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", - "integrity": "sha512-tFy0ufWIdjeuk1rPHee00TZlhr9OSF00Ufb4ROFyt2ArKuMSkWRJuDgx6MtZcAnCIN4cybo/xWl3MKTM+scnww==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-riscv64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", - "integrity": "sha512-ZzfKvwIxL7wQnYbVFpyNW0wotnLoKageUEM57RbjekesJoNQnqUR6Usm+LDZoB8iRsI58VX1IxnstP0cX8vOHw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-s390x": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", - "integrity": "sha512-yjC0mFwnuMRoh0WcF0h71MF71ytZBFEQQTRdgiGT0+gbC4UApBqnTkJdLx32RscBKi9skbMChiJ748hDJou6FA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-netbsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", - "integrity": "sha512-mIq4znOoz3YfTVdv3sIWfR4Zx5JgMnT4srlhC5KYVHibhxvyDdin5txldYXmR4Zv4dZd6DSuWFsn441aUegHeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-openbsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", - "integrity": "sha512-+t6QdzJCngH19hV7ClpFAeFDI2ko/HNcFbiNwaXTMVLB3hWi1sJtn+fzZck5HfzN4qsajAVqZq4nwX69SSt25A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-sunos-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", - "integrity": "sha512-HLfXG6i2p3wyyyWHeeP4ShGDJ1zRMnf9YLJLe2ezv2KqvcKw/Un/m/FBuDW1p13oSUO7ShISMzgc1dw1GGBEOQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-32": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", - "integrity": "sha512-ZpSQcKbVSCU3ln7mHpsL/5dWsUqCNdTnC5YAArnaOwdrlIunrsbo5j4MOZRRcGExb2uvTc/rb+D3mlGb8j1rkA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", - "integrity": "sha512-I3gCdO8+6IDhT4Y1ZmV4o2Gg0oELv7N4kCcE4kqclz10fWHNjf19HQNHyBJe0AWnFV5ZfT154VVD31dqgwpgFw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", - "integrity": "sha512-WX52W8U1lsfWcz6NWoSpDs57lgiiMHN23seq8G2bvxzGS/tvYD3dxVLLW5UPoKSnFDyVQT7b6Zkt6AkBten1yQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info": { - "version": "9.8.10", - "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-9.8.10.tgz", - "integrity": "sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg==", - "dev": true, - "dependencies": { - "ajv": "^8.12.0", - "filter-obj": "^5.0.0", - "find-up": "^6.3.0", - "is-plain-obj": "^4.0.0", - "locate-path": "^7.0.0", - "p-filter": "^3.0.0", - "p-locate": "^6.0.0", - "process": "^0.11.10", - "read-pkg-up": "^9.0.0", - "semver": "^7.3.8" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/functions-utils": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.18.tgz", - "integrity": "sha512-da/DvWJw/yE9VBPuBkqPH0E/G3lsnxugqZqkwmA4DnPkdN/qythIBPYznw4un1tVmA5ekZRP3var8bZDZ0DPNQ==", - "dev": true, - "dependencies": { - "@netlify/zip-it-and-ship-it": "9.13.0", - "cpy": "^9.0.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/functions-utils/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-5.1.1.tgz", - "integrity": "sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw==", - "dev": true, - "dependencies": { - "execa": "^6.0.0", - "map-obj": "^5.0.0", - "micromatch": "^4.0.2", - "moize": "^6.1.3", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz", - "integrity": "sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw==", - "dev": true, - "optionalDependencies": { - "@netlify/local-functions-proxy-darwin-arm64": "1.1.1", - "@netlify/local-functions-proxy-darwin-x64": "1.1.1", - "@netlify/local-functions-proxy-freebsd-arm64": "1.1.1", - "@netlify/local-functions-proxy-freebsd-x64": "1.1.1", - "@netlify/local-functions-proxy-linux-arm": "1.1.1", - "@netlify/local-functions-proxy-linux-arm64": "1.1.1", - "@netlify/local-functions-proxy-linux-ia32": "1.1.1", - "@netlify/local-functions-proxy-linux-ppc64": "1.1.1", - "@netlify/local-functions-proxy-linux-x64": "1.1.1", - "@netlify/local-functions-proxy-openbsd-x64": "1.1.1", - "@netlify/local-functions-proxy-win32-ia32": "1.1.1", - "@netlify/local-functions-proxy-win32-x64": "1.1.1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz", - "integrity": "sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz", - "integrity": "sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz", - "integrity": "sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz", - "integrity": "sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz", - "integrity": "sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz", - "integrity": "sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ppc64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz", - "integrity": "sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz", - "integrity": "sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-openbsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz", - "integrity": "sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz", - "integrity": "sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "local-functions-proxy.exe": "bin/local-functions-proxy.exe" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz", - "integrity": "sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "local-functions-proxy.exe": "bin/local-functions-proxy.exe" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/open-api": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.19.1.tgz", - "integrity": "sha512-RkucRf8o0vYhCDXCRHWU/EdhkVE3JhkqKmZFvMW6qCPD206GV2Cfo9JGSKb0NdN+nmHSNaYmd+9dvT6I9MP4pw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@netlify/plugins-list": { - "version": "6.68.0", - "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.68.0.tgz", - "integrity": "sha512-OIW7oDTXFKEyzG2DQr6ndLWjYfNnSZAKbldD2dquH3V8Q6DrbGk8Dhv6LkuGOJBgrKS25SyabYOyHIVASQjrFw==", - "dev": true, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-5.1.1.tgz", - "integrity": "sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A==", - "dev": true, - "dependencies": { - "execa": "^6.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/serverless-functions-api": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.5.1.tgz", - "integrity": "sha512-c8RjIu+fkpfOGLaW0Z0iFG39GUK7sCa6M3Qy3fqouMpT00TaiheiyssnnDZGSLkNp4o+UtbRnITB1zuwDeHMLw==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.13.0.tgz", - "integrity": "sha512-IK6FvXFtRuEA2sZwSmNwkfZSOA1M9tTIHLqvBaHz7h3G0qquZ6p7DMMH7UkmbkPyqp6dZTfwhZ4Stc8A6UjzJw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.22.5", - "@netlify/binary-info": "^1.0.0", - "@netlify/esbuild": "0.14.39", - "@netlify/serverless-functions-api": "^1.5.1", - "@vercel/nft": "^0.22.0", - "archiver": "^5.3.0", - "common-path-prefix": "^3.0.0", - "cp-file": "^10.0.0", - "es-module-lexer": "^1.0.0", - "execa": "^6.0.0", - "filter-obj": "^5.0.0", - "find-up": "^6.0.0", - "glob": "^8.0.3", - "is-builtin-module": "^3.1.0", - "is-path-inside": "^4.0.0", - "junk": "^4.0.0", - "locate-path": "^7.0.0", - "merge-options": "^3.0.4", - "minimatch": "^9.0.0", - "normalize-path": "^3.0.0", - "p-map": "^5.0.0", - "path-exists": "^5.0.0", - "precinct": "^11.0.0", - "require-package-name": "^2.0.1", - "resolve": "^2.0.0-next.1", - "semver": "^7.3.8", - "tmp-promise": "^3.0.2", - "toml": "^3.0.0", - "unixify": "^1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "zip-it-and-ship-it": "dist/bin.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/auth-token": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", - "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", - "dev": true, - "dependencies": { - "@octokit/types": "^7.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz", - "integrity": "sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/core/node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@octokit/core/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/endpoint": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", - "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", - "dev": true, - "dependencies": { - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/graphql": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", - "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", - "dev": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^7.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/openapi-types": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", - "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", - "dev": true, - "dependencies": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz", - "integrity": "sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.2.3", - "deprecation": "^2.3.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/request": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", - "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/request-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", - "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^7.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/rest": { - "version": "19.0.13", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", - "dev": true, - "dependencies": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/netlify-cli/node_modules/@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@octokit/types": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", - "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^13.11.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/api": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/context-async-hooks": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.1.tgz", - "integrity": "sha512-6CC9sWOZDkUkKrAR957fmxXXlaK3uiBu5xVnuNEQ7hI7VqkUC/r0mNYIql0ouRInLz5o0HwmDuga1eXgQU7KNQ==", - "dev": true, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.1.tgz", - "integrity": "sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g==", - "dev": true, - "dependencies": { - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.10.1.tgz", - "integrity": "sha512-bZIoSD6M7uxO19HtRJCAceAahX56LUmj5N/XQFHmoi3iFqA2JfR7bqsyHQCYbgINdiee155UejaqkNpgvjV7fw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.36.1.tgz", - "integrity": "sha512-yQPHny0Y3HIE1BSqbN82MoqqbbJeLINjL7Qf3kJwv1zt5YLUhYbn3FkqHQWS0YWpAvdjK0/OcN40SjEbVz2HRA==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.36.1.tgz", - "integrity": "sha512-JcpEBwtBpNhVvmCLH3zjTPDcOld2AeI5rNglv2JrB16QCxQ5pwsOgzw7mPe/UR4u/53Ij7LIjFTOCeyVto/6aA==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-proto": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.36.1.tgz", - "integrity": "sha512-dKJRKvIiyupuZJOVCzW9wNfsK6RxkELnzCSJHzFoIwhGRXSYpbWyYrfHj4ZJZWYZiQSJ7+I8BFUa4aSkBgnO0w==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-proto-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.36.1.tgz", - "integrity": "sha512-U2HdWvQho2VkeSAcAhkZ2wjfUb/1SKQixo5x6LNBF17ES4QYuh5+BagYxfN5FP4dbLnjZpTtFk5lj+97lfNLEw==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.1.tgz", - "integrity": "sha512-q/jKlfuKiHqltDzgzgEvXkoEJ/EyVSIAZhfiaoyBeQ49UhHCPvNTH36/hSwbGSEhKeX98WxXZK4NB/S3sUs8ig==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.36.1.tgz", - "integrity": "sha512-pNfrto7amygyyhmL4Kf96wuepROEecBYXSrtoXIVb1aUhUqjWLsA3/6DR3unB5EfSRA1Oq1Z9bqHfNuKqGfPNw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-proto-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.10.1.tgz", - "integrity": "sha512-8gF8MjcFf6IhQ7vm6W4tPYtu/vQswYVzpYvk3pUSaX9BMGrwgjeXg+LpuRtaxGoiGd08/g7JjZ4sWLUaELnzWw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.1.tgz", - "integrity": "sha512-fpjPwLafJIjgxY5qx7Ly74AYmRCd9spC6/jCxvEgGheg1YT4+NkfVnrfllxLRgc9wQNhDj7Y0Knp8RcmXLLVfA==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.36.1.tgz", - "integrity": "sha512-71TdQ3Z0D2Trq8rc2UMvky7tmIpg8kVPUhdYH3p0tNsTmbx6GDpEBOpjp2/zCFvQ0SZFVfHH2Oj2OZxZiz+FNQ==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "^1.7.1", - "@grpc/proto-loader": "^0.7.3", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-proto-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.36.1.tgz", - "integrity": "sha512-9ErknJ5fS7r2NxEFeca93H+pGWnCjZCUWsz6Stcj5/z2rgsiZGHXLz3fQoUGQz+iXjiXKkks9wxTCRgWOW+Yiw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "protobufjs": "^7.1.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-transformer": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.1.tgz", - "integrity": "sha512-d2MomkVHBHwfsmNz6E60s/sm7gtpSjFwDzkFLm9brVq//VXzEhaEyfYSeTabdUs4BmrzhqTIogHWlcd6cOiL+w==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/propagator-b3": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.10.1.tgz", - "integrity": "sha512-YrWqU93PH8RyCmqGhtDZgyk64D+cp8XIjQsLhEgOPcOsxvxSSGXnGt46rx9Z8+WdIbJgj13Q4nV/xuh36k+O+A==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.1.tgz", - "integrity": "sha512-qvwFfDPoBw2YQW/OsGHdLdD/rqNRGBRLz5UZR/akO21C4qwIK+lQcXbSi5ve0p2eLHnFshhNFqDmgQclOYBcmg==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/resources": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.1.tgz", - "integrity": "sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-metrics": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.1.tgz", - "integrity": "sha512-ARAD4e6lZhLwstwW+1HG2Q3XuYFA/t8vn10KK/mA4em1pZYKFn64c45RJZJcntxWp4wOZRbp9iL1RXsg7zIjow==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "lodash.merge": "4.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.36.1.tgz", - "integrity": "sha512-7cRIxls3Ccg6HmzSu30R5upi0yHEizab2rm2rATrAyFV3JJ/ISA7cojmwKwYG8p4rkPNNPLOwCxI3vlLJrBnKA==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-jaeger": "1.10.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.36.1", - "@opentelemetry/exporter-trace-otlp-http": "0.36.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.36.1", - "@opentelemetry/exporter-zipkin": "1.10.1", - "@opentelemetry/instrumentation": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/sdk-trace-node": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/instrumentation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.36.1.tgz", - "integrity": "sha512-gtYErugMEF5NXVacmuE+tHFBiyB82YIiO5l8iZX9/4R4TDV8uCWdrLW5QZMqgTzPhiyOG9AITFdqhwIZMw/5lA==", - "dev": true, - "dependencies": { - "require-in-the-middle": "^6.0.0", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/require-in-the-middle": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", - "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz", - "integrity": "sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.1.tgz", - "integrity": "sha512-/y+s1j8rPTaKnPnbrsbYv3ygTb4hjx/1H32zqobFr85cvWX+Tt1RWmcZ51TaPAfq5uJobGFhhLh6ADI2RDvk5Q==", - "dev": true, - "dependencies": { - "@opentelemetry/context-async-hooks": "1.10.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/propagator-b3": "1.10.1", - "@opentelemetry/propagator-jaeger": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/netlify-cli/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz", - "integrity": "sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/netlify-cli/node_modules/@pnpm/network.ca-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", - "integrity": "sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA==", - "dev": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/netlify-cli/node_modules/@pnpm/npm-conf": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz", - "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==", - "dev": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/netlify-cli/node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/@sindresorhus/slugify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.1.1.tgz", - "integrity": "sha512-XokPHZ+q6FtQGEi1hnfvARVJJVPEhwHQTPHPPuNHaN6zcHjzYNynhhHMopa1wNPqLAFOwpsbintunEqWecXJMg==", - "dev": true, - "dependencies": { - "@sindresorhus/transliterate": "^1.0.0", - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@sindresorhus/slugify/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz", - "integrity": "sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "lodash.deburr": "^4.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@skn0tt/lambda-local": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@skn0tt/lambda-local/-/lambda-local-2.0.3.tgz", - "integrity": "sha512-7WZuCWSHeWC9Fh2FTT7lAT6yL5vDZUPxCZ51gIDdCc631CXmEJL/r7t2WMubP2CPuuRA+EnDSJrzKckwY4cz8g==", - "dev": true, - "dependencies": { - "commander": "^9.4.0", - "dotenv": "^16.0.2", - "winston": "^3.8.2" - }, - "bin": { - "lambda-local": "build/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/@skn0tt/lambda-local/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/netlify-cli/node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/netlify-cli/node_modules/@types/node": { - "version": "16.11.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", - "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/netlify-cli/node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/netlify-cli/node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/netlify-cli/node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/netlify-cli/node_modules/@vercel/nft": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.1.tgz", - "integrity": "sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==", - "dev": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "acorn": "^8.6.0", - "async-sema": "^3.1.1", - "bindings": "^1.4.0", - "estree-walker": "2.0.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.2", - "node-gyp-build": "^4.2.2", - "resolve-from": "^5.0.0", - "rollup-pluginutils": "^2.8.2" - }, - "bin": { - "nft": "out/cli.js" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/archive-type": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz", - "integrity": "sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==", - "dev": true, - "dependencies": { - "file-type": "^18.5.0" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-9.0.1.tgz", - "integrity": "sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q==", - "dev": true, - "dependencies": { - "@xhmikosr/decompress-tar": "^7.0.0", - "@xhmikosr/decompress-tarbz2": "^7.0.0", - "@xhmikosr/decompress-targz": "^7.0.0", - "@xhmikosr/decompress-unzip": "^6.0.0", - "graceful-fs": "^4.2.11", - "make-dir": "^4.0.0", - "strip-dirs": "^3.0.0" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz", - "integrity": "sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw==", - "dev": true, - "dependencies": { - "file-type": "^18.5.0", - "is-stream": "^3.0.0", - "tar-stream": "^3.1.4" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar/node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", - "dev": true, - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tarbz2": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz", - "integrity": "sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA==", - "dev": true, - "dependencies": { - "@xhmikosr/decompress-tar": "^7.0.0", - "file-type": "^18.5.0", - "is-stream": "^3.0.0", - "seek-bzip": "^1.0.6", - "unbzip2-stream": "^1.4.3" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-targz": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz", - "integrity": "sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw==", - "dev": true, - "dependencies": { - "@xhmikosr/decompress-tar": "^7.0.0", - "file-type": "^18.5.0", - "is-stream": "^3.0.0" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-unzip": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz", - "integrity": "sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg==", - "dev": true, - "dependencies": { - "file-type": "^18.5.0", - "get-stream": "^6.0.1", - "yauzl": "^2.10.0" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-13.0.1.tgz", - "integrity": "sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w==", - "dev": true, - "dependencies": { - "@xhmikosr/archive-type": "^6.0.1", - "@xhmikosr/decompress": "^9.0.1", - "content-disposition": "^0.5.4", - "ext-name": "^5.0.0", - "file-type": "^18.5.0", - "filenamify": "^5.1.1", - "get-stream": "^6.0.1", - "got": "^12.6.1", - "merge-options": "^3.0.4", - "p-event": "^5.0.1" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filename-reserved-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", - "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filenamify": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", - "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", - "dev": true, - "dependencies": { - "filename-reserved-regex": "^3.0.0", - "strip-outer": "^2.0.0", - "trim-repeated": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/strip-outer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", - "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/trim-repeated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", - "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/netlify-cli/node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/netlify-cli/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/netlify-cli/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/netlify-cli/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/all-node-versions": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-11.3.0.tgz", - "integrity": "sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==", - "dev": true, - "dependencies": { - "fetch-node-website": "^7.3.0", - "filter-obj": "^5.1.0", - "get-stream": "^6.0.0", - "global-cache-dir": "^4.3.1", - "is-plain-obj": "^4.1.0", - "path-exists": "^5.0.0", - "semver": "^7.3.7", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/netlify-cli/node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/netlify-cli/node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dev": true, - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/ansi-to-html": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", - "integrity": "sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g==", - "dev": true, - "dependencies": { - "entities": "^2.2.0" - }, - "bin": { - "ansi-to-html": "bin/ansi-to-html" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/netlify-cli/node_modules/ansi-to-html/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/archiver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", - "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/netlify-cli/node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/archiver-utils/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/netlify-cli/node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/array-timsort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/arrify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", - "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/ascii-table": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", - "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/ast-module-types": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", - "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/async-sema": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/netlify-cli/node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/netlify-cli/node_modules/avvio": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", - "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1" - } - }, - "node_modules/netlify-cli/node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/netlify-cli/node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dev": true, - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", - "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@humanwhocodes/momoa": "^2.0.2", - "chalk": "^4.1.2", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0 < 4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "ajv": "4.11.8 - 8" - } - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/netlify-cli/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/netlify-cli/node_modules/blueimp-md5": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/netlify-cli/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/body-parser/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/boxen/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/boxen/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/boxen/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/boxen/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/boxen/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/netlify-cli/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/netlify-cli/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/netlify-cli/node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dev": true, - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/netlify-cli/node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/builtins": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.0.tgz", - "integrity": "sha512-aizhtbxgT1Udg0Fj6GssXshAVK+nxbtCV+1OtTrMNy67jffDFBY6CUBAkhO4owbleAx6fdbnWdpsmmcXydbzNw==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/netlify-cli/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/netlify-cli/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/clean-deep": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz", - "integrity": "sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==", - "dev": true, - "dependencies": { - "lodash.isempty": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.transform": "^4.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "dev": true, - "dependencies": { - "string-width": "^4.2.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/netlify-cli/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": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/netlify-cli/node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/netlify-cli/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, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/netlify-cli/node_modules/colors-option": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-3.0.0.tgz", - "integrity": "sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "filter-obj": "^3.0.0", - "is-plain-obj": "^4.0.0", - "jest-validate": "^27.3.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/colors-option/node_modules/filter-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dev": true, - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/netlify-cli/node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", - "dev": true, - "dependencies": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.3", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/comment-json/node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/netlify-cli/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/concordance": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", - "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", - "dev": true, - "dependencies": { - "date-time": "^3.1.0", - "esutils": "^2.0.3", - "fast-diff": "^1.2.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.15", - "md5-hex": "^3.0.1", - "semver": "^7.3.2", - "well-known-symbols": "^2.0.0" - }, - "engines": { - "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" - } - }, - "node_modules/netlify-cli/node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/netlify-cli/node_modules/config-chain/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/configstore/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/netlify-cli/node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz", - "integrity": "sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "graceful-fs": "^4.1.3", - "maxstache": "^1.0.0", - "maxstache-stream": "^1.0.0", - "mkdirp": "^0.5.1", - "noop2": "^2.0.0", - "pump": "^1.0.0", - "readdirp": "^2.0.0", - "run-parallel": "^1.1.4" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/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/netlify-cli/node_modules/copy-template-dir/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/cp-file": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", - "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.10", - "nested-error-stacks": "^2.1.1", - "p-event": "^5.0.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cpy": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", - "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", - "dev": true, - "dependencies": { - "arrify": "^3.0.0", - "cp-file": "^9.1.0", - "globby": "^13.1.1", - "junk": "^4.0.0", - "micromatch": "^4.0.4", - "nested-error-stacks": "^2.1.0", - "p-filter": "^3.0.0", - "p-map": "^5.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cpy/node_modules/cp-file": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cpy/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cpy/node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cpy/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/cpy/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/crc-32": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", - "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", - "dev": true, - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.3.1" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/netlify-cli/node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/netlify-cli/node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/cron-parser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.8.1.tgz", - "integrity": "sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==", - "dev": true, - "dependencies": { - "luxon": "^3.2.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/netlify-cli/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/cross-spawn/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/netlify-cli/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==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/date-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", - "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", - "dev": true, - "dependencies": { - "time-zone": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/decache": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", - "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", - "dev": true, - "dependencies": { - "callsite": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/netlify-cli/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/netlify-cli/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/netlify-cli/node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/netlify-cli/node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/detective-amd": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.1.tgz", - "integrity": "sha512-e7n0E0Wte78U9lcpl3hsTh1ZJ+zp/rgEbdbzGLgTowSbbSemuHnM8olp4KHMF1eCaurrCE50IU9VkoV13ezK4A==", - "dev": true, - "dependencies": { - "ast-module-types": "^5.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^5.0.0", - "node-source-walk": "^6.0.0" - }, - "bin": { - "detective-amd": "bin/cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-cjs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", - "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", - "dev": true, - "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-es6": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", - "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", - "dev": true, - "dependencies": { - "node-source-walk": "^6.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-postcss": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", - "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", - "dev": true, - "dependencies": { - "is-url": "^1.2.4", - "postcss": "^8.4.23", - "postcss-values-parser": "^6.0.2" - }, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/detective-sass": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", - "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-scss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", - "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-stylus": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", - "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/detective-typescript": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.0.1.tgz", - "integrity": "sha512-pVCuFWdEAyHI16zO3NBWSAULV8pevSkX3gwK8w3y9RrBGUrig6wDvwv6vUpnu+HfOr0MDmjMkmJGNWaTb6+HkA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "^5.59.2", - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.0", - "typescript": "^5.0.4" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/netlify-cli/node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "dev": true, - "dependencies": { - "type-fest": "^2.11.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/dot-prop/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/netlify-cli/node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/netlify-cli/node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dev": true, - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/netlify-cli/node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/netlify-cli/node_modules/es-module-lexer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", - "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/netlify-cli/node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/netlify-cli/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/netlify-cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/execa/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/express-logging": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz", - "integrity": "sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==", - "dev": true, - "dependencies": { - "on-headers": "^1.0.0" - }, - "engines": { - "node": ">= 0.10.26" - } - }, - "node_modules/netlify-cli/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/express/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/express/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "dev": true, - "dependencies": { - "mime-db": "^1.28.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "dev": true, - "dependencies": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/netlify-cli/node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fast-content-type-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz", - "integrity": "sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-equals": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz", - "integrity": "sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-fifo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/netlify-cli/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "peer": true - }, - "node_modules/netlify-cli/node_modules/fast-json-stringify": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz", - "integrity": "sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ==", - "dev": true, - "dependencies": { - "@fastify/deepmerge": "^1.0.0", - "ajv": "^8.10.0", - "ajv-formats": "^2.1.1", - "fast-deep-equal": "^3.1.3", - "fast-uri": "^2.1.0", - "rfdc": "^1.2.0" - } - }, - "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-querystring": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.0.0.tgz", - "integrity": "sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==", - "dev": true, - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "node_modules/netlify-cli/node_modules/fast-redact": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fast-uri": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", - "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/netlify-cli/node_modules/fastify": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.17.0.tgz", - "integrity": "sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg==", - "dev": true, - "dependencies": { - "@fastify/ajv-compiler": "^3.5.0", - "@fastify/error": "^3.0.0", - "@fastify/fast-json-stringify-compiler": "^4.3.0", - "abstract-logging": "^2.0.1", - "avvio": "^8.2.0", - "fast-content-type-parse": "^1.0.0", - "fast-json-stringify": "^5.7.0", - "find-my-way": "^7.6.0", - "light-my-request": "^5.6.1", - "pino": "^8.5.0", - "process-warning": "^2.0.0", - "proxy-addr": "^2.0.7", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.5.0", - "semver": "^7.3.7", - "tiny-lru": "^11.0.1" - } - }, - "node_modules/netlify-cli/node_modules/fastify-plugin": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.4.0.tgz", - "integrity": "sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fastify/node_modules/pino": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.14.1.tgz", - "integrity": "sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/netlify-cli/node_modules/fastify/node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fastify/node_modules/process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/netlify-cli/node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/netlify-cli/node_modules/fdir": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.0.1.tgz", - "integrity": "sha512-bdrUUb0eYQrPRlaAtlSRoLs7sp6yKEwbMQuUgwvi/14TnaqhM/deSZUrC5ic+yjm5nEPPWE61oWpTTxQFQMmLA==", - "dev": true, - "peerDependencies": { - "picomatch": "2.x" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fetch-blob": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", - "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-7.3.0.tgz", - "integrity": "sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==", - "dev": true, - "dependencies": { - "cli-progress": "^3.11.2", - "colors-option": "^4.4.0", - "figures": "^5.0.0", - "got": "^12.3.1", - "is-plain-obj": "^4.1.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/colors-option": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-4.5.0.tgz", - "integrity": "sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==", - "dev": true, - "dependencies": { - "chalk": "^5.0.1", - "is-plain-obj": "^4.1.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/figures": { - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/file-type": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", - "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", - "dev": true, - "dependencies": { - "readable-web-to-node-stream": "^3.0.2", - "strtok3": "^7.0.0", - "token-types": "^5.0.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/filter-obj": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", - "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/find-my-way": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.6.2.tgz", - "integrity": "sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-querystring": "^1.0.0", - "safe-regex2": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/find-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/flush-write-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz", - "integrity": "sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "node_modules/netlify-cli/node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/folder-walker": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz", - "integrity": "sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==", - "dev": true, - "dependencies": { - "from2": "^2.1.0" - } - }, - "node_modules/netlify-cli/node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/form-data-encoder": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", - "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", - "dev": true, - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/netlify-cli/node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", - "dev": true, - "dependencies": { - "from2": "^2.0.3" - } - }, - "node_modules/netlify-cli/node_modules/from2/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/netlify-cli/node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/netlify-cli/node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/netlify-cli/node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/get-amd-module-type": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", - "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", - "dev": true, - "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/netlify-cli/node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/gh-release-fetch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz", - "integrity": "sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g==", - "dev": true, - "dependencies": { - "@xhmikosr/downloader": "^13.0.0", - "node-fetch": "^3.3.1", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.18.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/netlify-cli/node_modules/gh-release-fetch/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/netlify-cli/node_modules/git-repo-info": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", - "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", - "dev": true, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/netlify-cli/node_modules/gitconfiglocal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", - "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/netlify-cli/node_modules/gitconfiglocal/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "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/netlify-cli/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/global-cache-dir": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-4.4.0.tgz", - "integrity": "sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==", - "dev": true, - "dependencies": { - "cachedir": "^2.3.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/global-cache-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/netlify-cli/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/hasbin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", - "integrity": "sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==", - "dev": true, - "dependencies": { - "async": "~1.5" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/netlify-cli/node_modules/hasbin/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/hasha/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dev": true, - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/netlify-cli/node_modules/hexer/node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/netlify-cli/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/hot-shots": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-10.0.0.tgz", - "integrity": "sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "unix-dgram": "2.x" - } - }, - "node_modules/netlify-cli/node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/http-errors/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/netlify-cli/node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/netlify-cli/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/netlify-cli/node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/netlify-cli/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/netlify-cli/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/ini": { - "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/netlify-cli/node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", - "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "inquirer": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/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/netlify-cli/node_modules/inquirer/node_modules/string-width/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/netlify-cli/node_modules/inquirer/node_modules/string-width/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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/inspect-with-kind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", - "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - } - }, - "node_modules/netlify-cli/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/netlify-cli/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/is-ci": { - "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": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/netlify-cli/node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-extendable/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-installed-globally": { - "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": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-installed-globally/node_modules/global-dirs": { - "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": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/netlify-cli/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/is-url-superb": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/is-wsl/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/iserror": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", - "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/jaeger-client/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/netlify-cli/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/netlify-cli/node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/netlify-cli/node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/netlify-cli/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "node_modules/netlify-cli/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/jsonwebtoken": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", - "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/junk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", - "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/netlify-cli/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/netlify-cli/node_modules/jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/keep-func-props": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/keep-func-props/-/keep-func-props-4.0.1.tgz", - "integrity": "sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/netlify-cli/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dev": true, - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/netlify-cli/node_modules/lazystream/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/netlify-cli/node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/light-my-request": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", - "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", - "dev": true, - "dependencies": { - "cookie": "^0.5.0", - "process-warning": "^2.0.0", - "set-cookie-parser": "^2.4.1" - } - }, - "node_modules/netlify-cli/node_modules/light-my-request/node_modules/process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/netlify-cli/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==", - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/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": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/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==", - "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" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "listr": "^0.14.2" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/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/netlify-cli/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/listr-update-renderer/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==", - "dev": true, - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/listr-update-renderer/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/netlify-cli/node_modules/listr-update-renderer/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/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==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/listr-update-renderer/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==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/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/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/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/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/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/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/listr-verbose-renderer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/listr-verbose-renderer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/listr/node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/listr/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/locate-path/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.isempty": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", - "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.transform": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", - "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/log-process-errors": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/log-process-errors/-/log-process-errors-8.0.0.tgz", - "integrity": "sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg==", - "dev": true, - "dependencies": { - "colors-option": "^3.0.0", - "figures": "^4.0.0", - "filter-obj": "^3.0.0", - "jest-validate": "^27.4.2", - "map-obj": "^5.0.0", - "moize": "^6.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/figures": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", - "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/filter-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/log-update/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", - "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/netlify-cli/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/macos-release": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.0.1.tgz", - "integrity": "sha512-3l6OrhdDg2H2SigtuN3jBh+5dRJRWxNKuJTPBbGeNJTsmt/pj9PO25wYaNb05NuNmAsl435j4rDP6rgNXz7s7g==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/netlify-cli/node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/maxstache": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz", - "integrity": "sha1-IjHVGAung9Xs/DHEX+2seuQnaYQ=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/maxstache-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz", - "integrity": "sha1-nH9cq35f3S2Q2oYUO06WMeoygEA=", - "dev": true, - "dependencies": { - "maxstache": "^1.0.0", - "pump": "^1.0.0", - "split2": "^1.0.0", - "through2": "^2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/netlify-cli/node_modules/maxstache-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/netlify-cli/node_modules/maxstache-stream/node_modules/split2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", - "integrity": "sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/netlify-cli/node_modules/md5-hex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", - "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", - "dev": true, - "dependencies": { - "blueimp-md5": "^2.10.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dev": true, - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/merge-options/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/micro-api-client": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", - "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/micro-memoize": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.11.tgz", - "integrity": "sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/netlify-cli/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/netlify-cli/node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/module-definition": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", - "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", - "dev": true, - "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" - }, - "bin": { - "module-definition": "bin/cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/moize": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/moize/-/moize-6.1.3.tgz", - "integrity": "sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==", - "dev": true, - "dependencies": { - "fast-equals": "^3.0.1", - "micro-memoize": "^4.0.11" - } - }, - "node_modules/netlify-cli/node_modules/move-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", - "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", - "dev": true, - "dependencies": { - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/move-file/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/multiparty": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", - "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", - "dev": true, - "dependencies": { - "http-errors": "~1.8.1", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/netlify-cli/node_modules/multiparty/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "node_modules/netlify-cli/node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/netlify-cli/node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/netlify": { - "version": "13.1.10", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.1.10.tgz", - "integrity": "sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw==", - "dev": true, - "dependencies": { - "@netlify/open-api": "^2.19.1", - "lodash-es": "^4.17.21", - "micro-api-client": "^3.3.0", - "node-fetch": "^3.0.0", - "omit.js": "^2.0.2", - "p-wait-for": "^4.0.0", - "qs": "^6.9.6" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/netlify-headers-parser": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz", - "integrity": "sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "fast-safe-stringify": "^2.0.7", - "is-plain-obj": "^4.0.0", - "map-obj": "^5.0.0", - "path-exists": "^5.0.0", - "toml": "^3.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/netlify-redirect-parser": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-14.1.3.tgz", - "integrity": "sha512-23svKHdO2QUEJHo3knQV1EpAh8UX/+8zQmwxVMSby4/NRj5vPS+u/yKesY/uHAgcw/28HwvEUGQdbXsPPe7J/Q==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.1.1", - "filter-obj": "^5.0.0", - "is-plain-obj": "^4.0.0", - "path-exists": "^5.0.0", - "toml": "^3.0.0" - }, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/netlify-redirect-parser/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/netlify-redirector": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.4.0.tgz", - "integrity": "sha512-ssD+V9o2DD9VnilOYC+34i07IrlY8XDsh5mN+qLYA4MxCpdALKXFICcz1KzsHZabuIS5XsF1VP/HzDyx5ubJ2g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/netlify/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/netlify-cli/node_modules/netlify/node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/netlify/node_modules/p-wait-for": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", - "dev": true, - "dependencies": { - "p-timeout": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/netlify-cli/node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/netlify-cli/node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/node-source-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.1.tgz", - "integrity": "sha512-QUlkJYzrNewUCp4c7CCPN8Mh8c+pwNs23JsQfHKUwIkCxYa6c0AFLuUJIZxU6BdnarfytPSGKm1YMAz06hj9cw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.21.8" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "dev": true, - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } - }, - "node_modules/netlify-cli/node_modules/node-version-alias": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-3.4.1.tgz", - "integrity": "sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==", - "dev": true, - "dependencies": { - "all-node-versions": "^11.3.0", - "filter-obj": "^5.1.0", - "is-plain-obj": "^4.1.0", - "normalize-node-version": "^12.4.0", - "path-exists": "^5.0.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/node-version-alias/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/noop2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz", - "integrity": "sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/normalize-node-version": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-12.4.0.tgz", - "integrity": "sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==", - "dev": true, - "dependencies": { - "all-node-versions": "^11.3.0", - "filter-obj": "^5.1.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/netlify-cli/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/netlify-cli/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": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/omit.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", - "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/netlify-cli/node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/netlify-cli/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/onetime/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/open/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/netlify-cli/node_modules/ora": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", - "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/os-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", - "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", - "dev": true, - "dependencies": { - "macos-release": "^3.0.1", - "windows-release": "^5.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/p-event": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", - "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", - "dev": true, - "dependencies": { - "p-timeout": "^5.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-event/node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-every": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz", - "integrity": "sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/p-every/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", - "dev": true, - "dependencies": { - "p-map": "^5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-map/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-map/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-retry": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.1", - "retry": "^0.13.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-wait-for": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", - "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", - "dev": true, - "dependencies": { - "p-timeout": "^6.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/p-wait-for/node_modules/p-timeout": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", - "dev": true, - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/netlify-cli/node_modules/package-json/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/netlify-cli/node_modules/parallel-transform/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/netlify-cli/node_modules/parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true, - "bin": { - "parse-github-url": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/parse-gitignore": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", - "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/peek-readable": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/netlify-cli/node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", - "dev": true, - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/netlify-cli/node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/netlify-cli/node_modules/postcss-values-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", - "dev": true, - "dependencies": { - "color-name": "^1.1.4", - "is-url-superb": "^4.0.0", - "quote-unquote": "^1.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "^8.2.9" - } - }, - "node_modules/netlify-cli/node_modules/postcss-values-parser/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/precinct": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.2.tgz", - "integrity": "sha512-UuhB1q0nEFf80iMGcs7IoT0o1GnNFWT4CjZjcMsHDXAIsW/aiLovOSbeMJ2Ejg6raRsplsriZZkoBUh0h/IHlw==", - "dev": true, - "dependencies": { - "@dependents/detective-less": "^4.0.0", - "commander": "^10.0.1", - "detective-amd": "^5.0.1", - "detective-cjs": "^5.0.1", - "detective-es6": "^4.0.0", - "detective-postcss": "^6.1.3", - "detective-sass": "^5.0.0", - "detective-scss": "^4.0.0", - "detective-stylus": "^4.0.0", - "detective-typescript": "^11.0.1", - "module-definition": "^5.0.0", - "node-source-walk": "^6.0.1" - }, - "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^14.14.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/netlify-cli/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/prettyjson": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", - "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", - "dev": true, - "dependencies": { - "colors": "1.4.0", - "minimist": "^1.2.0" - }, - "bin": { - "prettyjson": "bin/prettyjson" - } - }, - "node_modules/netlify-cli/node_modules/printj": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", - "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", - "dev": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/netlify-cli/node_modules/protobufjs/node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/netlify-cli/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/ps-list": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.0.tgz", - "integrity": "sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/netlify-cli/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dev": true, - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/netlify-cli/node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/quote-unquote": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/raw-body/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/netlify-cli/node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/netlify-cli/node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dev": true, - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/netlify-cli/node_modules/readdir-glob": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", - "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/netlify-cli/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/netlify-cli/node_modules/real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/netlify-cli/node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/regex-not/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/netlify-cli/node_modules/regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", - "dev": true, - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, - "node_modules/netlify-cli/node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dev": true, - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/netlify-cli/node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dev": true, - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/netlify-cli/node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/require-package-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/restore-cursor/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/netlify-cli/node_modules/restore-cursor/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/netlify-cli/node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/netlify-cli/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/netlify-cli/node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/netlify-cli/node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/netlify-cli/node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/netlify-cli/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/netlify-cli/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/netlify-cli/node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/safe-regex2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", - "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", - "dev": true, - "dependencies": { - "ret": "~0.2.0" - } - }, - "node_modules/netlify-cli/node_modules/safe-regex2/node_modules/ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/secure-json-parse": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.6.0.tgz", - "integrity": "sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/netlify-cli/node_modules/seek-bzip/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/send/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/send/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/netlify-cli/node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/set-cookie-parser": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", - "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/netlify-cli/node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "dev": true, - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "dev": true, - "dependencies": { - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/netlify-cli/node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/netlify-cli/node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/netlify-cli/node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/netlify-cli/node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/netlify-cli/node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", - "dev": true, - "dependencies": { - "bl": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/stdin-discarder/node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/netlify-cli/node_modules/stdin-discarder/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/netlify-cli/node_modules/streamx": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", - "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", - "dev": true, - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/strip-ansi-control-characters": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz", - "integrity": "sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/strip-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", - "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", - "dev": true, - "dependencies": { - "inspect-with-kind": "^1.0.5", - "is-plain-obj": "^1.1.0" - } - }, - "node_modules/netlify-cli/node_modules/strip-dirs/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/strtok3": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/netlify-cli/node_modules/supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/tabtab": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-3.0.2.tgz", - "integrity": "sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==", - "dev": true, - "dependencies": { - "debug": "^4.0.1", - "es6-promisify": "^6.0.0", - "inquirer": "^6.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "untildify": "^3.0.3" - } - }, - "node_modules/netlify-cli/node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/netlify-cli/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/tempy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", - "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", - "dev": true, - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/tempy/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/terminal-link": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", - "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^5.0.0", - "supports-hyperlinks": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/terminal-link/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/terminal-link/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/thread-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", - "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", - "dev": true, - "dependencies": { - "real-require": "^0.2.0" - } - }, - "node_modules/netlify-cli/node_modules/thriftrw": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", - "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", - "dev": true, - "dependencies": { - "bufrw": "^1.2.1", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/netlify-cli/node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/netlify-cli/node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/through2-filter/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/netlify-cli/node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/netlify-cli/node_modules/through2-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz", - "integrity": "sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/netlify-cli/node_modules/through2-map/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/netlify-cli/node_modules/through2-map/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/netlify-cli/node_modules/time-zone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/tiny-lru": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.0.1.tgz", - "integrity": "sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/netlify-cli/node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "dependencies": { - "tmp": "^0.2.0" - } - }, - "node_modules/netlify-cli/node_modules/tmp-promise/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/netlify-cli/node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/to-readable-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-3.0.0.tgz", - "integrity": "sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/netlify-cli/node_modules/to-regex/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/netlify-cli/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/netlify-cli/node_modules/token-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/netlify-cli/node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/tomlify-j0.4": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", - "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/netlify-cli/node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/netlify-cli/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/netlify-cli/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/netlify-cli/node_modules/type-fest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", - "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netlify-cli/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/netlify-cli/node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/netlify-cli/node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dev": true, - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/ulid": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", - "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", - "dev": true, - "bin": { - "ulid": "bin/cli.js" - } - }, - "node_modules/netlify-cli/node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/netlify-cli/node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/unix-dgram": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.6.tgz", - "integrity": "sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.16.0" - }, - "engines": { - "node": ">=0.10.48" - } - }, - "node_modules/netlify-cli/node_modules/unixify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", - "dev": true, - "dependencies": { - "normalize-path": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unixify/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dev": true, - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/netlify-cli/node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/netlify-cli/node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/netlify-cli/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/netlify-cli/node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/netlify-cli/node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/netlify-cli/node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/netlify-cli/node_modules/wait-port": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.0.4.tgz", - "integrity": "sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "commander": "^9.3.0", - "debug": "^4.3.4" - }, - "bin": { - "wait-port": "bin/wait-port.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/netlify-cli/node_modules/wait-port/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/netlify-cli/node_modules/web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/well-known-symbols": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", - "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/netlify-cli/node_modules/whatwg-url/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/netlify-cli/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/netlify-cli/node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dev": true, - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/widest-line/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/widest-line/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/windows-release": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", - "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", - "dev": true, - "dependencies": { - "execa": "^5.1.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/netlify-cli/node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dev": true, - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/netlify-cli/node_modules/winston/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/netlify-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/netlify-cli/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/netlify-cli/node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/netlify-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/netlify-cli/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/netlify-cli/node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/netlify-cli/node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/netlify-cli/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/netlify-cli/node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-cli": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz", - "integrity": "sha512-3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "chokidar": "^3.3.0", - "dependency-graph": "^0.9.0", - "fs-extra": "^9.0.0", - "get-stdin": "^8.0.0", - "globby": "^11.0.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "postcss-reporter": "^6.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "postcss": "bin/postcss" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-reporter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", - "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "postcss": "^7.0.7" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-reporter/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/postcss-reporter/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/postcss-reporter/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/postcss-reporter/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/postcss-reporter/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reporter/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "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/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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/readable-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/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "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/string_decoder/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/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/temp-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", - "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/tempy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", - "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", - "dev": true, - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wrap-ansi": { - "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.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" - } - }, - "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 - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "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 - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "dependencies": { - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - } - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001282", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", - "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", - "dev": true - }, - "careful-downloader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/careful-downloader/-/careful-downloader-3.0.0.tgz", - "integrity": "sha512-5KMIPa0Yoj+2tY6OK9ewdwcPebp+4XS0dMYvvF9/8fkFEfvnEpWmHWYs9JNcZ7RZUvY/v6oPzLpmmTzSIbroSA==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "decompress": "^4.2.1", - "fs-extra": "^11.1.1", - "got": "^12.6.0", - "is-path-inside": "^4.0.0", - "tempy": "^3.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "requires": { - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true - } - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "electron-to-chromium": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", - "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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 - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "hugo-extended": { - "version": "0.115.2", - "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.115.2.tgz", - "integrity": "sha512-PCLH9TwexpYTVsrAI8AFV0PJLC4vHsncxTRcwvTYl7atLSWEIySBvO7z5ivx2vAvwzrgnCOVgLllIgJISsYnpg==", - "dev": true, - "requires": { - "careful-downloader": "^3.0.0", - "log-symbols": "^5.1.0", - "read-pkg-up": "^9.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true - }, - "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 - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "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" - } - } - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lunr-languages": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", - "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "netlify-cli": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-15.9.0.tgz", - "integrity": "sha512-AqeT+3vb8dWErhVBtso7VjxGdszwaWH9AGnwn8tvyknjxN+qNtlXGb5PxcfI1COaL2BlSphMMGjt/jl7C1NBkQ==", - "dev": true, - "requires": { - "@bugsnag/js": "7.20.2", - "@fastify/static": "6.10.2", - "@netlify/build": "29.16.1", - "@netlify/build-info": "7.4.1", - "@netlify/config": "20.6.0", - "@netlify/edge-bundler": "8.16.4", - "@netlify/framework-info": "9.8.10", - "@netlify/local-functions-proxy": "1.1.1", - "@netlify/serverless-functions-api": "1.5.1", - "@netlify/zip-it-and-ship-it": "9.13.0", - "@octokit/rest": "19.0.13", - "@skn0tt/lambda-local": "2.0.3", - "ansi-escapes": "6.2.0", - "ansi-styles": "6.2.1", - "ansi-to-html": "0.7.2", - "ascii-table": "0.0.9", - "backoff": "2.5.0", - "better-opn": "3.0.2", - "boxen": "7.1.1", - "chalk": "5.2.0", - "chokidar": "3.5.3", - "ci-info": "3.8.0", - "clean-deep": "3.4.0", - "commander": "10.0.1", - "comment-json": "4.2.3", - "concordance": "5.0.4", - "configstore": "6.0.0", - "content-type": "1.0.5", - "cookie": "0.5.0", - "copy-template-dir": "1.4.0", - "cron-parser": "4.8.1", - "debug": "4.3.4", - "decache": "4.6.2", - "dot-prop": "7.2.0", - "dotenv": "16.0.3", - "env-paths": "3.0.0", - "envinfo": "7.8.1", - "etag": "1.8.1", - "execa": "5.1.1", - "express": "4.18.2", - "express-logging": "1.1.1", - "extract-zip": "2.0.1", - "fastest-levenshtein": "1.0.16", - "fastify": "4.17.0", - "find-up": "6.3.0", - "flush-write-stream": "2.0.0", - "folder-walker": "3.2.0", - "from2-array": "0.0.4", - "fuzzy": "0.1.3", - "get-port": "5.1.1", - "gh-release-fetch": "4.0.3", - "git-repo-info": "2.1.1", - "gitconfiglocal": "2.1.0", - "hasbin": "1.2.3", - "hasha": "5.2.2", - "http-proxy": "1.18.1", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "5.0.1", - "inquirer": "6.5.2", - "inquirer-autocomplete-prompt": "1.4.0", - "is-docker": "3.0.0", - "is-stream": "3.0.0", - "is-wsl": "2.2.0", - "isexe": "2.0.0", - "jsonwebtoken": "9.0.1", - "jwt-decode": "3.1.2", - "listr": "0.14.3", - "locate-path": "7.2.0", - "lodash": "4.17.21", - "log-symbols": "5.1.0", - "log-update": "5.0.1", - "minimist": "1.2.8", - "multiparty": "4.2.3", - "netlify": "13.1.10", - "netlify-headers-parser": "7.1.2", - "netlify-redirect-parser": "14.1.3", - "netlify-redirector": "0.4.0", - "node-fetch": "2.6.12", - "node-version-alias": "3.4.1", - "ora": "6.3.1", - "p-filter": "3.0.0", - "p-map": "5.5.0", - "p-wait-for": "5.0.2", - "parallel-transform": "1.2.0", - "parse-github-url": "1.0.2", - "parse-gitignore": "2.0.0", - "path-key": "4.0.0", - "prettyjson": "1.2.5", - "pump": "3.0.0", - "raw-body": "2.5.2", - "read-pkg-up": "9.1.0", - "semver": "7.5.4", - "source-map-support": "0.5.21", - "strip-ansi-control-characters": "2.0.0", - "tabtab": "3.0.2", - "tempy": "3.0.0", - "terminal-link": "3.0.0", - "through2-filter": "3.0.0", - "through2-map": "3.0.0", - "to-readable-stream": "3.0.0", - "toml": "3.0.0", - "ulid": "2.3.0", - "unixify": "1.0.0", - "update-notifier": "6.0.2", - "uuid": "9.0.0", - "wait-port": "1.0.4", - "winston": "3.8.2", - "write-file-atomic": "5.0.1" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.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" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - } - } - } - }, - "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", - "dev": true - }, - "@bugsnag/browser": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", - "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", - "dev": true, - "requires": { - "@bugsnag/core": "^7.19.0" - } - }, - "@bugsnag/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", - "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", - "dev": true, - "requires": { - "@bugsnag/cuid": "^3.0.0", - "@bugsnag/safe-json-stringify": "^6.0.0", - "error-stack-parser": "^2.0.3", - "iserror": "0.0.2", - "stack-generator": "^2.0.3" - } - }, - "@bugsnag/cuid": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", - "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==", - "dev": true - }, - "@bugsnag/js": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", - "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", - "dev": true, - "requires": { - "@bugsnag/browser": "^7.20.2", - "@bugsnag/node": "^7.19.0" - } - }, - "@bugsnag/node": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", - "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", - "dev": true, - "requires": { - "@bugsnag/core": "^7.19.0", - "byline": "^5.0.0", - "error-stack-parser": "^2.0.2", - "iserror": "^0.0.2", - "pump": "^3.0.0", - "stack-generator": "^2.0.3" - } - }, - "@bugsnag/safe-json-stringify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", - "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==", - "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 - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@dependents/detective-less": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.0.0.tgz", - "integrity": "sha512-0udn+HKjGUzTX4Z+0vXdEJVsO28gxy5QxWjeChK4ZH+bwdvIXLuztiGZk8wLyAG1+LNZ5haVHKr5j1XfJnAkyQ==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.0" - } - }, - "@fastify/accept-negotiator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", - "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", - "dev": true - }, - "@fastify/ajv-compiler": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", - "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", - "dev": true, - "requires": { - "ajv": "^8.11.0", - "ajv-formats": "^2.1.1", - "fast-uri": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "@fastify/deepmerge": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", - "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==", - "dev": true - }, - "@fastify/error": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", - "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==", - "dev": true - }, - "@fastify/fast-json-stringify-compiler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", - "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", - "dev": true, - "requires": { - "fast-json-stringify": "^5.7.0" - } - }, - "@fastify/send": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.0.1.tgz", - "integrity": "sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==", - "dev": true, - "requires": { - "@lukeed/ms": "^2.0.1", - "escape-html": "~1.0.3", - "fast-decode-uri-component": "^1.0.1", - "http-errors": "2.0.0", - "mime": "^3.0.0" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true - } - } - }, - "@fastify/static": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.10.2.tgz", - "integrity": "sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ==", - "dev": true, - "requires": { - "@fastify/accept-negotiator": "^1.0.0", - "@fastify/send": "^2.0.0", - "content-disposition": "^0.5.3", - "fastify-plugin": "^4.0.0", - "glob": "^8.0.1", - "p-limit": "^3.1.0", - "readable-stream": "^4.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "@grpc/grpc-js": { - "version": "1.8.17", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.17.tgz", - "integrity": "sha512-DGuSbtMFbaRsyffMf+VEkVu8HkSXEUfO3UyGJNtqxW9ABdtTIA+2UXAJpwbJS+xfQxuwqLUeELmL6FuZkOqPxw==", - "dev": true, - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.7.tgz", - "integrity": "sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==", - "dev": true, - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^17.7.2" - } - }, - "@honeycombio/opentelemetry-node": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.4.0.tgz", - "integrity": "sha512-6PFX8FGW7uA7vQ3mxNIoN36rH9Zx5kXh4kKP9zu28nynyWyy9JE3l8PNJYd9FS2L/d88ZUpQAiQ1pROaANd5MA==", - "dev": true, - "requires": { - "@grpc/grpc-js": "^1.7.3", - "@opentelemetry/api": "^1.4.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "^0.36.1", - "@opentelemetry/exporter-metrics-otlp-proto": "^0.36.1", - "@opentelemetry/exporter-trace-otlp-grpc": "^0.36.1", - "@opentelemetry/exporter-trace-otlp-proto": "^0.36.1", - "@opentelemetry/resources": "^1.10.1", - "@opentelemetry/sdk-metrics": "^1.10.1", - "@opentelemetry/sdk-node": "^0.36.1", - "@opentelemetry/sdk-trace-base": "^1.10.1", - "axios": "^1.1.3" - } - }, - "@humanwhocodes/momoa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", - "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", - "dev": true - }, - "@import-maps/resolve": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", - "dev": true - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@lukeed/ms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", - "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", - "dev": true - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - } - }, - "@netlify/binary-info": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", - "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", - "dev": true - }, - "@netlify/build": { - "version": "29.16.1", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.16.1.tgz", - "integrity": "sha512-1D3l0NiCVEFF5aU2prVMP8MQr2Bu+UuyYe69Z7k/7GjFIx4Q1sLgewTf4p+al3LhSLT5fs52cbIec9pT9HSjyQ==", - "dev": true, - "requires": { - "@bugsnag/js": "^7.0.0", - "@honeycombio/opentelemetry-node": "^0.4.0", - "@netlify/cache-utils": "^5.1.5", - "@netlify/config": "^20.6.0", - "@netlify/edge-bundler": "8.16.4", - "@netlify/framework-info": "^9.8.10", - "@netlify/functions-utils": "^5.2.18", - "@netlify/git-utils": "^5.1.1", - "@netlify/plugins-list": "^6.68.0", - "@netlify/run-utils": "^5.1.1", - "@netlify/zip-it-and-ship-it": "9.13.0", - "@opentelemetry/api": "^1.4.1", - "@sindresorhus/slugify": "^2.0.0", - "ansi-escapes": "^6.0.0", - "chalk": "^5.0.0", - "clean-stack": "^4.0.0", - "execa": "^6.0.0", - "fdir": "^6.0.1", - "figures": "^5.0.0", - "filter-obj": "^5.0.0", - "got": "^12.0.0", - "hot-shots": "10.0.0", - "indent-string": "^5.0.0", - "is-plain-obj": "^4.0.0", - "js-yaml": "^4.0.0", - "keep-func-props": "^4.0.0", - "locate-path": "^7.0.0", - "log-process-errors": "^8.0.0", - "map-obj": "^5.0.0", - "memoize-one": "^6.0.0", - "os-name": "^5.0.0", - "p-event": "^5.0.0", - "p-every": "^2.0.0", - "p-filter": "^3.0.0", - "p-locate": "^6.0.0", - "p-reduce": "^3.0.0", - "path-exists": "^5.0.0", - "path-type": "^5.0.0", - "pkg-dir": "^7.0.0", - "pretty-ms": "^8.0.0", - "ps-list": "^8.0.0", - "read-pkg-up": "^9.0.0", - "readdirp": "^3.4.0", - "resolve": "^2.0.0-next.1", - "rfdc": "^1.3.0", - "safe-json-stringify": "^1.2.0", - "semver": "^7.3.8", - "string-width": "^5.0.0", - "strip-ansi": "^7.0.0", - "supports-color": "^9.0.0", - "terminal-link": "^3.0.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.0", - "uuid": "^9.0.0", - "yargs": "^17.6.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - } - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "parse-ms": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", - "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", - "dev": true - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true - }, - "pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "requires": { - "find-up": "^6.3.0" - } - }, - "pretty-ms": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", - "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", - "dev": true, - "requires": { - "parse-ms": "^3.0.0" - } - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "@netlify/build-info": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.4.1.tgz", - "integrity": "sha512-JucExQCHJCk8smscd+fzU2z0MM7vyw4XJJWREq9Im5i8nPy56mjG0oeODk7DB7pQK6X9wyUViwVRPF8ftwuq9Q==", - "dev": true, - "requires": { - "@bugsnag/js": "^7.20.0", - "@netlify/framework-info": "^9.8.10", - "dot-prop": "^7.2.0", - "find-up": "^6.3.0", - "minimatch": "^9.0.0", - "read-pkg": "^7.1.0", - "semver": "^7.3.8", - "toml": "^3.0.0", - "yaml": "^2.1.3", - "yargs": "^17.6.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true - } - } - }, - "@netlify/cache-utils": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-5.1.5.tgz", - "integrity": "sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg==", - "dev": true, - "requires": { - "cpy": "^9.0.0", - "get-stream": "^6.0.0", - "globby": "^13.0.0", - "junk": "^4.0.0", - "locate-path": "^7.0.0", - "move-file": "^3.0.0", - "path-exists": "^5.0.0", - "readdirp": "^3.4.0" - }, - "dependencies": { - "globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "@netlify/config": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-20.6.0.tgz", - "integrity": "sha512-YPWvkq7hYgYLVsbEPbGq7aZQh59D2h5NeIwgRZxabsheIMriyxpDZVVajK1+z1U0Z2DsJxn+XSOJSNSSKUIk4w==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "cron-parser": "^4.1.0", - "deepmerge": "^4.2.2", - "dot-prop": "^7.0.0", - "execa": "^6.0.0", - "fast-safe-stringify": "^2.0.7", - "figures": "^5.0.0", - "filter-obj": "^5.0.0", - "find-up": "^6.0.0", - "indent-string": "^5.0.0", - "is-plain-obj": "^4.0.0", - "js-yaml": "^4.0.0", - "map-obj": "^5.0.0", - "netlify": "^13.1.10", - "netlify-headers-parser": "^7.1.2", - "netlify-redirect-parser": "^14.1.3", - "node-fetch": "^3.3.1", - "omit.js": "^2.0.2", - "p-locate": "^6.0.0", - "path-type": "^5.0.0", - "toml": "^3.0.0", - "tomlify-j0.4": "^3.0.0", - "validate-npm-package-name": "^4.0.0", - "yargs": "^17.6.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true - }, - "node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "@netlify/edge-bundler": { - "version": "8.16.4", - "resolved": "https://registry.npmjs.org/@netlify/edge-bundler/-/edge-bundler-8.16.4.tgz", - "integrity": "sha512-5sYymRzZLzdSp1AtCcuEdjeQ/QcJ6LORERU5Nr48MY5Y9GKEHC7uIeQFwLT/YMgnDRd4FqPv+g8RBSu3HP9Czg==", - "dev": true, - "requires": { - "@import-maps/resolve": "^1.0.1", - "ajv": "^8.11.2", - "ajv-errors": "^3.0.0", - "better-ajv-errors": "^1.2.0", - "common-path-prefix": "^3.0.0", - "env-paths": "^3.0.0", - "execa": "^6.0.0", - "find-up": "^6.3.0", - "get-port": "^6.1.2", - "glob-to-regexp": "^0.4.1", - "is-path-inside": "^4.0.0", - "jsonc-parser": "^3.2.0", - "node-fetch": "^3.1.1", - "node-stream-zip": "^1.15.0", - "p-retry": "^5.1.1", - "p-wait-for": "^4.1.0", - "path-key": "^4.0.0", - "regexp-tree": "^0.1.24", - "semver": "^7.3.8", - "tmp-promise": "^3.0.3", - "uuid": "^9.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "requires": {} - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "get-port": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", - "dev": true - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true - }, - "p-wait-for": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", - "dev": true, - "requires": { - "p-timeout": "^5.0.0" - } - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "@netlify/esbuild": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz", - "integrity": "sha512-C3xpwdT2xw6SnSb+hLQoxjtikAKiz6BjQjzlIaysHDpGbmIcmUHZ/X+dyLtCqAvf15WNK5GSBZYOlpgcOE0WZA==", - "dev": true, - "requires": { - "@netlify/esbuild-android-64": "0.14.39", - "@netlify/esbuild-android-arm64": "0.14.39", - "@netlify/esbuild-darwin-64": "0.14.39", - "@netlify/esbuild-darwin-arm64": "0.14.39", - "@netlify/esbuild-freebsd-64": "0.14.39", - "@netlify/esbuild-freebsd-arm64": "0.14.39", - "@netlify/esbuild-linux-32": "0.14.39", - "@netlify/esbuild-linux-64": "0.14.39", - "@netlify/esbuild-linux-arm": "0.14.39", - "@netlify/esbuild-linux-arm64": "0.14.39", - "@netlify/esbuild-linux-mips64le": "0.14.39", - "@netlify/esbuild-linux-ppc64le": "0.14.39", - "@netlify/esbuild-linux-riscv64": "0.14.39", - "@netlify/esbuild-linux-s390x": "0.14.39", - "@netlify/esbuild-netbsd-64": "0.14.39", - "@netlify/esbuild-openbsd-64": "0.14.39", - "@netlify/esbuild-sunos-64": "0.14.39", - "@netlify/esbuild-windows-32": "0.14.39", - "@netlify/esbuild-windows-64": "0.14.39", - "@netlify/esbuild-windows-arm64": "0.14.39" - } - }, - "@netlify/esbuild-android-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", - "integrity": "sha512-azq+lsvjRsKLap8ubIwSJXGyknUACqYu5h98Fvyoh40Qk4QXIVKl16JIJ4s+B7jy2k9qblEc5c4nxdDA3aGbVA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-android-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", - "integrity": "sha512-WhIP7ePq4qMC1sxoaeB9SsJqSW6uzW7XDj/IuWl1l9r94nwxywU1sYdVLaF2mZr15njviazYjVr8x1d+ipwL3w==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-darwin-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", - "integrity": "sha512-eF4GvLYiDxtcyjFT55+h+8c8A2HltjeMezCqkt3AQSgOdu1nhlvwbBhIdg2dyM6gKEaEm5hBtTbicEDSwsLodA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-darwin-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", - "integrity": "sha512-b7rtnX/VtYwNbUCxs3eulrCWJ+u2YvqDcXiIV1ka+od+N0fTx+4RrVkVp1lha9L0wEJYK9J7UWZOMLMyd1ynRg==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-freebsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", - "integrity": "sha512-XtusxDJt2hUKUdggbTFolMx0kJL2zEa4STI7YwpB+ukEWoW5rODZjiLZbqqYLcjDH8k4YwHaMxs103L8eButEQ==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-freebsd-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", - "integrity": "sha512-A9XZKai+k6kfndCtN6Dh2usT28V0+OGxzFdZsANONPQiEUTrGZCgwcHWiVlVn7SeAwPR1tKZreTnvrfj8cj7hA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-32": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", - "integrity": "sha512-ZQnqk/82YRvINY+aF+LlGfRZ19c5mH0jaxsO046GpIOPx6PcXHG8JJ2lg+vLJVe4zFPohxzabcYpwFuT4cg/GA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", - "integrity": "sha512-IQtswVw7GAKNX/3yV390wSfSXvMWy0d5cw8csAffwBk9gupftY2lzepK4Cn6uD/aqLt3Iku33FbHop/2nPGfQA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-arm": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", - "integrity": "sha512-QdOzQniOed0Bz1cTC9TMMwvtAqKayYv66H4edJlbvElC81yJZF/c9XhmYWJ6P5g4nkChZubQ5RcQwTLmrFGexg==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", - "integrity": "sha512-4Jie4QV6pWWuGN7TAshNMGbdTA9+VbRkv3rPIxhgK5gBfmsAV1yRKsumE4Y77J0AZNRiOriyoec4zc1qkmI3zg==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-mips64le": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", - "integrity": "sha512-Htozxr95tw4tSd86YNbCLs1eoYQzNu/cHpzFIkuJoztZueUhl8XpRvBdob7n3kEjW1gitLWAIn8XUwSt+aJ1Tg==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-ppc64le": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", - "integrity": "sha512-tFy0ufWIdjeuk1rPHee00TZlhr9OSF00Ufb4ROFyt2ArKuMSkWRJuDgx6MtZcAnCIN4cybo/xWl3MKTM+scnww==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-riscv64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", - "integrity": "sha512-ZzfKvwIxL7wQnYbVFpyNW0wotnLoKageUEM57RbjekesJoNQnqUR6Usm+LDZoB8iRsI58VX1IxnstP0cX8vOHw==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-linux-s390x": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", - "integrity": "sha512-yjC0mFwnuMRoh0WcF0h71MF71ytZBFEQQTRdgiGT0+gbC4UApBqnTkJdLx32RscBKi9skbMChiJ748hDJou6FA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-netbsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", - "integrity": "sha512-mIq4znOoz3YfTVdv3sIWfR4Zx5JgMnT4srlhC5KYVHibhxvyDdin5txldYXmR4Zv4dZd6DSuWFsn441aUegHeA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-openbsd-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", - "integrity": "sha512-+t6QdzJCngH19hV7ClpFAeFDI2ko/HNcFbiNwaXTMVLB3hWi1sJtn+fzZck5HfzN4qsajAVqZq4nwX69SSt25A==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-sunos-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", - "integrity": "sha512-HLfXG6i2p3wyyyWHeeP4ShGDJ1zRMnf9YLJLe2ezv2KqvcKw/Un/m/FBuDW1p13oSUO7ShISMzgc1dw1GGBEOQ==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-windows-32": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", - "integrity": "sha512-ZpSQcKbVSCU3ln7mHpsL/5dWsUqCNdTnC5YAArnaOwdrlIunrsbo5j4MOZRRcGExb2uvTc/rb+D3mlGb8j1rkA==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-windows-64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", - "integrity": "sha512-I3gCdO8+6IDhT4Y1ZmV4o2Gg0oELv7N4kCcE4kqclz10fWHNjf19HQNHyBJe0AWnFV5ZfT154VVD31dqgwpgFw==", - "dev": true, - "optional": true - }, - "@netlify/esbuild-windows-arm64": { - "version": "0.14.39", - "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", - "integrity": "sha512-WX52W8U1lsfWcz6NWoSpDs57lgiiMHN23seq8G2bvxzGS/tvYD3dxVLLW5UPoKSnFDyVQT7b6Zkt6AkBten1yQ==", - "dev": true, - "optional": true - }, - "@netlify/framework-info": { - "version": "9.8.10", - "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-9.8.10.tgz", - "integrity": "sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg==", - "dev": true, - "requires": { - "ajv": "^8.12.0", - "filter-obj": "^5.0.0", - "find-up": "^6.3.0", - "is-plain-obj": "^4.0.0", - "locate-path": "^7.0.0", - "p-filter": "^3.0.0", - "p-locate": "^6.0.0", - "process": "^0.11.10", - "read-pkg-up": "^9.0.0", - "semver": "^7.3.8" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "@netlify/functions-utils": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.18.tgz", - "integrity": "sha512-da/DvWJw/yE9VBPuBkqPH0E/G3lsnxugqZqkwmA4DnPkdN/qythIBPYznw4un1tVmA5ekZRP3var8bZDZ0DPNQ==", - "dev": true, - "requires": { - "@netlify/zip-it-and-ship-it": "9.13.0", - "cpy": "^9.0.0", - "path-exists": "^5.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "@netlify/git-utils": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-5.1.1.tgz", - "integrity": "sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw==", - "dev": true, - "requires": { - "execa": "^6.0.0", - "map-obj": "^5.0.0", - "micromatch": "^4.0.2", - "moize": "^6.1.3", - "path-exists": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "@netlify/local-functions-proxy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz", - "integrity": "sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw==", - "dev": true, - "requires": { - "@netlify/local-functions-proxy-darwin-arm64": "1.1.1", - "@netlify/local-functions-proxy-darwin-x64": "1.1.1", - "@netlify/local-functions-proxy-freebsd-arm64": "1.1.1", - "@netlify/local-functions-proxy-freebsd-x64": "1.1.1", - "@netlify/local-functions-proxy-linux-arm": "1.1.1", - "@netlify/local-functions-proxy-linux-arm64": "1.1.1", - "@netlify/local-functions-proxy-linux-ia32": "1.1.1", - "@netlify/local-functions-proxy-linux-ppc64": "1.1.1", - "@netlify/local-functions-proxy-linux-x64": "1.1.1", - "@netlify/local-functions-proxy-openbsd-x64": "1.1.1", - "@netlify/local-functions-proxy-win32-ia32": "1.1.1", - "@netlify/local-functions-proxy-win32-x64": "1.1.1" - } - }, - "@netlify/local-functions-proxy-darwin-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz", - "integrity": "sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-freebsd-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz", - "integrity": "sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-freebsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz", - "integrity": "sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-linux-arm": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz", - "integrity": "sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-linux-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz", - "integrity": "sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-linux-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz", - "integrity": "sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-linux-ppc64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz", - "integrity": "sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-linux-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz", - "integrity": "sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-openbsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz", - "integrity": "sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-win32-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz", - "integrity": "sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA==", - "dev": true, - "optional": true - }, - "@netlify/local-functions-proxy-win32-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz", - "integrity": "sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w==", - "dev": true, - "optional": true - }, - "@netlify/open-api": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.19.1.tgz", - "integrity": "sha512-RkucRf8o0vYhCDXCRHWU/EdhkVE3JhkqKmZFvMW6qCPD206GV2Cfo9JGSKb0NdN+nmHSNaYmd+9dvT6I9MP4pw==", - "dev": true - }, - "@netlify/plugins-list": { - "version": "6.68.0", - "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.68.0.tgz", - "integrity": "sha512-OIW7oDTXFKEyzG2DQr6ndLWjYfNnSZAKbldD2dquH3V8Q6DrbGk8Dhv6LkuGOJBgrKS25SyabYOyHIVASQjrFw==", - "dev": true - }, - "@netlify/run-utils": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-5.1.1.tgz", - "integrity": "sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A==", - "dev": true, - "requires": { - "execa": "^6.0.0" - }, - "dependencies": { - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "@netlify/serverless-functions-api": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.5.1.tgz", - "integrity": "sha512-c8RjIu+fkpfOGLaW0Z0iFG39GUK7sCa6M3Qy3fqouMpT00TaiheiyssnnDZGSLkNp4o+UtbRnITB1zuwDeHMLw==", - "dev": true - }, - "@netlify/zip-it-and-ship-it": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.13.0.tgz", - "integrity": "sha512-IK6FvXFtRuEA2sZwSmNwkfZSOA1M9tTIHLqvBaHz7h3G0qquZ6p7DMMH7UkmbkPyqp6dZTfwhZ4Stc8A6UjzJw==", - "dev": true, - "requires": { - "@babel/parser": "^7.22.5", - "@netlify/binary-info": "^1.0.0", - "@netlify/esbuild": "0.14.39", - "@netlify/serverless-functions-api": "^1.5.1", - "@vercel/nft": "^0.22.0", - "archiver": "^5.3.0", - "common-path-prefix": "^3.0.0", - "cp-file": "^10.0.0", - "es-module-lexer": "^1.0.0", - "execa": "^6.0.0", - "filter-obj": "^5.0.0", - "find-up": "^6.0.0", - "glob": "^8.0.3", - "is-builtin-module": "^3.1.0", - "is-path-inside": "^4.0.0", - "junk": "^4.0.0", - "locate-path": "^7.0.0", - "merge-options": "^3.0.4", - "minimatch": "^9.0.0", - "normalize-path": "^3.0.0", - "p-map": "^5.0.0", - "path-exists": "^5.0.0", - "precinct": "^11.0.0", - "require-package-name": "^2.0.1", - "resolve": "^2.0.0-next.1", - "semver": "^7.3.8", - "tmp-promise": "^3.0.2", - "toml": "^3.0.0", - "unixify": "^1.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@octokit/auth-token": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", - "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", - "dev": true, - "requires": { - "@octokit/types": "^7.0.0" - } - }, - "@octokit/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz", - "integrity": "sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==", - "dev": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^18.0.0" - } - } - } - }, - "@octokit/endpoint": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", - "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", - "dev": true, - "requires": { - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", - "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", - "dev": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^7.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", - "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", - "dev": true, - "requires": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^18.0.0" - } - } - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz", - "integrity": "sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==", - "dev": true, - "requires": { - "@octokit/types": "^9.2.3", - "deprecation": "^2.3.1" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^18.0.0" - } - } - } - }, - "@octokit/request": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", - "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", - "dev": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", - "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", - "dev": true, - "requires": { - "@octokit/types": "^7.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "19.0.13", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", - "dev": true, - "requires": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" - } - }, - "@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "dev": true - }, - "@octokit/types": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", - "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^13.11.0" - } - }, - "@opentelemetry/api": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", - "dev": true - }, - "@opentelemetry/context-async-hooks": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.1.tgz", - "integrity": "sha512-6CC9sWOZDkUkKrAR957fmxXXlaK3uiBu5xVnuNEQ7hI7VqkUC/r0mNYIql0ouRInLz5o0HwmDuga1eXgQU7KNQ==", - "dev": true, - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.1.tgz", - "integrity": "sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g==", - "dev": true, - "requires": { - "@opentelemetry/semantic-conventions": "1.10.1" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.10.1.tgz", - "integrity": "sha512-bZIoSD6M7uxO19HtRJCAceAahX56LUmj5N/XQFHmoi3iFqA2JfR7bqsyHQCYbgINdiee155UejaqkNpgvjV7fw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.36.1.tgz", - "integrity": "sha512-yQPHny0Y3HIE1BSqbN82MoqqbbJeLINjL7Qf3kJwv1zt5YLUhYbn3FkqHQWS0YWpAvdjK0/OcN40SjEbVz2HRA==", - "dev": true, - "requires": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - } - }, - "@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.36.1.tgz", - "integrity": "sha512-JcpEBwtBpNhVvmCLH3zjTPDcOld2AeI5rNglv2JrB16QCxQ5pwsOgzw7mPe/UR4u/53Ij7LIjFTOCeyVto/6aA==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - } - }, - "@opentelemetry/exporter-metrics-otlp-proto": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.36.1.tgz", - "integrity": "sha512-dKJRKvIiyupuZJOVCzW9wNfsK6RxkELnzCSJHzFoIwhGRXSYpbWyYrfHj4ZJZWYZiQSJ7+I8BFUa4aSkBgnO0w==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-proto-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1" - } - }, - "@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.36.1.tgz", - "integrity": "sha512-U2HdWvQho2VkeSAcAhkZ2wjfUb/1SKQixo5x6LNBF17ES4QYuh5+BagYxfN5FP4dbLnjZpTtFk5lj+97lfNLEw==", - "dev": true, - "requires": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - } - }, - "@opentelemetry/exporter-trace-otlp-http": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.1.tgz", - "integrity": "sha512-q/jKlfuKiHqltDzgzgEvXkoEJ/EyVSIAZhfiaoyBeQ49UhHCPvNTH36/hSwbGSEhKeX98WxXZK4NB/S3sUs8ig==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - } - }, - "@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.36.1.tgz", - "integrity": "sha512-pNfrto7amygyyhmL4Kf96wuepROEecBYXSrtoXIVb1aUhUqjWLsA3/6DR3unB5EfSRA1Oq1Z9bqHfNuKqGfPNw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "@opentelemetry/otlp-proto-exporter-base": "0.36.1", - "@opentelemetry/otlp-transformer": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.10.1.tgz", - "integrity": "sha512-8gF8MjcFf6IhQ7vm6W4tPYtu/vQswYVzpYvk3pUSaX9BMGrwgjeXg+LpuRtaxGoiGd08/g7JjZ4sWLUaELnzWw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - } - }, - "@opentelemetry/otlp-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.1.tgz", - "integrity": "sha512-fpjPwLafJIjgxY5qx7Ly74AYmRCd9spC6/jCxvEgGheg1YT4+NkfVnrfllxLRgc9wQNhDj7Y0Knp8RcmXLLVfA==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1" - } - }, - "@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.36.1.tgz", - "integrity": "sha512-71TdQ3Z0D2Trq8rc2UMvky7tmIpg8kVPUhdYH3p0tNsTmbx6GDpEBOpjp2/zCFvQ0SZFVfHH2Oj2OZxZiz+FNQ==", - "dev": true, - "requires": { - "@grpc/grpc-js": "^1.7.1", - "@grpc/proto-loader": "^0.7.3", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1" - } - }, - "@opentelemetry/otlp-proto-exporter-base": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.36.1.tgz", - "integrity": "sha512-9ErknJ5fS7r2NxEFeca93H+pGWnCjZCUWsz6Stcj5/z2rgsiZGHXLz3fQoUGQz+iXjiXKkks9wxTCRgWOW+Yiw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/otlp-exporter-base": "0.36.1", - "protobufjs": "^7.1.2" - } - }, - "@opentelemetry/otlp-transformer": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.1.tgz", - "integrity": "sha512-d2MomkVHBHwfsmNz6E60s/sm7gtpSjFwDzkFLm9brVq//VXzEhaEyfYSeTabdUs4BmrzhqTIogHWlcd6cOiL+w==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1" - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.10.1.tgz", - "integrity": "sha512-YrWqU93PH8RyCmqGhtDZgyk64D+cp8XIjQsLhEgOPcOsxvxSSGXnGt46rx9Z8+WdIbJgj13Q4nV/xuh36k+O+A==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.1.tgz", - "integrity": "sha512-qvwFfDPoBw2YQW/OsGHdLdD/rqNRGBRLz5UZR/akO21C4qwIK+lQcXbSi5ve0p2eLHnFshhNFqDmgQclOYBcmg==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1" - } - }, - "@opentelemetry/resources": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.1.tgz", - "integrity": "sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - } - }, - "@opentelemetry/sdk-metrics": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.1.tgz", - "integrity": "sha512-ARAD4e6lZhLwstwW+1HG2Q3XuYFA/t8vn10KK/mA4em1pZYKFn64c45RJZJcntxWp4wOZRbp9iL1RXsg7zIjow==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "lodash.merge": "4.6.2" - } - }, - "@opentelemetry/sdk-node": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.36.1.tgz", - "integrity": "sha512-7cRIxls3Ccg6HmzSu30R5upi0yHEizab2rm2rATrAyFV3JJ/ISA7cojmwKwYG8p4rkPNNPLOwCxI3vlLJrBnKA==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/exporter-jaeger": "1.10.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.36.1", - "@opentelemetry/exporter-trace-otlp-http": "0.36.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.36.1", - "@opentelemetry/exporter-zipkin": "1.10.1", - "@opentelemetry/instrumentation": "0.36.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/sdk-metrics": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "@opentelemetry/sdk-trace-node": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.36.1.tgz", - "integrity": "sha512-gtYErugMEF5NXVacmuE+tHFBiyB82YIiO5l8iZX9/4R4TDV8uCWdrLW5QZMqgTzPhiyOG9AITFdqhwIZMw/5lA==", - "dev": true, - "requires": { - "require-in-the-middle": "^6.0.0", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "require-in-the-middle": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", - "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz", - "integrity": "sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.10.1", - "@opentelemetry/resources": "1.10.1", - "@opentelemetry/semantic-conventions": "1.10.1" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.1.tgz", - "integrity": "sha512-/y+s1j8rPTaKnPnbrsbYv3ygTb4hjx/1H32zqobFr85cvWX+Tt1RWmcZ51TaPAfq5uJobGFhhLh6ADI2RDvk5Q==", - "dev": true, - "requires": { - "@opentelemetry/context-async-hooks": "1.10.1", - "@opentelemetry/core": "1.10.1", - "@opentelemetry/propagator-b3": "1.10.1", - "@opentelemetry/propagator-jaeger": "1.10.1", - "@opentelemetry/sdk-trace-base": "1.10.1", - "semver": "^7.3.5" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz", - "integrity": "sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ==", - "dev": true - }, - "@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true - }, - "@pnpm/network.ca-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", - "integrity": "sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA==", - "dev": true, - "requires": { - "graceful-fs": "4.2.10" - } - }, - "@pnpm/npm-conf": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz", - "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==", - "dev": true, - "requires": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, - "@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" - } - }, - "@sindresorhus/slugify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.1.1.tgz", - "integrity": "sha512-XokPHZ+q6FtQGEi1hnfvARVJJVPEhwHQTPHPPuNHaN6zcHjzYNynhhHMopa1wNPqLAFOwpsbintunEqWecXJMg==", - "dev": true, - "requires": { - "@sindresorhus/transliterate": "^1.0.0", - "escape-string-regexp": "^5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - } - } - }, - "@sindresorhus/transliterate": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz", - "integrity": "sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "lodash.deburr": "^4.1.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - } - } - }, - "@skn0tt/lambda-local": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@skn0tt/lambda-local/-/lambda-local-2.0.3.tgz", - "integrity": "sha512-7WZuCWSHeWC9Fh2FTT7lAT6yL5vDZUPxCZ51gIDdCc631CXmEJL/r7t2WMubP2CPuuRA+EnDSJrzKckwY4cz8g==", - "dev": true, - "requires": { - "commander": "^9.4.0", - "dotenv": "^16.0.2", - "winston": "^3.8.2" - }, - "dependencies": { - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - } - } - }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true, - "peer": true - }, - "@types/node": { - "version": "16.11.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", - "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true, - "peer": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true, - "peer": true - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@vercel/nft": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.1.tgz", - "integrity": "sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==", - "dev": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.5", - "acorn": "^8.6.0", - "async-sema": "^3.1.1", - "bindings": "^1.4.0", - "estree-walker": "2.0.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.2", - "node-gyp-build": "^4.2.2", - "resolve-from": "^5.0.0", - "rollup-pluginutils": "^2.8.2" - } - }, - "@xhmikosr/archive-type": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz", - "integrity": "sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==", - "dev": true, - "requires": { - "file-type": "^18.5.0" - } - }, - "@xhmikosr/decompress": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-9.0.1.tgz", - "integrity": "sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q==", - "dev": true, - "requires": { - "@xhmikosr/decompress-tar": "^7.0.0", - "@xhmikosr/decompress-tarbz2": "^7.0.0", - "@xhmikosr/decompress-targz": "^7.0.0", - "@xhmikosr/decompress-unzip": "^6.0.0", - "graceful-fs": "^4.2.11", - "make-dir": "^4.0.0", - "strip-dirs": "^3.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - } - } - }, - "@xhmikosr/decompress-tar": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz", - "integrity": "sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw==", - "dev": true, - "requires": { - "file-type": "^18.5.0", - "is-stream": "^3.0.0", - "tar-stream": "^3.1.4" - }, - "dependencies": { - "tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - } - } - }, - "@xhmikosr/decompress-tarbz2": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz", - "integrity": "sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA==", - "dev": true, - "requires": { - "@xhmikosr/decompress-tar": "^7.0.0", - "file-type": "^18.5.0", - "is-stream": "^3.0.0", - "seek-bzip": "^1.0.6", - "unbzip2-stream": "^1.4.3" - } - }, - "@xhmikosr/decompress-targz": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz", - "integrity": "sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw==", - "dev": true, - "requires": { - "@xhmikosr/decompress-tar": "^7.0.0", - "file-type": "^18.5.0", - "is-stream": "^3.0.0" - } - }, - "@xhmikosr/decompress-unzip": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz", - "integrity": "sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg==", - "dev": true, - "requires": { - "file-type": "^18.5.0", - "get-stream": "^6.0.1", - "yauzl": "^2.10.0" - } - }, - "@xhmikosr/downloader": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-13.0.1.tgz", - "integrity": "sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w==", - "dev": true, - "requires": { - "@xhmikosr/archive-type": "^6.0.1", - "@xhmikosr/decompress": "^9.0.1", - "content-disposition": "^0.5.4", - "ext-name": "^5.0.0", - "file-type": "^18.5.0", - "filenamify": "^5.1.1", - "get-stream": "^6.0.1", - "got": "^12.6.1", - "merge-options": "^3.0.4", - "p-event": "^5.0.1" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "filename-reserved-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", - "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", - "dev": true - }, - "filenamify": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", - "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", - "dev": true, - "requires": { - "filename-reserved-regex": "^3.0.0", - "strip-outer": "^2.0.0", - "trim-repeated": "^2.0.0" - } - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "strip-outer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", - "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", - "dev": true - }, - "trim-repeated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", - "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0" - } - } - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "all-node-versions": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-11.3.0.tgz", - "integrity": "sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==", - "dev": true, - "requires": { - "fetch-node-website": "^7.3.0", - "filter-obj": "^5.1.0", - "get-stream": "^6.0.0", - "global-cache-dir": "^4.3.1", - "is-plain-obj": "^4.1.0", - "path-exists": "^5.0.0", - "semver": "^7.3.7", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - } - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "dev": true - }, - "ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dev": true, - "requires": { - "type-fest": "^3.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "ansi-to-html": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", - "integrity": "sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g==", - "dev": true, - "requires": { - "entities": "^2.2.0" - }, - "dependencies": { - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "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", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archiver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", - "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "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" - } - } - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-timsort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", - "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", - "dev": true - }, - "ascii-table": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", - "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-module-types": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", - "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "async-sema": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "dev": true - }, - "avvio": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", - "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1" - } - }, - "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dev": true, - "requires": { - "precond": "0.2" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", - "dev": true - }, - "better-ajv-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", - "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@humanwhocodes/momoa": "^2.0.2", - "chalk": "^4.1.2", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0 < 4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "requires": { - "open": "^8.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "blueimp-md5": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", - "dev": true - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.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" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - } - } - }, - "boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "dev": true, - "requires": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "dependencies": { - "camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dev": true, - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "builtins": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.0.tgz", - "integrity": "sha512-aizhtbxgT1Udg0Fj6GssXshAVK+nxbtCV+1OtTrMNy67jffDFBY6CUBAkhO4owbleAx6fdbnWdpsmmcXydbzNw==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-deep": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz", - "integrity": "sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==", - "dev": true, - "requires": { - "lodash.isempty": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.transform": "^4.6.0" - } - }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - } - } - }, - "cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "dev": true - }, - "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" - } - }, - "cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "dev": true, - "requires": { - "string-width": "^4.2.3" - } - }, - "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "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": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.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 - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "colors-option": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-3.0.0.tgz", - "integrity": "sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "filter-obj": "^3.0.0", - "is-plain-obj": "^4.0.0", - "jest-validate": "^27.3.1" - }, - "dependencies": { - "filter-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", - "dev": true - } - } - }, - "colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dev": true, - "requires": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "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": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - }, - "comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", - "dev": true, - "requires": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.3", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - } - } - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concordance": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", - "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", - "dev": true, - "requires": { - "date-time": "^3.1.0", - "esutils": "^2.0.3", - "fast-diff": "^1.2.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.15", - "md5-hex": "^3.0.1", - "semver": "^7.3.2", - "well-known-symbols": "^2.0.0" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "requires": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "dependencies": { - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-template-dir": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz", - "integrity": "sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "graceful-fs": "^4.1.3", - "maxstache": "^1.0.0", - "maxstache-stream": "^1.0.0", - "mkdirp": "^0.5.1", - "noop2": "^2.0.0", - "pump": "^1.0.0", - "readdirp": "^2.0.0", - "run-parallel": "^1.1.4" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "cp-file": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", - "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.10", - "nested-error-stacks": "^2.1.1", - "p-event": "^5.0.1" - } - }, - "cpy": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", - "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", - "dev": true, - "requires": { - "arrify": "^3.0.0", - "cp-file": "^9.1.0", - "globby": "^13.1.1", - "junk": "^4.0.0", - "micromatch": "^4.0.4", - "nested-error-stacks": "^2.1.0", - "p-filter": "^3.0.0", - "p-map": "^5.3.0" - }, - "dependencies": { - "cp-file": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - } - }, - "globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "crc-32": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", - "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", - "dev": true, - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.3.1" - } - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cron-parser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.8.1.tgz", - "integrity": "sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==", - "dev": true, - "requires": { - "luxon": "^3.2.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - } - } - }, - "crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "requires": { - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true - }, - "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==", - "dev": true - }, - "date-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", - "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", - "dev": true, - "requires": { - "time-zone": "^1.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "decache": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", - "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", - "dev": true, - "requires": { - "callsite": "^1.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true - }, - "detective-amd": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.1.tgz", - "integrity": "sha512-e7n0E0Wte78U9lcpl3hsTh1ZJ+zp/rgEbdbzGLgTowSbbSemuHnM8olp4KHMF1eCaurrCE50IU9VkoV13ezK4A==", - "dev": true, - "requires": { - "ast-module-types": "^5.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^5.0.0", - "node-source-walk": "^6.0.0" - } - }, - "detective-cjs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", - "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", - "dev": true, - "requires": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.0" - } - }, - "detective-es6": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", - "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", - "dev": true, - "requires": { - "node-source-walk": "^6.0.1" - } - }, - "detective-postcss": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", - "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", - "dev": true, - "requires": { - "is-url": "^1.2.4", - "postcss": "^8.4.23", - "postcss-values-parser": "^6.0.2" - } - }, - "detective-sass": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", - "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" - } - }, - "detective-scss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", - "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" - } - }, - "detective-stylus": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", - "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", - "dev": true - }, - "detective-typescript": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.0.1.tgz", - "integrity": "sha512-pVCuFWdEAyHI16zO3NBWSAULV8pevSkX3gwK8w3y9RrBGUrig6wDvwv6vUpnu+HfOr0MDmjMkmJGNWaTb6+HkA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "^5.59.2", - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.0", - "typescript": "^5.0.4" - }, - "dependencies": { - "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "dev": true, - "requires": { - "type-fest": "^2.11.2" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dev": true, - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "requires": { - "stackframe": "^1.3.4" - } - }, - "es-module-lexer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", - "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", - "dev": true - }, - "es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - } - } - }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "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" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "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" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "express-logging": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz", - "integrity": "sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==", - "dev": true, - "requires": { - "on-headers": "^1.0.0" - } - }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "dev": true, - "requires": { - "mime-db": "^1.28.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "dev": true, - "requires": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-content-type-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz", - "integrity": "sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==", - "dev": true - }, - "fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-equals": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz", - "integrity": "sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==", - "dev": true - }, - "fast-fifo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", - "dev": true - }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "peer": true - }, - "fast-json-stringify": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz", - "integrity": "sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ==", - "dev": true, - "requires": { - "@fastify/deepmerge": "^1.0.0", - "ajv": "^8.10.0", - "ajv-formats": "^2.1.1", - "fast-deep-equal": "^3.1.3", - "fast-uri": "^2.1.0", - "rfdc": "^1.2.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-querystring": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.0.0.tgz", - "integrity": "sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==", - "dev": true, - "requires": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "fast-redact": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "fast-uri": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", - "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastify": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.17.0.tgz", - "integrity": "sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg==", - "dev": true, - "requires": { - "@fastify/ajv-compiler": "^3.5.0", - "@fastify/error": "^3.0.0", - "@fastify/fast-json-stringify-compiler": "^4.3.0", - "abstract-logging": "^2.0.1", - "avvio": "^8.2.0", - "fast-content-type-parse": "^1.0.0", - "fast-json-stringify": "^5.7.0", - "find-my-way": "^7.6.0", - "light-my-request": "^5.6.1", - "pino": "^8.5.0", - "process-warning": "^2.0.0", - "proxy-addr": "^2.0.7", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.5.0", - "semver": "^7.3.7", - "tiny-lru": "^11.0.1" - }, - "dependencies": { - "pino": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.14.1.tgz", - "integrity": "sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw==", - "dev": true, - "requires": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", - "thread-stream": "^2.0.0" - } - }, - "pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", - "dev": true - }, - "process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", - "dev": true - } - } - }, - "fastify-plugin": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.4.0.tgz", - "integrity": "sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fdir": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.0.1.tgz", - "integrity": "sha512-bdrUUb0eYQrPRlaAtlSRoLs7sp6yKEwbMQuUgwvi/14TnaqhM/deSZUrC5ic+yjm5nEPPWE61oWpTTxQFQMmLA==", - "dev": true, - "requires": {} - }, - "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", - "dev": true - }, - "fetch-blob": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", - "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", - "dev": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "fetch-node-website": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-7.3.0.tgz", - "integrity": "sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==", - "dev": true, - "requires": { - "cli-progress": "^3.11.2", - "colors-option": "^4.4.0", - "figures": "^5.0.0", - "got": "^12.3.1", - "is-plain-obj": "^4.1.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - } - }, - "colors-option": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-4.5.0.tgz", - "integrity": "sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==", - "dev": true, - "requires": { - "chalk": "^5.0.1", - "is-plain-obj": "^4.1.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - } - } - }, - "figures": { - "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" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "file-type": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", - "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", - "dev": true, - "requires": { - "readable-web-to-node-stream": "^3.0.2", - "strtok3": "^7.0.0", - "token-types": "^5.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filter-obj": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", - "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", - "dev": true - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-my-way": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.6.2.tgz", - "integrity": "sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3", - "fast-querystring": "^1.0.0", - "safe-regex2": "^2.0.0" - } - }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "flush-write-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz", - "integrity": "sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true - }, - "folder-walker": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz", - "integrity": "sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==", - "dev": true, - "requires": { - "from2": "^2.1.0" - } - }, - "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", - "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", - "dev": true - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "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" - } - } - } - }, - "from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", - "dev": true, - "requires": { - "from2": "^2.0.3" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "get-amd-module-type": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", - "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", - "dev": true, - "requires": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "gh-release-fetch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz", - "integrity": "sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g==", - "dev": true, - "requires": { - "@xhmikosr/downloader": "^13.0.0", - "node-fetch": "^3.3.1", - "semver": "^7.5.3" - }, - "dependencies": { - "node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - } - } - }, - "git-repo-info": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", - "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", - "dev": true - }, - "gitconfiglocal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", - "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", - "dev": true, - "requires": { - "ini": "^1.3.2" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "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" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "global-cache-dir": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-4.4.0.tgz", - "integrity": "sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==", - "dev": true, - "requires": { - "cachedir": "^2.3.0", - "path-exists": "^5.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true - }, - "hasbin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", - "integrity": "sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==", - "dev": true, - "requires": { - "async": "~1.5" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - } - } - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dev": true, - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "dev": true - } - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hot-shots": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-10.0.0.tgz", - "integrity": "sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ==", - "dev": true, - "requires": { - "unix-dgram": "2.x" - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "dependencies": { - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "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": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true - }, - "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" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - }, - "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 - }, - "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" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "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" - } - } - } - }, - "inquirer-autocomplete-prompt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", - "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "inspect-with-kind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", - "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "requires": { - "builtin-modules": "^3.0.0" - } - }, - "is-ci": { - "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": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "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": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "dependencies": { - "global-dirs": { - "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": "2.0.0" - } - } - } - }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true - }, - "is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "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", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "is-url-superb": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - }, - "dependencies": { - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - } - } - }, - "is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "iserror": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", - "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dev": true, - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true - }, - "jsonwebtoken": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", - "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", - "dev": true, - "requires": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - } - }, - "junk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", - "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", - "dev": true - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", - "dev": true - }, - "keep-func-props": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/keep-func-props/-/keep-func-props-4.0.1.tgz", - "integrity": "sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dev": true, - "requires": { - "package-json": "^8.1.0" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "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" - } - } - } - }, - "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 - }, - "light-my-request": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", - "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", - "dev": true, - "requires": { - "cookie": "^0.5.0", - "process-warning": "^2.0.0", - "set-cookie-parser": "^2.4.1" - }, - "dependencies": { - "process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", - "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==", - "dev": true - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "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 - }, - "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 - } - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "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-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": "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" - } - }, - "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==", - "dev": true, - "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "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" - } - }, - "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" - } - }, - "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, - "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - } - }, - "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 - }, - "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" - } - }, - "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 - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "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" - } - } - } - } - } - }, - "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, - "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" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - } - } - } - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - }, - "dependencies": { - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.isempty": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", - "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.transform": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", - "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "log-process-errors": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/log-process-errors/-/log-process-errors-8.0.0.tgz", - "integrity": "sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg==", - "dev": true, - "requires": { - "colors-option": "^3.0.0", - "figures": "^4.0.0", - "filter-obj": "^3.0.0", - "jest-validate": "^27.4.2", - "map-obj": "^5.0.0", - "moize": "^6.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "figures": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", - "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "filter-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", - "dev": true - }, - "map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true - } - } - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - }, - "log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", - "dev": true, - "requires": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "requires": { - "type-fest": "^1.0.2" - } - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", - "dev": true - }, - "macos-release": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.0.1.tgz", - "integrity": "sha512-3l6OrhdDg2H2SigtuN3jBh+5dRJRWxNKuJTPBbGeNJTsmt/pj9PO25wYaNb05NuNmAsl435j4rDP6rgNXz7s7g==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "maxstache": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz", - "integrity": "sha1-IjHVGAung9Xs/DHEX+2seuQnaYQ=", - "dev": true - }, - "maxstache-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz", - "integrity": "sha1-nH9cq35f3S2Q2oYUO06WMeoygEA=", - "dev": true, - "requires": { - "maxstache": "^1.0.0", - "pump": "^1.0.0", - "split2": "^1.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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" - } - }, - "split2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", - "integrity": "sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==", - "dev": true, - "requires": { - "through2": "~2.0.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "md5-hex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", - "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", - "dev": true, - "requires": { - "blueimp-md5": "^2.10.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dev": true, - "requires": { - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micro-api-client": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", - "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", - "dev": true - }, - "micro-memoize": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.11.tgz", - "integrity": "sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "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" - } - }, - "module-definition": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", - "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", - "dev": true, - "requires": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" - } - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "dev": true - }, - "moize": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/moize/-/moize-6.1.3.tgz", - "integrity": "sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==", - "dev": true, - "requires": { - "fast-equals": "^3.0.1", - "micro-memoize": "^4.0.11" - } - }, - "move-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", - "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", - "dev": true, - "requires": { - "path-exists": "^5.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "multiparty": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", - "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", - "dev": true, - "requires": { - "http-errors": "~1.8.1", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true - }, - "netlify": { - "version": "13.1.10", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.1.10.tgz", - "integrity": "sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw==", - "dev": true, - "requires": { - "@netlify/open-api": "^2.19.1", - "lodash-es": "^4.17.21", - "micro-api-client": "^3.3.0", - "node-fetch": "^3.0.0", - "omit.js": "^2.0.2", - "p-wait-for": "^4.0.0", - "qs": "^6.9.6" - }, - "dependencies": { - "node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true - }, - "p-wait-for": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", - "dev": true, - "requires": { - "p-timeout": "^5.0.0" - } - } - } - }, - "netlify-headers-parser": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz", - "integrity": "sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "fast-safe-stringify": "^2.0.7", - "is-plain-obj": "^4.0.0", - "map-obj": "^5.0.0", - "path-exists": "^5.0.0", - "toml": "^3.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "map-obj": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", - "dev": true - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "netlify-redirect-parser": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-14.1.3.tgz", - "integrity": "sha512-23svKHdO2QUEJHo3knQV1EpAh8UX/+8zQmwxVMSby4/NRj5vPS+u/yKesY/uHAgcw/28HwvEUGQdbXsPPe7J/Q==", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.1.1", - "filter-obj": "^5.0.0", - "is-plain-obj": "^4.0.0", - "path-exists": "^5.0.0", - "toml": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "netlify-redirector": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.4.0.tgz", - "integrity": "sha512-ssD+V9o2DD9VnilOYC+34i07IrlY8XDsh5mN+qLYA4MxCpdALKXFICcz1KzsHZabuIS5XsF1VP/HzDyx5ubJ2g==", - "dev": true - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-source-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.1.tgz", - "integrity": "sha512-QUlkJYzrNewUCp4c7CCPN8Mh8c+pwNs23JsQfHKUwIkCxYa6c0AFLuUJIZxU6BdnarfytPSGKm1YMAz06hj9cw==", - "dev": true, - "requires": { - "@babel/parser": "^7.21.8" - } - }, - "node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "dev": true - }, - "node-version-alias": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-3.4.1.tgz", - "integrity": "sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==", - "dev": true, - "requires": { - "all-node-versions": "^11.3.0", - "filter-obj": "^5.1.0", - "is-plain-obj": "^4.1.0", - "normalize-node-version": "^12.4.0", - "path-exists": "^5.0.0", - "semver": "^7.3.8" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "noop2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz", - "integrity": "sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls=", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-node-version": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-12.4.0.tgz", - "integrity": "sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==", - "dev": true, - "requires": { - "all-node-versions": "^11.3.0", - "filter-obj": "^5.1.0", - "semver": "^7.3.7" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - } - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.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": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "omit.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", - "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==", - "dev": true - }, - "on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - } - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "dependencies": { - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - } - } - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "dev": true - }, - "ora": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", - "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "os-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", - "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", - "dev": true, - "requires": { - "macos-release": "^3.0.1", - "windows-release": "^5.0.1" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-event": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", - "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", - "dev": true, - "requires": { - "p-timeout": "^5.0.2" - }, - "dependencies": { - "p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "dev": true - } - } - }, - "p-every": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz", - "integrity": "sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==", - "dev": true, - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", - "dev": true, - "requires": { - "p-map": "^5.1.0" - } - }, - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "requires": { - "aggregate-error": "^4.0.0" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - } - } - }, - "p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true - }, - "p-retry": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", - "dev": true, - "requires": { - "@types/retry": "0.12.1", - "retry": "^0.13.1" - } - }, - "p-wait-for": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", - "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", - "dev": true, - "requires": { - "p-timeout": "^6.0.0" - }, - "dependencies": { - "p-timeout": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", - "dev": true - } - } - }, - "package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", - "dev": true, - "requires": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", - "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - } - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - } - } - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "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" - } - } - } - }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, - "parse-gitignore": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", - "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "peek-readable": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", - "dev": true, - "requires": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-values-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", - "dev": true, - "requires": { - "color-name": "^1.1.4", - "is-url-superb": "^4.0.0", - "quote-unquote": "^1.0.0" - }, - "dependencies": { - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "precinct": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.2.tgz", - "integrity": "sha512-UuhB1q0nEFf80iMGcs7IoT0o1GnNFWT4CjZjcMsHDXAIsW/aiLovOSbeMJ2Ejg6raRsplsriZZkoBUh0h/IHlw==", - "dev": true, - "requires": { - "@dependents/detective-less": "^4.0.0", - "commander": "^10.0.1", - "detective-amd": "^5.0.1", - "detective-cjs": "^5.0.1", - "detective-es6": "^4.0.0", - "detective-postcss": "^6.1.3", - "detective-sass": "^5.0.0", - "detective-scss": "^4.0.0", - "detective-stylus": "^4.0.0", - "detective-typescript": "^11.0.1", - "module-definition": "^5.0.0", - "node-source-walk": "^6.0.1" - } - }, - "precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prettyjson": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", - "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", - "dev": true, - "requires": { - "colors": "1.4.0", - "minimist": "^1.2.0" - } - }, - "printj": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", - "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", - "dev": true - }, - "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 - }, - "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 - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "dev": true - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "ps-list": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.0.tgz", - "integrity": "sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dev": true, - "requires": { - "escape-goat": "^4.0.0" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "quote-unquote": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "dependencies": { - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dev": true, - "requires": { - "readable-stream": "^3.6.0" - } - }, - "readdir-glob": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", - "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", - "dev": true - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, - "regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", - "dev": true - }, - "registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dev": true, - "requires": { - "@pnpm/npm-conf": "^2.1.0" - } - }, - "registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dev": true, - "requires": { - "rc": "1.2.8" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-package-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "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" - } - }, - "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 - }, - "safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true - }, - "safe-regex2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", - "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", - "dev": true, - "requires": { - "ret": "~0.2.0" - }, - "dependencies": { - "ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", - "dev": true - } - } - }, - "safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "secure-json-parse": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.6.0.tgz", - "integrity": "sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==", - "dev": true - }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "requires": { - "commander": "^2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "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" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "set-cookie-parser": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", - "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.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" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "dev": true, - "requires": { - "atomic-sleep": "^1.0.0" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - } - } - }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "dev": true, - "requires": { - "sort-keys": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", - "dev": true, - "requires": { - "stackframe": "^1.3.4" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", - "dev": true, - "requires": { - "bl": "^5.0.0" - }, - "dependencies": { - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "streamx": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", - "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", - "dev": true, - "requires": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "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" - } - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - } - } - }, - "strip-ansi-control-characters": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz", - "integrity": "sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==", - "dev": true - }, - "strip-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", - "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", - "dev": true, - "requires": { - "inspect-with-kind": "^1.0.5", - "is-plain-obj": "^1.1.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - } - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strtok3": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", - "dev": true, - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.0.0" - } - }, - "supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "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 - }, - "tabtab": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-3.0.2.tgz", - "integrity": "sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==", - "dev": true, - "requires": { - "debug": "^4.0.1", - "es6-promisify": "^6.0.0", - "inquirer": "^6.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "untildify": "^3.0.3" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", - "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", - "dev": true, - "requires": { - "is-stream": "^3.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "terminal-link": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", - "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", - "dev": true, - "requires": { - "ansi-escapes": "^5.0.0", - "supports-hyperlinks": "^2.2.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "requires": { - "type-fest": "^1.0.2" - } - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true - }, - "thread-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", - "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", - "dev": true, - "requires": { - "real-require": "^0.2.0" - } - }, - "thriftrw": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", - "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", - "dev": true, - "requires": { - "bufrw": "^1.2.1", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "dev": true - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - }, - "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" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "through2-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz", - "integrity": "sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "^4.0.0" - }, - "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" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "time-zone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", - "dev": true - }, - "tiny-lru": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.0.1.tgz", - "integrity": "sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "requires": { - "tmp": "^0.2.0" - }, - "dependencies": { - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-3.0.0.tgz", - "integrity": "sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "token-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", - "dev": true, - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - } - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true - }, - "tomlify-j0.4": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", - "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-fest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", - "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true - }, - "uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dev": true, - "requires": { - "random-bytes": "~1.0.0" - } - }, - "ulid": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", - "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "requires": { - "crypto-random-string": "^4.0.0" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "unix-dgram": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.6.tgz", - "integrity": "sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.16.0" - } - }, - "unixify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", - "dev": true, - "requires": { - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - } - } - }, - "untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", - "dev": true - }, - "update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dev": true, - "requires": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "wait-port": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.0.4.tgz", - "integrity": "sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "commander": "^9.3.0", - "debug": "^4.3.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", - "dev": true - }, - "well-known-symbols": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", - "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - } - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dev": true, - "requires": { - "string-width": "^5.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - } - } - }, - "windows-release": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", - "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", - "dev": true, - "requires": { - "execa": "^5.1.1" - } - }, - "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - } - } - }, - "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dev": true, - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "dev": true - } - } - }, - "xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "dev": true - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "dev": true - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "postcss-cli": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz", - "integrity": "sha512-3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "chokidar": "^3.3.0", - "dependency-graph": "^0.9.0", - "fs-extra": "^9.0.0", - "get-stdin": "^8.0.0", - "globby": "^11.0.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "postcss-reporter": "^6.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "yargs": "^15.0.2" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-reporter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", - "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "postcss": "^7.0.7" - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "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" - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "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 - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } - } - }, - "read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "dependencies": { - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "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 - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "requires": { - "commander": "^2.8.1" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "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" - }, - "dependencies": { - "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-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "temp-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", - "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", - "dev": true - }, - "tempy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", - "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", - "dev": true, - "requires": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "dependencies": { - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "requires": { - "crypto-random-string": "^4.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } -} diff --git a/package.json b/package.json index e621adc2ca..36860240ca 100644 --- a/package.json +++ b/package.json @@ -1,30 +1,46 @@ { - "name": "tech-doc-hugo", - "version": "0.0.1", - "description": "Hugo theme for technical documentation.", - "main": "none.js", + "name": "cncf-glossary", + "description": "CNCF Glossary.", + "private": true, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "__check:links": "make --keep-going check-links", + "_build": "npm run _hugo -- -e dev -DEF --baseURL \"${DEPLOY_PRIME_URL:-http://localhost}\"", + "_check:links": "npm run __check:links", + "_check:links:all": "HTMLTEST_ARGS='--log-level 1' npm run __check:links", + "_get:no": "echo SKIPPING get operation", + "_get:submodule": "set -x && git submodule update --init --recursive ${DEPTH:- --depth 1}", + "_hugo": "hugo --cleanDestinationDir", + "_prebuild": "npm run get:submodule", + "_prepare:docsy": "echo 'Placeholder for when docsy is updated and we will do: cd themes/docsy && npm install'", + "build": "npm run _build", + "check:links": "npm run _check:links", + "get:submodule": "npm run _get:${GET:-submodule}", + "postget:submodule": "git submodule", + "prebuild": "npm run _prebuild", + "precheck:links": "npm run build", + "prepare": "npm run seq -- get:submodule _prepare:docsy", + "seq": "bash -c 'for cmd in \"$@\"; do npm run $cmd || exit 1; done' - ", "serve": "netlify dev -c \"hugo serve --minify -DFE -w\"", - "serve:with-pagefind": "hugo --baseURL=/ --theme=docsy && npm_config_yes=true npx pagefind --site 'public' --output-subdir '../static/pagefind' && npm run serve" + "serve:with-pagefind": "hugo --baseURL=/ --theme=docsy && npm_config_yes=true npx pagefind --site 'public' --output-subdir '../static/pagefind' && npm run serve", + "test": "npm run check:links", + "update:pkgs": "npx npm-check-updates -u" }, - "repository": { - "type": "git", - "url": "git+https://github.com/google/docsy-example.git" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/google/docsy-example/issues" - }, - "homepage": "https://github.com/google/docsy-example#readme", "dependencies": { "lunr-languages": "^1.9.0" }, "devDependencies": { "autoprefixer": "^9.8.6", "hugo-extended": "^0.115.2", - "netlify-cli": "^15.9.0", "postcss-cli": "^7.1.2" - } + }, + "optionalDependencies": { + "netlify-cli": "^17.26.1", + "npm-check-updates": "^16.14.20" + }, + "enginesComment": "Ensure that engines.node value stays consistent with the project's .nvmrc", + "engines": { + "node": "20.x" + }, + "gitHubActionCacheKey": "2024-06-08 - change this key to force cache refresh", + "spelling": "cSpell:ignore cncf docsy HTMLTEST hugo loglevel pagefind netlify nowrap pkgs prebuild precheck preinstall postbuild postget subdir -" } From e0f44c9ee47f9faccc08de5720d71fb591e0d52b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:17:59 -0700 Subject: [PATCH 122/130] Bump dawidd6/action-download-artifact from 3 to 5 (#3193) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/post-outdated-content-report.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/post-outdated-content-report.yaml b/.github/workflows/post-outdated-content-report.yaml index fb9980f5fd..c8ef0011f1 100644 --- a/.github/workflows/post-outdated-content-report.yaml +++ b/.github/workflows/post-outdated-content-report.yaml @@ -50,7 +50,7 @@ jobs: # - name: Download output # uses: actions/download-artifact@v3 - name: Download output - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@v5 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: check-outdated-content.yaml From 453d8fe88d48724d5b127ee8e11fef0255f5a25e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:24:57 +0000 Subject: [PATCH 123/130] Bump dawidd6/action-download-artifact from 5 to 6 Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 5 to 6. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/post-outdated-content-report.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/post-outdated-content-report.yaml b/.github/workflows/post-outdated-content-report.yaml index c8ef0011f1..c45ece5079 100644 --- a/.github/workflows/post-outdated-content-report.yaml +++ b/.github/workflows/post-outdated-content-report.yaml @@ -50,7 +50,7 @@ jobs: # - name: Download output # uses: actions/download-artifact@v3 - name: Download output - uses: dawidd6/action-download-artifact@v5 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: check-outdated-content.yaml From a53ee113488322c0f42d4ce830595e1c0c4bd6da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:25:00 +0000 Subject: [PATCH 124/130] Bump rojopolis/spellcheck-github-actions from 0.37.0 to 0.38.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.37.0 to 0.38.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.37.0...0.38.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/es-spellcheck.yml | 2 +- .github/workflows/spellcheck.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/es-spellcheck.yml b/.github/workflows/es-spellcheck.yml index 74d1b6cc23..0012a44df8 100644 --- a/.github/workflows/es-spellcheck.yml +++ b/.github/workflows/es-spellcheck.yml @@ -29,6 +29,6 @@ jobs: set -o errexit diff content/es/.wordlist.txt <(LC_ALL= sort -f content/es/.wordlist.txt) - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.37.0 + uses: rojopolis/spellcheck-github-actions@0.38.0 with: config_path: content/es/.spellcheck.yml diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index f66af5bc5d..6c6751a2ce 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -25,4 +25,4 @@ jobs: - uses: actions/checkout@v4 - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.37.0 + uses: rojopolis/spellcheck-github-actions@0.38.0 From 5490a77e0ac581b4d9c6011be87ed6444390b75f Mon Sep 17 00:00:00 2001 From: Junya Okabe <86868255+Okabe-Junya@users.noreply.github.com> Date: Wed, 19 Jun 2024 08:52:07 +0900 Subject: [PATCH 125/130] [ja] Enable link checking, and normalize links, add missing (#3205) Signed-off-by: Junya Okabe --- .htmltest.yml | 2 +- content/ja/chaos-engineering.md | 2 +- content/ja/container-orchestration.md | 6 +++--- content/ja/containerization.md | 2 +- content/ja/horizontal-scaling.md | 2 +- content/ja/loosely-coupled-architecture.md | 2 +- content/ja/stateful-apps.md | 2 +- content/ja/tightly-coupled-architecture.md | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.htmltest.yml b/.htmltest.yml index fd3e2c10fc..e8fb7e7de9 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -3,6 +3,6 @@ DirectoryPath: public # IgnoreDirectoryMissingTrailingSlash: true # FIXME IgnoreInternalEmptyHash: true # FIXME IgnoreDirs: - - ^(bn|de|es|fr|hi|it|ja|ko|pt.*?|ru|tr|ur|zh.*?)/ + - ^(bn|de|es|fr|hi|it|ko|pt.*?|ru|tr|ur|zh.*?)/ IgnoreURLs: # list of regexs of paths or URLs to be ignored - ^/pagefind diff --git a/content/ja/chaos-engineering.md b/content/ja/chaos-engineering.md index d0f841efa9..011d974a4b 100644 --- a/content/ja/chaos-engineering.md +++ b/content/ja/chaos-engineering.md @@ -12,7 +12,7 @@ tags: ["方法論", "", ""] [SRE](/ja/site-reliability-engineering/)や[DevOps](/ja/devops/)の実践は、プロダクトの回復力と[信頼性](/ja/reliability/)を高める技術に焦点を当てています。 システムが障害を許容しつつ適切なサービス品質を保証する能力は、通常のソフトウェア開発の要件です。 -インフラストラクチャ、プラットフォーム、あるいは([マイクロサービス](/ja/microservices-architecture)ベースの)アプリケーションの他の動作部分のように、アプリケーションの停止につながる可能性のある複数の側面が関与しています。 +インフラストラクチャ、プラットフォーム、あるいは([マイクロサービス](/ja/microservices-architecture/)ベースの)アプリケーションの他の動作部分のように、アプリケーションの停止につながる可能性のある複数の側面が関与しています。 本番環境に新機能を高頻度でデプロイすることは、高い確率でダウンタイムと重大なインシデントをもたらし、ビジネスに重大な影響を及ぼす可能性があります。 ## どのように役に立つのでしょうか diff --git a/content/ja/container-orchestration.md b/content/ja/container-orchestration.md index 3877b36eba..635bb40629 100644 --- a/content/ja/container-orchestration.md +++ b/content/ja/container-orchestration.md @@ -4,14 +4,14 @@ status: Completed category: コンセプト --- -[コンテナ](/ja/container/)オーケストレーションとは、流動的な環境において、[コンテナ化](/ja/containerization)されたアプリケーションのライフサイクルを管理し自動化することを指します。 -これはコンテナオーケストレータ(ほとんどの場合は[Kubernetes](/ja/kubernetes))を通じて実行され、デプロイメント、(自動)スケーリング、自動ヒーリング、モニタリングが可能になります。 +[コンテナ](/ja/container/)オーケストレーションとは、流動的な環境において、[コンテナ化](/ja/containerization/)されたアプリケーションのライフサイクルを管理し自動化することを指します。 +これはコンテナオーケストレータ(ほとんどの場合は[Kubernetes](/ja/kubernetes/))を通じて実行され、デプロイメント、(自動)スケーリング、自動ヒーリング、モニタリングが可能になります。 オーケストレーションという言葉は比喩です。 オーケストレーションツールは、音楽指揮者のようにコンテナを指揮し、すべてのコンテナ(または音楽家)が適切に機能するようにします。 ## 解決すべき問題は何ですか -スケールに応じて[マイクロサービス](/ja/microservices-architecture)、セキュリティ、ネットワーク通信や一般的な[分散システム](/ja/distributed-systems)を管理することは、手動で行うには難しく、場合によっては不可能です。 +スケールに応じて[マイクロサービス](/ja/microservices-architecture/)、セキュリティ、ネットワーク通信や一般的な[分散システム](/ja/distributed-systems/)を管理することは、手動で行うには難しく、場合によっては不可能です。 コンテナオーケストレーションにより、これらすべての管理タスクを自動化することができます。 ## どのように役に立つのでしょうか diff --git a/content/ja/containerization.md b/content/ja/containerization.md index b5523f9862..f0cb04366a 100644 --- a/content/ja/containerization.md +++ b/content/ja/containerization.md @@ -11,7 +11,7 @@ tags: ["アプリケーション", "", ""] ## 解決すべき問題は何ですか -[コンテナ](/ja/container)が普及する前は、組織は仮想マシン(VM)に依存して、単一の[ベアメタルマシン](/ja/bare-metal-machine/)上で複数のアプリケーションをオーケストレーションしていました。 +[コンテナ](/ja/container/)が普及する前は、組織は仮想マシン(VM)に依存して、単一の[ベアメタルマシン](/ja/bare-metal-machine/)上で複数のアプリケーションをオーケストレーションしていました。 VMはコンテナよりも非常に大きく、実行にはハイパーバイザーが必要です。 これらの大きなVMテンプレートのストレージ、バックアップ、転送により、VMテンプレートの作成もより遅くなります。 さらに、VMは[不変性](/ja/immutable-infrastructure/)の原則に反する構成ドリフトに悩まされることがあります。 diff --git a/content/ja/horizontal-scaling.md b/content/ja/horizontal-scaling.md index fb301cdd84..8c028c0aba 100644 --- a/content/ja/horizontal-scaling.md +++ b/content/ja/horizontal-scaling.md @@ -9,7 +9,7 @@ tags: ["インフラストラクチャ", "", ""] 個別の[ノード](/ja/nodes/)により多くの計算リソースを追加する手法とは異なります(後者は[垂直スケーリング](/ja/vertical-scaling/)として知られています)。 たとえば、RAM容量4GBのシステムを持っていて、そのRAMを16GBに増やしたい場合、水平スケーリングはRAM 16GBのシステムに切り替えるのではなく、RAM 4GBのマシン4台で対応します。 -このアプローチは、新しいインスタンスまたは[ノード](/ja/nodes)を追加することで、負荷をより効果的に分散し、アプリケーションのパフォーマンスを向上させます。 +このアプローチは、新しいインスタンスまたは[ノード](/ja/nodes/)を追加することで、負荷をより効果的に分散し、アプリケーションのパフォーマンスを向上させます。 簡単に言えば、個別のサーバーの処理能力を強化することではなく、個別のサーバーの負荷を減らすことを目指しています。 ## 解決すべき問題はなんですか diff --git a/content/ja/loosely-coupled-architecture.md b/content/ja/loosely-coupled-architecture.md index 2642b02352..800e0c6c6d 100644 --- a/content/ja/loosely-coupled-architecture.md +++ b/content/ja/loosely-coupled-architecture.md @@ -6,7 +6,7 @@ tags: ["基礎", "アーキテクチャ", "プロパティ"] --- 疎結合アーキテクチャは、アプリケーションの構成要素それぞれが互いに独立して構築されるようなアーキテクチャです(その逆は[密結合アーキテクチャ](/ja/tightly-coupled-architecture/)と呼ばれます)。 -[マイクロサービス](/ja/microservice/)とよく呼ばれる個々の構成要素は、その他多くのサービスから利用できるような方法で、特定の機能を果たすよう構築されます。 +[マイクロサービス](/ja/microservices-architecture/)とよく呼ばれる個々の構成要素は、その他多くのサービスから利用できるような方法で、特定の機能を果たすよう構築されます。 疎結合アーキテクチャは密結合アーキテクチャより一般的に実装が遅くなりますが、特にアプリケーションがスケールする際に多くの利点があります。 アプリケーションが疎結合だと、チームは独立して機能開発、デプロイ、スケールすることが可能です。 diff --git a/content/ja/stateful-apps.md b/content/ja/stateful-apps.md index 7368e4db24..85654945fc 100644 --- a/content/ja/stateful-apps.md +++ b/content/ja/stateful-apps.md @@ -10,7 +10,7 @@ tags: ["基礎", "アプリケーション", "プロパティ"] 今日、私たちが使用するほとんどのアプリケーションは少なくとも部分的にステートフルです。 しかし、クラウドネイティブ環境では、ステートフルアプリは難しいです。 -これは、[クラウドネイティブアプリ](/ja/cloud-native-apps)が非常に動的だからです。 +これは、[クラウドネイティブアプリ](/ja/cloud-native-apps/)が非常に動的だからです。 これらはスケーリング、再起動、別の場所への移動が可能ですが、それでもそのステートにアクセスできる必要があります。 そのため、ステートフルアプリには、データベースのようにどこからでもアクセス可能な何らかのストレージが必要です。 diff --git a/content/ja/tightly-coupled-architecture.md b/content/ja/tightly-coupled-architecture.md index 4e6d1301d6..a25b35e2d3 100644 --- a/content/ja/tightly-coupled-architecture.md +++ b/content/ja/tightly-coupled-architecture.md @@ -12,5 +12,5 @@ tags: ["基礎", "アーキテクチャ", "プロパティ"] また、しばしば構成要素を協調してロールアウトする必要が生じるため、開発者の生産性に対する足かせとなる可能性があります。 密結合なアプリケーションアーキテクチャはかなり古典的なアプリケーション構築方法です。 -[マイクロサービス](/ja/microservices/)開発のベストプラクティス全てには必ずしも整合しませんが、密結合アーキテクチャは特定の場合に有用です。 +[マイクロサービス](/ja/microservices-architecture/)開発のベストプラクティス全てには必ずしも整合しませんが、密結合アーキテクチャは特定の場合に有用です。 密結合アーキテクチャでの開発は、実装がより簡潔で早くなる傾向があり、[モノリシックアプリケーション](/ja/monolithic-apps/)とよく似て初期開発サイクルを加速させる可能性があります。 From b720bec834668abb1b6677aaa13291ec51d6cb7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Este-Gracias?= Date: Fri, 21 Jun 2024 05:19:36 +0200 Subject: [PATCH 126/130] Update dev-fr contributors (#3075) --- .github/settings.yml | 8 ++++---- CODEOWNERS | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 816edc45e3..8b03379c72 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -168,9 +168,6 @@ collaborators: - username: huats permission: push - - username: fydrah - permission: push - - username: Krast76 permission: push @@ -180,6 +177,9 @@ collaborators: - username: guillaumebernard84 permission: push + - username: seb-835 + permission: push + # l10n ur approvers - username: Saim-Safdar permission: push @@ -448,10 +448,10 @@ branches: # fr approvers users: - huats - - fydrah - Krast76 - sestegra - guillaumebernard84 + - seb-835 teams: [] enforce_admins: null required_linear_history: null diff --git a/CODEOWNERS b/CODEOWNERS index 78489645ea..43c8de63eb 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -35,8 +35,8 @@ /i18n/es.toml @raelga @ramrodo @electrocucaracha @krol3 @92nqb # Approvers for French contents -/content/fr/ @huats @fydrah @Krast76 @sestegra @guillaumebernard84 -/i18n/fr.toml @huats @fydrah @Krast76 @sestegra @guillaumebernard84 +/content/fr/ @huats @Krast76 @sestegra @guillaumebernard84 @seb-835 +/i18n/fr.toml @huats @Krast76 @sestegra @guillaumebernard84 @seb-835 # Approvers for Hindi contents /content/hi/ @Garima-Negi @jayesh-srivastava @abhay-raj19 @aj11anuj @kumarankit999 @bishal7679 From 55e9c8f31e92da57fdfb20c9da910a1ab45986a3 Mon Sep 17 00:00:00 2001 From: Sebastien Aucouturier Date: Sat, 22 Jun 2024 02:47:35 +0200 Subject: [PATCH 127/130] [EN] Update security-chaos-engineering (#3166) --- content/en/security-chaos-engineering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/security-chaos-engineering.md b/content/en/security-chaos-engineering.md index 0affd08570..3d6dcc9b9b 100644 --- a/content/en/security-chaos-engineering.md +++ b/content/en/security-chaos-engineering.md @@ -29,5 +29,5 @@ Engineering teams will progressively improve the understanding for security conc within complex infrastructure, platforms, and distributed systems. SCE improves the cyber resiliency of the entire product, uncovers hidden security issues, exposes the classical blind spots, and prepares teams for critical edge cases. -This approach helps SREs, [DevOps](/devops/) and [DevSecOps](/devsecops/) engineers +This approach helps [SREs](/site-reliability-engineering/), [DevOps](/devops/) and [DevSecOps](/devsecops/) engineers create confidence in the system, increase cyber resiliency and improve observability. From e56ef088ad753858c3396784d4af37081c7a227c Mon Sep 17 00:00:00 2001 From: Chris Abraham Date: Sun, 23 Jun 2024 11:31:03 +0700 Subject: [PATCH 128/130] Don't store search increments in the browser history Signed-off-by: Chris Abraham --- layouts/_default/search.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/_default/search.html b/layouts/_default/search.html index 2772fa47ff..9c850d56f7 100644 --- a/layouts/_default/search.html +++ b/layouts/_default/search.html @@ -55,7 +55,7 @@

{{ .Title }}

var newUrl = baseUrl + "?" + urlParams.toString(); // Update the browser history (optional) - window.history.pushState({}, null, newUrl); + history.replaceState(null, '', newUrl); } From d7dca238cacfbf1c0b84f1e217dd369eca7a88a3 Mon Sep 17 00:00:00 2001 From: Nitish Rawat Date: Thu, 4 Jul 2024 05:37:28 +0530 Subject: [PATCH 129/130] [EN] update containerization (#3007) Signed-off-by: Nitish Rawat Signed-off-by: Noah Ispas Co-authored-by: Noah Ispas --- content/en/containerization.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/content/en/containerization.md b/content/en/containerization.md index 8f51c9aedc..c4514feba4 100644 --- a/content/en/containerization.md +++ b/content/en/containerization.md @@ -5,10 +5,7 @@ category: Technology tags: ["application", "", ""] --- -Containerization is the process of bundling an application and its dependencies into a container image. -The container build process requires adherence to the [Open Container Initiative](https://opencontainers.org) (OCI) standard. -As long as the output is a container image that adheres to this standard, which containerization tool is used doesn't matter. - +Containerization is the process of packaging of application code including libraries and dependencies required to run the code into a single lightweight executable—called [container image](/container-image/). ## Problem it addresses Before [containers](/container/) became prevalent, organizations relied on [virtual machines](/virtual-machine/) (VMs) to From c53b99b4a9dd5b541dadc567c167d4c021e66052 Mon Sep 17 00:00:00 2001 From: Arun Karthick N M Date: Fri, 5 Jul 2024 10:01:32 +0530 Subject: [PATCH 130/130] [EN] add WebAssembly (#2117) Signed-off-by: Arun Karthick N M Signed-off-by: Catherine Paganini <74001907+CathPag@users.noreply.github.com> Signed-off-by: Noah Ispas Signed-off-by: Nate W Signed-off-by: Seokho Son Co-authored-by: Catherine Paganini <74001907+CathPag@users.noreply.github.com> Co-authored-by: Seokho Son Co-authored-by: Noah Ispas Co-authored-by: Hilliary Lipsig Co-authored-by: Nate W --- content/en/webassembly.md | 23 +++++++++++++++++++++++ wordlist.txt | 6 ++++++ 2 files changed, 29 insertions(+) create mode 100644 content/en/webassembly.md diff --git a/content/en/webassembly.md b/content/en/webassembly.md new file mode 100644 index 0000000000..da15a5f2ad --- /dev/null +++ b/content/en/webassembly.md @@ -0,0 +1,23 @@ +--- +title: WebAssembly +status: Completed +category: Concept +tags: ["Application", "", ""] +--- + +WebAssembly (often abbreviated as Wasm) is a binary instruction format designed as a portable target for compiling high-level languages like C, C++, Rust, and others. It enables deployment on the web for client-side and server-side applications. +It is a low-level bytecode format that can be executed in a virtual machine, typically integrated into web browsers. While initially developed for the web, Web Assembly is a Universal Runtime and sees applications in non-web environments such as IoT and edge devices. + +## Problem it addresses + +For many years, the LAMP (Linux Apache MySQL PHP) stack was the template for web-based applications. Later, Javascript became the king of front-end application development and node. js based applications became the norm. As the technology around the web evolved, it heavily favored interpreted languages, which are typically less performant than compiled languages, even with technological advancements. +While JavaScript has improved over the years, it still faces performance limitations when executing computationally intensive tasks. +Interpreted languages that are compiled at runtime often see performance and functionality issues as the code is executed across different environments. Conversely, compiled binaries typically run the same as long as they've compiled correctly. However, historically, a compiled binary has been less suited for the web environment. + +## How it helps + +WebAssembly provides a low-level binary format that can be executed at near-native speeds, enabling web applications to perform complex computations efficiently. +It allows developers to build web applications by leveraging their existing skills in languages like C, C++, Rust, and others. +This opens up new possibilities and allows developers to reuse existing codebases and libraries. +Also, WebAssembly modules can run consistently across different browsers, operating systems, and devices, reducing the need for platform-specific code. +Overall, WebAssembly addresses performance limitations, language restrictions, code portability, security concerns, code size, and loading time issues, providing a more robust and flexible environment for web application development. diff --git a/wordlist.txt b/wordlist.txt index adbfb6dfd7..31b1fe6a6b 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -20,6 +20,7 @@ bracex brømsø bursty bvs +bytecode caas capex caret @@ -38,6 +39,7 @@ cks cncf cncf's codebase +codebases codefences config cpu @@ -112,6 +114,7 @@ jihoon jonasbn jones josé +js katelin keda keys @@ -151,6 +154,7 @@ paas pathconverter pavel pavelskipenes +performant pre prem programmatically @@ -217,7 +221,9 @@ virtualizing vm vms volkman +wasm wcmatch +webassembly wifi wordlist wordlists