From 3d4660aa87e726bd0378e669c564ab93610acb29 Mon Sep 17 00:00:00 2001 From: Midga3 Date: Sun, 6 Jul 2025 18:32:05 +0300 Subject: [PATCH 01/19] Update rule.md --- vitepress/rule.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vitepress/rule.md b/vitepress/rule.md index 72286fe..cf5e896 100644 --- a/vitepress/rule.md +++ b/vitepress/rule.md @@ -165,6 +165,13 @@ Replay Mod или моды на мини-карту разрешены, но т Бан дополнительных аккаунтов. Если у вас есть бан на одном аккаунте, который был выдан за нарушение других правил, то мы заблокируем все ваши аккаунты. ::: +::: details Не создавайте города направленные на политику и 18+. +Запрещена любая политика на сервере как сказанно выше. +Если ваш город направлен на 18+ контент то сообщите об этом. + +К политике относиться: например если вы создали город Киев и рядом Москва, потом вы ставите пушку и бомбите Москву. +:::пр + ::: details Не проводите раздачи без разрешения. Запрещено проводить или участвовать в раздачах, которые не согласованы с администрацией сервера. From 71652e48575a9247f2ebc4db663e60d23b3cec55 Mon Sep 17 00:00:00 2001 From: Midga3 Date: Sun, 6 Jul 2025 21:14:33 +0300 Subject: [PATCH 02/19] =?UTF-8?q?=D0=9D=D0=B0=D0=BA=D0=B0=D0=B7=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B5=D0=BB=D0=B5=D0=BD=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=B7=D0=BE=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vitepress/green-zone.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vitepress/green-zone.md b/vitepress/green-zone.md index 027fd0f..626f03a 100644 --- a/vitepress/green-zone.md +++ b/vitepress/green-zone.md @@ -17,6 +17,9 @@ title: "Правила зелёных зон" 2. Пвп в зелёных зонах запрещено. 3. Не используйте и не взрывайте кристаллы, динамит, кровати (в аду и энде) и якори возрождения (в верхнем мире). 4. Афк-торговля разрешена только на государственном рынке. +::: warning Наказание +От красного варна до бана. +::: ## Особые правила для энда From e85f587df3855670484ba5f8599f5b8d59979fe0 Mon Sep 17 00:00:00 2001 From: Midga3 Date: Sun, 6 Jul 2025 21:16:23 +0300 Subject: [PATCH 03/19] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vitepress/green-zone.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/vitepress/green-zone.md b/vitepress/green-zone.md index 626f03a..2b7cd9b 100644 --- a/vitepress/green-zone.md +++ b/vitepress/green-zone.md @@ -17,9 +17,7 @@ title: "Правила зелёных зон" 2. Пвп в зелёных зонах запрещено. 3. Не используйте и не взрывайте кристаллы, динамит, кровати (в аду и энде) и якори возрождения (в верхнем мире). 4. Афк-торговля разрешена только на государственном рынке. -::: warning Наказание -От красного варна до бана. -::: + ## Особые правила для энда From c40179b5d21a738f080552eb610cb02f3cdec59b Mon Sep 17 00:00:00 2001 From: Midga3 Date: Sun, 6 Jul 2025 22:23:14 +0300 Subject: [PATCH 04/19] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=82=D1=83=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vitepress/auth.md | 25 +++++++++++++++++++++++++ vitepress/green-zone.md | 2 +- vitepress/public/auth/connect1.png | Bin 0 -> 34568 bytes vitepress/public/auth/done.png | Bin 0 -> 142045 bytes vitepress/public/auth/open_url.png | Bin 0 -> 55726 bytes vitepress/public/auth/start.png | Bin 0 -> 5097 bytes 6 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 vitepress/auth.md create mode 100644 vitepress/public/auth/connect1.png create mode 100644 vitepress/public/auth/done.png create mode 100644 vitepress/public/auth/open_url.png create mode 100644 vitepress/public/auth/start.png diff --git a/vitepress/auth.md b/vitepress/auth.md new file mode 100644 index 0000000..41b811b --- /dev/null +++ b/vitepress/auth.md @@ -0,0 +1,25 @@ +--- +title: "Авторизация" +--- + +# Авторизация + +Зайдите на сервер. +Введите пароль и у вас должно появится данное окно. +![](public/auth/connect1.png) + +Нажмите на кнопку для привязки. + +![](public/auth/open_url.png) + +Примите открытие сайта. + +![](public/auth/start.png) + +Нажмите старт + +![](public/auth/done.png) + +Готово! + +Дальше вы можете использовать сервер и контролировать ваш аккаунт. \ No newline at end of file diff --git a/vitepress/green-zone.md b/vitepress/green-zone.md index 027fd0f..73b1285 100644 --- a/vitepress/green-zone.md +++ b/vitepress/green-zone.md @@ -7,7 +7,7 @@ title: "Правила зелёных зон" Зелёные зоны — это особые территории, находящиеся под защитой государства и отмеченные специальными артами. К ним относятся: - Спавн (верхний мир: радиус 300 блоков от центра) -- Хаб в аду (радиус 75 блоков от нулевых координат) +- Хаб в аду (радиус 35 блоков от нулевых координат) - Ветки в аду (полосы вдоль нулевых координат шириной 10 блоков) - Центральный остров энда (радиус 300 блоков от начала отсчёта) diff --git a/vitepress/public/auth/connect1.png b/vitepress/public/auth/connect1.png new file mode 100644 index 0000000000000000000000000000000000000000..80cd323445e93d6ce8a063001b78be7af6a8d4fb GIT binary patch literal 34568 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
I2%(-s9pXr_^ze6qlGnMktQ4?IiezOBWm;^e`;u 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%0A1ZdXz16hrX;>8j03>5!aZl`N;) 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 NrNb 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 LNkvXXu0mjfpPdOu literal 0 HcmV?d00001 diff --git a/vitepress/public/auth/open_url.png b/vitepress/public/auth/open_url.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5267e48f0eddf0bc0fea706abb1ea15ffe2716 GIT binary patch literal 55726 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 Date: Sun, 6 Jul 2025 22:24:46 +0300 Subject: [PATCH 05/19] Update rule.md --- vitepress/rule.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/vitepress/rule.md b/vitepress/rule.md index cf5e896..ec74c25 100644 --- a/vitepress/rule.md +++ b/vitepress/rule.md @@ -165,12 +165,7 @@ Replay Mod или моды на мини-карту разрешены, но т Бан дополнительных аккаунтов. Если у вас есть бан на одном аккаунте, который был выдан за нарушение других правил, то мы заблокируем все ваши аккаунты. ::: -::: details Не создавайте города направленные на политику и 18+. -Запрещена любая политика на сервере как сказанно выше. -Если ваш город направлен на 18+ контент то сообщите об этом. -К политике относиться: например если вы создали город Киев и рядом Москва, потом вы ставите пушку и бомбите Москву. -:::пр ::: details Не проводите раздачи без разрешения. Запрещено проводить или участвовать в раздачах, которые не согласованы с администрацией сервера. From 9732dcdddc1bf3179bbd782bf357418e7b47c2f2 Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:18:52 +0300 Subject: [PATCH 06/19] Update bank.md --- vitepress/bank.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vitepress/bank.md b/vitepress/bank.md index 1707472..7b4bde7 100644 --- a/vitepress/bank.md +++ b/vitepress/bank.md @@ -3,11 +3,11 @@ title: "Банк" --- # Банк + ::: warning В разработке -Данный блок в разработке +Данный блок находится в разработке. ::: +Через банк можно оплачивать аренду меток и штрафы. -Через банк можно оплачивать аренду метки и штрафы. - -Оформить карточку можно у банкира. Банкирами работают обычные игроки. Обычно найти их можно в банке на спавне. \ No newline at end of file +Оформить карточку можно у банкира. Банкирами работают обычные игроки — обычно их можно найти в банке на спавне. From 9688e216f5303c0aac61e56a75c32d184244ea55 Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:20:31 +0300 Subject: [PATCH 07/19] Update mods.md --- vitepress/mods.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vitepress/mods.md b/vitepress/mods.md index f2576db..e9800c2 100644 --- a/vitepress/mods.md +++ b/vitepress/mods.md @@ -1,5 +1,6 @@ # Моды -На сервере можно играть без модов, но мы рекомендуем скачать мод на голосовой чат, эмоции. + +На сервере можно играть без модов, но мы рекомендуем установить моды на голосовой чат и анимированные эмоции. ## Мод на голосовой чат: Simple Voice Chat @@ -8,4 +9,3 @@ ## Мод на анимированные эмоции: EmoteCraft - [Как пользоваться](emotes.md) - From 490c440b398a9d231b2832bad37e202909e158d5 Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:21:53 +0300 Subject: [PATCH 08/19] Update emotes.md --- vitepress/emotes.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vitepress/emotes.md b/vitepress/emotes.md index d63e93e..2bc498e 100644 --- a/vitepress/emotes.md +++ b/vitepress/emotes.md @@ -6,20 +6,20 @@ title: "Эмоции" ![](public/mods/emotes/demo.webp) -Мод EmoteCraft добавляет анимированные эмоции +Мод **EmoteCraft** добавляет анимированные эмоции. -Вы можете зайти на сервер с ванильного клиента, но чтобы использовать эмоции и видеть эмоции других игроков — вам нужно установить мод для Fabric или Forge +Вы можете зайти на сервер с ванильного клиента, но чтобы использовать эмоции и видеть эмоции других игроков — необходимо установить мод для **Fabric** или **Forge**: ## Как пользоваться ![](public/mods/emotes/howto.webp) -1. Нажмите на кнопку :kbd[B] (английскую) по умолчанию, чтобы открыть меню с эмоциями -2. Кликните по кнопку в правом нижнем углу :kbd[Все эмоции], а затем на кнопку :kbd[Настройка эмоций], чтобы настроить эмоции -3. Кликните по эмоции, а затем по месту в круге эмоций, куда вы хотите её установить -4. Нажмите кнопку :kbd[Готово] и снова нажмите :kbd[B], чтобы открыть меню эмоций и протестировать новые эмоции -5. Чтобы установить больше эмоций, скачайте их, а затем перекиньте в папку `.minecraft/emotes` +1. Нажмите клавишу :kbd[B] (английская раскладка) — откроется меню с эмоциями. +2. Кликните по кнопке в правом нижнем углу :kbd[Все эмоции], затем по :kbd[Настройка эмоций]. +3. Выберите эмоцию, затем нажмите на место в круге, куда хотите её установить. +4. Нажмите :kbd[Готово], снова откройте меню (:kbd[B]) и протестируйте эмоции. +5. Чтобы добавить больше эмоций — скачайте их и поместите в папку `.minecraft/emotes`. - \ No newline at end of file + From f4ae08d42a8e75b3caf1116a4417ab046d50577f Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:26:01 +0300 Subject: [PATCH 09/19] Update rule.md --- vitepress/rule.md | 240 +++++++++++++++++----------------------------- 1 file changed, 88 insertions(+), 152 deletions(-) diff --git a/vitepress/rule.md b/vitepress/rule.md index 72286fe..d3e870b 100644 --- a/vitepress/rule.md +++ b/vitepress/rule.md @@ -4,13 +4,13 @@ title: "Правила сервера" # Правила сервера -Каждое правило можно раскрыть, чтобы прочитать его подробную версию. Например, если у вас есть сомнение насчёт того, можно ли использовать мод на сервере — раскройте правило про читы +Каждое правило можно раскрыть, чтобы прочитать его подробную версию. Например, если у вас есть сомнение насчёт того, можно ли использовать мод на сервере — раскройте правило про читы. -За нарушение правил вы можете получить мут, штраф, красный варн или бан +За нарушение правил вы можете получить мут, штраф, красный варн или бан. -Красные варны выдаются за серьёзные или многократные нарушения правил. Снять красный варн можно только на Большом Апелляционном Суде +Красные варны выдаются за серьёзные или многократные нарушения. Снять красный варн можно только на Большом Апелляционном Суде. -По дополнительным вопросам обращайтесь в чат. +По дополнительным вопросам обращайтесь в чат. ::: danger Помните! **3 красных варна = бан** @@ -19,208 +19,144 @@ title: "Правила сервера" ## Общие правила ::: details Не гриферите, не воруйте, не убивайте игроков -#### Гриферство это: -- Поломка блоков на территории другого игрока. -- Убийство мобов, которые находятся в загонах на территории другого игрока. -- Открытие декоративных люков и дверей, которые не предназначены для того, чтобы их открывали. -- Воровство. Когда вы берёте вещи, которые вам не принадлежат. -- Не твоё — не бери. Если в сундуке лежат вещи, и рядом нет таблички о том, что из него можно брать вещи — то брать их нельзя. +#### Гриферство — это: +- Ломание блоков на территории другого игрока +- Убийство мобов в загонах на чужой территории +- Открытие декоративных люков и дверей, если они не предназначены для использования +- Воровство (взяли то, что вам не принадлежит) - Присвоение вещей умерших игроков -- Убийство или просто удары, которые сносят прочность у брони, здоровье игрока, или мешают ему. -- Мошенничество и обман. Организация финансовых пирамид. -- Механизмы или скопления энтити, которые специально создают лаги на сервере. -- Отключение спавнрейта, заполнение лимита мобов. +- Удары и убийства, снижающие прочность брони или мешающие игроку +- Мошенничество, обман, финансовые пирамиды +- Создание лагов с помощью механизмов или скоплений энтити +- Отключение спавнрейта, заполнение лимита мобов -#### Когда это правило можно нарушать -Если у пострадавшей стороны нет к вам претензий, то нарушать эти правила можно. Например, можно устраивать PVP поединки, если обе стороны согласны. +#### Когда это допустимо +Если у пострадавшей стороны нет претензий — можно. Например, PVP по согласию. ::: danger Наказание -От штрафа до бана. За многократное убийство игроков вы получите красный варн - -За гриферство и воровство в крупных размерах, например подрыв города, выдается моментальный бан. +От штрафа до бана. За многократное убийство игроков — красный варн. +За масштабное гриферство (например, подрыв города) — моментальный бан. ::: ::: details Не засоряйте мир, рубите деревья до конца, не мусорьте блоками -Рубите деревья до конца, если обнаружили что кто-то не вырубил дерево, вырубите его. -![](public/rules/trash_tree.png) - -Не используйте блоки для того, чтобы перемещаться, чтобы забираться на гору и просто не ставьте под себя во время перемещения. -![](public/rules/trash_blocks1.png) -![](public/rules/trash_blocks2.png) +Рубите деревья полностью. Если кто-то не вырубил дерево — вырубите его. -Закрывайте дырки от криперов и других взрывов. -![](public/rules/trash_creeper.png) +Не используйте блоки для временного перемещения (например, "лестницы" из земли). -Не стройте столбы в один блок, убирайте их за собой. -![](public/rules/trash_pillar.png) +Закрывайте дыры от криперов и других взрывов. -Не взрывайте территорию. Даже если эта территория принадлежит вам, или никому не принадлежит. -![](public/rules/trash_tnt.png) +Не стройте одиночные столбы, не взрывайте местность, даже если это ваша территория. -Не делайте лавакасты. -![](public/rules/trash_lava.png) +Не делайте лавакасты. ::: warning Наказание -Штраф + убрать, то что сделал. Если вы не уберёте, например огромные лавакасты или взорванную территорию, тогда вы получите бан. +Штраф + обязательная уборка. Если не уберёте (например, лавакасты), получите бан. ::: -::: details Не используйте читы, дюпы и баги, которые можно использовать для разрушения экономики сервера. -#### Что такое читы -Чит-клиенты, X-Ray, макросы, кликеры, мод на автоматическую рыбалку, авто телепорт. - -Исключением являются макросы для команд, например можно назначить смену РП персонажа на кнопку на клавиатуре или отправки сообщения в чат. - -Нельзя добывать ресурсы через баг с глиной, гравием и лазуритом. Использование этого бага рассматривается как добыча ресурсов через X-Ray. - -Мод Tweakeroo запрещен. - -Моды и программы для модификации отправки пакетов запрещены. - -#### Поломка бедрока -Мод на быструю поломку бедрока запрещен. - -Способ с поломкой бедрока через отключение интернета или модификация отправки пакетов запрещен. - -#### Freecam -Разрешен [мод](https://modrinth.com/mod/freecam) без функции NoClip. Использование других модов для свободного полёта запрещено. - -#### Litematica -Litematica разрешена, easyPlaceMode разрешен, принтер разрешен. - -#### Replay Mod и Мини-карта -Replay Mod или моды на мини-карту разрешены, но только если вы не используете их для получения преимущества. - -Например, вы можете использовать Replay Mod как доказательство при рассмотрении ситуаций, или чтобы снять видео - -Но вы не можете использовать его, чтобы искать спавнеры и руды. - -То же самое с картами. Запрещено использовать моды на мини-карту, чтобы искать пещеры и шахты. Запрещено использовать карты, которые показывают энтити или игроков. - -#### Дюпы -Запрещено использовать любые баги сервера или игры для дюпа предметов. - -Нельзя дюпать, в том числе коврики, рельсы и яйца дракона. - -Исключением является баг с дюпом зажжённого динамита, также известный как "Гуси". - -#### Автоматическая прогрузка чанков -Запрещено строить механизмы, которые прогружают чанки. - -#### Сид мира -Запрещено взламывать, использовать и распространять сид мира. +::: details Не используйте читы, дюпы и баги, нарушающие экономику +#### Запрещены: +- Читы, X-Ray, кликеры, авто-рыбалка, авто-тп +- Мод Tweakeroo +- Модификация сетевых пакетов +- Быстрая поломка бедрока и баги с отключением интернета +- Freecam с NoClip (разрешён [этот мод](https://modrinth.com/mod/freecam) без NoClip) +- Моды на мини-карты с отображением пещер, игроков и спавнеров +- Все формы дюпа (кроме бага с зажжённым динамитом — "Гуси") +- Автоматическая прогрузка чанков +- Использование/распространение сидов мира + +#### Разрешено: +- Litematica (в т.ч. easyPlaceMode и принтер) +- Replay Mod — но не для поиска ресурсов ::: warning Наказание -От красного варна до бана. +От красного варна до бана. ::: -::: details Не спамьте и не флудите в чатах, не используйте слова, запрещенные на Twitch, не распространяйте NSFW контент. -#### Спам -Бессмысленные сообщения, стены из символов, ASCII арты. - -Большие сообщения капсом, или частое использование капса в сообщениях. - -Частая отправка одинаковых объявлений в игровые чаты. Про торговлю, ивенты, наборы в города. - -Отправлять одинаковые рекламные сообщения в чат можно, но с интервалом не менее часа. - -#### Флуд -Повторение одинаковых сообщений много раз, даже 2 раза считается в некоторых случаях. +::: details Не спамьте, не флудите, не используйте запрещённые слова, не распространяйте NSFW +#### Спам: +- Бессмысленные сообщения, ASCII-арты, капс +- Повторяющиеся объявления — интервал не менее 1 часа -#### Слова запрещенные на Twitch -Может быть стримеры будуть стримить игру на сервере, во время стрима — запрещено использовать слова и фразы запрещенные на Twitch. +#### Флуд: +- Повторение одинаковых сообщений, даже 2 раза -Полный список можно прочитать по ссылке: [digitaldrugs.notion.site/dd5df77c957a499b81635a6feefb8a5b](https://digitaldrugs.notion.site/dd5df77c957a499b81635a6feefb8a5b?pvs=4) +#### Twitch-запреты: +- Во время стримов нельзя использовать слова, запрещённые на Twitch +[Список запрещённого](https://digitaldrugs.notion.site/dd5df77c957a499b81635a6feefb8a5b?pvs=4) -#### NSFW контент -Не распространяйте NSFW, эротический и шок контент. - -Делать эротические арты на картах можно, но запрещено размещать их в публичных местах, где их могут увидеть стримеры или случайные прохожие. При входе на территорию с эротическими артами должно быть предупреждение. +#### NSFW: +- Эротика и шок-контент — нельзя +- Арты можно, но не в публичных местах, с предупреждением на входе ::: warning Наказание -От штрафа и мута до бана. Бан выдается если вы намеренно используете запрещенные слова или фразы в присутствии стримера, чтобы попытаться его забанить. +От мута и штрафа до бана. Особенно при попытке подставить стримера. ::: -::: details Не провоцируйте конфликты и не выводите их за рамки игры. -#### Провокация конфликта -У конфликта должны быть явные и серьёзные причины. Например, вы имеете полное право оскорбить игрока, который убил вас или своровал у вас что-то. Но если игрок не совершил ничего плохого по отношению к вам, или вашим знакомым, то оскорбления этого игрока будут провокацией конфликта. - -#### Разжигание конфликта -Когда из-за какой-то мелочи, или одного проступка игрока, вы начинаете регулярно и постоянно его оскорблять или провоцировать. Когда вы вспоминаете о том, что было раньше, и регулярно оскорбляете игрока за это. +::: details Не провоцируйте конфликты и не выводите их за рамки игры +Конфликты допустимы, если есть веская причина. Без причины — оскорбления и провокации запрещены. -Не выводите конфликты за рамки игры. Не переходите на личности, не занимайтесь доксом и откровенной травлей людей, переходя границу игры и реальной жизни. - -#### Прочее -Запрещено продвигать или поощрять идеологии ненависти основанной на расовой, этнической, или религиозной почве. Расизм, нацизм, шовинизм, фашизм, оправдывание войны в Украине. +Нельзя: +- Напоминать старые обиды ради травли +- Переходить на личности, заниматься доксингом или реальной травлей +- Распространять ненавистнические идеологии (расизм, фашизм, оправдание войны и пр.) ::: warning Наказание -От штрафа до бана. Конфликты это нормально, они случаются. Но если вы постоянно провоцируете и разжигаете конфликты, то вы получите бан. +От штрафа до бана. ::: -::: details Не используйте больше одного аккаунта на сервере. -Запрещено давать свой аккаунт другим игрокам. Если кто-то играет с вашего аккаунта, то его действия будут рассматриваться как ваши действия. - -Если вы даёте аккаунт игроку, который находится в бане на сервере, то ваш аккаунт тоже забанят. +::: details Один аккаунт на человека +- Нельзя делиться аккаунтом +- Если забаненный игрок использует ваш аккаунт — вы получите бан ::: warning Наказание -Бан дополнительных аккаунтов. Если у вас есть бан на одном аккаунте, который был выдан за нарушение других правил, то мы заблокируем все ваши аккаунты. +Бан всех связанных аккаунтов. ::: -::: details Не проводите раздачи без разрешения. -Запрещено проводить или участвовать в раздачах, которые не согласованы с администрацией сервера. +::: details Не проводите раздачи без разрешения +Раздачи — только по согласованию с админом. Он должен быть онлайн при проведении. -Чтобы получить разрешение на раздачу — напишите администратору серверу. Во время проведения раздачи администратор должен находиться онлайн, чтобы убедиться в том, что раздаваемые вещи не ворованные. - -Не верьте, что раздача согласована, если об этом говорит не администратор сервера. +Не верьте, если кто-то говорит, что раздача согласована, пока это не подтвердил сам админ. ::: warning Наказание -*За участие:* красный варн + возврат вещей. - -*За проведение:* если вещи не ворованные — красный варн, иначе — бан. +*Участники:* красный варн + возврат вещей +*Организатор:* если вещи ворованные — бан. Если нет — красный варн. ::: -::: details Соблюдайте правила, установленные игроками на их территориях, и правила установленные общинами для их жителей -Общины и игроки могут устанавливать любые правила на своей территории. При этом они обязаны информировать игроков о существовании таких правил. Через таблички на входе или устное предупреждение. +::: details Соблюдайте правила на чужих территориях +Игроки и общины могут устанавливать правила, но должны вас о них предупредить. -Объем наказания за нарушение ваших правил определяет суд или Интерпол. Если вы поставите табличку `"Запрещено заходить. Штраф 64 алмазных блока"`, то Интерпол может посчитать такое наказание необъективным, и выписать штраф, который будет значительно меньше суммы, указанной на табличке. +Наказание за их нарушение определяет суд или Интерпол. Неадекватные штрафы по табличке могут быть уменьшены. #### Про запретные территории -Штраф за нахождение на запретной территории выдается только если игрок сделал что-то на этой территории. Штраф не выдается за клик по двери или калитке, или за факт того, что игрок был на территории. - -Штраф выдается только если игрок что-то своровал, поставил или сломал блоки. Либо если игрок отказывается покидать территорию после предупреждения с просьбой её покинуть. Или если игрок многократно посещает запрещенную территорию, когда он знает, что так делать нельзя. +Штраф только за активные действия: воровство, блоки, отказ уйти после предупреждения. #### Правила общин -Община не может требовать от вас соблюдать её правила, когда вы её покидаете. Например, община не может заставить вас выплачивать штраф после того, как вы её покинули. +Община не может требовать штрафов после выхода из неё. Это возможно только через контракт — подписанную книгу с датами. -Такие соглашения должны быть оформлены в виде контракта через подписанную книгу — с указанной датой подписания, и датой прекращения действия контракта. ::: -::: details Не злоупотребляйте полномочиями. -Если ваша роль на сервере подразумевает дополнительные возможности, например доступ к CoreProtect, то не превышайте свои полномочия. - -Не используйте свое положение для личных или корыстных целей. +::: details Не злоупотребляйте полномочиями +Если у вас есть доступ к админским функциям — не используйте их в личных целях. ::: -::: details Валюта сервера — алмазная руда. -Используйте АРЫ для международной торговли. - -Для обмена между жителями общины, или для внутренней торговли, можно использовать любую валюту. +::: details Валюта сервера — алмазная руда (АРЫ) +Для внешней торговли используйте АРЫ. +Для внутренней — можно любые другие формы. #### Реальные деньги -Запрещено торговать игровыми предметами и услугами за реальные деньги. +- **Нельзя** обменивать реальные деньги на игровые вещи/услуги +- **Можно** давать игровые вещи за реальные услуги (например, арт за ары) -Или обменивать на что-то, стоимость чего выражается в реальных деньгах. (Пример: Fusion или Лицензия Майнкрафт) -::: danger **Нельзя** обменивать реальные деньги на услуги или предметы в игре. -Например, чтобы игрок дал вам ары за рубли. -::: info **Можно** обменивать игровую валюту на услуги в реальной жизни -Например, чтобы игрок нарисовал вам скин за ары +::: danger +**Запрещено**: продавать ресурсы или услуги за рубли +::: info +**Разрешено**: давать ресурсы за арт, скин, помощь и пр. ::: ::: details Правила занятия территории -Запрещено занимать территорию в радиусе 300 блоков от нулевых координат (0, 0) в обычном мире, и в радиусе 36 блоков в аду. - -Каждый игрок, или община, может занять любое количество территории — если эта территория используется и её использование оправдано. - -Вы можете занять территорию на будущее, пометив её табличками или метками. Но если по факту на этой территории не будет никаких построек — то её сможет занять другой игрок. - -Если вы хотите занять территорию, и в радиусе 300 блоков есть уже занятая территория — вы должны договорится с её владельцем, и заключить контракт, в котором он подтвердит, что он не против. В противном случае он сможет подать на вас в суд. +- Нельзя занимать территорию в радиусе 300 блоков от 0,0 в верхнем мире и 36 блоков в аду +- Можно занимать сколько угодно, если используете +- Место можно пометить табличками, но если ничего не построено — его могут занять +- Если рядом есть территория — нужно согласие владельца, желательно оформить контракт ::: From e7e2f38a27beea431406a725e1dec4848c2d321a Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:30:10 +0300 Subject: [PATCH 10/19] Update main.md --- vitepress/main.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitepress/main.md b/vitepress/main.md index a227b6a..f632674 100644 --- a/vitepress/main.md +++ b/vitepress/main.md @@ -1,3 +1,3 @@ # exteraCraft Wiki -Добро пожаловать на вики! Здесь вы найдете правила сервера, полезные гайды и различные инструкции, которые помогут вам лучше ориентироваться и наслаждаться игрой. +Добро пожаловать на вики! Здесь вы найдёте правила сервера, полезные гайды и инструкции, которые помогут вам лучше ориентироваться и получать удовольствие от игры. From 9301d81626a55bafa27613b0c290089671c9200e Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:31:59 +0300 Subject: [PATCH 11/19] Update highway.md --- vitepress/highway.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vitepress/highway.md b/vitepress/highway.md index 240abe7..b906ce7 100644 --- a/vitepress/highway.md +++ b/vitepress/highway.md @@ -16,11 +16,11 @@ title: "Правила веток в аду" Поставили новый портал в аду? Сначала поднимите его на 69-й уровень — это стандарт для всех веток. -Дальше ищите ближайшую магистраль. Например, ваш портал стоит на X 128 Z -63. Чтобы путь был максимально коротким, определите, какая из координат по модулю меньше (в нашем случае 63). Именно по этой оси и стоит прокладывать личный тоннель. +Затем найдите ближайшую магистраль. Например, если ваш портал стоит на X 128 Z -63, определите, какая из координат по модулю меньше (в данном случае 63). Именно по этой оси стоит прокладывать личный тоннель. ![](/public/features/higway/highway2.png) -Вам нужно пробиться к ветке X+ — это ближайшая магистраль. Прокладывайте прямой тоннель до точки X 128 Z 0. +В данном примере нужно пробиться к ветке **X+** — это ближайшая магистраль. Проложите прямой тоннель до точки X 128 Z 0. #### Пример ошибки @@ -32,14 +32,14 @@ title: "Правила веток в аду" ### Почему это важно? -- В начале сезона основные ветки уже готовы и оформлены, поэтому вам не придётся тратить силы на лишние десятки блоков. +- В начале сезона основные ветки уже готовы и оформлены, вам не придётся тратить ресурсы на лишнюю прокладку тоннелей. - Координаты портала становятся универсальным ориентиром — любой игрок легко найдёт дорогу к вам. - Система меток сервера автоматически строит маршрут до вашего портала на карте. Чтобы всё работало корректно, придерживайтесь этих рекомендаций. ## Основные правила для частных веток - Личные тоннели не должны выходить за пределы стен главных магистралей. -- Если ваша ветка ведёт в 18+ зону, оставьте табличку. +- Если ваша ветка ведёт в 18+ зону — обязательно оставьте табличку. - Запрещено убирать центральные перегородки и ставить искусственные преграды. - Старайтесь аккуратно соединять свои ветки с основными, сохраняя колонны и элементы декора. -- Личные ветки не должны мешать другим тоннелям. \ No newline at end of file +- Личные ветки не должны мешать другим тоннелям. From 509a736da6df5894afeb0469a5dcd27f7e16b8b5 Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:34:05 +0300 Subject: [PATCH 12/19] Update sde.md --- vitepress/sde.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/vitepress/sde.md b/vitepress/sde.md index 025f11f..518f0a3 100644 --- a/vitepress/sde.md +++ b/vitepress/sde.md @@ -4,25 +4,21 @@ title: "Самоуправление" # Как устроено самоуправление на сервере -СДЭ — это главный управляющий орган сервера. Он придумывает и меняет правила, организует ивенты, следит за хабом и спавном, курирует работу Интерпола и банка, а также распоряжается казной. +**СДЭ** — это главный управляющий орган сервера. Он разрабатывает и меняет правила, организует ивенты, следит за хабом и спавном, курирует работу Интерпола и банка, а также распоряжается казной. #### СДЭ состоит из трёх ветвей: -- **Совет СДЭ.** Это парламент сервера. - -- **Судебная ветвь.** Верховный суд - -- **Исполнительная ветвь.** Президент и т.д. +- **Совет СДЭ** — парламент сервера +- **Судебная ветвь** — Верховный суд +- **Исполнительная ветвь** — Президент и другие должности ## Совет СДЭ -Совет СДЭ — это парламент, который контролирует решения президента. В совет попадают через открытое голосование. - - +Совет СДЭ — это парламент, который контролирует действия президента. В совет можно попасть через открытое голосование. ### Как проходят заседания @@ -32,13 +28,12 @@ title: "Самоуправление" - Как распределить средства из казны - Какие правила изменить - Какие проекты реализовать на общественных территориях -- Как проводить реформы в интерполе, экономике, культуре и суде +- Как проводить реформы в Интерполе, экономике, культуре и судебной системе ### Привилегии членов совета -Участники совета СДЭ имеют доступ к логам CoreProtect, чтобы помогать игрокам искать воров без вмешательства Интерпола. +Участники совета СДЭ имеют доступ к логам CoreProtect, чтобы помогать игрокам искать воров без участия Интерпола. ### Выборы президента -Любой член совета может баллотироваться в президенты. - +Любой член совета может выдвинуть свою кандидатуру на пост президента. From 5aade1f10aa934590e11e9ff8617a7a73eb19a38 Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:36:24 +0300 Subject: [PATCH 13/19] Update start.md --- vitepress/start.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/vitepress/start.md b/vitepress/start.md index d554f7c..e59a78a 100644 --- a/vitepress/start.md +++ b/vitepress/start.md @@ -1,14 +1,28 @@ # Начать игру + ### Купить проходку -Для получения доступа к серверу вам необходимо оплатить проходку, ее стоимость 150 рублей (или же 79.95 гривен). Оплата происходит через Телеграм бота [@exteraCraft_bot](https://t.me/exteraCraft_bot). Если вы являетесь саппортером exteraGram, то вы можете получить проходку бесплатно, для этого выберите в боте "Бывший игрок ExteraCraft". + +Для получения доступа к серверу необходимо оплатить проходку. Её стоимость — 150 рублей (или 79.95 гривен). +Оплата производится через телеграм-бота: [@exteraCraft_bot](https://t.me/exteraCraft_bot) + +Если вы являетесь саппортером exteraGram, вы можете получить проходку бесплатно — выберите в боте пункт "Бывший игрок ExteraCraft". ## Играть с Java и Bedrock + ### Установка нужной версии игры и модов -Актуальная версия клиента для захода на сервер: 1.21.5, Bedrock 1.21.93 -На сервере можно играть без модов, но мы рекомендуем скачать моды на голосовой чаты, эмоции, и ресурспак сервера. Подробно про это написанно на странице [Моды](/mods). -### Подключитесь к серверу -Актуальный IP адресс сервера: +Актуальная версия клиента для захода на сервер: **1.21.5**, для Bedrock — **1.21.93** + +На сервере можно играть без модов, но мы рекомендуем установить: +- мод на голосовой чат +- мод на эмоции +- ресурспак сервера + +Подробности на странице [Моды](/mods). + +### Подключение к серверу + +Актуальный IP-адрес сервера: ``` mc.exteragram.app ``` From 09009b6d48b369548a80432b58d62a9edec7914e Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:37:26 +0300 Subject: [PATCH 14/19] Update voice.md --- vitepress/voice.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/vitepress/voice.md b/vitepress/voice.md index 66379d9..2cb9f88 100644 --- a/vitepress/voice.md +++ b/vitepress/voice.md @@ -4,32 +4,35 @@ title: "Голосовой чат" # Голосовой чат -Мод Simple Voice Chat добавляет в игру голосовой чат +Мод **Simple Voice Chat** добавляет в игру голосовой чат. ## Как пользоваться -Нажмите на клавишу `V` (английскую) по умолчанию, чтобы открыть меню мода +Нажмите клавишу `V` (английскую) по умолчанию, чтобы открыть меню мода. ![image](https://github.com/user-attachments/assets/6d4dedfd-fe0c-48e7-8628-66bf3f83bc63) -Выберите микрофон, выполните первоначальную нвастройку +Выберите микрофон и выполните первоначальную настройку. -Вы можете создать группу, публичную или приватную в настройках группы. +Вы можете создать **группу** — публичную или приватную — в меню настроек группы. ![image](https://github.com/user-attachments/assets/4194c1f0-5f29-4586-a686-cd0ad4037833) - -Создание или присоединение к группе перенесет вас в интерфейс группового чата. Вы также увидите головы участников группы в левом верхнем углу экрана. Говорящие игроки будут обведены. Вы можете отключить эти значки, нажав третью кнопку слева. +После создания или подключения к группе вы перейдёте в интерфейс группового чата. +В левом верхнем углу экрана будут отображаться головы участников группы. Говорящие игроки будут обведены. +Вы можете отключить эти значки, нажав **третью кнопку слева**. ![image](https://github.com/user-attachments/assets/7b9a4608-3524-4b3e-a396-8a1d02b3ccc2) +## Настройки -Настройки -Вы можете получить доступ к графическому интерфейсу голосового чата, нажав клавишу V и нажав кнопку настроек. - -Это меню предлагает возможность изменить общую громкость голосового чата и усиление микрофона. Кроме того, есть возможность указать устройство записи и воспроизведения. +Чтобы открыть настройки мода, нажмите клавишу `V`, затем кнопку с шестерёнкой. -Нажав кнопку «Включить тестирование микрофона», вы можете услышать свой собственный голос и настроить уровень активации голосовой активации. +В этом меню можно: +- изменить общую громкость голосового чата +- настроить усиление микрофона +- выбрать устройства ввода и вывода +- включить тест микрофона, чтобы услышать себя и отрегулировать чувствительность голосовой активации ![image](https://github.com/user-attachments/assets/8d42fe20-b88f-4bb6-83f6-b3db5cb515c4) From bf70840cd8a36404cea8ae14185f10187699582c Mon Sep 17 00:00:00 2001 From: xelrn Date: Tue, 8 Jul 2025 01:40:47 +0300 Subject: [PATCH 15/19] Update emotes.md --- vitepress/emotes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vitepress/emotes.md b/vitepress/emotes.md index 2bc498e..a4e4e69 100644 --- a/vitepress/emotes.md +++ b/vitepress/emotes.md @@ -15,10 +15,10 @@ title: "Эмоции" ![](public/mods/emotes/howto.webp) -1. Нажмите клавишу :kbd[B] (английская раскладка) — откроется меню с эмоциями. -2. Кликните по кнопке в правом нижнем углу :kbd[Все эмоции], затем по :kbd[Настройка эмоций]. +1. Нажмите клавишу `B` (английская раскладка) — откроется меню с эмоциями. +2. Кликните по кнопке в правом нижнем углу `Все эмоции`, затем по 'Настройка эмоций`. 3. Выберите эмоцию, затем нажмите на место в круге, куда хотите её установить. -4. Нажмите :kbd[Готово], снова откройте меню (:kbd[B]) и протестируйте эмоции. +4. Нажмите `Готово`, снова откройте меню (`B`) и протестируйте эмоции. 5. Чтобы добавить больше эмоций — скачайте их и поместите в папку `.minecraft/emotes`. From 16622b79709a356bd9532fcc8f475fbc0ef4375f Mon Sep 17 00:00:00 2001 From: Midga3 Date: Wed, 9 Jul 2025 19:54:44 +0300 Subject: [PATCH 16/19] Update config.mts --- vitepress/.vitepress/config.mts | 1 + 1 file changed, 1 insertion(+) diff --git a/vitepress/.vitepress/config.mts b/vitepress/.vitepress/config.mts index 36f925e..7cf599f 100644 --- a/vitepress/.vitepress/config.mts +++ b/vitepress/.vitepress/config.mts @@ -63,6 +63,7 @@ export default defineConfig({ items: [ { text: 'Главная', link: '/main' }, { text: 'Начать играть', link: '/start' }, + { text: 'Авторизация', link: '/auth' }, { text: 'Правила', link: '/rule' }, { text: 'Моды', link: '/mods' }, { text: 'Зеленая зона', link: '/green-zone' }, From 4d449e9849a8d1f061d984f728fb847d9f5f7ce8 Mon Sep 17 00:00:00 2001 From: AL-S Date: Thu, 10 Jul 2025 10:32:02 +0300 Subject: [PATCH 17/19] ar update --- .../components/CustomLinkComponent.vue | 0 .../components/FeaturesSection.vue | 0 .../.vitepress => .vitepress}/config.mts | 82 +- .vitepress/navigations.ts | 38 + .../theme/Layout.vue | 0 .../.vitepress => .vitepress}/theme/index.ts | 4 +- .../.vitepress => .vitepress}/theme/style.css | 0 docs/LICENSE-CC-BY-NC-SA-4.0.md | 12 + docs/LICENSE.md | 53 + {vitepress => docs}/auth.md | 0 {vitepress => docs}/bank.md | 0 docs/cla.md | 16 + {vitepress => docs}/emotes.md | 0 {vitepress => docs}/green-zone.md | 0 {vitepress => docs}/highway.md | 0 {vitepress => docs}/index.md | 0 {vitepress => docs}/main.md | 2 +- {vitepress => docs}/mods.md | 0 {vitepress => docs}/public/auth/connect1.png | Bin {vitepress => docs}/public/auth/done.png | Bin {vitepress => docs}/public/auth/open_url.png | Bin {vitepress => docs}/public/auth/start.png | Bin {vitepress => docs}/public/cube.png | Bin .../public/features/bank/bank.gif | Bin .../public/features/chat/loc.png | Bin .../public/features/chat/messenger.png | Bin .../public/features/crafts/frame.png | Bin .../public/features/crafts/light.png | Bin .../public/features/diff/firework.png | Bin .../public/features/diff/mending.png | Bin .../public/features/diff/raid.png | Bin .../public/features/diff/shulker.png | Bin .../public/features/diff/villager.png | Bin .../public/features/higway/highway1.png | Bin .../public/features/higway/highway2.png | Bin .../public/features/higway/highway3.png | Bin .../public/features/higway/highway4.png | Bin .../public/features/higway/ice_height.png | Bin .../public/features/map/hub.png | Bin .../public/features/map/map.png | Bin .../public/features/map/map_nether.png | Bin .../public/features/map/marx.png | Bin .../public/features/map/marx_info.png | Bin .../public/features/map/marx_site.png | Bin .../public/features/plugins/gsit.png | Bin .../public/features/plugins/heads.png | Bin {vitepress => docs}/public/features/rp/ch.png | Bin .../public/features/rp/nonrp.png | Bin {vitepress => docs}/public/features/rp/rp.png | Bin .../features/worlds/art/portal-build.webp | Bin .../public/features/worlds/art/portal.png | Bin .../features/worlds/art/transparent.png | Bin .../public/features/worlds/art/world.png | Bin .../public/features/worlds/farm/farmworld.png | Bin {vitepress => docs}/public/logo.png | Bin .../public/mods/emotes/demo.webp | Bin .../public/mods/emotes/howto.webp | Bin .../public/mods/voice/hud_icons.png | Bin .../public/mods/voice/keys.png | Bin {vitepress => docs}/public/mods/voice/mic.png | Bin .../public/mods/voice/player_icons.png | Bin .../public/mods/voice/scroll.webp | Bin .../public/mods/voice/social.png | Bin .../public/mods/voice/test.webp | Bin .../public/rules/highway/highway1.png | Bin .../public/rules/highway/highway2.png | Bin .../public/rules/highway/highway3.png | Bin .../public/rules/highway/highway4.png | Bin .../public/rules/highway/ice_height.png | Bin .../public/rules/trash_blocks.png | Bin .../public/rules/trash_blocks1.png | Bin .../public/rules/trash_blocks2.png | Bin .../public/rules/trash_creeper.png | Bin .../public/rules/trash_lava.png | Bin .../public/rules/trash_mine.png | Bin .../public/rules/trash_pillar.png | Bin .../public/rules/trash_tnt.png | Bin .../public/rules/trash_tree.png | Bin {vitepress => docs}/rule.md | 0 {vitepress => docs}/rule1.md | 0 {vitepress => docs}/sde.md | 0 {vitepress => docs}/start.md | 0 {vitepress => docs}/voice.md | 0 package-lock.json | 2680 +--- package.json | 6 +- .../.vitepress/cache/deps/_metadata.json | 52 - .../.vitepress/cache/deps/chunk-DDXJJ377.js | 12619 ---------------- .../cache/deps/chunk-DDXJJ377.js.map | 7 - vitepress/.vitepress/cache/deps/package.json | 3 - .../deps/vitepress___@vue_devtools-api.js | 4505 ------ .../deps/vitepress___@vue_devtools-api.js.map | 7 - .../cache/deps/vitepress___@vueuse_core.js | 583 - .../deps/vitepress___@vueuse_core.js.map | 7 - vitepress/.vitepress/cache/deps/vue.js | 343 - vitepress/.vitepress/cache/deps/vue.js.map | 7 - 95 files changed, 972 insertions(+), 20054 deletions(-) rename {vitepress/.vitepress => .vitepress}/components/CustomLinkComponent.vue (100%) rename {vitepress/.vitepress => .vitepress}/components/FeaturesSection.vue (100%) rename {vitepress/.vitepress => .vitepress}/config.mts (55%) create mode 100644 .vitepress/navigations.ts rename {vitepress/.vitepress => .vitepress}/theme/Layout.vue (100%) rename {vitepress/.vitepress => .vitepress}/theme/index.ts (91%) rename {vitepress/.vitepress => .vitepress}/theme/style.css (100%) create mode 100644 docs/LICENSE-CC-BY-NC-SA-4.0.md create mode 100644 docs/LICENSE.md rename {vitepress => docs}/auth.md (100%) rename {vitepress => docs}/bank.md (100%) create mode 100644 docs/cla.md rename {vitepress => docs}/emotes.md (100%) rename {vitepress => docs}/green-zone.md (100%) rename {vitepress => docs}/highway.md (100%) rename {vitepress => docs}/index.md (100%) rename {vitepress => docs}/main.md (85%) rename {vitepress => docs}/mods.md (100%) rename {vitepress => docs}/public/auth/connect1.png (100%) rename {vitepress => docs}/public/auth/done.png (100%) rename {vitepress => docs}/public/auth/open_url.png (100%) rename {vitepress => docs}/public/auth/start.png (100%) rename {vitepress => docs}/public/cube.png (100%) rename {vitepress => docs}/public/features/bank/bank.gif (100%) rename {vitepress => docs}/public/features/chat/loc.png (100%) rename {vitepress => docs}/public/features/chat/messenger.png (100%) rename {vitepress => docs}/public/features/crafts/frame.png (100%) rename {vitepress => docs}/public/features/crafts/light.png (100%) rename {vitepress => docs}/public/features/diff/firework.png (100%) rename {vitepress => docs}/public/features/diff/mending.png (100%) rename {vitepress => docs}/public/features/diff/raid.png (100%) rename {vitepress => docs}/public/features/diff/shulker.png (100%) rename {vitepress => docs}/public/features/diff/villager.png (100%) rename {vitepress => docs}/public/features/higway/highway1.png (100%) rename {vitepress => docs}/public/features/higway/highway2.png (100%) rename {vitepress => docs}/public/features/higway/highway3.png (100%) rename {vitepress => docs}/public/features/higway/highway4.png (100%) rename {vitepress => docs}/public/features/higway/ice_height.png (100%) rename {vitepress => docs}/public/features/map/hub.png (100%) rename {vitepress => docs}/public/features/map/map.png (100%) rename {vitepress => docs}/public/features/map/map_nether.png (100%) rename {vitepress => docs}/public/features/map/marx.png (100%) rename {vitepress => docs}/public/features/map/marx_info.png (100%) rename {vitepress => docs}/public/features/map/marx_site.png (100%) rename {vitepress => docs}/public/features/plugins/gsit.png (100%) rename {vitepress => docs}/public/features/plugins/heads.png (100%) rename {vitepress => docs}/public/features/rp/ch.png (100%) rename {vitepress => docs}/public/features/rp/nonrp.png (100%) rename {vitepress => docs}/public/features/rp/rp.png (100%) rename {vitepress => docs}/public/features/worlds/art/portal-build.webp (100%) rename {vitepress => docs}/public/features/worlds/art/portal.png (100%) rename {vitepress => docs}/public/features/worlds/art/transparent.png (100%) rename {vitepress => docs}/public/features/worlds/art/world.png (100%) rename {vitepress => docs}/public/features/worlds/farm/farmworld.png (100%) rename {vitepress => docs}/public/logo.png (100%) rename {vitepress => docs}/public/mods/emotes/demo.webp (100%) rename {vitepress => docs}/public/mods/emotes/howto.webp (100%) rename {vitepress => docs}/public/mods/voice/hud_icons.png (100%) rename {vitepress => docs}/public/mods/voice/keys.png (100%) rename {vitepress => docs}/public/mods/voice/mic.png (100%) rename {vitepress => docs}/public/mods/voice/player_icons.png (100%) rename {vitepress => docs}/public/mods/voice/scroll.webp (100%) rename {vitepress => docs}/public/mods/voice/social.png (100%) rename {vitepress => docs}/public/mods/voice/test.webp (100%) rename {vitepress => docs}/public/rules/highway/highway1.png (100%) rename {vitepress => docs}/public/rules/highway/highway2.png (100%) rename {vitepress => docs}/public/rules/highway/highway3.png (100%) rename {vitepress => docs}/public/rules/highway/highway4.png (100%) rename {vitepress => docs}/public/rules/highway/ice_height.png (100%) rename {vitepress => docs}/public/rules/trash_blocks.png (100%) rename {vitepress => docs}/public/rules/trash_blocks1.png (100%) rename {vitepress => docs}/public/rules/trash_blocks2.png (100%) rename {vitepress => docs}/public/rules/trash_creeper.png (100%) rename {vitepress => docs}/public/rules/trash_lava.png (100%) rename {vitepress => docs}/public/rules/trash_mine.png (100%) rename {vitepress => docs}/public/rules/trash_pillar.png (100%) rename {vitepress => docs}/public/rules/trash_tnt.png (100%) rename {vitepress => docs}/public/rules/trash_tree.png (100%) rename {vitepress => docs}/rule.md (100%) rename {vitepress => docs}/rule1.md (100%) rename {vitepress => docs}/sde.md (100%) rename {vitepress => docs}/start.md (100%) rename {vitepress => docs}/voice.md (100%) delete mode 100644 vitepress/.vitepress/cache/deps/_metadata.json delete mode 100644 vitepress/.vitepress/cache/deps/chunk-DDXJJ377.js delete mode 100644 vitepress/.vitepress/cache/deps/chunk-DDXJJ377.js.map delete mode 100644 vitepress/.vitepress/cache/deps/package.json delete mode 100644 vitepress/.vitepress/cache/deps/vitepress___@vue_devtools-api.js delete mode 100644 vitepress/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map delete mode 100644 vitepress/.vitepress/cache/deps/vitepress___@vueuse_core.js delete mode 100644 vitepress/.vitepress/cache/deps/vitepress___@vueuse_core.js.map delete mode 100644 vitepress/.vitepress/cache/deps/vue.js delete mode 100644 vitepress/.vitepress/cache/deps/vue.js.map diff --git a/vitepress/.vitepress/components/CustomLinkComponent.vue b/.vitepress/components/CustomLinkComponent.vue similarity index 100% rename from vitepress/.vitepress/components/CustomLinkComponent.vue rename to .vitepress/components/CustomLinkComponent.vue diff --git a/vitepress/.vitepress/components/FeaturesSection.vue b/.vitepress/components/FeaturesSection.vue similarity index 100% rename from vitepress/.vitepress/components/FeaturesSection.vue rename to .vitepress/components/FeaturesSection.vue diff --git a/vitepress/.vitepress/config.mts b/.vitepress/config.mts similarity index 55% rename from vitepress/.vitepress/config.mts rename to .vitepress/config.mts index 7cf599f..bca4ee0 100644 --- a/vitepress/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -1,28 +1,30 @@ import { defineConfig } from 'vitepress'; +import { nav, sidebar } from './navigations'; export default defineConfig({ base: '/wiki/', + srcDir: './docs', markdown: { container: { tipLabel: 'Подсказка', warningLabel: 'Внимание', dangerLabel: 'Осторожно', infoLabel: 'Информация', - detailsLabel: 'Подробнее' - } + detailsLabel: 'Подробнее', + }, }, lang: 'ru-RU', - title: "exteraCraft", - description: "exteraCraft - играй по красному", + title: 'exteraCraft', + description: 'exteraCraft - играй по красному', themeConfig: { editLink: { - pattern: 'https://github.com/exteracraft/wiki/edit/main/vitepress/:path', - text: 'Предложить изменения на этой странице' + pattern: 'https://github.com/exteracraft/wiki/edit/main/docs/:path', + text: 'Предложить изменения на этой странице', }, lastUpdated: { - text: 'Последнее обновление' + text: 'Последнее обновление', }, - logo: 'logo.png', + logo: '/logo.png', search: { provider: 'local', options: { @@ -31,7 +33,7 @@ export default defineConfig({ translations: { button: { buttonText: 'Поиск', - buttonAriaLabel: 'Поиск' + buttonAriaLabel: 'Поиск', }, modal: { displayDetails: 'Отобразить подробный список', @@ -45,36 +47,19 @@ export default defineConfig({ navigateUpKeyAriaLabel: 'стрелка вверх', navigateDownKeyAriaLabel: 'стрелка вниз', closeText: 'закрыть', - closeKeyAriaLabel: 'esc' - } - } - } - } - } - } - }, - nav: [ - { text: 'Главная', link: '/' }, - { text: 'Wiki', link: '/main' }, - ], - sidebar: [ - { - text: 'Основное', - items: [ - { text: 'Главная', link: '/main' }, - { text: 'Начать играть', link: '/start' }, - { text: 'Авторизация', link: '/auth' }, - { text: 'Правила', link: '/rule' }, - { text: 'Моды', link: '/mods' }, - { text: 'Зеленая зона', link: '/green-zone' }, - { text: 'Адские ветки', link: '/highway' }, - { text: 'Банк', link: '/bank' }, - ] + closeKeyAriaLabel: 'esc', + }, + }, + }, + }, + }, }, - ], + }, + nav, + sidebar, socialLinks: [ { icon: 'telegram', link: 'https://t.me/exteraCraft' }, - { icon: 'github', link: 'https://github.com/exteracraft' } + { icon: 'github', link: 'https://github.com/exteracraft' }, ], outlineTitle: 'Оглавление', lastUpdatedText: 'Последнее обновление', @@ -83,19 +68,18 @@ export default defineConfig({ darkModeSwitchLabel: 'Тема', docFooter: { prev: 'Предыдущая страница', - next: 'Следующая страница' - } + next: 'Следующая страница', + }, }, head: [ - ['link', { rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css' }], - ['link', { rel: 'icon', href: 'cube.png' }] + [ + 'link', + { + rel: 'stylesheet', + href: 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css', + }, + ], + ['link', { rel: 'icon', href: '/cube.png' }], ], - vite: { - resolve: { - alias: { - '@components': '/docs/.vitepress/components' - } - } - }, - cleanUrls: true -}); + cleanUrls: true, +}); \ No newline at end of file diff --git a/.vitepress/navigations.ts b/.vitepress/navigations.ts new file mode 100644 index 0000000..be1271e --- /dev/null +++ b/.vitepress/navigations.ts @@ -0,0 +1,38 @@ +export const nav = [ + { text: 'Главная 🏠', link: '/' }, + { text: 'Wiki 📚', link: '/main' } +]; + +export const sidebar = [ + { + text: 'Основное', + items: [ + { text: 'Главная', link: '/main' }, + { text: 'Начать играть', link: '/start' }, + { text: 'Правила', link: '/rule' }, + { text: 'Моды', link: '/mods' }, + { text: 'Зеленая зона', link: '/green-zone' }, + { text: 'Адские ветки', link: '/highway' }, + { text: 'Банк', link: '/bank' } + ] + }, + { + text: 'Гайды', + collapsed: false, + items: [ + { text: 'Авторизация', link: '/auth' }, + { text: 'Самоуправление', link: '/sde' }, + { text: 'Эмоции', link: '/emotes' }, + { text: 'Голосовой чат', link: '/voice' } + ] + }, + { + text: 'Лицензии', + collapsed: true, + items: [ + { text: 'LICENSE', link: '/LICENSE' }, + { text: 'LICENSE-CC-BY-NC-SA-4.0', link: '/LICENSE-CC-BY-NC-SA-4.0' }, + { text: 'CLA', link: '/cla' } + ] + } +]; \ No newline at end of file diff --git a/vitepress/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue similarity index 100% rename from vitepress/.vitepress/theme/Layout.vue rename to .vitepress/theme/Layout.vue diff --git a/vitepress/.vitepress/theme/index.ts b/.vitepress/theme/index.ts similarity index 91% rename from vitepress/.vitepress/theme/index.ts rename to .vitepress/theme/index.ts index dc435ff..361aa66 100644 --- a/vitepress/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -3,7 +3,7 @@ import { h } from 'vue' import type { Theme } from 'vitepress' import DefaultTheme from 'vitepress/theme' import './style.css' -import CustomLinkComponent from '../components/CustomLinkComponent.vue' // Обновленный путь +import CustomLinkComponent from '../components/CustomLinkComponent.vue' export default { extends: DefaultTheme, @@ -16,4 +16,4 @@ export default { // Регистрируем компонент для использования в приложении app.component('CustomLinkComponent', CustomLinkComponent) } -} satisfies Theme +} satisfies Theme \ No newline at end of file diff --git a/vitepress/.vitepress/theme/style.css b/.vitepress/theme/style.css similarity index 100% rename from vitepress/.vitepress/theme/style.css rename to .vitepress/theme/style.css diff --git a/docs/LICENSE-CC-BY-NC-SA-4.0.md b/docs/LICENSE-CC-BY-NC-SA-4.0.md new file mode 100644 index 0000000..bd90e54 --- /dev/null +++ b/docs/LICENSE-CC-BY-NC-SA-4.0.md @@ -0,0 +1,12 @@ +Attribution-NonCommercial-ShareAlike 4.0 International + +You are free to: +- Share: Copy and redistribute the material +- Adapt: Remix, transform, and build upon the material + +Under these terms: +- Attribution: You must give appropriate credit. +- NonCommercial: You may not use for commercial purposes. +- ShareAlike: Distribute derivatives under same license. + +Full text: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode \ No newline at end of file diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100644 index 0000000..6505e05 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,53 @@ +[RU] Contributor License Agreement (CLA) + + Преамбула +При получении копии лицензируемого объекта любыми способами любое лицо может использовать его только при полном согласии с условиями настоящей Лицензии. Нарушение данных условий предоставляет нам (Лицензиару) право применять меры правовой защиты в соответствии с DMCA и/или применимым законодательством юрисдикций. Принятие условий означает заключение соглашения между вами и организацией exteraCraft. Данное Соглашение является безвозмездным, простым и неисключительным. + + Определения +- Wiki: Комплексный объект интеллектуальной собственности - вики-платформа, включающая исходный код, конфигурации, темы оформления, контент статей и плагины. +- Контрибьют: Любое оригинальное произведение авторства Участников, включая модификации движка, темы оформления, плагины или контент статей, которое намеренно передаётся Организации. +- Лицензиар: Команда exteraCraft. Для лицензионных запросов: https://t.me/exteraCraft + + Права и ограничения +Настоящая Лицензия предоставляет право: +1. Изучать и модифицировать код исключительно для некоммерческих целей +2. Использовать Wiki для частного хостинга и ознакомления +3. Создавать производные работы при условии передачи изменений обратно в проект + +Строго запрещено: +- Публичное распространение модифицированных версий без письменного разрешения +- Коммерческое использование Wiki или её компонентов +- Удаление или сокрытие информации о лицензировании + + Оговорка о лицензиях +Различные компоненты Wiki распространяются под разными лицензиями: +- Движок: MIT License +- Контент статей: CC BY-NC-SA 4.0 +- Кастомный код и темы: Настоящая CLA + +[EN] Contributor License Agreement (CLA) + + Preamble +Upon receiving a copy of the licensed object, any person may use it only if they fully agree with these terms. Violation grants the Licensor the right to apply legal protection measures under DMCA and applicable laws. Acceptance constitutes an agreement between you and exteraCraft organization. + + Definitions +- Wiki: Complex intellectual property object - wiki platform including source code, configurations, themes, content, and plugins. +- Contribution: Original work by Contributors including engine modifications, themes, plugins, or content intentionally provided to the Organization. +- Licensor: exteraCraft Team. For licensing inquiries: https://t.me/exteraCraft + + Rights and Restrictions +This License grants the right to: +1. Study and modify code solely for non-commercial purposes +2. Use Wiki for private hosting and familiarization +3. Create derivative works provided changes are transferred back + +Explicitly prohibited: +- Public distribution of modified versions without written permission +- Commercial use of Wiki or its components +- Removal or obfuscation of licensing information + + License Reservation +Different Wiki components use different licenses: +- Engine: MIT License +- Content: CC BY-NC-SA 4.0 +- Custom code/themes: This CLA \ No newline at end of file diff --git a/vitepress/auth.md b/docs/auth.md similarity index 100% rename from vitepress/auth.md rename to docs/auth.md diff --git a/vitepress/bank.md b/docs/bank.md similarity index 100% rename from vitepress/bank.md rename to docs/bank.md diff --git a/docs/cla.md b/docs/cla.md new file mode 100644 index 0000000..1724f89 --- /dev/null +++ b/docs/cla.md @@ -0,0 +1,16 @@ +Preamble +Upon receipt of this license, any person may use the software if they accept all terms. +Violation grants the Licensor rights to enforce protection under DMCA and applicable laws. + +Definitions: +- Wiki: The intellectual property object including source code, configuration, themes, and plugins developed by the Team. +- Contribution: Original work provided by Licensee to Licensor (code, docs, graphics, etc.). +- Licensor: exteraCraft Team. Contact: https://t.me/exteraCraft + +Scope of Rights: +- Grants non-commercial use rights for modification and private hosting. +- Prohibits commercial use and public hosting without explicit permission. +- Requires contributions to be licensed back to exteraCraft under these terms. + +Reservation: +Individual components may carry separate licenses (e.g., content under CC BY-NC-SA 4.0). diff --git a/vitepress/emotes.md b/docs/emotes.md similarity index 100% rename from vitepress/emotes.md rename to docs/emotes.md diff --git a/vitepress/green-zone.md b/docs/green-zone.md similarity index 100% rename from vitepress/green-zone.md rename to docs/green-zone.md diff --git a/vitepress/highway.md b/docs/highway.md similarity index 100% rename from vitepress/highway.md rename to docs/highway.md diff --git a/vitepress/index.md b/docs/index.md similarity index 100% rename from vitepress/index.md rename to docs/index.md diff --git a/vitepress/main.md b/docs/main.md similarity index 85% rename from vitepress/main.md rename to docs/main.md index f632674..44e50f8 100644 --- a/vitepress/main.md +++ b/docs/main.md @@ -1,3 +1,3 @@ # exteraCraft Wiki -Добро пожаловать на вики! Здесь вы найдёте правила сервера, полезные гайды и инструкции, которые помогут вам лучше ориентироваться и получать удовольствие от игры. +Добро пожаловать на вики! Здесь вы найдёте правила сервера, полезные гайды и инструкции, которые помогут вам лучше ориентироваться и получать удовольствие от игры. \ No newline at end of file diff --git a/vitepress/mods.md b/docs/mods.md similarity index 100% rename from vitepress/mods.md rename to docs/mods.md diff --git a/vitepress/public/auth/connect1.png b/docs/public/auth/connect1.png similarity index 100% rename from vitepress/public/auth/connect1.png rename to docs/public/auth/connect1.png diff --git a/vitepress/public/auth/done.png b/docs/public/auth/done.png similarity index 100% rename from vitepress/public/auth/done.png rename to docs/public/auth/done.png diff --git a/vitepress/public/auth/open_url.png b/docs/public/auth/open_url.png similarity index 100% rename from vitepress/public/auth/open_url.png rename to docs/public/auth/open_url.png diff --git a/vitepress/public/auth/start.png b/docs/public/auth/start.png similarity index 100% rename from vitepress/public/auth/start.png rename to docs/public/auth/start.png diff --git a/vitepress/public/cube.png b/docs/public/cube.png similarity index 100% rename from vitepress/public/cube.png rename to docs/public/cube.png diff --git a/vitepress/public/features/bank/bank.gif b/docs/public/features/bank/bank.gif similarity index 100% rename from vitepress/public/features/bank/bank.gif rename to docs/public/features/bank/bank.gif diff --git a/vitepress/public/features/chat/loc.png b/docs/public/features/chat/loc.png similarity index 100% rename from vitepress/public/features/chat/loc.png rename to docs/public/features/chat/loc.png diff --git a/vitepress/public/features/chat/messenger.png b/docs/public/features/chat/messenger.png similarity index 100% rename from vitepress/public/features/chat/messenger.png rename to docs/public/features/chat/messenger.png diff --git a/vitepress/public/features/crafts/frame.png b/docs/public/features/crafts/frame.png similarity index 100% rename from vitepress/public/features/crafts/frame.png rename to docs/public/features/crafts/frame.png diff --git a/vitepress/public/features/crafts/light.png b/docs/public/features/crafts/light.png similarity index 100% rename from vitepress/public/features/crafts/light.png rename to docs/public/features/crafts/light.png diff --git a/vitepress/public/features/diff/firework.png b/docs/public/features/diff/firework.png similarity index 100% rename from vitepress/public/features/diff/firework.png rename to docs/public/features/diff/firework.png diff --git a/vitepress/public/features/diff/mending.png b/docs/public/features/diff/mending.png similarity index 100% rename from vitepress/public/features/diff/mending.png rename to docs/public/features/diff/mending.png diff --git a/vitepress/public/features/diff/raid.png b/docs/public/features/diff/raid.png similarity index 100% rename from vitepress/public/features/diff/raid.png rename to docs/public/features/diff/raid.png diff --git a/vitepress/public/features/diff/shulker.png b/docs/public/features/diff/shulker.png similarity index 100% rename from vitepress/public/features/diff/shulker.png rename to docs/public/features/diff/shulker.png diff --git a/vitepress/public/features/diff/villager.png b/docs/public/features/diff/villager.png similarity index 100% rename from vitepress/public/features/diff/villager.png rename to docs/public/features/diff/villager.png diff --git a/vitepress/public/features/higway/highway1.png b/docs/public/features/higway/highway1.png similarity index 100% rename from vitepress/public/features/higway/highway1.png rename to docs/public/features/higway/highway1.png diff --git a/vitepress/public/features/higway/highway2.png b/docs/public/features/higway/highway2.png similarity index 100% rename from vitepress/public/features/higway/highway2.png rename to docs/public/features/higway/highway2.png diff --git a/vitepress/public/features/higway/highway3.png b/docs/public/features/higway/highway3.png similarity index 100% rename from vitepress/public/features/higway/highway3.png rename to docs/public/features/higway/highway3.png diff --git a/vitepress/public/features/higway/highway4.png b/docs/public/features/higway/highway4.png similarity index 100% rename from vitepress/public/features/higway/highway4.png rename to docs/public/features/higway/highway4.png diff --git a/vitepress/public/features/higway/ice_height.png b/docs/public/features/higway/ice_height.png similarity index 100% rename from vitepress/public/features/higway/ice_height.png rename to docs/public/features/higway/ice_height.png diff --git a/vitepress/public/features/map/hub.png b/docs/public/features/map/hub.png similarity index 100% rename from vitepress/public/features/map/hub.png rename to docs/public/features/map/hub.png diff --git a/vitepress/public/features/map/map.png b/docs/public/features/map/map.png similarity index 100% rename from vitepress/public/features/map/map.png rename to docs/public/features/map/map.png diff --git a/vitepress/public/features/map/map_nether.png b/docs/public/features/map/map_nether.png similarity index 100% rename from vitepress/public/features/map/map_nether.png rename to docs/public/features/map/map_nether.png diff --git a/vitepress/public/features/map/marx.png b/docs/public/features/map/marx.png similarity index 100% rename from vitepress/public/features/map/marx.png rename to docs/public/features/map/marx.png diff --git a/vitepress/public/features/map/marx_info.png b/docs/public/features/map/marx_info.png similarity index 100% rename from vitepress/public/features/map/marx_info.png rename to docs/public/features/map/marx_info.png diff --git a/vitepress/public/features/map/marx_site.png b/docs/public/features/map/marx_site.png similarity index 100% rename from vitepress/public/features/map/marx_site.png rename to docs/public/features/map/marx_site.png diff --git a/vitepress/public/features/plugins/gsit.png b/docs/public/features/plugins/gsit.png similarity index 100% rename from vitepress/public/features/plugins/gsit.png rename to docs/public/features/plugins/gsit.png diff --git a/vitepress/public/features/plugins/heads.png b/docs/public/features/plugins/heads.png similarity index 100% rename from vitepress/public/features/plugins/heads.png rename to docs/public/features/plugins/heads.png diff --git a/vitepress/public/features/rp/ch.png b/docs/public/features/rp/ch.png similarity index 100% rename from vitepress/public/features/rp/ch.png rename to docs/public/features/rp/ch.png diff --git a/vitepress/public/features/rp/nonrp.png b/docs/public/features/rp/nonrp.png similarity index 100% rename from vitepress/public/features/rp/nonrp.png rename to docs/public/features/rp/nonrp.png diff --git a/vitepress/public/features/rp/rp.png b/docs/public/features/rp/rp.png similarity index 100% rename from vitepress/public/features/rp/rp.png rename to docs/public/features/rp/rp.png diff --git a/vitepress/public/features/worlds/art/portal-build.webp b/docs/public/features/worlds/art/portal-build.webp similarity index 100% rename from vitepress/public/features/worlds/art/portal-build.webp rename to docs/public/features/worlds/art/portal-build.webp diff --git a/vitepress/public/features/worlds/art/portal.png b/docs/public/features/worlds/art/portal.png similarity index 100% rename from vitepress/public/features/worlds/art/portal.png rename to docs/public/features/worlds/art/portal.png diff --git a/vitepress/public/features/worlds/art/transparent.png b/docs/public/features/worlds/art/transparent.png similarity index 100% rename from vitepress/public/features/worlds/art/transparent.png rename to docs/public/features/worlds/art/transparent.png diff --git a/vitepress/public/features/worlds/art/world.png b/docs/public/features/worlds/art/world.png similarity index 100% rename from vitepress/public/features/worlds/art/world.png rename to docs/public/features/worlds/art/world.png diff --git a/vitepress/public/features/worlds/farm/farmworld.png b/docs/public/features/worlds/farm/farmworld.png similarity index 100% rename from vitepress/public/features/worlds/farm/farmworld.png rename to docs/public/features/worlds/farm/farmworld.png diff --git a/vitepress/public/logo.png b/docs/public/logo.png similarity index 100% rename from vitepress/public/logo.png rename to docs/public/logo.png diff --git a/vitepress/public/mods/emotes/demo.webp b/docs/public/mods/emotes/demo.webp similarity index 100% rename from vitepress/public/mods/emotes/demo.webp rename to docs/public/mods/emotes/demo.webp diff --git a/vitepress/public/mods/emotes/howto.webp b/docs/public/mods/emotes/howto.webp similarity index 100% rename from vitepress/public/mods/emotes/howto.webp rename to docs/public/mods/emotes/howto.webp diff --git a/vitepress/public/mods/voice/hud_icons.png b/docs/public/mods/voice/hud_icons.png similarity index 100% rename from vitepress/public/mods/voice/hud_icons.png rename to docs/public/mods/voice/hud_icons.png diff --git a/vitepress/public/mods/voice/keys.png b/docs/public/mods/voice/keys.png similarity index 100% rename from vitepress/public/mods/voice/keys.png rename to docs/public/mods/voice/keys.png diff --git a/vitepress/public/mods/voice/mic.png b/docs/public/mods/voice/mic.png similarity index 100% rename from vitepress/public/mods/voice/mic.png rename to docs/public/mods/voice/mic.png diff --git a/vitepress/public/mods/voice/player_icons.png b/docs/public/mods/voice/player_icons.png similarity index 100% rename from vitepress/public/mods/voice/player_icons.png rename to docs/public/mods/voice/player_icons.png diff --git a/vitepress/public/mods/voice/scroll.webp b/docs/public/mods/voice/scroll.webp similarity index 100% rename from vitepress/public/mods/voice/scroll.webp rename to docs/public/mods/voice/scroll.webp diff --git a/vitepress/public/mods/voice/social.png b/docs/public/mods/voice/social.png similarity index 100% rename from vitepress/public/mods/voice/social.png rename to docs/public/mods/voice/social.png diff --git a/vitepress/public/mods/voice/test.webp b/docs/public/mods/voice/test.webp similarity index 100% rename from vitepress/public/mods/voice/test.webp rename to docs/public/mods/voice/test.webp diff --git a/vitepress/public/rules/highway/highway1.png b/docs/public/rules/highway/highway1.png similarity index 100% rename from vitepress/public/rules/highway/highway1.png rename to docs/public/rules/highway/highway1.png diff --git a/vitepress/public/rules/highway/highway2.png b/docs/public/rules/highway/highway2.png similarity index 100% rename from vitepress/public/rules/highway/highway2.png rename to docs/public/rules/highway/highway2.png diff --git a/vitepress/public/rules/highway/highway3.png b/docs/public/rules/highway/highway3.png similarity index 100% rename from vitepress/public/rules/highway/highway3.png rename to docs/public/rules/highway/highway3.png diff --git a/vitepress/public/rules/highway/highway4.png b/docs/public/rules/highway/highway4.png similarity index 100% rename from vitepress/public/rules/highway/highway4.png rename to docs/public/rules/highway/highway4.png diff --git a/vitepress/public/rules/highway/ice_height.png b/docs/public/rules/highway/ice_height.png similarity index 100% rename from vitepress/public/rules/highway/ice_height.png rename to docs/public/rules/highway/ice_height.png diff --git a/vitepress/public/rules/trash_blocks.png b/docs/public/rules/trash_blocks.png similarity index 100% rename from vitepress/public/rules/trash_blocks.png rename to docs/public/rules/trash_blocks.png diff --git a/vitepress/public/rules/trash_blocks1.png b/docs/public/rules/trash_blocks1.png similarity index 100% rename from vitepress/public/rules/trash_blocks1.png rename to docs/public/rules/trash_blocks1.png diff --git a/vitepress/public/rules/trash_blocks2.png b/docs/public/rules/trash_blocks2.png similarity index 100% rename from vitepress/public/rules/trash_blocks2.png rename to docs/public/rules/trash_blocks2.png diff --git a/vitepress/public/rules/trash_creeper.png b/docs/public/rules/trash_creeper.png similarity index 100% rename from vitepress/public/rules/trash_creeper.png rename to docs/public/rules/trash_creeper.png diff --git a/vitepress/public/rules/trash_lava.png b/docs/public/rules/trash_lava.png similarity index 100% rename from vitepress/public/rules/trash_lava.png rename to docs/public/rules/trash_lava.png diff --git a/vitepress/public/rules/trash_mine.png b/docs/public/rules/trash_mine.png similarity index 100% rename from vitepress/public/rules/trash_mine.png rename to docs/public/rules/trash_mine.png diff --git a/vitepress/public/rules/trash_pillar.png b/docs/public/rules/trash_pillar.png similarity index 100% rename from vitepress/public/rules/trash_pillar.png rename to docs/public/rules/trash_pillar.png diff --git a/vitepress/public/rules/trash_tnt.png b/docs/public/rules/trash_tnt.png similarity index 100% rename from vitepress/public/rules/trash_tnt.png rename to docs/public/rules/trash_tnt.png diff --git a/vitepress/public/rules/trash_tree.png b/docs/public/rules/trash_tree.png similarity index 100% rename from vitepress/public/rules/trash_tree.png rename to docs/public/rules/trash_tree.png diff --git a/vitepress/rule.md b/docs/rule.md similarity index 100% rename from vitepress/rule.md rename to docs/rule.md diff --git a/vitepress/rule1.md b/docs/rule1.md similarity index 100% rename from vitepress/rule1.md rename to docs/rule1.md diff --git a/vitepress/sde.md b/docs/sde.md similarity index 100% rename from vitepress/sde.md rename to docs/sde.md diff --git a/vitepress/start.md b/docs/start.md similarity index 100% rename from vitepress/start.md rename to docs/start.md diff --git a/vitepress/voice.md b/docs/voice.md similarity index 100% rename from vitepress/voice.md rename to docs/voice.md diff --git a/package-lock.json b/package-lock.json index 0822537..ad21e86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,11 @@ { - "name": "wiki", + "name": "ww", "lockfileVersion": 3, "requires": true, "packages": { "": { "license": "CLA", "devDependencies": { - "@nolebase/vitepress-plugin-git-changelog": "^2.18.0", "vitepress": "^1.6.3" } }, @@ -60,41 +59,41 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.30.0.tgz", - "integrity": "sha512-Q3OQXYlTNqVUN/V1qXX8VIzQbLjP3yrRBO9m6NRe1CBALmoGHh9JrYosEGvfior28+DjqqU3Q+nzCSuf/bX0Gw==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.32.0.tgz", + "integrity": "sha512-HG/6Eib6DnJYm/B2ijWFXr4txca/YOuA4K7AsEU0JBrOZSB+RU7oeDyNBPi3c0v0UDDqlkBqM3vBU/auwZlglA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.30.0.tgz", - "integrity": "sha512-/b+SAfHjYjx/ZVeVReCKTTnFAiZWOyvYLrkYpeNMraMT6akYRR8eC1AvFcvR60GLG/jytxcJAp42G8nN5SdcLg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.32.0.tgz", + "integrity": "sha512-8Y9MLU72WFQOW3HArYv16+Wvm6eGmsqbxxM1qxtm0hvSASJbxCm+zQAZe5stqysTlcWo4BJ82KEH1PfgHbJAmQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.30.0.tgz", - "integrity": "sha512-tbUgvkp2d20mHPbM0+NPbLg6SzkUh0lADUUjzNCF+HiPkjFRaIW3NGMlESKw5ia4Oz6ZvFzyREquUX6rdkdJcQ==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.32.0.tgz", + "integrity": "sha512-w8L+rgyXMCPBKmEdOT+RfgMrF0mT6HK60vPYWLz8DBs/P7yFdGo7urn99XCJvVLMSKXrIbZ2FMZ/i50nZTXnuQ==", "dev": true, "license": "MIT", "engines": { @@ -102,151 +101,151 @@ } }, "node_modules/@algolia/client-insights": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.30.0.tgz", - "integrity": "sha512-caXuZqJK761m32KoEAEkjkE2WF/zYg1McuGesWXiLSgfxwZZIAf+DljpiSToBUXhoPesvjcLtINyYUzbkwE0iw==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.32.0.tgz", + "integrity": "sha512-AdWfynhUeX7jz/LTiFU3wwzJembTbdLkQIOLs4n7PyBuxZ3jz4azV1CWbIP8AjUOFmul6uXbmYza+KqyS5CzOA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.30.0.tgz", - "integrity": "sha512-7K6P7TRBHLX1zTmwKDrIeBSgUidmbj6u3UW/AfroLRDGf9oZFytPKU49wg28lz/yulPuHY0nZqiwbyAxq9V17w==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.32.0.tgz", + "integrity": "sha512-bTupJY4xzGZYI4cEQcPlSjjIEzMvv80h7zXGrXY1Y0KC/n/SLiMv84v7Uy+B6AG1Kiy9FQm2ADChBLo1uEhGtQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.30.0.tgz", - "integrity": "sha512-WMjWuBjYxJheRt7Ec5BFr33k3cV0mq2WzmH9aBf5W4TT8kUp34x91VRsYVaWOBRlxIXI8o/WbhleqSngiuqjLA==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.32.0.tgz", + "integrity": "sha512-if+YTJw1G3nDKL2omSBjQltCHUQzbaHADkcPQrGFnIGhVyHU3Dzq4g46uEv8mrL5sxL8FjiS9LvekeUlL2NRqw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.30.0.tgz", - "integrity": "sha512-puc1/LREfSqzgmrOFMY5L/aWmhYOlJ0TTpa245C0ZNMKEkdOkcimFbXTXQ8lZhzh+rlyFgR7cQGNtXJ5H0XgZg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.32.0.tgz", + "integrity": "sha512-kmK5nVkKb4DSUgwbveMKe4X3xHdMsPsOVJeEzBvFJ+oS7CkBPmpfHAEq+CcmiPJs20YMv6yVtUT9yPWL5WgAhg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/ingestion": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.30.0.tgz", - "integrity": "sha512-NfqiIKVgGKTLr6T9F81oqB39pPiEtILTy0z8ujxPKg2rCvI/qQeDqDWFBmQPElCfUTU6kk67QAgMkQ7T6fE+gg==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.32.0.tgz", + "integrity": "sha512-PZTqjJbx+fmPuT2ud1n4vYDSF1yrT//vOGI9HNYKNA0PM0xGUBWigf5gRivHsXa3oBnUlTyHV9j7Kqx5BHbVHQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.30.0.tgz", - "integrity": "sha512-/eeM3aqLKro5KBZw0W30iIA6afkGa+bcpvEM0NDa92m5t3vil4LOmJI9FkgzfmSkF4368z/SZMOTPShYcaVXjA==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.32.0.tgz", + "integrity": "sha512-kYYoOGjvNQAmHDS1v5sBj+0uEL9RzYqH/TAdq8wmcV+/22weKt/fjh+6LfiqkS1SCZFYYrwGnirrUhUM36lBIQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.30.0.tgz", - "integrity": "sha512-iWeAUWqw+xT+2IyUyTqnHCK+cyCKYV5+B6PXKdagc9GJJn6IaPs8vovwoC0Za5vKCje/aXQ24a2Z1pKpc/tdHg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.32.0.tgz", + "integrity": "sha512-jyIBLdskjPAL7T1g57UMfUNx+PzvYbxKslwRUKBrBA6sNEsYCFdxJAtZSLUMmw6MC98RDt4ksmEl5zVMT5bsuw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" + "@algolia/client-common": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.30.0.tgz", - "integrity": "sha512-alo3ly0tdNLjfMSPz9dmNwYUFHx7guaz5dTGlIzVGnOiwLgIoM6NgA+MJLMcH6e1S7OpmE2AxOy78svlhst2tQ==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.32.0.tgz", + "integrity": "sha512-eDp14z92Gt6JlFgiexImcWWH+Lk07s/FtxcoDaGrE4UVBgpwqOO6AfQM6dXh1pvHxlDFbMJihHc/vj3gBhPjqQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0" + "@algolia/client-common": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.30.0.tgz", - "integrity": "sha512-WOnTYUIY2InllHBy6HHMpGIOo7Or4xhYUx/jkoSK/kPIa1BRoFEHqa8v4pbKHtoG7oLvM2UAsylSnjVpIhGZXg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.32.0.tgz", + "integrity": "sha512-rnWVglh/K75hnaLbwSc2t7gCkbq1ldbPgeIKDUiEJxZ4mlguFgcltWjzpDQ/t1LQgxk9HdIFcQfM17Hid3aQ6Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0" + "@algolia/client-common": "5.32.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.30.0.tgz", - "integrity": "sha512-uSTUh9fxeHde1c7KhvZKUrivk90sdiDftC+rSKNFKKEU9TiIKAGA7B2oKC+AoMCqMymot1vW9SGbeESQPTZd0w==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.32.0.tgz", + "integrity": "sha512-LbzQ04+VLkzXY4LuOzgyjqEv/46Gwrk55PldaglMJ4i4eDXSRXGKkwJpXFwsoU+c1HMQlHIyjJBhrfsfdyRmyQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.30.0" + "@algolia/client-common": "5.32.0" }, "engines": { "node": ">= 14.0.0" @@ -370,61 +369,62 @@ "node": ">=12" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.42", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.42.tgz", + "integrity": "sha512-G/EED0hUV1wMNUsWaFdQYLibm6SO7rP2GZP1+CvhszB5WAFYYibD3zoWp3X96xSIWpYQFvccvE17ewpd0Q1hWQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.2.tgz", + "integrity": "sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==", "cpu": [ - "arm64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.2.tgz", + "integrity": "sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.2.tgz", + "integrity": "sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==", "cpu": [ "arm64" ], @@ -433,15 +433,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.2.tgz", + "integrity": "sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==", "cpu": [ "x64" ], @@ -450,15 +447,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.2.tgz", + "integrity": "sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==", "cpu": [ "arm64" ], @@ -467,15 +461,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.2.tgz", + "integrity": "sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==", "cpu": [ "x64" ], @@ -484,15 +475,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.2.tgz", + "integrity": "sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==", "cpu": [ "arm" ], @@ -501,83 +489,68 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.2.tgz", + "integrity": "sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==", "cpu": [ - "arm64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.2.tgz", + "integrity": "sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.2.tgz", + "integrity": "sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==", "cpu": [ - "loong64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.2.tgz", + "integrity": "sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==", "cpu": [ - "mips64el" + "loong64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.2.tgz", + "integrity": "sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==", "cpu": [ "ppc64" ], @@ -586,15 +559,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.2.tgz", + "integrity": "sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==", "cpu": [ "riscv64" ], @@ -603,66 +573,40 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.2.tgz", + "integrity": "sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==", "cpu": [ - "s390x" + "riscv64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.2.tgz", + "integrity": "sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==", "cpu": [ - "x64" + "s390x" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.2.tgz", + "integrity": "sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==", "cpu": [ "x64" ], @@ -670,16 +614,13 @@ "license": "MIT", "optional": true, "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.2.tgz", + "integrity": "sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==", "cpu": [ "x64" ], @@ -687,16 +628,13 @@ "license": "MIT", "optional": true, "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.2.tgz", + "integrity": "sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==", "cpu": [ "arm64" ], @@ -705,15 +643,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.2.tgz", + "integrity": "sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==", "cpu": [ "ia32" ], @@ -722,15 +657,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.2.tgz", + "integrity": "sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==", "cpu": [ "x64" ], @@ -739,412 +671,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/@iconify-json/octicon": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@iconify-json/octicon/-/octicon-1.2.7.tgz", - "integrity": "sha512-o1WcVH2Uus6PlMOZkBOpmWywAoHDJBsHx/3cH/D/FZPB1OLNG7N9o+xI67iqlc7/5vKMeW22jI/1iSgdEYdfBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify-json/simple-icons": { - "version": "1.2.41", - "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.41.tgz", - "integrity": "sha512-4tt29cKzNsxvt6rjAOVhEgpZV0L8jleTDTMdtvIJjF14Afp9aH8peuwGYyX35l6idfFwuzbvjSVfVyVjJtfmYA==", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", - "dev": true, - "license": "MIT" - }, - "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, - "license": "MIT", - "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, - "license": "MIT", - "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, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolebase/ui": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/@nolebase/ui/-/ui-2.18.0.tgz", - "integrity": "sha512-dKzttiRIau4GPEi8iUDyuuX4q6n8Aw8Ns4OPe9KiFptD16YffzdELqymEZBr2xxn09kPiLnSA+liNnVgSo+9HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@iconify-json/octicon": "^1.2.7", - "less": "^4.3.0", - "vue": "3.5.17" - }, - "peerDependencies": { - "vitepress": "^1.5.0 || ^2.0.0-alpha.1" - } - }, - "node_modules/@nolebase/vitepress-plugin-git-changelog": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/@nolebase/vitepress-plugin-git-changelog/-/vitepress-plugin-git-changelog-2.18.0.tgz", - "integrity": "sha512-aEAxcrsHdxkTa+1rzwTUckk98O0ZglBe/MGZPENmp77y0noJzfV5JgCRPWt9PKLmRelnEKGiJuOmGYEFNkCx8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@iconify-json/octicon": "^1.2.7", - "@nolebase/ui": "^2.18.0", - "colorette": "^2.0.20", - "date-fns": "^4.1.0", - "defu": "^6.1.4", - "es-toolkit": "^1.39.5", - "execa": "^9.6.0", - "globby": "^14.1.0", - "gray-matter": "^4.0.3", - "less": "^4.3.0", - "uncrypto": "^0.1.3" - }, - "peerDependencies": { - "vitepress": "^1.5.0 || ^2.0.0-alpha.1" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.1.tgz", - "integrity": "sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.1.tgz", - "integrity": "sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.1.tgz", - "integrity": "sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.1.tgz", - "integrity": "sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.1.tgz", - "integrity": "sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.1.tgz", - "integrity": "sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.1.tgz", - "integrity": "sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.1.tgz", - "integrity": "sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.1.tgz", - "integrity": "sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.1.tgz", - "integrity": "sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.1.tgz", - "integrity": "sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.1.tgz", - "integrity": "sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.1.tgz", - "integrity": "sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.1.tgz", - "integrity": "sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.1.tgz", - "integrity": "sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.1.tgz", - "integrity": "sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.1.tgz", - "integrity": "sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.1.tgz", - "integrity": "sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.1.tgz", - "integrity": "sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.1.tgz", - "integrity": "sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sec-ant/readable-stream": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", - "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@shikijs/core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", - "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", + "node_modules/@shikijs/core": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", + "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", "dev": true, "license": "MIT", "dependencies": { @@ -1228,19 +760,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -1314,20 +833,6 @@ "dev": true, "license": "ISC" }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, "node_modules/@vue/compiler-core": { "version": "3.5.17", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.17.tgz", @@ -1580,38 +1085,28 @@ } }, "node_modules/algoliasearch": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.30.0.tgz", - "integrity": "sha512-ILSdPX4je0n5WUKD34TMe57/eqiXUzCIjAsdtLQYhomqOjTtFUg1s6dE7kUegc4Mc43Xr7IXYlMutU9HPiYfdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.30.0", - "@algolia/client-analytics": "5.30.0", - "@algolia/client-common": "5.30.0", - "@algolia/client-insights": "5.30.0", - "@algolia/client-personalization": "5.30.0", - "@algolia/client-query-suggestions": "5.30.0", - "@algolia/client-search": "5.30.0", - "@algolia/ingestion": "1.30.0", - "@algolia/monitoring": "1.30.0", - "@algolia/recommend": "5.30.0", - "@algolia/requester-browser-xhr": "5.30.0", - "@algolia/requester-fetch": "5.30.0", - "@algolia/requester-node-http": "5.30.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.32.0.tgz", + "integrity": "sha512-84xBncKNPBK8Ae89F65+SyVcOihrIbm/3N7to+GpRBHEUXGjA3ydWTMpcRW6jmFzkBQ/eqYy/y+J+NBpJWYjBg==", "dev": true, "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "@algolia/client-abtesting": "5.32.0", + "@algolia/client-analytics": "5.32.0", + "@algolia/client-common": "5.32.0", + "@algolia/client-insights": "5.32.0", + "@algolia/client-personalization": "5.32.0", + "@algolia/client-query-suggestions": "5.32.0", + "@algolia/client-search": "5.32.0", + "@algolia/ingestion": "1.32.0", + "@algolia/monitoring": "1.32.0", + "@algolia/recommend": "5.32.0", + "@algolia/requester-browser-xhr": "5.32.0", + "@algolia/requester-fetch": "5.32.0", + "@algolia/requester-node-http": "5.32.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/birpc": { @@ -1624,19 +1119,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -1670,13 +1152,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -1704,21 +1179,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -1726,24 +1186,6 @@ "dev": true, "license": "MIT" }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true, - "license": "MIT" - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1788,84 +1230,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/es-toolkit": { - "version": "1.39.6", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.6.tgz", - "integrity": "sha512-uiVjnLem6kkfXumlwUEWEKnwUN5QbSEB0DHy2rNJt0nkYcob5K0TXJ7oJRzhAcvx+SRmz4TahKyN5V9cly/IPA==", - "dev": true, - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "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, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1873,102 +1237,6 @@ "dev": true, "license": "MIT" }, - "node_modules/execa": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz", - "integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.6", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.1", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.2.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.1.1" - }, - "engines": { - "node": "^18.19.0 || >=20.5.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "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, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "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.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", - "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/focus-trap": { "version": "7.6.5", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.5.tgz", @@ -1979,107 +1247,19 @@ "tabbable": "^6.2.0" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", - "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "license": "ISC", - "optional": true - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/hast-util-to-html": { @@ -2138,136 +1318,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/human-signals": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", - "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "license": "MIT", - "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "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, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-what": { "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", @@ -2281,84 +1331,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "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, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.3.0.tgz", - "integrity": "sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/less/node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/less/node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "license": "MIT" - }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2369,21 +1341,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -2413,16 +1370,6 @@ "url": "https://opencollective.com/unified" } }, - "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, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -2517,34 +1464,6 @@ ], "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "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, - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/minisearch": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.2.tgz", @@ -2578,54 +1497,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/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, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/oniguruma-to-es": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", @@ -2638,52 +1509,6 @@ "regex-recursion": "^6.0.2" } }, - "node_modules/parse-ms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", - "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "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, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -2698,30 +1523,6 @@ "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -2762,22 +1563,6 @@ "url": "https://opencollective.com/preact" } }, - "node_modules/pretty-ms": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", - "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-ms": "^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/property-information": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", @@ -2786,37 +1571,8 @@ "license": "MIT", "funding": { "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "license": "MIT", - "optional": 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" - } - ], - "license": "MIT" + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/regex": { "version": "6.0.1", @@ -2845,17 +1601,6 @@ "dev": true, "license": "MIT" }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -2864,9 +1609,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.1.tgz", - "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.2.tgz", + "integrity": "sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==", "dev": true, "license": "MIT", "dependencies": { @@ -2880,430 +1625,704 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.44.1", - "@rollup/rollup-android-arm64": "4.44.1", - "@rollup/rollup-darwin-arm64": "4.44.1", - "@rollup/rollup-darwin-x64": "4.44.1", - "@rollup/rollup-freebsd-arm64": "4.44.1", - "@rollup/rollup-freebsd-x64": "4.44.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.44.1", - "@rollup/rollup-linux-arm-musleabihf": "4.44.1", - "@rollup/rollup-linux-arm64-gnu": "4.44.1", - "@rollup/rollup-linux-arm64-musl": "4.44.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.44.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.1", - "@rollup/rollup-linux-riscv64-gnu": "4.44.1", - "@rollup/rollup-linux-riscv64-musl": "4.44.1", - "@rollup/rollup-linux-s390x-gnu": "4.44.1", - "@rollup/rollup-linux-x64-gnu": "4.44.1", - "@rollup/rollup-linux-x64-musl": "4.44.1", - "@rollup/rollup-win32-arm64-msvc": "4.44.1", - "@rollup/rollup-win32-ia32-msvc": "4.44.1", - "@rollup/rollup-win32-x64-msvc": "4.44.1", + "@rollup/rollup-android-arm-eabi": "4.44.2", + "@rollup/rollup-android-arm64": "4.44.2", + "@rollup/rollup-darwin-arm64": "4.44.2", + "@rollup/rollup-darwin-x64": "4.44.2", + "@rollup/rollup-freebsd-arm64": "4.44.2", + "@rollup/rollup-freebsd-x64": "4.44.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.44.2", + "@rollup/rollup-linux-arm-musleabihf": "4.44.2", + "@rollup/rollup-linux-arm64-gnu": "4.44.2", + "@rollup/rollup-linux-arm64-musl": "4.44.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.44.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.44.2", + "@rollup/rollup-linux-riscv64-gnu": "4.44.2", + "@rollup/rollup-linux-riscv64-musl": "4.44.2", + "@rollup/rollup-linux-s390x-gnu": "4.44.2", + "@rollup/rollup-linux-x64-gnu": "4.44.2", + "@rollup/rollup-linux-x64-musl": "4.44.2", + "@rollup/rollup-win32-arm64-msvc": "4.44.2", + "@rollup/rollup-win32-ia32-msvc": "4.44.2", + "@rollup/rollup-win32-x64-msvc": "4.44.2", "fsevents": "~2.3.2" } }, - "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==", + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/shiki": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", + "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", "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" - } - ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "@shikijs/core": "2.5.0", + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/langs": "2.5.0", + "@shikijs/themes": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "dev": true, "license": "MIT", - "optional": true + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true, - "license": "ISC", - "optional": true + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/search-insights": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", - "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dev": true, "license": "MIT", - "peer": true + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", "dev": true, "license": "MIT", "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" + "copy-anything": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=16" } }, - "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true, - "license": "ISC", - "optional": true, + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vitepress": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.3.tgz", + "integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "3.8.2", + "@docsearch/js": "3.8.2", + "@iconify-json/simple-icons": "^1.2.21", + "@shikijs/core": "^2.1.0", + "@shikijs/transformers": "^2.1.0", + "@shikijs/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", + "@vue/shared": "^3.5.13", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", + "focus-trap": "^7.6.4", + "mark.js": "8.11.1", + "minisearch": "^7.1.1", + "shiki": "^2.1.0", + "vite": "^5.4.14", + "vue": "^3.5.13" + }, "bin": { - "semver": "bin/semver" + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/vitepress/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "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==", + "node_modules/vitepress/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/shiki": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", - "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", + "node_modules/vitepress/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/langs": "2.5.0", - "@shikijs/themes": "2.5.0", - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/vitepress/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=12" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/vitepress/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "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==", + "node_modules/vitepress/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/vitepress/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "node_modules/vitepress/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/speakingurl": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", - "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "node_modules/vitepress/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "node_modules/vitepress/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "node_modules/vitepress/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "node_modules/vitepress/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/superjson": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", - "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "node_modules/vitepress/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "copy-anything": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16" + "node": ">=12" } }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "dev": true, - "license": "MIT" - }, - "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==", + "node_modules/vitepress/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.0" + "node": ">=12" } }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "node_modules/vitepress/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/uncrypto": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "node_modules/vitepress/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "node_modules/vitepress/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/vitepress/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "node_modules/vitepress/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/vitepress/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "node_modules/vitepress/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/vitepress/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "node_modules/vitepress/node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" + "engines": { + "node": "^18.0.0 || >=20.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vitepress/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "bin": { + "esbuild": "bin/esbuild" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/vite": { + "node_modules/vitepress/node_modules/vite": { "version": "5.4.19", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", @@ -3363,48 +2382,6 @@ } } }, - "node_modules/vitepress": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.3.tgz", - "integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@docsearch/css": "3.8.2", - "@docsearch/js": "3.8.2", - "@iconify-json/simple-icons": "^1.2.21", - "@shikijs/core": "^2.1.0", - "@shikijs/transformers": "^2.1.0", - "@shikijs/types": "^2.1.0", - "@types/markdown-it": "^14.1.2", - "@vitejs/plugin-vue": "^5.2.1", - "@vue/devtools-api": "^7.7.0", - "@vue/shared": "^3.5.13", - "@vueuse/core": "^12.4.0", - "@vueuse/integrations": "^12.4.0", - "focus-trap": "^7.6.4", - "mark.js": "8.11.1", - "minisearch": "^7.1.1", - "shiki": "^2.1.0", - "vite": "^5.4.14", - "vue": "^3.5.13" - }, - "bin": { - "vitepress": "bin/vitepress.js" - }, - "peerDependencies": { - "markdown-it-mathjax3": "^4", - "postcss": "^8" - }, - "peerDependenciesMeta": { - "markdown-it-mathjax3": { - "optional": true - }, - "postcss": { - "optional": true - } - } - }, "node_modules/vue": { "version": "3.5.17", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.17.tgz", @@ -3427,35 +2404,6 @@ } } }, - "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, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/yoctocolors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", - "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index e361bcf..5da6b55 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ "vitepress": "^1.6.3" }, "scripts": { - "docs:dev": "vitepress dev vitepress", - "docs:build": "vitepress build vitepress", - "docs:preview": "vitepress preview vitepress" + "docs:dev": "vitepress dev", + "docs:build": "vitepress build", + "docs:preview": "vitepress preview" } } diff --git a/vitepress/.vitepress/cache/deps/_metadata.json b/vitepress/.vitepress/cache/deps/_metadata.json deleted file mode 100644 index e8e8f6d..0000000 --- a/vitepress/.vitepress/cache/deps/_metadata.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "hash": "2fc32a06", - "configHash": "a1ab3679", - "lockfileHash": "2a0969df", - "browserHash": "74a294ec", - "optimized": { - "vue": { - "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", - "file": "vue.js", - "fileHash": "f4f9b5ef", - "needsInterop": false - }, - "vitepress > @vue/devtools-api": { - "src": "../../../../node_modules/@vue/devtools-api/dist/index.js", - "file": "vitepress___@vue_devtools-api.js", - "fileHash": "2ea8d253", - "needsInterop": false - }, - "vitepress > @vueuse/core": { - "src": "../../../../node_modules/@vueuse/core/index.mjs", - "file": "vitepress___@vueuse_core.js", - "fileHash": "2ad4974c", - "needsInterop": false - }, - "vitepress > @vueuse/integrations/useFocusTrap": { - "src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs", - "file": "vitepress___@vueuse_integrations_useFocusTrap.js", - "fileHash": "b76449df", - "needsInterop": false - }, - "vitepress > mark.js/src/vanilla.js": { - "src": "../../../../node_modules/mark.js/src/vanilla.js", - "file": "vitepress___mark__js_src_vanilla__js.js", - "fileHash": "2a1ae3a4", - "needsInterop": false - }, - "vitepress > minisearch": { - "src": "../../../../node_modules/minisearch/dist/es/index.js", - "file": "vitepress___minisearch.js", - "fileHash": "f3a52a8c", - "needsInterop": false - } - }, - "chunks": { - "chunk-3GYA4YLH": { - "file": "chunk-3GYA4YLH.js" - }, - "chunk-DDXJJ377": { - "file": "chunk-DDXJJ377.js" - } - } -} \ No newline at end of file diff --git a/vitepress/.vitepress/cache/deps/chunk-DDXJJ377.js b/vitepress/.vitepress/cache/deps/chunk-DDXJJ377.js deleted file mode 100644 index 7364942..0000000 --- a/vitepress/.vitepress/cache/deps/chunk-DDXJJ377.js +++ /dev/null @@ -1,12619 +0,0 @@ -// node_modules/@vue/shared/dist/shared.esm-bundler.js -function makeMap(str) { - const map2 = /* @__PURE__ */ Object.create(null); - for (const key of str.split(",")) map2[key] = 1; - return (val) => val in map2; -} -var EMPTY_OBJ = true ? Object.freeze({}) : {}; -var EMPTY_ARR = true ? Object.freeze([]) : []; -var NOOP = () => { -}; -var NO = () => false; -var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter -(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); -var isModelListener = (key) => key.startsWith("onUpdate:"); -var extend = Object.assign; -var remove = (arr, el) => { - const i = arr.indexOf(el); - if (i > -1) { - arr.splice(i, 1); - } -}; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var hasOwn = (val, key) => hasOwnProperty.call(val, key); -var isArray = Array.isArray; -var isMap = (val) => toTypeString(val) === "[object Map]"; -var isSet = (val) => toTypeString(val) === "[object Set]"; -var isDate = (val) => toTypeString(val) === "[object Date]"; -var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; -var isFunction = (val) => typeof val === "function"; -var isString = (val) => typeof val === "string"; -var isSymbol = (val) => typeof val === "symbol"; -var isObject = (val) => val !== null && typeof val === "object"; -var isPromise = (val) => { - return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); -}; -var objectToString = Object.prototype.toString; -var toTypeString = (value) => objectToString.call(value); -var toRawType = (value) => { - return toTypeString(value).slice(8, -1); -}; -var isPlainObject = (val) => toTypeString(val) === "[object Object]"; -var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; -var isReservedProp = makeMap( - // the leading comma is intentional so empty string "" is also included - ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" -); -var isBuiltInDirective = makeMap( - "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" -); -var cacheStringFunction = (fn) => { - const cache = /* @__PURE__ */ Object.create(null); - return (str) => { - const hit = cache[str]; - return hit || (cache[str] = fn(str)); - }; -}; -var camelizeRE = /-(\w)/g; -var camelize = cacheStringFunction( - (str) => { - return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); - } -); -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cacheStringFunction( - (str) => str.replace(hyphenateRE, "-$1").toLowerCase() -); -var capitalize = cacheStringFunction((str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}); -var toHandlerKey = cacheStringFunction( - (str) => { - const s = str ? `on${capitalize(str)}` : ``; - return s; - } -); -var hasChanged = (value, oldValue) => !Object.is(value, oldValue); -var invokeArrayFns = (fns, ...arg) => { - for (let i = 0; i < fns.length; i++) { - fns[i](...arg); - } -}; -var def = (obj, key, value, writable = false) => { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - writable, - value - }); -}; -var looseToNumber = (val) => { - const n = parseFloat(val); - return isNaN(n) ? val : n; -}; -var toNumber = (val) => { - const n = isString(val) ? Number(val) : NaN; - return isNaN(n) ? val : n; -}; -var _globalThis; -var getGlobalThis = () => { - return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); -}; -var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; -var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); -function normalizeStyle(value) { - if (isArray(value)) { - const res = {}; - for (let i = 0; i < value.length; i++) { - const item = value[i]; - const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); - if (normalized) { - for (const key in normalized) { - res[key] = normalized[key]; - } - } - } - return res; - } else if (isString(value) || isObject(value)) { - return value; - } -} -var listDelimiterRE = /;(?![^(]*\))/g; -var propertyDelimiterRE = /:([^]+)/; -var styleCommentRE = /\/\*[^]*?\*\//g; -function parseStringStyle(cssText) { - const ret = {}; - cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { - if (item) { - const tmp = item.split(propertyDelimiterRE); - tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); - } - }); - return ret; -} -function stringifyStyle(styles) { - if (!styles) return ""; - if (isString(styles)) return styles; - let ret = ""; - for (const key in styles) { - const value = styles[key]; - if (isString(value) || typeof value === "number") { - const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); - ret += `${normalizedKey}:${value};`; - } - } - return ret; -} -function normalizeClass(value) { - let res = ""; - if (isString(value)) { - res = value; - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - const normalized = normalizeClass(value[i]); - if (normalized) { - res += normalized + " "; - } - } - } else if (isObject(value)) { - for (const name in value) { - if (value[name]) { - res += name + " "; - } - } - } - return res.trim(); -} -function normalizeProps(props) { - if (!props) return null; - let { class: klass, style } = props; - if (klass && !isString(klass)) { - props.class = normalizeClass(klass); - } - if (style) { - props.style = normalizeStyle(style); - } - return props; -} -var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; -var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; -var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; -var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; -var isHTMLTag = makeMap(HTML_TAGS); -var isSVGTag = makeMap(SVG_TAGS); -var isMathMLTag = makeMap(MATH_TAGS); -var isVoidTag = makeMap(VOID_TAGS); -var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; -var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); -var isBooleanAttr = makeMap( - specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` -); -function includeBooleanAttr(value) { - return !!value || value === ""; -} -var isKnownHtmlAttr = makeMap( - `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` -); -var isKnownSvgAttr = makeMap( - `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` -); -var isKnownMathMLAttr = makeMap( - `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` -); -function isRenderableAttrValue(value) { - if (value == null) { - return false; - } - const type = typeof value; - return type === "string" || type === "number" || type === "boolean"; -} -var cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; -function getEscapedCssVarName(key, doubleEscape) { - return key.replace( - cssVarNameEscapeSymbolsRE, - (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` - ); -} -function looseCompareArrays(a, b) { - if (a.length !== b.length) return false; - let equal = true; - for (let i = 0; equal && i < a.length; i++) { - equal = looseEqual(a[i], b[i]); - } - return equal; -} -function looseEqual(a, b) { - if (a === b) return true; - let aValidType = isDate(a); - let bValidType = isDate(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? a.getTime() === b.getTime() : false; - } - aValidType = isSymbol(a); - bValidType = isSymbol(b); - if (aValidType || bValidType) { - return a === b; - } - aValidType = isArray(a); - bValidType = isArray(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? looseCompareArrays(a, b) : false; - } - aValidType = isObject(a); - bValidType = isObject(b); - if (aValidType || bValidType) { - if (!aValidType || !bValidType) { - return false; - } - const aKeysCount = Object.keys(a).length; - const bKeysCount = Object.keys(b).length; - if (aKeysCount !== bKeysCount) { - return false; - } - for (const key in a) { - const aHasKey = a.hasOwnProperty(key); - const bHasKey = b.hasOwnProperty(key); - if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { - return false; - } - } - } - return String(a) === String(b); -} -function looseIndexOf(arr, val) { - return arr.findIndex((item) => looseEqual(item, val)); -} -var isRef = (val) => { - return !!(val && val["__v_isRef"] === true); -}; -var toDisplayString = (val) => { - return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); -}; -var replacer = (_key, val) => { - if (isRef(val)) { - return replacer(_key, val.value); - } else if (isMap(val)) { - return { - [`Map(${val.size})`]: [...val.entries()].reduce( - (entries, [key, val2], i) => { - entries[stringifySymbol(key, i) + " =>"] = val2; - return entries; - }, - {} - ) - }; - } else if (isSet(val)) { - return { - [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) - }; - } else if (isSymbol(val)) { - return stringifySymbol(val); - } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { - return String(val); - } - return val; -}; -var stringifySymbol = (v, i = "") => { - var _a; - return ( - // Symbol.description in es2019+ so we need to cast here to pass - // the lib: es2016 check - isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v - ); -}; - -// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js -function warn(msg, ...args) { - console.warn(`[Vue warn] ${msg}`, ...args); -} -var activeEffectScope; -var EffectScope = class { - constructor(detached = false) { - this.detached = detached; - this._active = true; - this._on = 0; - this.effects = []; - this.cleanups = []; - this._isPaused = false; - this.parent = activeEffectScope; - if (!detached && activeEffectScope) { - this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( - this - ) - 1; - } - } - get active() { - return this._active; - } - pause() { - if (this._active) { - this._isPaused = true; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].pause(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].pause(); - } - } - } - /** - * Resumes the effect scope, including all child scopes and effects. - */ - resume() { - if (this._active) { - if (this._isPaused) { - this._isPaused = false; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].resume(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].resume(); - } - } - } - } - run(fn) { - if (this._active) { - const currentEffectScope = activeEffectScope; - try { - activeEffectScope = this; - return fn(); - } finally { - activeEffectScope = currentEffectScope; - } - } else if (true) { - warn(`cannot run an inactive effect scope.`); - } - } - /** - * This should only be called on non-detached scopes - * @internal - */ - on() { - if (++this._on === 1) { - this.prevScope = activeEffectScope; - activeEffectScope = this; - } - } - /** - * This should only be called on non-detached scopes - * @internal - */ - off() { - if (this._on > 0 && --this._on === 0) { - activeEffectScope = this.prevScope; - this.prevScope = void 0; - } - } - stop(fromParent) { - if (this._active) { - this._active = false; - let i, l; - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].stop(); - } - this.effects.length = 0; - for (i = 0, l = this.cleanups.length; i < l; i++) { - this.cleanups[i](); - } - this.cleanups.length = 0; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].stop(true); - } - this.scopes.length = 0; - } - if (!this.detached && this.parent && !fromParent) { - const last = this.parent.scopes.pop(); - if (last && last !== this) { - this.parent.scopes[this.index] = last; - last.index = this.index; - } - } - this.parent = void 0; - } - } -}; -function effectScope(detached) { - return new EffectScope(detached); -} -function getCurrentScope() { - return activeEffectScope; -} -function onScopeDispose(fn, failSilently = false) { - if (activeEffectScope) { - activeEffectScope.cleanups.push(fn); - } else if (!failSilently) { - warn( - `onScopeDispose() is called when there is no active effect scope to be associated with.` - ); - } -} -var activeSub; -var pausedQueueEffects = /* @__PURE__ */ new WeakSet(); -var ReactiveEffect = class { - constructor(fn) { - this.fn = fn; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 1 | 4; - this.next = void 0; - this.cleanup = void 0; - this.scheduler = void 0; - if (activeEffectScope && activeEffectScope.active) { - activeEffectScope.effects.push(this); - } - } - pause() { - this.flags |= 64; - } - resume() { - if (this.flags & 64) { - this.flags &= -65; - if (pausedQueueEffects.has(this)) { - pausedQueueEffects.delete(this); - this.trigger(); - } - } - } - /** - * @internal - */ - notify() { - if (this.flags & 2 && !(this.flags & 32)) { - return; - } - if (!(this.flags & 8)) { - batch(this); - } - } - run() { - if (!(this.flags & 1)) { - return this.fn(); - } - this.flags |= 2; - cleanupEffect(this); - prepareDeps(this); - const prevEffect = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = this; - shouldTrack = true; - try { - return this.fn(); - } finally { - if (activeSub !== this) { - warn( - "Active effect was not restored correctly - this is likely a Vue internal bug." - ); - } - cleanupDeps(this); - activeSub = prevEffect; - shouldTrack = prevShouldTrack; - this.flags &= -3; - } - } - stop() { - if (this.flags & 1) { - for (let link = this.deps; link; link = link.nextDep) { - removeSub(link); - } - this.deps = this.depsTail = void 0; - cleanupEffect(this); - this.onStop && this.onStop(); - this.flags &= -2; - } - } - trigger() { - if (this.flags & 64) { - pausedQueueEffects.add(this); - } else if (this.scheduler) { - this.scheduler(); - } else { - this.runIfDirty(); - } - } - /** - * @internal - */ - runIfDirty() { - if (isDirty(this)) { - this.run(); - } - } - get dirty() { - return isDirty(this); - } -}; -var batchDepth = 0; -var batchedSub; -var batchedComputed; -function batch(sub, isComputed = false) { - sub.flags |= 8; - if (isComputed) { - sub.next = batchedComputed; - batchedComputed = sub; - return; - } - sub.next = batchedSub; - batchedSub = sub; -} -function startBatch() { - batchDepth++; -} -function endBatch() { - if (--batchDepth > 0) { - return; - } - if (batchedComputed) { - let e = batchedComputed; - batchedComputed = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= -9; - e = next; - } - } - let error; - while (batchedSub) { - let e = batchedSub; - batchedSub = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= -9; - if (e.flags & 1) { - try { - ; - e.trigger(); - } catch (err) { - if (!error) error = err; - } - } - e = next; - } - } - if (error) throw error; -} -function prepareDeps(sub) { - for (let link = sub.deps; link; link = link.nextDep) { - link.version = -1; - link.prevActiveLink = link.dep.activeLink; - link.dep.activeLink = link; - } -} -function cleanupDeps(sub) { - let head; - let tail = sub.depsTail; - let link = tail; - while (link) { - const prev = link.prevDep; - if (link.version === -1) { - if (link === tail) tail = prev; - removeSub(link); - removeDep(link); - } else { - head = link; - } - link.dep.activeLink = link.prevActiveLink; - link.prevActiveLink = void 0; - link = prev; - } - sub.deps = head; - sub.depsTail = tail; -} -function isDirty(sub) { - for (let link = sub.deps; link; link = link.nextDep) { - if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { - return true; - } - } - if (sub._dirty) { - return true; - } - return false; -} -function refreshComputed(computed3) { - if (computed3.flags & 4 && !(computed3.flags & 16)) { - return; - } - computed3.flags &= -17; - if (computed3.globalVersion === globalVersion) { - return; - } - computed3.globalVersion = globalVersion; - if (!computed3.isSSR && computed3.flags & 128 && (!computed3.deps && !computed3._dirty || !isDirty(computed3))) { - return; - } - computed3.flags |= 2; - const dep = computed3.dep; - const prevSub = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = computed3; - shouldTrack = true; - try { - prepareDeps(computed3); - const value = computed3.fn(computed3._value); - if (dep.version === 0 || hasChanged(value, computed3._value)) { - computed3.flags |= 128; - computed3._value = value; - dep.version++; - } - } catch (err) { - dep.version++; - throw err; - } finally { - activeSub = prevSub; - shouldTrack = prevShouldTrack; - cleanupDeps(computed3); - computed3.flags &= -3; - } -} -function removeSub(link, soft = false) { - const { dep, prevSub, nextSub } = link; - if (prevSub) { - prevSub.nextSub = nextSub; - link.prevSub = void 0; - } - if (nextSub) { - nextSub.prevSub = prevSub; - link.nextSub = void 0; - } - if (dep.subsHead === link) { - dep.subsHead = nextSub; - } - if (dep.subs === link) { - dep.subs = prevSub; - if (!prevSub && dep.computed) { - dep.computed.flags &= -5; - for (let l = dep.computed.deps; l; l = l.nextDep) { - removeSub(l, true); - } - } - } - if (!soft && !--dep.sc && dep.map) { - dep.map.delete(dep.key); - } -} -function removeDep(link) { - const { prevDep, nextDep } = link; - if (prevDep) { - prevDep.nextDep = nextDep; - link.prevDep = void 0; - } - if (nextDep) { - nextDep.prevDep = prevDep; - link.nextDep = void 0; - } -} -function effect(fn, options) { - if (fn.effect instanceof ReactiveEffect) { - fn = fn.effect.fn; - } - const e = new ReactiveEffect(fn); - if (options) { - extend(e, options); - } - try { - e.run(); - } catch (err) { - e.stop(); - throw err; - } - const runner = e.run.bind(e); - runner.effect = e; - return runner; -} -function stop(runner) { - runner.effect.stop(); -} -var shouldTrack = true; -var trackStack = []; -function pauseTracking() { - trackStack.push(shouldTrack); - shouldTrack = false; -} -function resetTracking() { - const last = trackStack.pop(); - shouldTrack = last === void 0 ? true : last; -} -function cleanupEffect(e) { - const { cleanup } = e; - e.cleanup = void 0; - if (cleanup) { - const prevSub = activeSub; - activeSub = void 0; - try { - cleanup(); - } finally { - activeSub = prevSub; - } - } -} -var globalVersion = 0; -var Link = class { - constructor(sub, dep) { - this.sub = sub; - this.dep = dep; - this.version = dep.version; - this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; - } -}; -var Dep = class { - // TODO isolatedDeclarations "__v_skip" - constructor(computed3) { - this.computed = computed3; - this.version = 0; - this.activeLink = void 0; - this.subs = void 0; - this.map = void 0; - this.key = void 0; - this.sc = 0; - this.__v_skip = true; - if (true) { - this.subsHead = void 0; - } - } - track(debugInfo) { - if (!activeSub || !shouldTrack || activeSub === this.computed) { - return; - } - let link = this.activeLink; - if (link === void 0 || link.sub !== activeSub) { - link = this.activeLink = new Link(activeSub, this); - if (!activeSub.deps) { - activeSub.deps = activeSub.depsTail = link; - } else { - link.prevDep = activeSub.depsTail; - activeSub.depsTail.nextDep = link; - activeSub.depsTail = link; - } - addSub(link); - } else if (link.version === -1) { - link.version = this.version; - if (link.nextDep) { - const next = link.nextDep; - next.prevDep = link.prevDep; - if (link.prevDep) { - link.prevDep.nextDep = next; - } - link.prevDep = activeSub.depsTail; - link.nextDep = void 0; - activeSub.depsTail.nextDep = link; - activeSub.depsTail = link; - if (activeSub.deps === link) { - activeSub.deps = next; - } - } - } - if (activeSub.onTrack) { - activeSub.onTrack( - extend( - { - effect: activeSub - }, - debugInfo - ) - ); - } - return link; - } - trigger(debugInfo) { - this.version++; - globalVersion++; - this.notify(debugInfo); - } - notify(debugInfo) { - startBatch(); - try { - if (true) { - for (let head = this.subsHead; head; head = head.nextSub) { - if (head.sub.onTrigger && !(head.sub.flags & 8)) { - head.sub.onTrigger( - extend( - { - effect: head.sub - }, - debugInfo - ) - ); - } - } - } - for (let link = this.subs; link; link = link.prevSub) { - if (link.sub.notify()) { - ; - link.sub.dep.notify(); - } - } - } finally { - endBatch(); - } - } -}; -function addSub(link) { - link.dep.sc++; - if (link.sub.flags & 4) { - const computed3 = link.dep.computed; - if (computed3 && !link.dep.subs) { - computed3.flags |= 4 | 16; - for (let l = computed3.deps; l; l = l.nextDep) { - addSub(l); - } - } - const currentTail = link.dep.subs; - if (currentTail !== link) { - link.prevSub = currentTail; - if (currentTail) currentTail.nextSub = link; - } - if (link.dep.subsHead === void 0) { - link.dep.subsHead = link; - } - link.dep.subs = link; - } -} -var targetMap = /* @__PURE__ */ new WeakMap(); -var ITERATE_KEY = Symbol( - true ? "Object iterate" : "" -); -var MAP_KEY_ITERATE_KEY = Symbol( - true ? "Map keys iterate" : "" -); -var ARRAY_ITERATE_KEY = Symbol( - true ? "Array iterate" : "" -); -function track(target, type, key) { - if (shouldTrack && activeSub) { - let depsMap = targetMap.get(target); - if (!depsMap) { - targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); - } - let dep = depsMap.get(key); - if (!dep) { - depsMap.set(key, dep = new Dep()); - dep.map = depsMap; - dep.key = key; - } - if (true) { - dep.track({ - target, - type, - key - }); - } else { - dep.track(); - } - } -} -function trigger(target, type, key, newValue, oldValue, oldTarget) { - const depsMap = targetMap.get(target); - if (!depsMap) { - globalVersion++; - return; - } - const run = (dep) => { - if (dep) { - if (true) { - dep.trigger({ - target, - type, - key, - newValue, - oldValue, - oldTarget - }); - } else { - dep.trigger(); - } - } - }; - startBatch(); - if (type === "clear") { - depsMap.forEach(run); - } else { - const targetIsArray = isArray(target); - const isArrayIndex = targetIsArray && isIntegerKey(key); - if (targetIsArray && key === "length") { - const newLength = Number(newValue); - depsMap.forEach((dep, key2) => { - if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { - run(dep); - } - }); - } else { - if (key !== void 0 || depsMap.has(void 0)) { - run(depsMap.get(key)); - } - if (isArrayIndex) { - run(depsMap.get(ARRAY_ITERATE_KEY)); - } - switch (type) { - case "add": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } else if (isArrayIndex) { - run(depsMap.get("length")); - } - break; - case "delete": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } - break; - case "set": - if (isMap(target)) { - run(depsMap.get(ITERATE_KEY)); - } - break; - } - } - } - endBatch(); -} -function getDepFromReactive(object, key) { - const depMap = targetMap.get(object); - return depMap && depMap.get(key); -} -function reactiveReadArray(array) { - const raw = toRaw(array); - if (raw === array) return raw; - track(raw, "iterate", ARRAY_ITERATE_KEY); - return isShallow(array) ? raw : raw.map(toReactive); -} -function shallowReadArray(arr) { - track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); - return arr; -} -var arrayInstrumentations = { - __proto__: null, - [Symbol.iterator]() { - return iterator(this, Symbol.iterator, toReactive); - }, - concat(...args) { - return reactiveReadArray(this).concat( - ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) - ); - }, - entries() { - return iterator(this, "entries", (value) => { - value[1] = toReactive(value[1]); - return value; - }); - }, - every(fn, thisArg) { - return apply(this, "every", fn, thisArg, void 0, arguments); - }, - filter(fn, thisArg) { - return apply(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments); - }, - find(fn, thisArg) { - return apply(this, "find", fn, thisArg, toReactive, arguments); - }, - findIndex(fn, thisArg) { - return apply(this, "findIndex", fn, thisArg, void 0, arguments); - }, - findLast(fn, thisArg) { - return apply(this, "findLast", fn, thisArg, toReactive, arguments); - }, - findLastIndex(fn, thisArg) { - return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); - }, - // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement - forEach(fn, thisArg) { - return apply(this, "forEach", fn, thisArg, void 0, arguments); - }, - includes(...args) { - return searchProxy(this, "includes", args); - }, - indexOf(...args) { - return searchProxy(this, "indexOf", args); - }, - join(separator) { - return reactiveReadArray(this).join(separator); - }, - // keys() iterator only reads `length`, no optimisation required - lastIndexOf(...args) { - return searchProxy(this, "lastIndexOf", args); - }, - map(fn, thisArg) { - return apply(this, "map", fn, thisArg, void 0, arguments); - }, - pop() { - return noTracking(this, "pop"); - }, - push(...args) { - return noTracking(this, "push", args); - }, - reduce(fn, ...args) { - return reduce(this, "reduce", fn, args); - }, - reduceRight(fn, ...args) { - return reduce(this, "reduceRight", fn, args); - }, - shift() { - return noTracking(this, "shift"); - }, - // slice could use ARRAY_ITERATE but also seems to beg for range tracking - some(fn, thisArg) { - return apply(this, "some", fn, thisArg, void 0, arguments); - }, - splice(...args) { - return noTracking(this, "splice", args); - }, - toReversed() { - return reactiveReadArray(this).toReversed(); - }, - toSorted(comparer) { - return reactiveReadArray(this).toSorted(comparer); - }, - toSpliced(...args) { - return reactiveReadArray(this).toSpliced(...args); - }, - unshift(...args) { - return noTracking(this, "unshift", args); - }, - values() { - return iterator(this, "values", toReactive); - } -}; -function iterator(self2, method, wrapValue) { - const arr = shallowReadArray(self2); - const iter = arr[method](); - if (arr !== self2 && !isShallow(self2)) { - iter._next = iter.next; - iter.next = () => { - const result = iter._next(); - if (result.value) { - result.value = wrapValue(result.value); - } - return result; - }; - } - return iter; -} -var arrayProto = Array.prototype; -function apply(self2, method, fn, thisArg, wrappedRetFn, args) { - const arr = shallowReadArray(self2); - const needsWrap = arr !== self2 && !isShallow(self2); - const methodFn = arr[method]; - if (methodFn !== arrayProto[method]) { - const result2 = methodFn.apply(self2, args); - return needsWrap ? toReactive(result2) : result2; - } - let wrappedFn = fn; - if (arr !== self2) { - if (needsWrap) { - wrappedFn = function(item, index) { - return fn.call(this, toReactive(item), index, self2); - }; - } else if (fn.length > 2) { - wrappedFn = function(item, index) { - return fn.call(this, item, index, self2); - }; - } - } - const result = methodFn.call(arr, wrappedFn, thisArg); - return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; -} -function reduce(self2, method, fn, args) { - const arr = shallowReadArray(self2); - let wrappedFn = fn; - if (arr !== self2) { - if (!isShallow(self2)) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, toReactive(item), index, self2); - }; - } else if (fn.length > 3) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, item, index, self2); - }; - } - } - return arr[method](wrappedFn, ...args); -} -function searchProxy(self2, method, args) { - const arr = toRaw(self2); - track(arr, "iterate", ARRAY_ITERATE_KEY); - const res = arr[method](...args); - if ((res === -1 || res === false) && isProxy(args[0])) { - args[0] = toRaw(args[0]); - return arr[method](...args); - } - return res; -} -function noTracking(self2, method, args = []) { - pauseTracking(); - startBatch(); - const res = toRaw(self2)[method].apply(self2, args); - endBatch(); - resetTracking(); - return res; -} -var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); -var builtInSymbols = new Set( - Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) -); -function hasOwnProperty2(key) { - if (!isSymbol(key)) key = String(key); - const obj = toRaw(this); - track(obj, "has", key); - return obj.hasOwnProperty(key); -} -var BaseReactiveHandler = class { - constructor(_isReadonly = false, _isShallow = false) { - this._isReadonly = _isReadonly; - this._isShallow = _isShallow; - } - get(target, key, receiver) { - if (key === "__v_skip") return target["__v_skip"]; - const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_isShallow") { - return isShallow2; - } else if (key === "__v_raw") { - if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype - // this means the receiver is a user proxy of the reactive proxy - Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { - return target; - } - return; - } - const targetIsArray = isArray(target); - if (!isReadonly2) { - let fn; - if (targetIsArray && (fn = arrayInstrumentations[key])) { - return fn; - } - if (key === "hasOwnProperty") { - return hasOwnProperty2; - } - } - const res = Reflect.get( - target, - key, - // if this is a proxy wrapping a ref, return methods using the raw ref - // as receiver so that we don't have to call `toRaw` on the ref in all - // its class methods - isRef2(target) ? target : receiver - ); - if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { - return res; - } - if (!isReadonly2) { - track(target, "get", key); - } - if (isShallow2) { - return res; - } - if (isRef2(res)) { - return targetIsArray && isIntegerKey(key) ? res : res.value; - } - if (isObject(res)) { - return isReadonly2 ? readonly(res) : reactive(res); - } - return res; - } -}; -var MutableReactiveHandler = class extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(false, isShallow2); - } - set(target, key, value, receiver) { - let oldValue = target[key]; - if (!this._isShallow) { - const isOldValueReadonly = isReadonly(oldValue); - if (!isShallow(value) && !isReadonly(value)) { - oldValue = toRaw(oldValue); - value = toRaw(value); - } - if (!isArray(target) && isRef2(oldValue) && !isRef2(value)) { - if (isOldValueReadonly) { - return false; - } else { - oldValue.value = value; - return true; - } - } - } - const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); - const result = Reflect.set( - target, - key, - value, - isRef2(target) ? target : receiver - ); - if (target === toRaw(receiver)) { - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - } - return result; - } - deleteProperty(target, key) { - const hadKey = hasOwn(target, key); - const oldValue = target[key]; - const result = Reflect.deleteProperty(target, key); - if (result && hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; - } - has(target, key) { - const result = Reflect.has(target, key); - if (!isSymbol(key) || !builtInSymbols.has(key)) { - track(target, "has", key); - } - return result; - } - ownKeys(target) { - track( - target, - "iterate", - isArray(target) ? "length" : ITERATE_KEY - ); - return Reflect.ownKeys(target); - } -}; -var ReadonlyReactiveHandler = class extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(true, isShallow2); - } - set(target, key) { - if (true) { - warn( - `Set operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } - deleteProperty(target, key) { - if (true) { - warn( - `Delete operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } -}; -var mutableHandlers = new MutableReactiveHandler(); -var readonlyHandlers = new ReadonlyReactiveHandler(); -var shallowReactiveHandlers = new MutableReactiveHandler(true); -var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); -var toShallow = (value) => value; -var getProto = (v) => Reflect.getPrototypeOf(v); -function createIterableMethod(method, isReadonly2, isShallow2) { - return function(...args) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const targetIsMap = isMap(rawTarget); - const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; - const isKeyOnly = method === "keys" && targetIsMap; - const innerIterator = target[method](...args); - const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; - !isReadonly2 && track( - rawTarget, - "iterate", - isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY - ); - return { - // iterator protocol - next() { - const { value, done } = innerIterator.next(); - return done ? { value, done } : { - value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), - done - }; - }, - // iterable protocol - [Symbol.iterator]() { - return this; - } - }; - }; -} -function createReadonlyMethod(type) { - return function(...args) { - if (true) { - const key = args[0] ? `on key "${args[0]}" ` : ``; - warn( - `${capitalize(type)} operation ${key}failed: target is readonly.`, - toRaw(this) - ); - } - return type === "delete" ? false : type === "clear" ? void 0 : this; - }; -} -function createInstrumentations(readonly2, shallow) { - const instrumentations = { - get(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "get", key); - } - track(rawTarget, "get", rawKey); - } - const { has } = getProto(rawTarget); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - if (has.call(rawTarget, key)) { - return wrap(target.get(key)); - } else if (has.call(rawTarget, rawKey)) { - return wrap(target.get(rawKey)); - } else if (target !== rawTarget) { - target.get(key); - } - }, - get size() { - const target = this["__v_raw"]; - !readonly2 && track(toRaw(target), "iterate", ITERATE_KEY); - return Reflect.get(target, "size", target); - }, - has(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "has", key); - } - track(rawTarget, "has", rawKey); - } - return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); - }, - forEach(callback, thisArg) { - const observed = this; - const target = observed["__v_raw"]; - const rawTarget = toRaw(target); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - !readonly2 && track(rawTarget, "iterate", ITERATE_KEY); - return target.forEach((value, key) => { - return callback.call(thisArg, wrap(value), wrap(key), observed); - }); - } - }; - extend( - instrumentations, - readonly2 ? { - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear") - } : { - add(value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const proto = getProto(target); - const hadKey = proto.has.call(target, value); - if (!hadKey) { - target.add(value); - trigger(target, "add", value, value); - } - return this; - }, - set(key, value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const { has, get } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else if (true) { - checkIdentityKeys(target, has, key); - } - const oldValue = get.call(target, key); - target.set(key, value); - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - return this; - }, - delete(key) { - const target = toRaw(this); - const { has, get } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else if (true) { - checkIdentityKeys(target, has, key); - } - const oldValue = get ? get.call(target, key) : void 0; - const result = target.delete(key); - if (hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; - }, - clear() { - const target = toRaw(this); - const hadItems = target.size !== 0; - const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; - const result = target.clear(); - if (hadItems) { - trigger( - target, - "clear", - void 0, - void 0, - oldTarget - ); - } - return result; - } - } - ); - const iteratorMethods = [ - "keys", - "values", - "entries", - Symbol.iterator - ]; - iteratorMethods.forEach((method) => { - instrumentations[method] = createIterableMethod(method, readonly2, shallow); - }); - return instrumentations; -} -function createInstrumentationGetter(isReadonly2, shallow) { - const instrumentations = createInstrumentations(isReadonly2, shallow); - return (target, key, receiver) => { - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_raw") { - return target; - } - return Reflect.get( - hasOwn(instrumentations, key) && key in target ? instrumentations : target, - key, - receiver - ); - }; -} -var mutableCollectionHandlers = { - get: createInstrumentationGetter(false, false) -}; -var shallowCollectionHandlers = { - get: createInstrumentationGetter(false, true) -}; -var readonlyCollectionHandlers = { - get: createInstrumentationGetter(true, false) -}; -var shallowReadonlyCollectionHandlers = { - get: createInstrumentationGetter(true, true) -}; -function checkIdentityKeys(target, has, key) { - const rawKey = toRaw(key); - if (rawKey !== key && has.call(target, rawKey)) { - const type = toRawType(target); - warn( - `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` - ); - } -} -var reactiveMap = /* @__PURE__ */ new WeakMap(); -var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); -var readonlyMap = /* @__PURE__ */ new WeakMap(); -var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); -function targetTypeMap(rawType) { - switch (rawType) { - case "Object": - case "Array": - return 1; - case "Map": - case "Set": - case "WeakMap": - case "WeakSet": - return 2; - default: - return 0; - } -} -function getTargetType(value) { - return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); -} -function reactive(target) { - if (isReadonly(target)) { - return target; - } - return createReactiveObject( - target, - false, - mutableHandlers, - mutableCollectionHandlers, - reactiveMap - ); -} -function shallowReactive(target) { - return createReactiveObject( - target, - false, - shallowReactiveHandlers, - shallowCollectionHandlers, - shallowReactiveMap - ); -} -function readonly(target) { - return createReactiveObject( - target, - true, - readonlyHandlers, - readonlyCollectionHandlers, - readonlyMap - ); -} -function shallowReadonly(target) { - return createReactiveObject( - target, - true, - shallowReadonlyHandlers, - shallowReadonlyCollectionHandlers, - shallowReadonlyMap - ); -} -function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { - if (!isObject(target)) { - if (true) { - warn( - `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( - target - )}` - ); - } - return target; - } - if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { - return target; - } - const targetType = getTargetType(target); - if (targetType === 0) { - return target; - } - const existingProxy = proxyMap.get(target); - if (existingProxy) { - return existingProxy; - } - const proxy = new Proxy( - target, - targetType === 2 ? collectionHandlers : baseHandlers - ); - proxyMap.set(target, proxy); - return proxy; -} -function isReactive(value) { - if (isReadonly(value)) { - return isReactive(value["__v_raw"]); - } - return !!(value && value["__v_isReactive"]); -} -function isReadonly(value) { - return !!(value && value["__v_isReadonly"]); -} -function isShallow(value) { - return !!(value && value["__v_isShallow"]); -} -function isProxy(value) { - return value ? !!value["__v_raw"] : false; -} -function toRaw(observed) { - const raw = observed && observed["__v_raw"]; - return raw ? toRaw(raw) : observed; -} -function markRaw(value) { - if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { - def(value, "__v_skip", true); - } - return value; -} -var toReactive = (value) => isObject(value) ? reactive(value) : value; -var toReadonly = (value) => isObject(value) ? readonly(value) : value; -function isRef2(r) { - return r ? r["__v_isRef"] === true : false; -} -function ref(value) { - return createRef(value, false); -} -function shallowRef(value) { - return createRef(value, true); -} -function createRef(rawValue, shallow) { - if (isRef2(rawValue)) { - return rawValue; - } - return new RefImpl(rawValue, shallow); -} -var RefImpl = class { - constructor(value, isShallow2) { - this.dep = new Dep(); - this["__v_isRef"] = true; - this["__v_isShallow"] = false; - this._rawValue = isShallow2 ? value : toRaw(value); - this._value = isShallow2 ? value : toReactive(value); - this["__v_isShallow"] = isShallow2; - } - get value() { - if (true) { - this.dep.track({ - target: this, - type: "get", - key: "value" - }); - } else { - this.dep.track(); - } - return this._value; - } - set value(newValue) { - const oldValue = this._rawValue; - const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); - newValue = useDirectValue ? newValue : toRaw(newValue); - if (hasChanged(newValue, oldValue)) { - this._rawValue = newValue; - this._value = useDirectValue ? newValue : toReactive(newValue); - if (true) { - this.dep.trigger({ - target: this, - type: "set", - key: "value", - newValue, - oldValue - }); - } else { - this.dep.trigger(); - } - } - } -}; -function triggerRef(ref2) { - if (ref2.dep) { - if (true) { - ref2.dep.trigger({ - target: ref2, - type: "set", - key: "value", - newValue: ref2._value - }); - } else { - ref2.dep.trigger(); - } - } -} -function unref(ref2) { - return isRef2(ref2) ? ref2.value : ref2; -} -function toValue(source) { - return isFunction(source) ? source() : unref(source); -} -var shallowUnwrapHandlers = { - get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), - set: (target, key, value, receiver) => { - const oldValue = target[key]; - if (isRef2(oldValue) && !isRef2(value)) { - oldValue.value = value; - return true; - } else { - return Reflect.set(target, key, value, receiver); - } - } -}; -function proxyRefs(objectWithRefs) { - return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); -} -var CustomRefImpl = class { - constructor(factory) { - this["__v_isRef"] = true; - this._value = void 0; - const dep = this.dep = new Dep(); - const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); - this._get = get; - this._set = set; - } - get value() { - return this._value = this._get(); - } - set value(newVal) { - this._set(newVal); - } -}; -function customRef(factory) { - return new CustomRefImpl(factory); -} -function toRefs(object) { - if (!isProxy(object)) { - warn(`toRefs() expects a reactive object but received a plain one.`); - } - const ret = isArray(object) ? new Array(object.length) : {}; - for (const key in object) { - ret[key] = propertyToRef(object, key); - } - return ret; -} -var ObjectRefImpl = class { - constructor(_object, _key, _defaultValue) { - this._object = _object; - this._key = _key; - this._defaultValue = _defaultValue; - this["__v_isRef"] = true; - this._value = void 0; - } - get value() { - const val = this._object[this._key]; - return this._value = val === void 0 ? this._defaultValue : val; - } - set value(newVal) { - this._object[this._key] = newVal; - } - get dep() { - return getDepFromReactive(toRaw(this._object), this._key); - } -}; -var GetterRefImpl = class { - constructor(_getter) { - this._getter = _getter; - this["__v_isRef"] = true; - this["__v_isReadonly"] = true; - this._value = void 0; - } - get value() { - return this._value = this._getter(); - } -}; -function toRef(source, key, defaultValue) { - if (isRef2(source)) { - return source; - } else if (isFunction(source)) { - return new GetterRefImpl(source); - } else if (isObject(source) && arguments.length > 1) { - return propertyToRef(source, key, defaultValue); - } else { - return ref(source); - } -} -function propertyToRef(source, key, defaultValue) { - const val = source[key]; - return isRef2(val) ? val : new ObjectRefImpl(source, key, defaultValue); -} -var ComputedRefImpl = class { - constructor(fn, setter, isSSR) { - this.fn = fn; - this.setter = setter; - this._value = void 0; - this.dep = new Dep(this); - this.__v_isRef = true; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 16; - this.globalVersion = globalVersion - 1; - this.next = void 0; - this.effect = this; - this["__v_isReadonly"] = !setter; - this.isSSR = isSSR; - } - /** - * @internal - */ - notify() { - this.flags |= 16; - if (!(this.flags & 8) && // avoid infinite self recursion - activeSub !== this) { - batch(this, true); - return true; - } else if (true) ; - } - get value() { - const link = true ? this.dep.track({ - target: this, - type: "get", - key: "value" - }) : this.dep.track(); - refreshComputed(this); - if (link) { - link.version = this.dep.version; - } - return this._value; - } - set value(newValue) { - if (this.setter) { - this.setter(newValue); - } else if (true) { - warn("Write operation failed: computed value is readonly"); - } - } -}; -function computed(getterOrOptions, debugOptions, isSSR = false) { - let getter; - let setter; - if (isFunction(getterOrOptions)) { - getter = getterOrOptions; - } else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - const cRef = new ComputedRefImpl(getter, setter, isSSR); - if (debugOptions && !isSSR) { - cRef.onTrack = debugOptions.onTrack; - cRef.onTrigger = debugOptions.onTrigger; - } - return cRef; -} -var TrackOpTypes = { - "GET": "get", - "HAS": "has", - "ITERATE": "iterate" -}; -var TriggerOpTypes = { - "SET": "set", - "ADD": "add", - "DELETE": "delete", - "CLEAR": "clear" -}; -var INITIAL_WATCHER_VALUE = {}; -var cleanupMap = /* @__PURE__ */ new WeakMap(); -var activeWatcher = void 0; -function getCurrentWatcher() { - return activeWatcher; -} -function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { - if (owner) { - let cleanups = cleanupMap.get(owner); - if (!cleanups) cleanupMap.set(owner, cleanups = []); - cleanups.push(cleanupFn); - } else if (!failSilently) { - warn( - `onWatcherCleanup() was called when there was no active watcher to associate with.` - ); - } -} -function watch(source, cb, options = EMPTY_OBJ) { - const { immediate, deep, once, scheduler, augmentJob, call } = options; - const warnInvalidSource = (s) => { - (options.onWarn || warn)( - `Invalid watch source: `, - s, - `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` - ); - }; - const reactiveGetter = (source2) => { - if (deep) return source2; - if (isShallow(source2) || deep === false || deep === 0) - return traverse(source2, 1); - return traverse(source2); - }; - let effect2; - let getter; - let cleanup; - let boundCleanup; - let forceTrigger = false; - let isMultiSource = false; - if (isRef2(source)) { - getter = () => source.value; - forceTrigger = isShallow(source); - } else if (isReactive(source)) { - getter = () => reactiveGetter(source); - forceTrigger = true; - } else if (isArray(source)) { - isMultiSource = true; - forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); - getter = () => source.map((s) => { - if (isRef2(s)) { - return s.value; - } else if (isReactive(s)) { - return reactiveGetter(s); - } else if (isFunction(s)) { - return call ? call(s, 2) : s(); - } else { - warnInvalidSource(s); - } - }); - } else if (isFunction(source)) { - if (cb) { - getter = call ? () => call(source, 2) : source; - } else { - getter = () => { - if (cleanup) { - pauseTracking(); - try { - cleanup(); - } finally { - resetTracking(); - } - } - const currentEffect = activeWatcher; - activeWatcher = effect2; - try { - return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); - } finally { - activeWatcher = currentEffect; - } - }; - } - } else { - getter = NOOP; - warnInvalidSource(source); - } - if (cb && deep) { - const baseGetter = getter; - const depth = deep === true ? Infinity : deep; - getter = () => traverse(baseGetter(), depth); - } - const scope = getCurrentScope(); - const watchHandle = () => { - effect2.stop(); - if (scope && scope.active) { - remove(scope.effects, effect2); - } - }; - if (once && cb) { - const _cb = cb; - cb = (...args) => { - _cb(...args); - watchHandle(); - }; - } - let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; - const job = (immediateFirstRun) => { - if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) { - return; - } - if (cb) { - const newValue = effect2.run(); - if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { - if (cleanup) { - cleanup(); - } - const currentWatcher = activeWatcher; - activeWatcher = effect2; - try { - const args = [ - newValue, - // pass undefined as the old value when it's changed for the first time - oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, - boundCleanup - ]; - oldValue = newValue; - call ? call(cb, 3, args) : ( - // @ts-expect-error - cb(...args) - ); - } finally { - activeWatcher = currentWatcher; - } - } - } else { - effect2.run(); - } - }; - if (augmentJob) { - augmentJob(job); - } - effect2 = new ReactiveEffect(getter); - effect2.scheduler = scheduler ? () => scheduler(job, false) : job; - boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2); - cleanup = effect2.onStop = () => { - const cleanups = cleanupMap.get(effect2); - if (cleanups) { - if (call) { - call(cleanups, 4); - } else { - for (const cleanup2 of cleanups) cleanup2(); - } - cleanupMap.delete(effect2); - } - }; - if (true) { - effect2.onTrack = options.onTrack; - effect2.onTrigger = options.onTrigger; - } - if (cb) { - if (immediate) { - job(true); - } else { - oldValue = effect2.run(); - } - } else if (scheduler) { - scheduler(job.bind(null, true), true); - } else { - effect2.run(); - } - watchHandle.pause = effect2.pause.bind(effect2); - watchHandle.resume = effect2.resume.bind(effect2); - watchHandle.stop = watchHandle; - return watchHandle; -} -function traverse(value, depth = Infinity, seen) { - if (depth <= 0 || !isObject(value) || value["__v_skip"]) { - return value; - } - seen = seen || /* @__PURE__ */ new Set(); - if (seen.has(value)) { - return value; - } - seen.add(value); - depth--; - if (isRef2(value)) { - traverse(value.value, depth, seen); - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - traverse(value[i], depth, seen); - } - } else if (isSet(value) || isMap(value)) { - value.forEach((v) => { - traverse(v, depth, seen); - }); - } else if (isPlainObject(value)) { - for (const key in value) { - traverse(value[key], depth, seen); - } - for (const key of Object.getOwnPropertySymbols(value)) { - if (Object.prototype.propertyIsEnumerable.call(value, key)) { - traverse(value[key], depth, seen); - } - } - } - return value; -} - -// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js -var stack = []; -function pushWarningContext(vnode) { - stack.push(vnode); -} -function popWarningContext() { - stack.pop(); -} -var isWarning = false; -function warn$1(msg, ...args) { - if (isWarning) return; - isWarning = true; - pauseTracking(); - const instance = stack.length ? stack[stack.length - 1].component : null; - const appWarnHandler = instance && instance.appContext.config.warnHandler; - const trace = getComponentTrace(); - if (appWarnHandler) { - callWithErrorHandling( - appWarnHandler, - instance, - 11, - [ - // eslint-disable-next-line no-restricted-syntax - msg + args.map((a) => { - var _a, _b; - return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); - }).join(""), - instance && instance.proxy, - trace.map( - ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` - ).join("\n"), - trace - ] - ); - } else { - const warnArgs = [`[Vue warn]: ${msg}`, ...args]; - if (trace.length && // avoid spamming console during tests - true) { - warnArgs.push(` -`, ...formatTrace(trace)); - } - console.warn(...warnArgs); - } - resetTracking(); - isWarning = false; -} -function getComponentTrace() { - let currentVNode = stack[stack.length - 1]; - if (!currentVNode) { - return []; - } - const normalizedStack = []; - while (currentVNode) { - const last = normalizedStack[0]; - if (last && last.vnode === currentVNode) { - last.recurseCount++; - } else { - normalizedStack.push({ - vnode: currentVNode, - recurseCount: 0 - }); - } - const parentInstance = currentVNode.component && currentVNode.component.parent; - currentVNode = parentInstance && parentInstance.vnode; - } - return normalizedStack; -} -function formatTrace(trace) { - const logs = []; - trace.forEach((entry, i) => { - logs.push(...i === 0 ? [] : [` -`], ...formatTraceEntry(entry)); - }); - return logs; -} -function formatTraceEntry({ vnode, recurseCount }) { - const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; - const isRoot = vnode.component ? vnode.component.parent == null : false; - const open = ` at <${formatComponentName( - vnode.component, - vnode.type, - isRoot - )}`; - const close = `>` + postfix; - return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; -} -function formatProps(props) { - const res = []; - const keys = Object.keys(props); - keys.slice(0, 3).forEach((key) => { - res.push(...formatProp(key, props[key])); - }); - if (keys.length > 3) { - res.push(` ...`); - } - return res; -} -function formatProp(key, value, raw) { - if (isString(value)) { - value = JSON.stringify(value); - return raw ? value : [`${key}=${value}`]; - } else if (typeof value === "number" || typeof value === "boolean" || value == null) { - return raw ? value : [`${key}=${value}`]; - } else if (isRef2(value)) { - value = formatProp(key, toRaw(value.value), true); - return raw ? value : [`${key}=Ref<`, value, `>`]; - } else if (isFunction(value)) { - return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; - } else { - value = toRaw(value); - return raw ? value : [`${key}=`, value]; - } -} -function assertNumber(val, type) { - if (false) return; - if (val === void 0) { - return; - } else if (typeof val !== "number") { - warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); - } else if (isNaN(val)) { - warn$1(`${type} is NaN - the duration expression might be incorrect.`); - } -} -var ErrorCodes = { - "SETUP_FUNCTION": 0, - "0": "SETUP_FUNCTION", - "RENDER_FUNCTION": 1, - "1": "RENDER_FUNCTION", - "NATIVE_EVENT_HANDLER": 5, - "5": "NATIVE_EVENT_HANDLER", - "COMPONENT_EVENT_HANDLER": 6, - "6": "COMPONENT_EVENT_HANDLER", - "VNODE_HOOK": 7, - "7": "VNODE_HOOK", - "DIRECTIVE_HOOK": 8, - "8": "DIRECTIVE_HOOK", - "TRANSITION_HOOK": 9, - "9": "TRANSITION_HOOK", - "APP_ERROR_HANDLER": 10, - "10": "APP_ERROR_HANDLER", - "APP_WARN_HANDLER": 11, - "11": "APP_WARN_HANDLER", - "FUNCTION_REF": 12, - "12": "FUNCTION_REF", - "ASYNC_COMPONENT_LOADER": 13, - "13": "ASYNC_COMPONENT_LOADER", - "SCHEDULER": 14, - "14": "SCHEDULER", - "COMPONENT_UPDATE": 15, - "15": "COMPONENT_UPDATE", - "APP_UNMOUNT_CLEANUP": 16, - "16": "APP_UNMOUNT_CLEANUP" -}; -var ErrorTypeStrings$1 = { - ["sp"]: "serverPrefetch hook", - ["bc"]: "beforeCreate hook", - ["c"]: "created hook", - ["bm"]: "beforeMount hook", - ["m"]: "mounted hook", - ["bu"]: "beforeUpdate hook", - ["u"]: "updated", - ["bum"]: "beforeUnmount hook", - ["um"]: "unmounted hook", - ["a"]: "activated hook", - ["da"]: "deactivated hook", - ["ec"]: "errorCaptured hook", - ["rtc"]: "renderTracked hook", - ["rtg"]: "renderTriggered hook", - [0]: "setup function", - [1]: "render function", - [2]: "watcher getter", - [3]: "watcher callback", - [4]: "watcher cleanup function", - [5]: "native event handler", - [6]: "component event handler", - [7]: "vnode hook", - [8]: "directive hook", - [9]: "transition hook", - [10]: "app errorHandler", - [11]: "app warnHandler", - [12]: "ref function", - [13]: "async component loader", - [14]: "scheduler flush", - [15]: "component update", - [16]: "app unmount cleanup function" -}; -function callWithErrorHandling(fn, instance, type, args) { - try { - return args ? fn(...args) : fn(); - } catch (err) { - handleError(err, instance, type); - } -} -function callWithAsyncErrorHandling(fn, instance, type, args) { - if (isFunction(fn)) { - const res = callWithErrorHandling(fn, instance, type, args); - if (res && isPromise(res)) { - res.catch((err) => { - handleError(err, instance, type); - }); - } - return res; - } - if (isArray(fn)) { - const values = []; - for (let i = 0; i < fn.length; i++) { - values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); - } - return values; - } else if (true) { - warn$1( - `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` - ); - } -} -function handleError(err, instance, type, throwInDev = true) { - const contextVNode = instance ? instance.vnode : null; - const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; - if (instance) { - let cur = instance.parent; - const exposedInstance = instance.proxy; - const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; - while (cur) { - const errorCapturedHooks = cur.ec; - if (errorCapturedHooks) { - for (let i = 0; i < errorCapturedHooks.length; i++) { - if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { - return; - } - } - } - cur = cur.parent; - } - if (errorHandler) { - pauseTracking(); - callWithErrorHandling(errorHandler, null, 10, [ - err, - exposedInstance, - errorInfo - ]); - resetTracking(); - return; - } - } - logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); -} -function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { - if (true) { - const info = ErrorTypeStrings$1[type]; - if (contextVNode) { - pushWarningContext(contextVNode); - } - warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); - if (contextVNode) { - popWarningContext(); - } - if (throwInDev) { - throw err; - } else { - console.error(err); - } - } else if (throwInProd) { - throw err; - } else { - console.error(err); - } -} -var queue = []; -var flushIndex = -1; -var pendingPostFlushCbs = []; -var activePostFlushCbs = null; -var postFlushIndex = 0; -var resolvedPromise = Promise.resolve(); -var currentFlushPromise = null; -var RECURSION_LIMIT = 100; -function nextTick(fn) { - const p2 = currentFlushPromise || resolvedPromise; - return fn ? p2.then(this ? fn.bind(this) : fn) : p2; -} -function findInsertionIndex(id) { - let start = flushIndex + 1; - let end = queue.length; - while (start < end) { - const middle = start + end >>> 1; - const middleJob = queue[middle]; - const middleJobId = getId(middleJob); - if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { - start = middle + 1; - } else { - end = middle; - } - } - return start; -} -function queueJob(job) { - if (!(job.flags & 1)) { - const jobId = getId(job); - const lastJob = queue[queue.length - 1]; - if (!lastJob || // fast path when the job id is larger than the tail - !(job.flags & 2) && jobId >= getId(lastJob)) { - queue.push(job); - } else { - queue.splice(findInsertionIndex(jobId), 0, job); - } - job.flags |= 1; - queueFlush(); - } -} -function queueFlush() { - if (!currentFlushPromise) { - currentFlushPromise = resolvedPromise.then(flushJobs); - } -} -function queuePostFlushCb(cb) { - if (!isArray(cb)) { - if (activePostFlushCbs && cb.id === -1) { - activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); - } else if (!(cb.flags & 1)) { - pendingPostFlushCbs.push(cb); - cb.flags |= 1; - } - } else { - pendingPostFlushCbs.push(...cb); - } - queueFlush(); -} -function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (; i < queue.length; i++) { - const cb = queue[i]; - if (cb && cb.flags & 2) { - if (instance && cb.id !== instance.uid) { - continue; - } - if (checkRecursiveUpdates(seen, cb)) { - continue; - } - queue.splice(i, 1); - i--; - if (cb.flags & 4) { - cb.flags &= -2; - } - cb(); - if (!(cb.flags & 4)) { - cb.flags &= -2; - } - } - } -} -function flushPostFlushCbs(seen) { - if (pendingPostFlushCbs.length) { - const deduped = [...new Set(pendingPostFlushCbs)].sort( - (a, b) => getId(a) - getId(b) - ); - pendingPostFlushCbs.length = 0; - if (activePostFlushCbs) { - activePostFlushCbs.push(...deduped); - return; - } - activePostFlushCbs = deduped; - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { - const cb = activePostFlushCbs[postFlushIndex]; - if (checkRecursiveUpdates(seen, cb)) { - continue; - } - if (cb.flags & 4) { - cb.flags &= -2; - } - if (!(cb.flags & 8)) cb(); - cb.flags &= -2; - } - activePostFlushCbs = null; - postFlushIndex = 0; - } -} -var getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; -function flushJobs(seen) { - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; - try { - for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job && !(job.flags & 8)) { - if (check(job)) { - continue; - } - if (job.flags & 4) { - job.flags &= ~1; - } - callWithErrorHandling( - job, - job.i, - job.i ? 15 : 14 - ); - if (!(job.flags & 4)) { - job.flags &= ~1; - } - } - } - } finally { - for (; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job) { - job.flags &= -2; - } - } - flushIndex = -1; - queue.length = 0; - flushPostFlushCbs(seen); - currentFlushPromise = null; - if (queue.length || pendingPostFlushCbs.length) { - flushJobs(seen); - } - } -} -function checkRecursiveUpdates(seen, fn) { - const count = seen.get(fn) || 0; - if (count > RECURSION_LIMIT) { - const instance = fn.i; - const componentName = instance && getComponentName(instance.type); - handleError( - `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, - null, - 10 - ); - return true; - } - seen.set(fn, count + 1); - return false; -} -var isHmrUpdating = false; -var hmrDirtyComponents = /* @__PURE__ */ new Map(); -if (true) { - getGlobalThis().__VUE_HMR_RUNTIME__ = { - createRecord: tryWrap(createRecord), - rerender: tryWrap(rerender), - reload: tryWrap(reload) - }; -} -var map = /* @__PURE__ */ new Map(); -function registerHMR(instance) { - const id = instance.type.__hmrId; - let record = map.get(id); - if (!record) { - createRecord(id, instance.type); - record = map.get(id); - } - record.instances.add(instance); -} -function unregisterHMR(instance) { - map.get(instance.type.__hmrId).instances.delete(instance); -} -function createRecord(id, initialDef) { - if (map.has(id)) { - return false; - } - map.set(id, { - initialDef: normalizeClassComponent(initialDef), - instances: /* @__PURE__ */ new Set() - }); - return true; -} -function normalizeClassComponent(component) { - return isClassComponent(component) ? component.__vccOpts : component; -} -function rerender(id, newRender) { - const record = map.get(id); - if (!record) { - return; - } - record.initialDef.render = newRender; - [...record.instances].forEach((instance) => { - if (newRender) { - instance.render = newRender; - normalizeClassComponent(instance.type).render = newRender; - } - instance.renderCache = []; - isHmrUpdating = true; - instance.update(); - isHmrUpdating = false; - }); -} -function reload(id, newComp) { - const record = map.get(id); - if (!record) return; - newComp = normalizeClassComponent(newComp); - updateComponentDef(record.initialDef, newComp); - const instances = [...record.instances]; - for (let i = 0; i < instances.length; i++) { - const instance = instances[i]; - const oldComp = normalizeClassComponent(instance.type); - let dirtyInstances = hmrDirtyComponents.get(oldComp); - if (!dirtyInstances) { - if (oldComp !== record.initialDef) { - updateComponentDef(oldComp, newComp); - } - hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); - } - dirtyInstances.add(instance); - instance.appContext.propsCache.delete(instance.type); - instance.appContext.emitsCache.delete(instance.type); - instance.appContext.optionsCache.delete(instance.type); - if (instance.ceReload) { - dirtyInstances.add(instance); - instance.ceReload(newComp.styles); - dirtyInstances.delete(instance); - } else if (instance.parent) { - queueJob(() => { - isHmrUpdating = true; - instance.parent.update(); - isHmrUpdating = false; - dirtyInstances.delete(instance); - }); - } else if (instance.appContext.reload) { - instance.appContext.reload(); - } else if (typeof window !== "undefined") { - window.location.reload(); - } else { - console.warn( - "[HMR] Root or manually mounted instance modified. Full reload required." - ); - } - if (instance.root.ce && instance !== instance.root) { - instance.root.ce._removeChildStyle(oldComp); - } - } - queuePostFlushCb(() => { - hmrDirtyComponents.clear(); - }); -} -function updateComponentDef(oldComp, newComp) { - extend(oldComp, newComp); - for (const key in oldComp) { - if (key !== "__file" && !(key in newComp)) { - delete oldComp[key]; - } - } -} -function tryWrap(fn) { - return (id, arg) => { - try { - return fn(id, arg); - } catch (e) { - console.error(e); - console.warn( - `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` - ); - } - }; -} -var devtools$1; -var buffer = []; -var devtoolsNotInstalled = false; -function emit$1(event, ...args) { - if (devtools$1) { - devtools$1.emit(event, ...args); - } else if (!devtoolsNotInstalled) { - buffer.push({ event, args }); - } -} -function setDevtoolsHook$1(hook, target) { - var _a, _b; - devtools$1 = hook; - if (devtools$1) { - devtools$1.enabled = true; - buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); - buffer = []; - } else if ( - // handle late devtools injection - only do this if we are in an actual - // browser environment to avoid the timer handle stalling test runner exit - // (#4815) - typeof window !== "undefined" && // some envs mock window but not fully - window.HTMLElement && // also exclude jsdom - // eslint-disable-next-line no-restricted-syntax - !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) - ) { - const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; - replay.push((newHook) => { - setDevtoolsHook$1(newHook, target); - }); - setTimeout(() => { - if (!devtools$1) { - target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; - devtoolsNotInstalled = true; - buffer = []; - } - }, 3e3); - } else { - devtoolsNotInstalled = true; - buffer = []; - } -} -function devtoolsInitApp(app, version2) { - emit$1("app:init", app, version2, { - Fragment, - Text, - Comment, - Static - }); -} -function devtoolsUnmountApp(app) { - emit$1("app:unmount", app); -} -var devtoolsComponentAdded = createDevtoolsComponentHook( - "component:added" - /* COMPONENT_ADDED */ -); -var devtoolsComponentUpdated = createDevtoolsComponentHook( - "component:updated" - /* COMPONENT_UPDATED */ -); -var _devtoolsComponentRemoved = createDevtoolsComponentHook( - "component:removed" - /* COMPONENT_REMOVED */ -); -var devtoolsComponentRemoved = (component) => { - if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered - !devtools$1.cleanupBuffer(component)) { - _devtoolsComponentRemoved(component); - } -}; -function createDevtoolsComponentHook(hook) { - return (component) => { - emit$1( - hook, - component.appContext.app, - component.uid, - component.parent ? component.parent.uid : void 0, - component - ); - }; -} -var devtoolsPerfStart = createDevtoolsPerformanceHook( - "perf:start" - /* PERFORMANCE_START */ -); -var devtoolsPerfEnd = createDevtoolsPerformanceHook( - "perf:end" - /* PERFORMANCE_END */ -); -function createDevtoolsPerformanceHook(hook) { - return (component, type, time) => { - emit$1(hook, component.appContext.app, component.uid, component, type, time); - }; -} -function devtoolsComponentEmit(component, event, params) { - emit$1( - "component:emit", - component.appContext.app, - component, - event, - params - ); -} -var currentRenderingInstance = null; -var currentScopeId = null; -function setCurrentRenderingInstance(instance) { - const prev = currentRenderingInstance; - currentRenderingInstance = instance; - currentScopeId = instance && instance.type.__scopeId || null; - return prev; -} -function pushScopeId(id) { - currentScopeId = id; -} -function popScopeId() { - currentScopeId = null; -} -var withScopeId = (_id) => withCtx; -function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { - if (!ctx) return fn; - if (fn._n) { - return fn; - } - const renderFnWithContext = (...args) => { - if (renderFnWithContext._d) { - setBlockTracking(-1); - } - const prevInstance = setCurrentRenderingInstance(ctx); - let res; - try { - res = fn(...args); - } finally { - setCurrentRenderingInstance(prevInstance); - if (renderFnWithContext._d) { - setBlockTracking(1); - } - } - if (true) { - devtoolsComponentUpdated(ctx); - } - return res; - }; - renderFnWithContext._n = true; - renderFnWithContext._c = true; - renderFnWithContext._d = true; - return renderFnWithContext; -} -function validateDirectiveName(name) { - if (isBuiltInDirective(name)) { - warn$1("Do not use built-in directive ids as custom directive id: " + name); - } -} -function withDirectives(vnode, directives) { - if (currentRenderingInstance === null) { - warn$1(`withDirectives can only be used inside render functions.`); - return vnode; - } - const instance = getComponentPublicInstance(currentRenderingInstance); - const bindings = vnode.dirs || (vnode.dirs = []); - for (let i = 0; i < directives.length; i++) { - let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; - if (dir) { - if (isFunction(dir)) { - dir = { - mounted: dir, - updated: dir - }; - } - if (dir.deep) { - traverse(value); - } - bindings.push({ - dir, - instance, - value, - oldValue: void 0, - arg, - modifiers - }); - } - } - return vnode; -} -function invokeDirectiveHook(vnode, prevVNode, instance, name) { - const bindings = vnode.dirs; - const oldBindings = prevVNode && prevVNode.dirs; - for (let i = 0; i < bindings.length; i++) { - const binding = bindings[i]; - if (oldBindings) { - binding.oldValue = oldBindings[i].value; - } - let hook = binding.dir[name]; - if (hook) { - pauseTracking(); - callWithAsyncErrorHandling(hook, instance, 8, [ - vnode.el, - binding, - vnode, - prevVNode - ]); - resetTracking(); - } - } -} -var TeleportEndKey = Symbol("_vte"); -var isTeleport = (type) => type.__isTeleport; -var isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); -var isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); -var isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; -var isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; -var resolveTarget = (props, select) => { - const targetSelector = props && props.to; - if (isString(targetSelector)) { - if (!select) { - warn$1( - `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` - ); - return null; - } else { - const target = select(targetSelector); - if (!target && !isTeleportDisabled(props)) { - warn$1( - `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` - ); - } - return target; - } - } else { - if (!targetSelector && !isTeleportDisabled(props)) { - warn$1(`Invalid Teleport target: ${targetSelector}`); - } - return targetSelector; - } -}; -var TeleportImpl = { - name: "Teleport", - __isTeleport: true, - process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { - const { - mc: mountChildren, - pc: patchChildren, - pbc: patchBlockChildren, - o: { insert, querySelector, createText, createComment } - } = internals; - const disabled = isTeleportDisabled(n2.props); - let { shapeFlag, children, dynamicChildren } = n2; - if (isHmrUpdating) { - optimized = false; - dynamicChildren = null; - } - if (n1 == null) { - const placeholder = n2.el = true ? createComment("teleport start") : createText(""); - const mainAnchor = n2.anchor = true ? createComment("teleport end") : createText(""); - insert(placeholder, container, anchor); - insert(mainAnchor, container, anchor); - const mount = (container2, anchor2) => { - if (shapeFlag & 16) { - if (parentComponent && parentComponent.isCE) { - parentComponent.ce._teleportTarget = container2; - } - mountChildren( - children, - container2, - anchor2, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - optimized - ); - } - }; - const mountToTarget = () => { - const target = n2.target = resolveTarget(n2.props, querySelector); - const targetAnchor = prepareAnchor(target, n2, createText, insert); - if (target) { - if (namespace !== "svg" && isTargetSVG(target)) { - namespace = "svg"; - } else if (namespace !== "mathml" && isTargetMathML(target)) { - namespace = "mathml"; - } - if (!disabled) { - mount(target, targetAnchor); - updateCssVars(n2, false); - } - } else if (!disabled) { - warn$1( - "Invalid Teleport target on mount:", - target, - `(${typeof target})` - ); - } - }; - if (disabled) { - mount(container, mainAnchor); - updateCssVars(n2, true); - } - if (isTeleportDeferred(n2.props)) { - n2.el.__isMounted = false; - queuePostRenderEffect(() => { - mountToTarget(); - delete n2.el.__isMounted; - }, parentSuspense); - } else { - mountToTarget(); - } - } else { - if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { - queuePostRenderEffect(() => { - TeleportImpl.process( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - optimized, - internals - ); - }, parentSuspense); - return; - } - n2.el = n1.el; - n2.targetStart = n1.targetStart; - const mainAnchor = n2.anchor = n1.anchor; - const target = n2.target = n1.target; - const targetAnchor = n2.targetAnchor = n1.targetAnchor; - const wasDisabled = isTeleportDisabled(n1.props); - const currentContainer = wasDisabled ? container : target; - const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; - if (namespace === "svg" || isTargetSVG(target)) { - namespace = "svg"; - } else if (namespace === "mathml" || isTargetMathML(target)) { - namespace = "mathml"; - } - if (dynamicChildren) { - patchBlockChildren( - n1.dynamicChildren, - dynamicChildren, - currentContainer, - parentComponent, - parentSuspense, - namespace, - slotScopeIds - ); - traverseStaticChildren(n1, n2, false); - } else if (!optimized) { - patchChildren( - n1, - n2, - currentContainer, - currentAnchor, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - false - ); - } - if (disabled) { - if (!wasDisabled) { - moveTeleport( - n2, - container, - mainAnchor, - internals, - 1 - ); - } else { - if (n2.props && n1.props && n2.props.to !== n1.props.to) { - n2.props.to = n1.props.to; - } - } - } else { - if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { - const nextTarget = n2.target = resolveTarget( - n2.props, - querySelector - ); - if (nextTarget) { - moveTeleport( - n2, - nextTarget, - null, - internals, - 0 - ); - } else if (true) { - warn$1( - "Invalid Teleport target on update:", - target, - `(${typeof target})` - ); - } - } else if (wasDisabled) { - moveTeleport( - n2, - target, - targetAnchor, - internals, - 1 - ); - } - } - updateCssVars(n2, disabled); - } - }, - remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { - const { - shapeFlag, - children, - anchor, - targetStart, - targetAnchor, - target, - props - } = vnode; - if (target) { - hostRemove(targetStart); - hostRemove(targetAnchor); - } - doRemove && hostRemove(anchor); - if (shapeFlag & 16) { - const shouldRemove = doRemove || !isTeleportDisabled(props); - for (let i = 0; i < children.length; i++) { - const child = children[i]; - unmount( - child, - parentComponent, - parentSuspense, - shouldRemove, - !!child.dynamicChildren - ); - } - } - }, - move: moveTeleport, - hydrate: hydrateTeleport -}; -function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { - if (moveType === 0) { - insert(vnode.targetAnchor, container, parentAnchor); - } - const { el, anchor, shapeFlag, children, props } = vnode; - const isReorder = moveType === 2; - if (isReorder) { - insert(el, container, parentAnchor); - } - if (!isReorder || isTeleportDisabled(props)) { - if (shapeFlag & 16) { - for (let i = 0; i < children.length; i++) { - move( - children[i], - container, - parentAnchor, - 2 - ); - } - } - } - if (isReorder) { - insert(anchor, container, parentAnchor); - } -} -function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { - o: { nextSibling, parentNode, querySelector, insert, createText } -}, hydrateChildren) { - const target = vnode.target = resolveTarget( - vnode.props, - querySelector - ); - if (target) { - const disabled = isTeleportDisabled(vnode.props); - const targetNode = target._lpa || target.firstChild; - if (vnode.shapeFlag & 16) { - if (disabled) { - vnode.anchor = hydrateChildren( - nextSibling(node), - vnode, - parentNode(node), - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - vnode.targetStart = targetNode; - vnode.targetAnchor = targetNode && nextSibling(targetNode); - } else { - vnode.anchor = nextSibling(node); - let targetAnchor = targetNode; - while (targetAnchor) { - if (targetAnchor && targetAnchor.nodeType === 8) { - if (targetAnchor.data === "teleport start anchor") { - vnode.targetStart = targetAnchor; - } else if (targetAnchor.data === "teleport anchor") { - vnode.targetAnchor = targetAnchor; - target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); - break; - } - } - targetAnchor = nextSibling(targetAnchor); - } - if (!vnode.targetAnchor) { - prepareAnchor(target, vnode, createText, insert); - } - hydrateChildren( - targetNode && nextSibling(targetNode), - vnode, - target, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - } - updateCssVars(vnode, disabled); - } - return vnode.anchor && nextSibling(vnode.anchor); -} -var Teleport = TeleportImpl; -function updateCssVars(vnode, isDisabled) { - const ctx = vnode.ctx; - if (ctx && ctx.ut) { - let node, anchor; - if (isDisabled) { - node = vnode.el; - anchor = vnode.anchor; - } else { - node = vnode.targetStart; - anchor = vnode.targetAnchor; - } - while (node && node !== anchor) { - if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); - node = node.nextSibling; - } - ctx.ut(); - } -} -function prepareAnchor(target, vnode, createText, insert) { - const targetStart = vnode.targetStart = createText(""); - const targetAnchor = vnode.targetAnchor = createText(""); - targetStart[TeleportEndKey] = targetAnchor; - if (target) { - insert(targetStart, target); - insert(targetAnchor, target); - } - return targetAnchor; -} -var leaveCbKey = Symbol("_leaveCb"); -var enterCbKey = Symbol("_enterCb"); -function useTransitionState() { - const state = { - isMounted: false, - isLeaving: false, - isUnmounting: false, - leavingVNodes: /* @__PURE__ */ new Map() - }; - onMounted(() => { - state.isMounted = true; - }); - onBeforeUnmount(() => { - state.isUnmounting = true; - }); - return state; -} -var TransitionHookValidator = [Function, Array]; -var BaseTransitionPropsValidators = { - mode: String, - appear: Boolean, - persisted: Boolean, - // enter - onBeforeEnter: TransitionHookValidator, - onEnter: TransitionHookValidator, - onAfterEnter: TransitionHookValidator, - onEnterCancelled: TransitionHookValidator, - // leave - onBeforeLeave: TransitionHookValidator, - onLeave: TransitionHookValidator, - onAfterLeave: TransitionHookValidator, - onLeaveCancelled: TransitionHookValidator, - // appear - onBeforeAppear: TransitionHookValidator, - onAppear: TransitionHookValidator, - onAfterAppear: TransitionHookValidator, - onAppearCancelled: TransitionHookValidator -}; -var recursiveGetSubtree = (instance) => { - const subTree = instance.subTree; - return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; -}; -var BaseTransitionImpl = { - name: `BaseTransition`, - props: BaseTransitionPropsValidators, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const state = useTransitionState(); - return () => { - const children = slots.default && getTransitionRawChildren(slots.default(), true); - if (!children || !children.length) { - return; - } - const child = findNonCommentChild(children); - const rawProps = toRaw(props); - const { mode } = rawProps; - if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { - warn$1(`invalid mode: ${mode}`); - } - if (state.isLeaving) { - return emptyPlaceholder(child); - } - const innerChild = getInnerChild$1(child); - if (!innerChild) { - return emptyPlaceholder(child); - } - let enterHooks = resolveTransitionHooks( - innerChild, - rawProps, - state, - instance, - // #11061, ensure enterHooks is fresh after clone - (hooks) => enterHooks = hooks - ); - if (innerChild.type !== Comment) { - setTransitionHooks(innerChild, enterHooks); - } - let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); - if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) { - let leavingHooks = resolveTransitionHooks( - oldInnerChild, - rawProps, - state, - instance - ); - setTransitionHooks(oldInnerChild, leavingHooks); - if (mode === "out-in" && innerChild.type !== Comment) { - state.isLeaving = true; - leavingHooks.afterLeave = () => { - state.isLeaving = false; - if (!(instance.job.flags & 8)) { - instance.update(); - } - delete leavingHooks.afterLeave; - oldInnerChild = void 0; - }; - return emptyPlaceholder(child); - } else if (mode === "in-out" && innerChild.type !== Comment) { - leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { - const leavingVNodesCache = getLeavingNodesForType( - state, - oldInnerChild - ); - leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; - el[leaveCbKey] = () => { - earlyRemove(); - el[leaveCbKey] = void 0; - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - enterHooks.delayedLeave = () => { - delayedLeave(); - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - }; - } else { - oldInnerChild = void 0; - } - } else if (oldInnerChild) { - oldInnerChild = void 0; - } - return child; - }; - } -}; -function findNonCommentChild(children) { - let child = children[0]; - if (children.length > 1) { - let hasFound = false; - for (const c of children) { - if (c.type !== Comment) { - if (hasFound) { - warn$1( - " can only be used on a single element or component. Use for lists." - ); - break; - } - child = c; - hasFound = true; - if (false) break; - } - } - } - return child; -} -var BaseTransition = BaseTransitionImpl; -function getLeavingNodesForType(state, vnode) { - const { leavingVNodes } = state; - let leavingVNodesCache = leavingVNodes.get(vnode.type); - if (!leavingVNodesCache) { - leavingVNodesCache = /* @__PURE__ */ Object.create(null); - leavingVNodes.set(vnode.type, leavingVNodesCache); - } - return leavingVNodesCache; -} -function resolveTransitionHooks(vnode, props, state, instance, postClone) { - const { - appear, - mode, - persisted = false, - onBeforeEnter, - onEnter, - onAfterEnter, - onEnterCancelled, - onBeforeLeave, - onLeave, - onAfterLeave, - onLeaveCancelled, - onBeforeAppear, - onAppear, - onAfterAppear, - onAppearCancelled - } = props; - const key = String(vnode.key); - const leavingVNodesCache = getLeavingNodesForType(state, vnode); - const callHook3 = (hook, args) => { - hook && callWithAsyncErrorHandling( - hook, - instance, - 9, - args - ); - }; - const callAsyncHook = (hook, args) => { - const done = args[1]; - callHook3(hook, args); - if (isArray(hook)) { - if (hook.every((hook2) => hook2.length <= 1)) done(); - } else if (hook.length <= 1) { - done(); - } - }; - const hooks = { - mode, - persisted, - beforeEnter(el) { - let hook = onBeforeEnter; - if (!state.isMounted) { - if (appear) { - hook = onBeforeAppear || onBeforeEnter; - } else { - return; - } - } - if (el[leaveCbKey]) { - el[leaveCbKey]( - true - /* cancelled */ - ); - } - const leavingVNode = leavingVNodesCache[key]; - if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { - leavingVNode.el[leaveCbKey](); - } - callHook3(hook, [el]); - }, - enter(el) { - let hook = onEnter; - let afterHook = onAfterEnter; - let cancelHook = onEnterCancelled; - if (!state.isMounted) { - if (appear) { - hook = onAppear || onEnter; - afterHook = onAfterAppear || onAfterEnter; - cancelHook = onAppearCancelled || onEnterCancelled; - } else { - return; - } - } - let called = false; - const done = el[enterCbKey] = (cancelled) => { - if (called) return; - called = true; - if (cancelled) { - callHook3(cancelHook, [el]); - } else { - callHook3(afterHook, [el]); - } - if (hooks.delayedLeave) { - hooks.delayedLeave(); - } - el[enterCbKey] = void 0; - }; - if (hook) { - callAsyncHook(hook, [el, done]); - } else { - done(); - } - }, - leave(el, remove2) { - const key2 = String(vnode.key); - if (el[enterCbKey]) { - el[enterCbKey]( - true - /* cancelled */ - ); - } - if (state.isUnmounting) { - return remove2(); - } - callHook3(onBeforeLeave, [el]); - let called = false; - const done = el[leaveCbKey] = (cancelled) => { - if (called) return; - called = true; - remove2(); - if (cancelled) { - callHook3(onLeaveCancelled, [el]); - } else { - callHook3(onAfterLeave, [el]); - } - el[leaveCbKey] = void 0; - if (leavingVNodesCache[key2] === vnode) { - delete leavingVNodesCache[key2]; - } - }; - leavingVNodesCache[key2] = vnode; - if (onLeave) { - callAsyncHook(onLeave, [el, done]); - } else { - done(); - } - }, - clone(vnode2) { - const hooks2 = resolveTransitionHooks( - vnode2, - props, - state, - instance, - postClone - ); - if (postClone) postClone(hooks2); - return hooks2; - } - }; - return hooks; -} -function emptyPlaceholder(vnode) { - if (isKeepAlive(vnode)) { - vnode = cloneVNode(vnode); - vnode.children = null; - return vnode; - } -} -function getInnerChild$1(vnode) { - if (!isKeepAlive(vnode)) { - if (isTeleport(vnode.type) && vnode.children) { - return findNonCommentChild(vnode.children); - } - return vnode; - } - if (vnode.component) { - return vnode.component.subTree; - } - const { shapeFlag, children } = vnode; - if (children) { - if (shapeFlag & 16) { - return children[0]; - } - if (shapeFlag & 32 && isFunction(children.default)) { - return children.default(); - } - } -} -function setTransitionHooks(vnode, hooks) { - if (vnode.shapeFlag & 6 && vnode.component) { - vnode.transition = hooks; - setTransitionHooks(vnode.component.subTree, hooks); - } else if (vnode.shapeFlag & 128) { - vnode.ssContent.transition = hooks.clone(vnode.ssContent); - vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); - } else { - vnode.transition = hooks; - } -} -function getTransitionRawChildren(children, keepComment = false, parentKey) { - let ret = []; - let keyedFragmentCount = 0; - for (let i = 0; i < children.length; i++) { - let child = children[i]; - const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); - if (child.type === Fragment) { - if (child.patchFlag & 128) keyedFragmentCount++; - ret = ret.concat( - getTransitionRawChildren(child.children, keepComment, key) - ); - } else if (keepComment || child.type !== Comment) { - ret.push(key != null ? cloneVNode(child, { key }) : child); - } - } - if (keyedFragmentCount > 1) { - for (let i = 0; i < ret.length; i++) { - ret[i].patchFlag = -2; - } - } - return ret; -} -function defineComponent(options, extraOptions) { - return isFunction(options) ? ( - // #8236: extend call and options.name access are considered side-effects - // by Rollup, so we have to wrap it in a pure-annotated IIFE. - (() => extend({ name: options.name }, extraOptions, { setup: options }))() - ) : options; -} -function useId() { - const i = getCurrentInstance(); - if (i) { - return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; - } else if (true) { - warn$1( - `useId() is called when there is no active component instance to be associated with.` - ); - } - return ""; -} -function markAsyncBoundary(instance) { - instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; -} -var knownTemplateRefs = /* @__PURE__ */ new WeakSet(); -function useTemplateRef(key) { - const i = getCurrentInstance(); - const r = shallowRef(null); - if (i) { - const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; - let desc; - if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) { - warn$1(`useTemplateRef('${key}') already exists.`); - } else { - Object.defineProperty(refs, key, { - enumerable: true, - get: () => r.value, - set: (val) => r.value = val - }); - } - } else if (true) { - warn$1( - `useTemplateRef() is called when there is no active component instance to be associated with.` - ); - } - const ret = true ? readonly(r) : r; - if (true) { - knownTemplateRefs.add(ret); - } - return ret; -} -function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { - if (isArray(rawRef)) { - rawRef.forEach( - (r, i) => setRef( - r, - oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), - parentSuspense, - vnode, - isUnmount - ) - ); - return; - } - if (isAsyncWrapper(vnode) && !isUnmount) { - if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { - setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); - } - return; - } - const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; - const value = isUnmount ? null : refValue; - const { i: owner, r: ref2 } = rawRef; - if (!owner) { - warn$1( - `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` - ); - return; - } - const oldRef = oldRawRef && oldRawRef.r; - const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; - const setupState = owner.setupState; - const rawSetupState = toRaw(setupState); - const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => { - if (true) { - if (hasOwn(rawSetupState, key) && !isRef2(rawSetupState[key])) { - warn$1( - `Template ref "${key}" used on a non-ref value. It will not work in the production build.` - ); - } - if (knownTemplateRefs.has(rawSetupState[key])) { - return false; - } - } - return hasOwn(rawSetupState, key); - }; - if (oldRef != null && oldRef !== ref2) { - if (isString(oldRef)) { - refs[oldRef] = null; - if (canSetSetupRef(oldRef)) { - setupState[oldRef] = null; - } - } else if (isRef2(oldRef)) { - oldRef.value = null; - } - } - if (isFunction(ref2)) { - callWithErrorHandling(ref2, owner, 12, [value, refs]); - } else { - const _isString = isString(ref2); - const _isRef = isRef2(ref2); - if (_isString || _isRef) { - const doSet = () => { - if (rawRef.f) { - const existing = _isString ? canSetSetupRef(ref2) ? setupState[ref2] : refs[ref2] : ref2.value; - if (isUnmount) { - isArray(existing) && remove(existing, refValue); - } else { - if (!isArray(existing)) { - if (_isString) { - refs[ref2] = [refValue]; - if (canSetSetupRef(ref2)) { - setupState[ref2] = refs[ref2]; - } - } else { - ref2.value = [refValue]; - if (rawRef.k) refs[rawRef.k] = ref2.value; - } - } else if (!existing.includes(refValue)) { - existing.push(refValue); - } - } - } else if (_isString) { - refs[ref2] = value; - if (canSetSetupRef(ref2)) { - setupState[ref2] = value; - } - } else if (_isRef) { - ref2.value = value; - if (rawRef.k) refs[rawRef.k] = value; - } else if (true) { - warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); - } - }; - if (value) { - doSet.id = -1; - queuePostRenderEffect(doSet, parentSuspense); - } else { - doSet(); - } - } else if (true) { - warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); - } - } -} -var hasLoggedMismatchError = false; -var logMismatchError = () => { - if (hasLoggedMismatchError) { - return; - } - console.error("Hydration completed but contains mismatches."); - hasLoggedMismatchError = true; -}; -var isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; -var isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); -var getContainerType = (container) => { - if (container.nodeType !== 1) return void 0; - if (isSVGContainer(container)) return "svg"; - if (isMathMLContainer(container)) return "mathml"; - return void 0; -}; -var isComment = (node) => node.nodeType === 8; -function createHydrationFunctions(rendererInternals) { - const { - mt: mountComponent, - p: patch, - o: { - patchProp: patchProp2, - createText, - nextSibling, - parentNode, - remove: remove2, - insert, - createComment - } - } = rendererInternals; - const hydrate2 = (vnode, container) => { - if (!container.hasChildNodes()) { - warn$1( - `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` - ); - patch(null, vnode, container); - flushPostFlushCbs(); - container._vnode = vnode; - return; - } - hydrateNode(container.firstChild, vnode, null, null, null); - flushPostFlushCbs(); - container._vnode = vnode; - }; - const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { - optimized = optimized || !!vnode.dynamicChildren; - const isFragmentStart = isComment(node) && node.data === "["; - const onMismatch = () => handleMismatch( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - isFragmentStart - ); - const { type, ref: ref2, shapeFlag, patchFlag } = vnode; - let domType = node.nodeType; - vnode.el = node; - if (true) { - def(node, "__vnode", vnode, true); - def(node, "__vueParentComponent", parentComponent, true); - } - if (patchFlag === -2) { - optimized = false; - vnode.dynamicChildren = null; - } - let nextNode = null; - switch (type) { - case Text: - if (domType !== 3) { - if (vnode.children === "") { - insert(vnode.el = createText(""), parentNode(node), node); - nextNode = node; - } else { - nextNode = onMismatch(); - } - } else { - if (node.data !== vnode.children) { - warn$1( - `Hydration text mismatch in`, - node.parentNode, - ` - - rendered on server: ${JSON.stringify( - node.data - )} - - expected on client: ${JSON.stringify(vnode.children)}` - ); - logMismatchError(); - node.data = vnode.children; - } - nextNode = nextSibling(node); - } - break; - case Comment: - if (isTemplateNode(node)) { - nextNode = nextSibling(node); - replaceNode( - vnode.el = node.content.firstChild, - node, - parentComponent - ); - } else if (domType !== 8 || isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = nextSibling(node); - } - break; - case Static: - if (isFragmentStart) { - node = nextSibling(node); - domType = node.nodeType; - } - if (domType === 1 || domType === 3) { - nextNode = node; - const needToAdoptContent = !vnode.children.length; - for (let i = 0; i < vnode.staticCount; i++) { - if (needToAdoptContent) - vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; - if (i === vnode.staticCount - 1) { - vnode.anchor = nextNode; - } - nextNode = nextSibling(nextNode); - } - return isFragmentStart ? nextSibling(nextNode) : nextNode; - } else { - onMismatch(); - } - break; - case Fragment: - if (!isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = hydrateFragment( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - break; - default: - if (shapeFlag & 1) { - if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { - nextNode = onMismatch(); - } else { - nextNode = hydrateElement( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - } else if (shapeFlag & 6) { - vnode.slotScopeIds = slotScopeIds; - const container = parentNode(node); - if (isFragmentStart) { - nextNode = locateClosingAnchor(node); - } else if (isComment(node) && node.data === "teleport start") { - nextNode = locateClosingAnchor(node, node.data, "teleport end"); - } else { - nextNode = nextSibling(node); - } - mountComponent( - vnode, - container, - null, - parentComponent, - parentSuspense, - getContainerType(container), - optimized - ); - if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { - let subTree; - if (isFragmentStart) { - subTree = createVNode(Fragment); - subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; - } else { - subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); - } - subTree.el = node; - vnode.component.subTree = subTree; - } - } else if (shapeFlag & 64) { - if (domType !== 8) { - nextNode = onMismatch(); - } else { - nextNode = vnode.type.hydrate( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized, - rendererInternals, - hydrateChildren - ); - } - } else if (shapeFlag & 128) { - nextNode = vnode.type.hydrate( - node, - vnode, - parentComponent, - parentSuspense, - getContainerType(parentNode(node)), - slotScopeIds, - optimized, - rendererInternals, - hydrateNode - ); - } else if (true) { - warn$1("Invalid HostVNode type:", type, `(${typeof type})`); - } - } - if (ref2 != null) { - setRef(ref2, null, parentSuspense, vnode); - } - return nextNode; - }; - const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { - optimized = optimized || !!vnode.dynamicChildren; - const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; - const forcePatch = type === "input" || type === "option"; - if (true) { - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, "created"); - } - let needCallTransitionHooks = false; - if (isTemplateNode(el)) { - needCallTransitionHooks = needTransition( - null, - // no need check parentSuspense in hydration - transition - ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; - const content = el.content.firstChild; - if (needCallTransitionHooks) { - const cls = content.getAttribute("class"); - if (cls) content.$cls = cls; - transition.beforeEnter(content); - } - replaceNode(content, el, parentComponent); - vnode.el = el = content; - } - if (shapeFlag & 16 && // skip if element has innerHTML / textContent - !(props && (props.innerHTML || props.textContent))) { - let next = hydrateChildren( - el.firstChild, - vnode, - el, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - let hasWarned2 = false; - while (next) { - if (!isMismatchAllowed( - el, - 1 - /* CHILDREN */ - )) { - if (!hasWarned2) { - warn$1( - `Hydration children mismatch on`, - el, - ` -Server rendered element contains more child nodes than client vdom.` - ); - hasWarned2 = true; - } - logMismatchError(); - } - const cur = next; - next = next.nextSibling; - remove2(cur); - } - } else if (shapeFlag & 8) { - let clientText = vnode.children; - if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { - clientText = clientText.slice(1); - } - if (el.textContent !== clientText) { - if (!isMismatchAllowed( - el, - 0 - /* TEXT */ - )) { - warn$1( - `Hydration text content mismatch on`, - el, - ` - - rendered on server: ${el.textContent} - - expected on client: ${vnode.children}` - ); - logMismatchError(); - } - el.textContent = vnode.children; - } - } - if (props) { - if (true) { - const isCustomElement = el.tagName.includes("-"); - for (const key in props) { - if (// #11189 skip if this node has directives that have created hooks - // as it could have mutated the DOM in any possible way - !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { - logMismatchError(); - } - if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers - key[0] === "." || isCustomElement) { - patchProp2(el, key, null, props[key], void 0, parentComponent); - } - } - } else if (props.onClick) { - patchProp2( - el, - "onClick", - null, - props.onClick, - void 0, - parentComponent - ); - } else if (patchFlag & 4 && isReactive(props.style)) { - for (const key in props.style) props.style[key]; - } - } - let vnodeHooks; - if (vnodeHooks = props && props.onVnodeBeforeMount) { - invokeVNodeHook(vnodeHooks, parentComponent, vnode); - } - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); - } - if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { - queueEffectWithSuspense(() => { - vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); - needCallTransitionHooks && transition.enter(el); - dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); - }, parentSuspense); - } - } - return el.nextSibling; - }; - const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { - optimized = optimized || !!parentVNode.dynamicChildren; - const children = parentVNode.children; - const l = children.length; - let hasWarned2 = false; - for (let i = 0; i < l; i++) { - const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); - const isText = vnode.type === Text; - if (node) { - if (isText && !optimized) { - if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { - insert( - createText( - node.data.slice(vnode.children.length) - ), - container, - nextSibling(node) - ); - node.data = vnode.children; - } - } - node = hydrateNode( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } else if (isText && !vnode.children) { - insert(vnode.el = createText(""), container); - } else { - if (!isMismatchAllowed( - container, - 1 - /* CHILDREN */ - )) { - if (!hasWarned2) { - warn$1( - `Hydration children mismatch on`, - container, - ` -Server rendered element contains fewer child nodes than client vdom.` - ); - hasWarned2 = true; - } - logMismatchError(); - } - patch( - null, - vnode, - container, - null, - parentComponent, - parentSuspense, - getContainerType(container), - slotScopeIds - ); - } - } - return node; - }; - const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { - const { slotScopeIds: fragmentSlotScopeIds } = vnode; - if (fragmentSlotScopeIds) { - slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; - } - const container = parentNode(node); - const next = hydrateChildren( - nextSibling(node), - vnode, - container, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - if (next && isComment(next) && next.data === "]") { - return nextSibling(vnode.anchor = next); - } else { - logMismatchError(); - insert(vnode.anchor = createComment(`]`), container, next); - return next; - } - }; - const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { - if (!isMismatchAllowed( - node.parentElement, - 1 - /* CHILDREN */ - )) { - warn$1( - `Hydration node mismatch: -- rendered on server:`, - node, - node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, - ` -- expected on client:`, - vnode.type - ); - logMismatchError(); - } - vnode.el = null; - if (isFragment) { - const end = locateClosingAnchor(node); - while (true) { - const next2 = nextSibling(node); - if (next2 && next2 !== end) { - remove2(next2); - } else { - break; - } - } - } - const next = nextSibling(node); - const container = parentNode(node); - remove2(node); - patch( - null, - vnode, - container, - next, - parentComponent, - parentSuspense, - getContainerType(container), - slotScopeIds - ); - if (parentComponent) { - parentComponent.vnode.el = vnode.el; - updateHOCHostEl(parentComponent, vnode.el); - } - return next; - }; - const locateClosingAnchor = (node, open = "[", close = "]") => { - let match = 0; - while (node) { - node = nextSibling(node); - if (node && isComment(node)) { - if (node.data === open) match++; - if (node.data === close) { - if (match === 0) { - return nextSibling(node); - } else { - match--; - } - } - } - } - return node; - }; - const replaceNode = (newNode, oldNode, parentComponent) => { - const parentNode2 = oldNode.parentNode; - if (parentNode2) { - parentNode2.replaceChild(newNode, oldNode); - } - let parent = parentComponent; - while (parent) { - if (parent.vnode.el === oldNode) { - parent.vnode.el = parent.subTree.el = newNode; - } - parent = parent.parent; - } - }; - const isTemplateNode = (node) => { - return node.nodeType === 1 && node.tagName === "TEMPLATE"; - }; - return [hydrate2, hydrateNode]; -} -function propHasMismatch(el, key, clientValue, vnode, instance) { - let mismatchType; - let mismatchKey; - let actual; - let expected; - if (key === "class") { - if (el.$cls) { - actual = el.$cls; - delete el.$cls; - } else { - actual = el.getAttribute("class"); - } - expected = normalizeClass(clientValue); - if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { - mismatchType = 2; - mismatchKey = `class`; - } - } else if (key === "style") { - actual = el.getAttribute("style") || ""; - expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); - const actualMap = toStyleMap(actual); - const expectedMap = toStyleMap(expected); - if (vnode.dirs) { - for (const { dir, value } of vnode.dirs) { - if (dir.name === "show" && !value) { - expectedMap.set("display", "none"); - } - } - } - if (instance) { - resolveCssVars(instance, vnode, expectedMap); - } - if (!isMapEqual(actualMap, expectedMap)) { - mismatchType = 3; - mismatchKey = "style"; - } - } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { - if (isBooleanAttr(key)) { - actual = el.hasAttribute(key); - expected = includeBooleanAttr(clientValue); - } else if (clientValue == null) { - actual = el.hasAttribute(key); - expected = false; - } else { - if (el.hasAttribute(key)) { - actual = el.getAttribute(key); - } else if (key === "value" && el.tagName === "TEXTAREA") { - actual = el.value; - } else { - actual = false; - } - expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; - } - if (actual !== expected) { - mismatchType = 4; - mismatchKey = key; - } - } - if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { - const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; - const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; - const postSegment = ` - - rendered on server: ${format(actual)} - - expected on client: ${format(expected)} - Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`; - { - warn$1(preSegment, el, postSegment); - } - return true; - } - return false; -} -function toClassSet(str) { - return new Set(str.trim().split(/\s+/)); -} -function isSetEqual(a, b) { - if (a.size !== b.size) { - return false; - } - for (const s of a) { - if (!b.has(s)) { - return false; - } - } - return true; -} -function toStyleMap(str) { - const styleMap = /* @__PURE__ */ new Map(); - for (const item of str.split(";")) { - let [key, value] = item.split(":"); - key = key.trim(); - value = value && value.trim(); - if (key && value) { - styleMap.set(key, value); - } - } - return styleMap; -} -function isMapEqual(a, b) { - if (a.size !== b.size) { - return false; - } - for (const [key, value] of a) { - if (value !== b.get(key)) { - return false; - } - } - return true; -} -function resolveCssVars(instance, vnode, expectedMap) { - const root = instance.subTree; - if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { - const cssVars = instance.getCssVars(); - for (const key in cssVars) { - expectedMap.set( - `--${getEscapedCssVarName(key, false)}`, - String(cssVars[key]) - ); - } - } - if (vnode === root && instance.parent) { - resolveCssVars(instance.parent, instance.vnode, expectedMap); - } -} -var allowMismatchAttr = "data-allow-mismatch"; -var MismatchTypeString = { - [ - 0 - /* TEXT */ - ]: "text", - [ - 1 - /* CHILDREN */ - ]: "children", - [ - 2 - /* CLASS */ - ]: "class", - [ - 3 - /* STYLE */ - ]: "style", - [ - 4 - /* ATTRIBUTE */ - ]: "attribute" -}; -function isMismatchAllowed(el, allowedType) { - if (allowedType === 0 || allowedType === 1) { - while (el && !el.hasAttribute(allowMismatchAttr)) { - el = el.parentElement; - } - } - const allowedAttr = el && el.getAttribute(allowMismatchAttr); - if (allowedAttr == null) { - return false; - } else if (allowedAttr === "") { - return true; - } else { - const list = allowedAttr.split(","); - if (allowedType === 0 && list.includes("children")) { - return true; - } - return list.includes(MismatchTypeString[allowedType]); - } -} -var requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); -var cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); -var hydrateOnIdle = (timeout = 1e4) => (hydrate2) => { - const id = requestIdleCallback(hydrate2, { timeout }); - return () => cancelIdleCallback(id); -}; -function elementIsVisibleInViewport(el) { - const { top, left, bottom, right } = el.getBoundingClientRect(); - const { innerHeight, innerWidth } = window; - return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); -} -var hydrateOnVisible = (opts) => (hydrate2, forEach) => { - const ob = new IntersectionObserver((entries) => { - for (const e of entries) { - if (!e.isIntersecting) continue; - ob.disconnect(); - hydrate2(); - break; - } - }, opts); - forEach((el) => { - if (!(el instanceof Element)) return; - if (elementIsVisibleInViewport(el)) { - hydrate2(); - ob.disconnect(); - return false; - } - ob.observe(el); - }); - return () => ob.disconnect(); -}; -var hydrateOnMediaQuery = (query) => (hydrate2) => { - if (query) { - const mql = matchMedia(query); - if (mql.matches) { - hydrate2(); - } else { - mql.addEventListener("change", hydrate2, { once: true }); - return () => mql.removeEventListener("change", hydrate2); - } - } -}; -var hydrateOnInteraction = (interactions = []) => (hydrate2, forEach) => { - if (isString(interactions)) interactions = [interactions]; - let hasHydrated = false; - const doHydrate = (e) => { - if (!hasHydrated) { - hasHydrated = true; - teardown(); - hydrate2(); - e.target.dispatchEvent(new e.constructor(e.type, e)); - } - }; - const teardown = () => { - forEach((el) => { - for (const i of interactions) { - el.removeEventListener(i, doHydrate); - } - }); - }; - forEach((el) => { - for (const i of interactions) { - el.addEventListener(i, doHydrate, { once: true }); - } - }); - return teardown; -}; -function forEachElement(node, cb) { - if (isComment(node) && node.data === "[") { - let depth = 1; - let next = node.nextSibling; - while (next) { - if (next.nodeType === 1) { - const result = cb(next); - if (result === false) { - break; - } - } else if (isComment(next)) { - if (next.data === "]") { - if (--depth === 0) break; - } else if (next.data === "[") { - depth++; - } - } - next = next.nextSibling; - } - } else { - cb(node); - } -} -var isAsyncWrapper = (i) => !!i.type.__asyncLoader; -function defineAsyncComponent(source) { - if (isFunction(source)) { - source = { loader: source }; - } - const { - loader, - loadingComponent, - errorComponent, - delay = 200, - hydrate: hydrateStrategy, - timeout, - // undefined = never times out - suspensible = true, - onError: userOnError - } = source; - let pendingRequest = null; - let resolvedComp; - let retries = 0; - const retry = () => { - retries++; - pendingRequest = null; - return load(); - }; - const load = () => { - let thisRequest; - return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { - err = err instanceof Error ? err : new Error(String(err)); - if (userOnError) { - return new Promise((resolve2, reject) => { - const userRetry = () => resolve2(retry()); - const userFail = () => reject(err); - userOnError(err, userRetry, userFail, retries + 1); - }); - } else { - throw err; - } - }).then((comp) => { - if (thisRequest !== pendingRequest && pendingRequest) { - return pendingRequest; - } - if (!comp) { - warn$1( - `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` - ); - } - if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { - comp = comp.default; - } - if (comp && !isObject(comp) && !isFunction(comp)) { - throw new Error(`Invalid async component load result: ${comp}`); - } - resolvedComp = comp; - return comp; - })); - }; - return defineComponent({ - name: "AsyncComponentWrapper", - __asyncLoader: load, - __asyncHydrate(el, instance, hydrate2) { - let patched = false; - const doHydrate = hydrateStrategy ? () => { - const performHydrate = () => { - if (patched) { - warn$1( - `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.` - ); - return; - } - hydrate2(); - }; - const teardown = hydrateStrategy( - performHydrate, - (cb) => forEachElement(el, cb) - ); - if (teardown) { - (instance.bum || (instance.bum = [])).push(teardown); - } - (instance.u || (instance.u = [])).push(() => patched = true); - } : hydrate2; - if (resolvedComp) { - doHydrate(); - } else { - load().then(() => !instance.isUnmounted && doHydrate()); - } - }, - get __asyncResolved() { - return resolvedComp; - }, - setup() { - const instance = currentInstance; - markAsyncBoundary(instance); - if (resolvedComp) { - return () => createInnerComp(resolvedComp, instance); - } - const onError = (err) => { - pendingRequest = null; - handleError( - err, - instance, - 13, - !errorComponent - ); - }; - if (suspensible && instance.suspense || isInSSRComponentSetup) { - return load().then((comp) => { - return () => createInnerComp(comp, instance); - }).catch((err) => { - onError(err); - return () => errorComponent ? createVNode(errorComponent, { - error: err - }) : null; - }); - } - const loaded = ref(false); - const error = ref(); - const delayed = ref(!!delay); - if (delay) { - setTimeout(() => { - delayed.value = false; - }, delay); - } - if (timeout != null) { - setTimeout(() => { - if (!loaded.value && !error.value) { - const err = new Error( - `Async component timed out after ${timeout}ms.` - ); - onError(err); - error.value = err; - } - }, timeout); - } - load().then(() => { - loaded.value = true; - if (instance.parent && isKeepAlive(instance.parent.vnode)) { - instance.parent.update(); - } - }).catch((err) => { - onError(err); - error.value = err; - }); - return () => { - if (loaded.value && resolvedComp) { - return createInnerComp(resolvedComp, instance); - } else if (error.value && errorComponent) { - return createVNode(errorComponent, { - error: error.value - }); - } else if (loadingComponent && !delayed.value) { - return createVNode(loadingComponent); - } - }; - } - }); -} -function createInnerComp(comp, parent) { - const { ref: ref2, props, children, ce } = parent.vnode; - const vnode = createVNode(comp, props, children); - vnode.ref = ref2; - vnode.ce = ce; - delete parent.vnode.ce; - return vnode; -} -var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; -var KeepAliveImpl = { - name: `KeepAlive`, - // Marker for special handling inside the renderer. We are not using a === - // check directly on KeepAlive in the renderer, because importing it directly - // would prevent it from being tree-shaken. - __isKeepAlive: true, - props: { - include: [String, RegExp, Array], - exclude: [String, RegExp, Array], - max: [String, Number] - }, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const sharedContext = instance.ctx; - if (!sharedContext.renderer) { - return () => { - const children = slots.default && slots.default(); - return children && children.length === 1 ? children[0] : children; - }; - } - const cache = /* @__PURE__ */ new Map(); - const keys = /* @__PURE__ */ new Set(); - let current = null; - if (true) { - instance.__v_cache = cache; - } - const parentSuspense = instance.suspense; - const { - renderer: { - p: patch, - m: move, - um: _unmount, - o: { createElement } - } - } = sharedContext; - const storageContainer = createElement("div"); - sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { - const instance2 = vnode.component; - move(vnode, container, anchor, 0, parentSuspense); - patch( - instance2.vnode, - vnode, - container, - anchor, - instance2, - parentSuspense, - namespace, - vnode.slotScopeIds, - optimized - ); - queuePostRenderEffect(() => { - instance2.isDeactivated = false; - if (instance2.a) { - invokeArrayFns(instance2.a); - } - const vnodeHook = vnode.props && vnode.props.onVnodeMounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - }; - sharedContext.deactivate = (vnode) => { - const instance2 = vnode.component; - invalidateMount(instance2.m); - invalidateMount(instance2.a); - move(vnode, storageContainer, null, 1, parentSuspense); - queuePostRenderEffect(() => { - if (instance2.da) { - invokeArrayFns(instance2.da); - } - const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - instance2.isDeactivated = true; - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - if (true) { - instance2.__keepAliveStorageContainer = storageContainer; - } - }; - function unmount(vnode) { - resetShapeFlag(vnode); - _unmount(vnode, instance, parentSuspense, true); - } - function pruneCache(filter) { - cache.forEach((vnode, key) => { - const name = getComponentName(vnode.type); - if (name && !filter(name)) { - pruneCacheEntry(key); - } - }); - } - function pruneCacheEntry(key) { - const cached = cache.get(key); - if (cached && (!current || !isSameVNodeType(cached, current))) { - unmount(cached); - } else if (current) { - resetShapeFlag(current); - } - cache.delete(key); - keys.delete(key); - } - watch2( - () => [props.include, props.exclude], - ([include, exclude]) => { - include && pruneCache((name) => matches(include, name)); - exclude && pruneCache((name) => !matches(exclude, name)); - }, - // prune post-render after `current` has been updated - { flush: "post", deep: true } - ); - let pendingCacheKey = null; - const cacheSubtree = () => { - if (pendingCacheKey != null) { - if (isSuspense(instance.subTree.type)) { - queuePostRenderEffect(() => { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - }, instance.subTree.suspense); - } else { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - } - } - }; - onMounted(cacheSubtree); - onUpdated(cacheSubtree); - onBeforeUnmount(() => { - cache.forEach((cached) => { - const { subTree, suspense } = instance; - const vnode = getInnerChild(subTree); - if (cached.type === vnode.type && cached.key === vnode.key) { - resetShapeFlag(vnode); - const da = vnode.component.da; - da && queuePostRenderEffect(da, suspense); - return; - } - unmount(cached); - }); - }); - return () => { - pendingCacheKey = null; - if (!slots.default) { - return current = null; - } - const children = slots.default(); - const rawVNode = children[0]; - if (children.length > 1) { - if (true) { - warn$1(`KeepAlive should contain exactly one component child.`); - } - current = null; - return children; - } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { - current = null; - return rawVNode; - } - let vnode = getInnerChild(rawVNode); - if (vnode.type === Comment) { - current = null; - return vnode; - } - const comp = vnode.type; - const name = getComponentName( - isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp - ); - const { include, exclude, max } = props; - if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { - vnode.shapeFlag &= -257; - current = vnode; - return rawVNode; - } - const key = vnode.key == null ? comp : vnode.key; - const cachedVNode = cache.get(key); - if (vnode.el) { - vnode = cloneVNode(vnode); - if (rawVNode.shapeFlag & 128) { - rawVNode.ssContent = vnode; - } - } - pendingCacheKey = key; - if (cachedVNode) { - vnode.el = cachedVNode.el; - vnode.component = cachedVNode.component; - if (vnode.transition) { - setTransitionHooks(vnode, vnode.transition); - } - vnode.shapeFlag |= 512; - keys.delete(key); - keys.add(key); - } else { - keys.add(key); - if (max && keys.size > parseInt(max, 10)) { - pruneCacheEntry(keys.values().next().value); - } - } - vnode.shapeFlag |= 256; - current = vnode; - return isSuspense(rawVNode.type) ? rawVNode : vnode; - }; - } -}; -var KeepAlive = KeepAliveImpl; -function matches(pattern, name) { - if (isArray(pattern)) { - return pattern.some((p2) => matches(p2, name)); - } else if (isString(pattern)) { - return pattern.split(",").includes(name); - } else if (isRegExp(pattern)) { - pattern.lastIndex = 0; - return pattern.test(name); - } - return false; -} -function onActivated(hook, target) { - registerKeepAliveHook(hook, "a", target); -} -function onDeactivated(hook, target) { - registerKeepAliveHook(hook, "da", target); -} -function registerKeepAliveHook(hook, type, target = currentInstance) { - const wrappedHook = hook.__wdc || (hook.__wdc = () => { - let current = target; - while (current) { - if (current.isDeactivated) { - return; - } - current = current.parent; - } - return hook(); - }); - injectHook(type, wrappedHook, target); - if (target) { - let current = target.parent; - while (current && current.parent) { - if (isKeepAlive(current.parent.vnode)) { - injectToKeepAliveRoot(wrappedHook, type, target, current); - } - current = current.parent; - } - } -} -function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { - const injected = injectHook( - type, - hook, - keepAliveRoot, - true - /* prepend */ - ); - onUnmounted(() => { - remove(keepAliveRoot[type], injected); - }, target); -} -function resetShapeFlag(vnode) { - vnode.shapeFlag &= -257; - vnode.shapeFlag &= -513; -} -function getInnerChild(vnode) { - return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; -} -function injectHook(type, hook, target = currentInstance, prepend = false) { - if (target) { - const hooks = target[type] || (target[type] = []); - const wrappedHook = hook.__weh || (hook.__weh = (...args) => { - pauseTracking(); - const reset = setCurrentInstance(target); - const res = callWithAsyncErrorHandling(hook, target, type, args); - reset(); - resetTracking(); - return res; - }); - if (prepend) { - hooks.unshift(wrappedHook); - } else { - hooks.push(wrappedHook); - } - return wrappedHook; - } else if (true) { - const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); - warn$1( - `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` - ); - } -} -var createHook = (lifecycle) => (hook, target = currentInstance) => { - if (!isInSSRComponentSetup || lifecycle === "sp") { - injectHook(lifecycle, (...args) => hook(...args), target); - } -}; -var onBeforeMount = createHook("bm"); -var onMounted = createHook("m"); -var onBeforeUpdate = createHook( - "bu" -); -var onUpdated = createHook("u"); -var onBeforeUnmount = createHook( - "bum" -); -var onUnmounted = createHook("um"); -var onServerPrefetch = createHook( - "sp" -); -var onRenderTriggered = createHook("rtg"); -var onRenderTracked = createHook("rtc"); -function onErrorCaptured(hook, target = currentInstance) { - injectHook("ec", hook, target); -} -var COMPONENTS = "components"; -var DIRECTIVES = "directives"; -function resolveComponent(name, maybeSelfReference) { - return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; -} -var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); -function resolveDynamicComponent(component) { - if (isString(component)) { - return resolveAsset(COMPONENTS, component, false) || component; - } else { - return component || NULL_DYNAMIC_COMPONENT; - } -} -function resolveDirective(name) { - return resolveAsset(DIRECTIVES, name); -} -function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { - const instance = currentRenderingInstance || currentInstance; - if (instance) { - const Component = instance.type; - if (type === COMPONENTS) { - const selfName = getComponentName( - Component, - false - ); - if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { - return Component; - } - } - const res = ( - // local registration - // check instance[type] first which is resolved for options API - resolve(instance[type] || Component[type], name) || // global registration - resolve(instance.appContext[type], name) - ); - if (!res && maybeSelfReference) { - return Component; - } - if (warnMissing && !res) { - const extra = type === COMPONENTS ? ` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; - warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); - } - return res; - } else if (true) { - warn$1( - `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` - ); - } -} -function resolve(registry, name) { - return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); -} -function renderList(source, renderItem, cache, index) { - let ret; - const cached = cache && cache[index]; - const sourceIsArray = isArray(source); - if (sourceIsArray || isString(source)) { - const sourceIsReactiveArray = sourceIsArray && isReactive(source); - let needsWrap = false; - let isReadonlySource = false; - if (sourceIsReactiveArray) { - needsWrap = !isShallow(source); - isReadonlySource = isReadonly(source); - source = shallowReadArray(source); - } - ret = new Array(source.length); - for (let i = 0, l = source.length; i < l; i++) { - ret[i] = renderItem( - needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], - i, - void 0, - cached && cached[i] - ); - } - } else if (typeof source === "number") { - if (!Number.isInteger(source)) { - warn$1(`The v-for range expect an integer value but got ${source}.`); - } - ret = new Array(source); - for (let i = 0; i < source; i++) { - ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); - } - } else if (isObject(source)) { - if (source[Symbol.iterator]) { - ret = Array.from( - source, - (item, i) => renderItem(item, i, void 0, cached && cached[i]) - ); - } else { - const keys = Object.keys(source); - ret = new Array(keys.length); - for (let i = 0, l = keys.length; i < l; i++) { - const key = keys[i]; - ret[i] = renderItem(source[key], key, i, cached && cached[i]); - } - } - } else { - ret = []; - } - if (cache) { - cache[index] = ret; - } - return ret; -} -function createSlots(slots, dynamicSlots) { - for (let i = 0; i < dynamicSlots.length; i++) { - const slot = dynamicSlots[i]; - if (isArray(slot)) { - for (let j = 0; j < slot.length; j++) { - slots[slot[j].name] = slot[j].fn; - } - } else if (slot) { - slots[slot.name] = slot.key ? (...args) => { - const res = slot.fn(...args); - if (res) res.key = slot.key; - return res; - } : slot.fn; - } - } - return slots; -} -function renderSlot(slots, name, props = {}, fallback, noSlotted) { - if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { - if (name !== "default") props.name = name; - return openBlock(), createBlock( - Fragment, - null, - [createVNode("slot", props, fallback && fallback())], - 64 - ); - } - let slot = slots[name]; - if (slot && slot.length > 1) { - warn$1( - `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` - ); - slot = () => []; - } - if (slot && slot._c) { - slot._d = false; - } - openBlock(); - const validSlotContent = slot && ensureValidVNode(slot(props)); - const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch - // key attached in the `createSlots` helper, respect that - validSlotContent && validSlotContent.key; - const rendered = createBlock( - Fragment, - { - key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content - (!validSlotContent && fallback ? "_fb" : "") - }, - validSlotContent || (fallback ? fallback() : []), - validSlotContent && slots._ === 1 ? 64 : -2 - ); - if (!noSlotted && rendered.scopeId) { - rendered.slotScopeIds = [rendered.scopeId + "-s"]; - } - if (slot && slot._c) { - slot._d = true; - } - return rendered; -} -function ensureValidVNode(vnodes) { - return vnodes.some((child) => { - if (!isVNode(child)) return true; - if (child.type === Comment) return false; - if (child.type === Fragment && !ensureValidVNode(child.children)) - return false; - return true; - }) ? vnodes : null; -} -function toHandlers(obj, preserveCaseIfNecessary) { - const ret = {}; - if (!isObject(obj)) { - warn$1(`v-on with no argument expects an object value.`); - return ret; - } - for (const key in obj) { - ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; - } - return ret; -} -var getPublicInstance = (i) => { - if (!i) return null; - if (isStatefulComponent(i)) return getComponentPublicInstance(i); - return getPublicInstance(i.parent); -}; -var publicPropertiesMap = ( - // Move PURE marker to new line to workaround compiler discarding it - // due to type annotation - extend(/* @__PURE__ */ Object.create(null), { - $: (i) => i, - $el: (i) => i.vnode.el, - $data: (i) => i.data, - $props: (i) => true ? shallowReadonly(i.props) : i.props, - $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, - $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, - $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, - $parent: (i) => getPublicInstance(i.parent), - $root: (i) => getPublicInstance(i.root), - $host: (i) => i.ce, - $emit: (i) => i.emit, - $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, - $forceUpdate: (i) => i.f || (i.f = () => { - queueJob(i.update); - }), - $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), - $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP - }) -); -var isReservedPrefix = (key) => key === "_" || key === "$"; -var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); -var PublicInstanceProxyHandlers = { - get({ _: instance }, key) { - if (key === "__v_skip") { - return true; - } - const { ctx, setupState, data, props, accessCache, type, appContext } = instance; - if (key === "__isVue") { - return true; - } - let normalizedProps; - if (key[0] !== "$") { - const n = accessCache[key]; - if (n !== void 0) { - switch (n) { - case 1: - return setupState[key]; - case 2: - return data[key]; - case 4: - return ctx[key]; - case 3: - return props[key]; - } - } else if (hasSetupBinding(setupState, key)) { - accessCache[key] = 1; - return setupState[key]; - } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { - accessCache[key] = 2; - return data[key]; - } else if ( - // only cache other properties when instance has declared (thus stable) - // props - (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) - ) { - accessCache[key] = 3; - return props[key]; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { - accessCache[key] = 0; - } - } - const publicGetter = publicPropertiesMap[key]; - let cssModule, globalProperties; - if (publicGetter) { - if (key === "$attrs") { - track(instance.attrs, "get", ""); - markAttrsAccessed(); - } else if (key === "$slots") { - track(instance, "get", key); - } - return publicGetter(instance); - } else if ( - // css module (injected by vue-loader) - (cssModule = type.__cssModules) && (cssModule = cssModule[key]) - ) { - return cssModule; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if ( - // global properties - globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) - ) { - { - return globalProperties[key]; - } - } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading - // to infinite warning loop - key.indexOf("__v") !== 0)) { - if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { - warn$1( - `Property ${JSON.stringify( - key - )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` - ); - } else if (instance === currentRenderingInstance) { - warn$1( - `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` - ); - } - } - }, - set({ _: instance }, key, value) { - const { data, setupState, ctx } = instance; - if (hasSetupBinding(setupState, key)) { - setupState[key] = value; - return true; - } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { - warn$1(`Cannot mutate